|
Вычисление LLR декодера турбокода, Необходимо подробное описание математики алгоритма для практической ре |
|
|
|
Nov 30 2008, 09:59
|
Частый гость
 
Группа: Свой
Сообщений: 181
Регистрация: 24-05-06
Из: Россия, Таганрог
Пользователь №: 17 409

|
Здравствуйте!
Столкнулся с задачей турбокодирования и сразу возникли проблемы с документацией и литературой касательно темы. Единственный неплохой на мой взгляд источник информации (на русском языке), который я нашел, это книга Б. Скляра "Цифровая связь". Но все же, эта информация дает базовые теоретические знания о турбокодировании и не раскрывает до конца всех тонкостей проектирования турбокодека применительно к практике (программные или аппаратные реализации). С кодером проблем, естественно, не возникло. Трудности появились с реализацией так называемого SISO декодера, а точнее с вычислением логарифмического отношения функций правдопродобия (LLR), по алгоритму MAP (Maximum A Posteriori). С математикой в принципе все ясно, применяем теорему Байеса, вычисляем прямую, обратную метрику состояний и метрику ветви и т.д. Но это в теории. Хотелось бы взглянуть на аппроксимированную практическую реализацию, т.к. исходный алгоритм MAP существует только в теории, а на практике применяют его модификации, такие как log-MAP и MAX-log-MAP. Вобщем, буду рад, если у кого-нибудь найдется достаточно подробная информация по вычислению LLR декодера турбокодов применительно к практической реализации (программная или аппаратная).
Благодарю за внимание!
--------------------
Не сломаешь - не поймешь!
|
|
|
|
|
 |
Ответов
|
Nov 30 2008, 12:44
|
Профессионал
    
Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775

|
Цитата(Rundll @ Nov 30 2008, 12:59)  Здравствуйте!
Столкнулся с задачей турбокодирования и сразу возникли проблемы с документацией и литературой касательно темы. Единственный неплохой на мой взгляд источник информации (на русском языке), который я нашел, это книга Б. Скляра "Цифровая связь". Но все же, эта информация дает базовые теоретические знания о турбокодировании и не раскрывает до конца всех тонкостей проектирования турбокодека применительно к практике (программные или аппаратные реализации). С кодером проблем, естественно, не возникло. Трудности появились с реализацией так называемого SISO декодера, а точнее с вычислением логарифмического отношения функций правдопродобия (LLR), по алгоритму MAP (Maximum A Posteriori). С математикой в принципе все ясно, применяем теорему Байеса, вычисляем прямую, обратную метрику состояний и метрику ветви и т.д. Но это в теории. Хотелось бы взглянуть на аппроксимированную практическую реализацию, т.к. исходный алгоритм MAP существует только в теории, а на практике применяют его модификации, такие как log-MAP и MAX-log-MAP. Вобщем, буду рад, если у кого-нибудь найдется достаточно подробная информация по вычислению LLR декодера турбокодов применительно к практической реализации (программная или аппаратная).
Благодарю за внимание! Вы не уточнили о каком декодере идет речь: сверточном или на базе компонентных (блоковых) кодах. В Скляре описаны алгоритмы для построения обоих видов. В книге достаточно хорошо описан алгоритм декодирования блоковых турбокодов с аппроксимацией MAX-log-MAP, где в качестве компонентных кодов используются коды с проверкой на четность. По этому описанию я делал программный декодер, все работает на УРА. Можете для блоковых кодов также применить алгоритм Чейза, но по сравнению с MAP данный алгоритм обладает меньщей помехоустойчивостью. Этот алгоритм минимизирует вероятность ошибки в последовательности и реализующий его декодер является декодером максимального правдоподобия (наподобие декодера, реализующего алгоритм декодирования Витерби). Алгоритм MAP дает минимум вероятности ошибки для каждого символа в отдельности и в этом смысле является оптимальным алгоритмом. По Чейзу я тоже делал декодер, помехоустойчивость, конечно, ниже чем у МАРа, но выше, чем у жесткого декодера (например, реализующего табличный алгоритм) и, кроме того, выше быстродействие чем у МАРа. Со сверточными кодами все по-сложнее, но описание в Скляре тоже достаточное для понимания. Еще есть хорошая книга: Morelos-Zaragoza R.H. The art of error-correcting coding. Кроме того, на этом сайте приведены исходные коды на С построения различных кодеков, в том числе и турбокодов. Можно еще поискать на сайте компании AHA. Она специализируется как раз на разработке турбокодов и круче их в этой области нет.
|
|
|
|
|
Jul 19 2010, 16:55
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 5-06-10
Пользователь №: 57 761

|
Цитата(Serg76 @ Nov 30 2008, 16:44)  Вы не уточнили о каком декодере идет речь: сверточном или на базе компонентных (блоковых) кодах. В Скляре описаны алгоритмы для построения обоих видов. В книге достаточно хорошо описан алгоритм декодирования блоковых турбокодов с аппроксимацией MAX-log-MAP, где в качестве компонентных кодов используются коды с проверкой на четность. По этому описанию я делал программный декодер, все работает на УРА. Можете для блоковых кодов также применить алгоритм Чейза, но по сравнению с MAP данный алгоритм обладает меньщей помехоустойчивостью. Этот алгоритм минимизирует вероятность ошибки в последовательности и реализующий его декодер является декодером максимального правдоподобия (наподобие декодера, реализующего алгоритм декодирования Витерби). Алгоритм MAP дает минимум вероятности ошибки для каждого символа в отдельности и в этом смысле является оптимальным алгоритмом. По Чейзу я тоже делал декодер, помехоустойчивость, конечно, ниже чем у МАРа, но выше, чем у жесткого декодера (например, реализующего табличный алгоритм) и, кроме того, выше быстродействие чем у МАРа. Со сверточными кодами все по-сложнее, но описание в Скляре тоже достаточное для понимания. Еще есть хорошая книга: Morelos-Zaragoza R.H. The art of error-correcting coding. Кроме того, на этом сайте приведены исходные коды на С построения различных кодеков, в том числе и турбокодов. Можно еще поискать на сайте компании AHA. Она специализируется как раз на разработке турбокодов и круче их в этой области нет. Serg76, не могли бы Вы проконсультировать по алгоритму чейза? правильно ли я понимаю алгоритм Чейза для декодирования TPC: 1) Находим n наименее надежных битов 2) создаем 2^n тестовых векторов 3) декодируем, используя жесткий декодер все 2^n последовательностей 4) из всех декодированных, находим ту, которая находится на наименьшем Евклидовом расстоянии от принятой. 5) вычисляем коэффициенты обновления LLR каждого бита в кодовом слове, полученном в 4 пункте. 6) обновляем LLR всей строки/столбца, используя данные из п. 5, следуя схеме из прикрепленного рис. Рисунок взят из статьи Near-Optimum Decoding of Product Codes: Block Turbo Codes. by ramesh pyndiah. Так же эту схему нашел в мореллосе и зарагозе и в книге channel_coding_in_communication_networks на стр. 347. Судя по всему она очень популярна. Насколько я понимаю, бит четности не используется при декодировании кодового слова жестким декодером, а используется при вычислении Евкл. расстояния. так ли это? Не могли бы порекомендовать лит-ру(кроме Скляра) по MAP (и его аппроксимациях) применительно к TPC, а не TCC?
Эскизы прикрепленных изображений
|
|
|
|
|
Jul 22 2010, 16:20
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 5-06-10
Пользователь №: 57 761

|
2 vadimuzzz, а Вы дедодер TPC сделали только программно или еще железная реализация есть?
2 all,
есть ли алгоритм декодирования TPC (за исключением алгоритма Chase-Pyndiah, о котором я спрашивал выше), который бы легче можно было реалитзовать в железе (FPGA) ?
-thanks
|
|
|
|
Сообщений в этой теме
Rundll Вычисление LLR декодера турбокода Nov 30 2008, 09:59 Rundll Цитата(Serg76 @ Nov 30 2008, 15:44) Вы не... Nov 30 2008, 14:17  petrov Цитата(dsp85 @ Jul 19 2010, 20:55) Serg76... Jul 19 2010, 17:18   dsp85 Цитата(petrov @ Jul 19 2010, 21:18) В 5 п... Jul 19 2010, 17:39    Serg76 Цитата(dsp85 @ Jul 22 2010, 19:20) есть л... Jul 22 2010, 16:38     dsp85 Цитата(Serg76 @ Jul 22 2010, 20:38) MAP (... Jul 22 2010, 16:48      Serg76 Цитата(dsp85 @ Jul 22 2010, 19:48) Serg76... Jul 22 2010, 16:55    vadimuzzz Цитата(dsp85 @ Jul 22 2010, 23:20) 2 vadi... Jul 22 2010, 22:44 Serg76 Вспомнил, достаточно глубоко сверточными турбодеко... Nov 30 2008, 15:04 Rundll Цитата(Serg76 @ Nov 30 2008, 18:04) Вспом... Nov 30 2008, 15:45  Serg76 Цитата(Rundll @ Nov 30 2008, 18:45) TI sp... Nov 30 2008, 16:21   Rundll Цитата(Serg76 @ Nov 30 2008, 19:21) В реа... Nov 30 2008, 16:40    Serg76 Цитата(Rundll @ Nov 30 2008, 19:40) log-M... Nov 30 2008, 18:01     Rundll Цитата(Serg76 @ Nov 30 2008, 21:01) По по... Nov 30 2008, 19:08      Serg76 Цитата(Rundll @ Nov 30 2008, 22:08) Книгу... Nov 30 2008, 19:19  SKov Цитата(Rundll @ Nov 30 2008, 18:45) ...
И... Nov 30 2008, 23:00   Rundll Цитата(SKov @ Dec 1 2008, 02:00) Примите ... Dec 1 2008, 08:29 Rundll to Serg76:
Вот ещё один момент заинтересовал, кас... Dec 8 2008, 16:43 Serg76 Цитата(Rundll @ Dec 8 2008, 19:43) to Ser... Dec 8 2008, 17:11  Rundll Цитата(Serg76 @ Dec 8 2008, 20:11) По-мое... Dec 8 2008, 17:25 Rundll У меня очередная порция вопросов Вопрос касается ... Dec 10 2008, 14:43 Grumbler_2002 Можно. Используется схема как в стандарте dvb-rcs.... Dec 10 2008, 22:51 Rundll А как быть с нормализацией? На аппаратном уровне в... Dec 13 2008, 17:10 Serg76 Цитата(Rundll @ Dec 13 2008, 20:10) А как... Dec 13 2008, 18:36  Rundll Цитата(Serg76 @ Dec 13 2008, 21:36) По по... Dec 13 2008, 19:11   Serg76 Цитата(Rundll @ Dec 13 2008, 22:11) Я не ... Dec 13 2008, 19:27    Rundll Цитата(Serg76 @ Dec 13 2008, 22:27) Да, д... Dec 13 2008, 19:58     Serg76 Цитата(Rundll @ Dec 13 2008, 22:58) Да, н... Dec 13 2008, 21:14      Rundll Цитата(Serg76 @ Dec 14 2008, 00:14) По по... Dec 13 2008, 21:20 Grumbler_2002 Начните с этих материалов.
Dec 13 2008, 23:35 Serg76 2Rundll
В принципе все то, что я хотел посмотреть ... Dec 15 2008, 16:24 Grumbler_2002 На самом деле нужно задать себе вопрос, так ли нео... Dec 16 2008, 02:00 Serg76 Я пользовался Max-Log_MAP аппроксимацией. Энергети... Dec 16 2008, 15:44 Grumbler_2002 Коррекцию extrinsic information использовали? У ме... Dec 16 2008, 18:50 Serg76 Цитата(Grumbler_2002 @ Dec 16 2008, 21:50... Dec 16 2008, 19:19 Grumbler_2002 Дык у Вас блоковые турбо-коды (коды-произведения с... Dec 16 2008, 21:24 Serg76 Цитата(Grumbler_2002 @ Dec 17 2008, 00:24... Dec 17 2008, 19:54 Grumbler_2002 Выложил всё, что у меня есть на текущий момент. Со... Dec 17 2008, 20:54 Serg76 Цитата(Grumbler_2002 @ Dec 17 2008, 23:54... Dec 17 2008, 22:41 Rundll В продолжение темы выкладываю на мой взгляд лучшие... Jan 9 2009, 15:28 AntonSS Прочитал некоторую литературу насчёт систематическ... May 29 2009, 10:40 Coder2009 Столкнулся сейчас с аналогичной проблемой. Скляра ... Jul 19 2009, 08:48 bark Занимаюсь решением такой же задачи.
строю декодер.... Feb 25 2010, 09:36 des00 Цитата(bark @ Feb 25 2010, 03:36) если ес... Feb 26 2010, 04:37 dsp85 подскажите, пожалуйста, для 2D турбокодов с гипер ... Nov 8 2010, 18:24 Serg76 Цитата(dsp85 @ Nov 8 2010, 22:24) подскаж... Nov 8 2010, 18:56  dsp85 Цитата(Serg76 @ Nov 8 2010, 21:56) могут,... Nov 8 2010, 19:02   Serg76 Цитата(dsp85 @ Nov 8 2010, 22:02) понял, ... Nov 8 2010, 19:12 Денис Олегович Ув. RunDLL, я как раза занимаюсь написанием диплом... Feb 19 2011, 15:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|