Jump to content

    
des00

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

Recommended Posts

Доброго дня!

 

Развлечения ради, решил сделать LDPC кодек из стандарта GSFC-STD-9100. Проверочная матрица в приложении. Видно что в базовой подматрице 2 единичных коэффициента, вместо одного, как в WiMax. Я же правильно понимаю что количество vnode при декодировании будет в 2 раза больше, если бы это были единичные матрицы WiMax? Т.е. каждый cnode связан с 32 vnode, а каждый vnode связан со входным битом и 4 cnode?

 

Правильно ли понимаю, что по сути, в декодере нужно сделать 2 слоя vnode по 16*511 метрик (четный/нечетный), связанных между собой через cnode и при итерациях обновляются оба слоя?

 

Спасибо.

 

ЗЫ. Думал по "быстролянчику" натяну этот код на Wimax овский декодер. Но .... не тут то было :D

post-3453-1465473893_thumb.png

Share this post


Link to post
Share on other sites
LDPC кодек из стандарта GSFC-STD-9100

Тема пройденная. Смотрю на F-LDPC коды от Trellis Ware. Подскажите, где можно взять эталонные фреймы, для проверки работы кодера ?

 

Share this post


Link to post
Share on other sites
Смотрю на F-LDPC коды от Trellis Ware. Подскажите, где можно взять эталонные фреймы, для проверки работы кодера ?

Денис Вы случайно не находили Parity check matrix для F-LDPC кода от Trellis Ware? Может Вы где в патентах встречали ?

Share this post


Link to post
Share on other sites
Денис Вы случайно не находили Parity check matrix для F-LDPC кода от Trellis Ware? Может Вы где в патентах встречали ?

Пока не находил. Только намеки как ее вычислить. И в статье указано что декодировать эти коды как LDPC не рекомендуется. Слишком много единиц в проверочной матрице. Проигрывает турбо декодеру по ресурсам. Странно что нигде не указан четко используемый интерливер. Одни намеки. И в стандартах вроде этого кода нет :(

 

ЗЫ. То что LDPC использовать нельзя не айс. Быстрое турбо сделать не просто, надо решетку дробить. Мне интересны скорости > 500 мегабит %(

A_New_Class_of_Turbo_like_Codes_with_Universally_Good_Performance_and_High_Speed_Decoding_.pdf

Share this post


Link to post
Share on other sites

Никто не находил/вычислял таблицы полиномов битов четности для всего диапазона скоростей/размеров кодов ARJ4A из оранжевой книги? Поделитесь, что бы с протографами не заморачиваться :)

Share this post


Link to post
Share on other sites
По FLEX известно, что интерливер строится на основе Dithered Relative Prime алгоритма.

US20050216819.pdf

Спасибо, теперь много понятнее. Ндя, интерливер для не ищущих легких путей. Придется таблицы использовать. Не до конца понятно использование различных решеток. Вроде как там структура внутреннего и внешнего кода фиксирована. Откуда разные решетки ?

Share this post


Link to post
Share on other sites

Патент описывает некий турбоподобный код с хорошей гибкостью в плане изменения скорости кодирования. Внешний и внутренний коды, описанные в нём, отличаются от применяемых в FLDPC, поэтому я не уделял им внимания. В FLDPC используются два простейших кодера: внешний - 1+D, внутренний 1/1+D. Алгоритм их декодирования детально описан в статье, прикрепленной des00. Алгоритм декодирования подобных кодов можно посмотреть в матлабе, в хелпе SCCC, там свёрточники немного сложнее, но суть такая же.

PS. По скорости - автор статьи утверждает, что на virtex-II 8000 c тактовой 100 МГц они добились 300 Мбит/с с 10 итерациями.

Share this post


Link to post
Share on other sites

Раскурил патент по запчастям

Патент описывает некий турбоподобный код с хорошей гибкостью в плане изменения скорости кодирования.

Похоже это описание FLEX кода, более прошаренного чем F-LDPC в плане noise floor. Но за это нужно заплатить ресурсом декодеров.

PS. По скорости - автор статьи утверждает, что на virtex-II 8000 c тактовой 100 МГц они добились 300 Мбит/с с 10 итерациями.

Если делать скользящее окно то да, это возможно. Правда тут все упирается в возможность реализации collision free интерливера.

 

В целом, архитектура этого кодека мне понятна. Параллельный MAP движок, collsion free интерливер и математика из CNODE движка LDPC для декодирования SPC. Спасибо за инфу !

Внешний и внутренний коды, описанные в нём, отличаются от применяемых в FLDPC, поэтому я не уделял им внимания.

А вы делали этот кодек? Использовали свой интерливер или из патента? Можете поделиться эталонными закодированными последовательностями для блоков разной длинны? Эталонного сравнения ради.

 

Изучая ссылки на статьи, наткнулся вот на такую книгу Turbo-like Codes Design for High Speed Decoding Может мимо кого пробегала. Прошу поделиться :)

Share this post


Link to post
Share on other sites
Изучая ссылки на статьи, наткнулся вот на такую книгу Turbo-like Codes Design for High Speed Decoding Может мимо кого пробегала. Прошу поделиться :)

 

http://bookfi.net/md5/4D7D9B149550E1F6803A197B6AEBDCF5

Share this post


Link to post
Share on other sites

В статье A_New_Class_of_Turbo_like_Codes_with_Universally_Good_Performance_and_High_Speed

_Decoding, прикрепленной выше, описывается алгоритм мягкого декодирования интегрирующего кодера 1/1+D. В описание утверждается, что если подать на информационный вход нули, а на проверочный - полученные мягкие решения проверок, то на одном из выходов декодера мы получим исходную информационную последовательность, а на втором обновленную проверочную.

Что, собственно, я и делаю в прикрепленных м-файлах, но в некоторых случаях информационная последовательность действительно идентична исходной, а в некоторых появляется ошибка в первом бите.

Может быть у кого-то получится реализовать алгоритм без этой фичи:)

fba.rar

Edited by maratz

Share this post


Link to post
Share on other sites

Покурил немного тему про TPC. Созрел глупый вопрос. Почему код Хэмминга не декодируют в мягкой форме по графу Таннера? Зачем связываться с алгоритмом Чейза, находить ненадежные метрики и т.д, если можно сделать все через сложение вероятностей, ведь уравнения четностей никуда не делись ?

 

прикрепленной выше, описывается алгоритм мягкого декодирования интегрирующего кодера 1/1+D. В описание утверждается, что если подать на информационный вход нули, а на проверочный - полученные мягкие решения проверок, то на одном из выходов декодера мы получим исходную информационную последовательность, а на втором обновленную проверочную.

Вы про страницу 5 и формулы 11a - 11d? Там же вроде классические прямая и обратные рекурсии MAP алгоритма.

Share this post


Link to post
Share on other sites
Вы про страницу 5 и формулы 11a - 11d? Там же вроде классические прямая и обратные рекурсии MAP алгоритма.

Именно так - частный случай MAP алгоритма. Может у кого-то есть код для этого случая?

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.