Перейти к содержанию
    

Вычисление LLR декодера турбокода

Дык у Вас блоковые турбо-коды (коды-произведения с турбо-декодированием), а мы говорим о сверточных. Для них (сверточных турбо-кодов) есть видоизмененная схема декодера, позволяющая на max-log-map-алгоритме достигнуть эффективности log-map с потерей порядка 0.1 дБ путем коррекции extrinsic information.

По поводу Ваших результатов мне сложно заочно сказать, в чем могут быть отличия в реализациях. Мой отрицательный опыт был с гипер-кодами. Проигрыш был порядка 1 дБ по сравнению с эталоном. Что они там наворотили в декодере - неизвестно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мой отрицательный опыт был с гипер-кодами. Проигрыш был порядка 1 дБ по сравнению с эталоном. Что они там наворотили в декодере - неизвестно.

У меня к Вам просьба. Нет ли у Вас литературы по гиперкодам. Хотелось бы по-глубже с ними разобраться. Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выложил всё, что у меня есть на текущий момент. Собственно, это исследование десятилетней давности, и ничего нового, скорее всего, не появилось. У гипер-кодов ограниченное применение.

 

Compare_Ref2.pdf

GRA01_ICWC_HC.pdf

HUN98a_MSc_HC.pdf

Hyper_Ref1.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выложил всё, что у меня есть на текущий момент.

Еще раз спасибо за предоставленные материалы. Обязательно в них покопояюсь :) .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В продолжение темы выкладываю на мой взгляд лучшие публикации по теме турбокодирования сверточных кодов (для новичков). Публикация отличается более мягкой формой преподнесения материала, а также практическими примерами рассчета как PCCC кодера так и MAP декодера, что называется "step-by-step", все ясно, доступно и наглядно! Вдобавок прикрепляю EXCEL-файл, демонстрирующий все тонкости рассчетов и предлагающий возможность самостоятельно "пощупать" кодек, не прибегая к "расшифровкам" сторонних C++ файлов и т.д. Надеюсь, эта информация многим будет очень полезна.

После изучения данных материалов, можно спокойно приступать к освоению публикаций предложенных товарищем Grumbler_2002, за что ему отдельное спасибо, информация очень даже достойная.

turbo1.pdf

turbo2.pdf

turbo_example.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прочитал некоторую литературу насчёт систематических турбокодов, в том числе упомянутую тут.. Возник вопрос. После нахождения LLR первого декодера, LLR нужно перемешать (interleave)... В стандарте 802.16, например, перемешиватель построен таким образом, чтобы перемешивать дубиты (00, 01, 10, 11) А LLR вычисляется как 1 символ мягкого решения. Как его перемешивать?? Меня этот "деинтерливер" вообще в тупик поставил.. (( Может каждый символ LLRа тоже переводить в дубит??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Столкнулся сейчас с аналогичной проблемой. Скляра почитал, но у него всё в основном на формулах и теоремах, а мне б посмотреть где-нибудь алгоритм MAP для свёрточных рекурсивных кодов, разъяснённый "на пальцах" (т.е. в виде блок-схемы или, что лучше, фрагментов кода), чтоб было понятно человеку, который больше разработчик программ, нежели метематик. Никто ничего не посоветует?

Изменено пользователем Coder2009

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Занимаюсь решением такой же задачи.

строю декодер.. точнее только приступаю.. собрал кучу всякого материала и изучаю его. пока понимание слабое всех процессов.

задача стоит в аппаратной реализации MAP турбодекодера на FPGA.. предположительно какой-то из Сцыклон3.

 

несколько вопросов тем кто уже решал и решил данную задачу.

1. сколько ресурсов матрицы занимает декодер.

2. скольоко использовано памяти (у меня максимальный размер блока 12306 ).

3. каких скоростей декодирования достигли.

 

и ещё.. (наверно нагло конечно).. если у кого-то есть наработки которыми могут поделиться для изучения - поделитесь )

если есть хорошие решения, то наверно можно попробовать обсудить даже вплоть до покупки.. в рамках разумного конечно.

для конечного применения или как базу для доработок.. т.к. с нуля долго и мутроно.

VHDL или Verilog.. (verilog предпочтительно)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если есть хорошие решения, то наверно можно попробовать обсудить даже вплоть до покупки.. в рамках разумного конечно.

Вот эта компания, предлагала нам свой LPDC кодек http://www.iprium.ru/ попробуйте может быт найдете общий язык %)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы не уточнили о каком декодере идет речь: сверточном или на базе компонентных (блоковых) кодах. В Скляре описаны алгоритмы для построения обоих видов. В книге достаточно хорошо описан алгоритм декодирования блоковых турбокодов с аппроксимацией 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?

post-57761-1279557706_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Serg76, не могли бы Вы проконсультировать по алгоритму чейза?

 

правильно ли я понимаю алгоритм Чейза для декодирования TPC:

 

1) Находим n наименее надежных битов

2) создаем 2^n тестовых векторов

3) декодируем, используя жесткий декодер все 2^n последовательностей

4) из всех декодированных, находим ту, которая находится на наименьшем Евклидовом расстоянии от принятой.

5) вычисляем коэффициенты обновления LLR каждого бита в кодовом слове, полученном в 4 пункте.

6) обновляем LLR всей строки/столбца, используя данные из п. 5, следуя схеме из прикрепленного рис.

 

В 5 пункте ещё конкурентные слова нужно учитывать.

 

Насколько я понимаю, бит четности не используется при декодировании кодового слова жестким декодером, а используется при вычислении Евкл. расстояния. так ли это?

 

Да.

 

Не могли бы порекомендовать лит-ру(кроме Скляра) по MAP (и его аппроксимациях) применительно к TPC, а не TCC?

 

Channel Coding in Communication Networks - Glavieux

Turbo Coding, Turbo Equalisation and Space-Time Coding for Transmission over Wireless Channels - Hanzo, Liew, Yeap

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 5 пункте ещё конкурентные слова нужно учитывать.

 

 

 

Да.

 

 

 

Channel Coding in Communication Networks - Glavieux

Turbo Coding, Turbo Equalisation and Space-Time Coding for Transmission over Wireless Channels - Hanzo, Liew, Yeap

спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

гляньте еще вот эту статью, я по ней делал. там есть опечатка в разделе "Main processing loop" на 4 стр.

Fast_Chase_Algorithm_With_an_Application_in_Turbo_Decoding.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

2 vadimuzzz,

а Вы дедодер TPC сделали только программно или еще железная реализация есть?

 

 

2 all,

 

есть ли алгоритм декодирования TPC (за исключением алгоритма Chase-Pyndiah, о котором я спрашивал выше), который бы легче можно было реалитзовать в железе (FPGA) ?

 

 

-thanks

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

есть ли алгоритм декодирования TPC (за исключением алгоритма Chase-Pyndiah, о котором я спрашивал выше), который бы легче можно было реалитзовать в железе (FPGA) ?

 

 

-thanks

MAP (maximum-a-posteriori) и его аппроксимации LOG-MAP и MAX-LOG-MAP. AHA так и делает (например, чип AHA4540)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...