реклама на сайте
подробности

 
 
> Вычисление LLR декодера турбокода, Необходимо подробное описание математики алгоритма для практической ре
Rundll
сообщение Nov 30 2008, 09:59
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 181
Регистрация: 24-05-06
Из: Россия, Таганрог
Пользователь №: 17 409



Здравствуйте!

Столкнулся с задачей турбокодирования и сразу возникли проблемы с документацией и литературой касательно темы. Единственный неплохой на мой взгляд источник информации (на русском языке), который я нашел, это книга Б. Скляра "Цифровая связь". Но все же, эта информация дает базовые теоретические знания о турбокодировании и не раскрывает до конца всех тонкостей проектирования турбокодека применительно к практике (программные или аппаратные реализации).
С кодером проблем, естественно, не возникло. Трудности появились с реализацией так называемого SISO декодера, а точнее с вычислением логарифмического отношения функций правдопродобия (LLR), по алгоритму MAP (Maximum A Posteriori). С математикой в принципе все ясно, применяем теорему Байеса, вычисляем прямую, обратную метрику состояний и метрику ветви и т.д. Но это в теории. Хотелось бы взглянуть на аппроксимированную практическую реализацию, т.к. исходный алгоритм MAP существует только в теории, а на практике применяют его модификации, такие как log-MAP и MAX-log-MAP.
Вобщем, буду рад, если у кого-нибудь найдется достаточно подробная информация по вычислению LLR декодера турбокодов применительно к практической реализации (программная или аппаратная).

Благодарю за внимание!


--------------------
Не сломаешь - не поймешь!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rundll
сообщение Dec 13 2008, 17:10
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 181
Регистрация: 24-05-06
Из: Россия, Таганрог
Пользователь №: 17 409



А как быть с нормализацией? На аппаратном уровне все оперируемые величины представляют собой действительные числа с разрядностью R (в программном же эквиваленте при расчете LLR используют вещественные данные). Вот скажем такой пример:
Рассчитываем метрики ветвей Gamma. В программе можно было бы использовать выражение
Код
Gamma[k] = AP * exp(X[k]*U[k] + Y[k]*V[k])

где AP- априорная вероятность (т.е. апостериорная вероятность предыдущей итерации. При первой итерации AP=0.5), X-Систематические данные, Y-проверочные данные, U и V -данные определяющие выход кодера в момент времени k. Естественно Gamma имела бы тип double или float.

Так вот, для облегчения вычислений в аппаратуре, это выражение представляет собой как логарифм метрики ветви, т.е.:
Код
Log_Gamma[k] = Xk*Uk + Yk*Vk + Log(AP)

Причем априорную вероятность хранят, я так понимаю, в ПЗУ (заренее вычисляется вобщем, т.к. натуральный логарифм вычислять это целое дело, хотя могу и ошибаться, так что это дело также пока под вопросом).
Основной вопрос такой, в каком виде лучше хранить вычесленные метрики, ну и соответственно логарифм априорной вероятности? Я представляю себе систему вот такую: на вход SISO декодера подаются мягкие решения с АЦП, допустим с 32-х уровневым квантованием. т.е. логический '0' будет представлять собой "00000", логическая единица - "11111", соответственно, например, аналоговый уровень 0.5, будет представляться как "10000". Далее, уже внутри системы разрядность может быть увеличена. Соответсвенно все вычисления на аппаратном уровне будут представляться именно в таком виде. Можно ли использовать такой подход к решению задачи? Или все-таки необходимо привести все к вещественному виду по правилу машинного представления дробных чисел. Соответственно при таком подходе увеличится и масштаб вычислений. Очень интересно Ваше мнение.

Сообщение отредактировал Rundll - Dec 13 2008, 17:15


--------------------
Не сломаешь - не поймешь!
Go to the top of the page
 
+Quote Post
Serg76
сообщение Dec 13 2008, 18:36
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Rundll @ Dec 13 2008, 20:10) *
А как быть с нормализацией?

По поводу 32-х битной разрядности квантования это Вы перегнули. На практике, как правило, разрядность квантователя составляет 3...5 бит, дальнейшее увеличение не имеет смысла и к никакому дополнительному энергетическому выигрышу не приведет. Все операции совершаются в целочисленной арифметике.
Go to the top of the page
 
+Quote Post
Rundll
сообщение Dec 13 2008, 19:11
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 181
Регистрация: 24-05-06
Из: Россия, Таганрог
Пользователь №: 17 409



Цитата(Serg76 @ Dec 13 2008, 21:36) *
По поводу 32-х битной разрядности квантования это Вы перегнули. На практике, как правило, разрядность квантователя составляет 3...5 бит, дальнейшее увеличение не имеет смысла и к никакому дополнительному энергетическому выигрышу не приведет. Все операции совершаются в целочисленной арифметике.


Я не говорил что квантование 32-х битное smile.gif Я сказал что оно 32-х уровневое, т.е. как раз 2^5=32, а значит шина 5 битная и соответственно АЦП 5-ти разрядный.
А как насчет логарифма априорной вероятности? Вычислять, квантовать и зашивать в ПЗУ?


--------------------
Не сломаешь - не поймешь!
Go to the top of the page
 
+Quote Post
Serg76
сообщение Dec 13 2008, 19:27
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Rundll @ Dec 13 2008, 22:11) *
Я не говорил что квантование 32-х битное smile.gif Я сказал что оно 32-х уровневое, т.е. как раз 2^5=32, а значит шина 5 битная и соответственно АЦП 5-ти разрядный.
А как насчет логарифма априорной вероятности? Вычислять, квантовать и зашивать в ПЗУ?

Да, действительно, невнимательно прочитал. Я в своем декодере использовал Max-Log-MAP аппроксимацию и поэтому вычисление функций правдоподобия там делается просто: выбором максимального (минимального) абсолютного значения элемента с учетом знака. При использовании Log-MAP аппроксимации для вычисления LLR используется заранее подготовленная таблица всех возможных расчетных значений.
Go to the top of the page
 
+Quote Post
Rundll
сообщение Dec 13 2008, 19:58
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 181
Регистрация: 24-05-06
Из: Россия, Таганрог
Пользователь №: 17 409



Цитата(Serg76 @ Dec 13 2008, 22:27) *
Да, действительно, невнимательно прочитал. Я в своем декодере использовал Max-Log-MAP аппроксимацию и поэтому вычисление функций правдоподобия там делается просто: выбором максимального (минимального) абсолютного значения элемента с учетом знака. При использовании Log-MAP аппроксимации для вычисления LLR используется заранее подготовленная таблица всех возможных расчетных значений.

Да, но если Ваш декодер итеративный, то вы должны были использовать выходную апостериорную вероятность (внешнее LLR декодера) в качестве входа априорной вероятности. Кстати, я так понял, что в принципе, от алгоритма Max-Log-MAP к алгоритму Log-MAP перейти довольно таки просто. Поэтому я решил пока с Max-Log-MAP аппроксимацией поэкспериментировать, он по-проще.
Вот, схемку прикрепил. Интересует блок Look-up Table в котором вычисляются, то-ли хранятся логарифмы априорной вероятности.

Сообщение отредактировал Rundll - Dec 13 2008, 20:01
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Не сломаешь - не поймешь!
Go to the top of the page
 
+Quote Post
Serg76
сообщение Dec 13 2008, 21:14
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Rundll @ Dec 13 2008, 22:58) *
Да, но если Ваш декодер итеративный, то вы должны были использовать выходную апостериорную вероятность (внешнее LLR декодера) в качестве входа априорной вероятности. ....

Декодер, конечно, итеративный, в этом и заключается принцип турбокодирования. После каждой итерации значения внешних LLR одного декодера служат для обновления априорной информации другого декодера и, соответственно, после каждой итерации оценки выходных LLR каждого из декодеров будут расти в правильном направлении. После определенного количества итераций решающее устройство выносит жесткое решение в пользу того или иного бита (0 или 1) в зависимости от знака апостериорного значения последнего декодера (выходного LLR).
По поводу схемы отвечу Вам в понедельник, есть кое-какие описания, но они на работе.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Rundll   Вычисление LLR декодера турбокода   Nov 30 2008, 09:59
- - Serg76   Цитата(Rundll @ Nov 30 2008, 12:59) Здрав...   Nov 30 2008, 12:44
|- - Rundll   Цитата(Serg76 @ Nov 30 2008, 15:44) Вы не...   Nov 30 2008, 14:17
|- - dsp85   Цитата(Serg76 @ Nov 30 2008, 16:44) Вы не...   Jul 19 2010, 16:55
|- - 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
|- - vadimuzzz   Цитата(dsp85 @ Jul 19 2010, 23:55) глянь...   Jul 20 2010, 00:18
|- - dsp85   2 vadimuzzz, а Вы дедодер TPC сделали только прогр...   Jul 22 2010, 16:20
|- - 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   Цитата(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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 12:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01473 секунд с 7
ELECTRONIX ©2004-2016