Jump to content

    
des00

Вопросы по итеративному декодированию

Recommended Posts

On 5/29/2020 at 7:46 PM, des00 said:

а не встречал кто нибудь качественного описания теории информации Шенона с разьяснениями? Когда автор не прыгает между разделами, не вводит свои термины и свои пояснения, не сокращает выводы формул, не сводит теорию Шенона для канала с ошибками к трем формулам и т.д.

Собственного интересуют точные формулы емкости канала, граниченой скорости кодирования в зависимости от длины пакета, параметров канала. Т.е. вывод/построение графиков и их асимптот которые приводятся в статьях.

совсем забыл про книгу что посоветовал @lennox в итоге нашел в запасниках книгу, на основе которой вывел нужные формулы и построил графики. Шенон гений!

Прошу помощи зала. Появилось немного свободного времени, решил вернуться к доработке DVB-RSC декодеров. Нашел вот такие описания на сайте интела и хилых

https://www.intel.com/content/www/us/en/programmable/solutions/partners/partner-profile/creonic/ip/dvb-rcs2-turbo-encoder-decoder.html#device-utilization

https://www.intel.com/content/www/us/en/programmable/solutions/partners/partner-profile/creonic/ip/dvb-rcs-turbo-encoder-decoder.html

и они же.

https://www.xilinx.com/products/intellectual-property/1-411yk8.html#productspecs

https://www.xilinx.com/products/intellectual-property/1-411yk1.html#productspecs

Взял заявленные параметры по первой ссылке 92 Mbit/s at 8 iterations (200 MHz) для 298 payload bites. Работают дебитами, положим что одновременно считают прямую и обратную ветку BCJR (1 пара за такт), тогда при одном BCJR движке, с учетом двух проходов (прямой и с перемежением) и 8ми итераций, на один блок уйдет (298*4)*2*8= 19072 такта. что для данных 298 байт и тактовой 200МГц, составит 25МБит/с. Они же заявляют в 4 раза выше.

Положим что у них стоит 4 ядра декодера. Пусть метрика бита 5 бит, пары 6 бит, состояние/апостериорная вероятность 10бит. Итого для решетки 16 на 1 ядро работающее с темпом 1 пара за такт, уйдет минимум: 

рассчет метрик 3*5 + 16*4*6 ~= 400 плиток.

рекурсивный процессор(решетка, нормировка состояний и переходов для рассчета апостериорных вероятностей): 16*(4+3)*10 + 16*(4+1)*10=1920 плиток

рассчет апостериорной вероятности: 16*4*10+(8+4+2+1)*4*10 = 1270 плиток

Итого ~3500плиток на одно направление, или 7000 на ядро.

А они заявляют 9000 на весь декодер. При этом мне не очевидно и не могу придумать как разбить решетку на 2/4 части, на цикле с DVB интерливером. На некоторых типах блоков, там одновременно читаются и пишутся соседние адреса(например для DVB RSC первое ядро работает с парами 1,14,135,138..., второе 3,16,133,146...). Как это сделать на лету лету на блочной памяти до меня не доходит.

Собственно вопрос. Как они это делают? С мизерным ресурсом, получают большие скорости кодирования при отличном ЭВК.

 

ЗЫ. Книгу The Intuitive Guide to Doing Link Budgets погуглил подиагонали, тишина(

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.