|
Max-Log-MAP-декодирование свёрточного double-binary турбокода, Алгоритм реализован, но даёт неверный выход, нужна помощь |
|
|
|
Aug 10 2009, 12:46
|
Группа: Участник
Сообщений: 5
Регистрация: 18-07-09
Пользователь №: 51 365

|
Попробовал сделать программную реализацию алгоритма Max-Log-MAP для Double-Binary турбокода. Реализацию делал согласно источнику "Low-Power Traceback MAP Decoding for Double-Binary Convolutional Turbo Decoder" (прикрепленный файл mlmap.pdf), раздел II - это оказался единственным более-менее понятным документом с описанием алгоритма для недвоичных свёрточных кодов из всех, что мне удалось найти. Программу писал на Си. Вроде бы, ничего сложного, сделал всё один в один как написано, а результат получается неверный. Причём неверный результат даёт декодер SISO уже на первой итерации, при том, что на вход подаётся ВЕРНОЕ кодовое слово, не содержащее ошибок. Апостериорные вероятности получаются либо неверными, либо, порой, неоднозначными, ибо получаются равновероятными сразу несколько вариантов. Буду благодарен, если подскажете, что и где я делаю не так, что именно недопонимаю (а может, и в самом источнике где-то что-то неверно?). Ниже, в прикреплённом файле lmap.txt, привожу полное описание алгоритма с комментариями и фрагментами кода на Си. Заранее огромное спасибо всем, кто решится изучить мою проблему.
Сообщение отредактировал Coder2009 - Aug 10 2009, 13:09
Прикрепленные файлы
mlmap.pdf ( 136.81 килобайт )
Кол-во скачиваний: 200
mlmap.txt ( 5.15 килобайт )
Кол-во скачиваний: 169
|
|
|
|
|
 |
Ответов
|
Apr 2 2014, 06:25
|
Частый гость
 
Группа: Участник
Сообщений: 100
Регистрация: 4-04-07
Пользователь №: 26 768

|
Всем привет! Нахожусь в затруднительном положении. Реализовывал TPC-кодек по стандарту DVB-RCS EML-MAP алгоритмом. Результаты BER для всех скоростей примерно на 1 дб S/N уступают ожидаемым. Может есть какие то ошибки в принципах реализации? 1. Использовал цикличное кодирование по заданным состояниям цикла в стандарте. Кодировал блок с 0-м состоянием кодера, потом вычислял состояние цикла и снова с этим начальным цикличным состоянием кодера кодировал блок данных, после отправлял к модулятору. В декодере на первой итерации всем метрикам прямой и обратной рекурсии присваивал 0-ые значения. Полученные значения метрик прямой рекурсии в конце итерации использовал на следующей итерации как начальные значения, т.е. в качестве метрик состояния цикла. После каждой итерации их обновлял. 2. Для расчета обратной рекурсии использовал метод окон и метод граничных метрик (Border metric). Разбивал блок на окна, причем при 1-ой итерации в качестве начальных значений метрик обратной рекурсии использовал 0, сохранял последние значения метрик обратной рекурсии каждого окна, чтобы использовать их в качестве начальных метрик для вычисления окон обратной рекурсии при последующей итерации. На каждой итерации значения обновлялись. 3. Масштабировал внешнюю информацию с коэффициентом 0.75, Lex=0.75*(Lapo-Lapr-Lin). 4. Вход 4-битный, со средним уровнем входных данных 0.5.
Видел в статьях что то про Tailing Bitting - не совсем понятно зачем и для чего... но какая то привязка к цикличному кодированию есть... Вообще архитектура себя ведет вполне предсказуемо, с увеличением числа итерации качество BER, растет. Игра с коэффициентом масштабирования внешней информации тоже дает положительный результат... При 1 и при 0.5 BER заметно хуже, чем при 0.75.
Еще есть характерная особенность, что при достижении BER в 10^-7 появляется шумовая полка.. BER в нее упирается и уже не зависит от S/N.
Сообщение отредактировал Neznaika - Apr 2 2014, 06:27
|
|
|
|
Сообщений в этой теме
Coder2009 Max-Log-MAP-декодирование свёрточного double-binary турбокода Aug 10 2009, 12:46 Coder2009 Разобрался, вопрос снят, при расчёте обратной реку... Aug 12 2009, 18:11 shoml Неясно где была ошибка, согласно прилагаемого файл... Feb 1 2012, 21:26 Neznaika Вот самое главное.. BER) Без шума все по нулям раб... Apr 2 2014, 08:51 Fat Robot Конечно, готвых рецептов "как починить" ... Apr 2 2014, 11:41 Neznaika Спасибо за ответ)
1. Перемежитель еще раз проверю... Apr 3 2014, 03:35 Fat Robot Насколько я понимаю, кодер для турбо-кода строится... Apr 4 2014, 06:15 Grumbler_2002 Для начала надо посмотреть на "мягкие" р... Apr 3 2014, 11:38 Neznaika Цитата(Grumbler_2002 @ Apr 3 2014, 15:38)... Apr 4 2014, 08:09 Serg76 . Apr 3 2014, 13:21 andyp Цитата(Neznaika @ Apr 2 2014, 10:25) Еще ... Apr 3 2014, 19:10 Dr.Alex Цитата(andyp @ Apr 3 2014, 23:10) Так это... Apr 3 2014, 19:54  andyp Цитата(Dr.Alex @ Apr 3 2014, 23:54) Нельз... Apr 4 2014, 06:53   Dr.Alex Цитата(andyp @ Apr 4 2014, 10:53) Там нап... Apr 4 2014, 16:45    andyp Цитата(Dr.Alex @ Apr 4 2014, 20:45) Так и... Apr 5 2014, 05:49 andyp Цитата(Neznaika @ Apr 4 2014, 12:09) Спас... Apr 4 2014, 08:54 Neznaika Пока ничего нового в своем декодере не нарыл и ста... Apr 8 2014, 05:31 Serg76 Цитата(Neznaika @ Apr 8 2014, 08:31) Так ... Apr 9 2014, 03:09 Serg76 Это адреса, по которым надо считывать данные из вх... Apr 8 2014, 06:17 Neznaika Нееее) N - это число пар бит в передаваемом блоке.... Apr 8 2014, 10:18 Serg76 Цитата(Neznaika @ Apr 8 2014, 13:18) Неее... Apr 8 2014, 12:13 Neznaika Сегодня нашел ошибку с своем перемежителе. Теперь ... Apr 9 2014, 06:05 andyp Цитата(Neznaika @ Apr 9 2014, 10:05) Но в... Apr 9 2014, 15:36 Serg76 Neznaika , а что, собственно, из себя представляет... Apr 9 2014, 17:29 Neznaika Сергей!) Спасибо, за ваш отзыв на мою проблему... Apr 10 2014, 03:40 Serg76 1. У меня, все-таки, остаются сомнения в правильно... Apr 10 2014, 04:44 Neznaika Цитата(Serg76 @ Apr 10 2014, 08:44) 1. У ... Apr 10 2014, 05:37  Serg76 Цитата(Neznaika @ Apr 10 2014, 08:37) Оши... Apr 10 2014, 07:35  andyp Цитата(Neznaika @ Apr 10 2014, 09:37) Но ... Apr 10 2014, 09:38   Neznaika Цитата(andyp @ Apr 10 2014, 13:38) Правил... Apr 10 2014, 11:05    andyp Цитата(Neznaika @ Apr 10 2014, 15:05) О п... Apr 10 2014, 11:39    Serg76 Цитата(Neznaika @ Apr 10 2014, 14:05) 2. ... Apr 10 2014, 14:56 Serg76 Да можно и проверить, сгенерируйте кодовое слово, ... Apr 10 2014, 06:01 Neznaika Сергей! Не могли бы вы немного пояснить, где ч... Apr 11 2014, 04:08 Serg76 Не получается у меня по Вашему примеру, проверочны... Apr 11 2014, 06:15 Neznaika А у вас получается кодовое слово примера из станда... Apr 11 2014, 07:04 Serg76 Цитата(Neznaika @ Apr 11 2014, 10:04) А у... Apr 11 2014, 07:11 Neznaika Конечно... вот страница 39...
http://www.etsi.org/... Apr 11 2014, 07:19 Serg76 Хммм...., вот это уже интересно, с этим примером н... Apr 11 2014, 08:41 Neznaika Ура! Спешу поделиться хорошей новостью) Благод... Apr 11 2014, 09:12 Serg76 Цитата(Neznaika @ Apr 11 2014, 12:12) Ура... Apr 11 2014, 11:30 Neznaika Да, конечно Eb/N0) С LDPC по DVB-S мне удалось раз... Apr 11 2014, 15:25 Neznaika Всем привет) Застьял на измерениях BER) Ситуация с... May 7 2014, 08:36 Dr.Alex Вообще-то обычная ситуация при неоптимальной/ошибо... May 7 2014, 08:55 Neznaika Декодер то тут причем? Я BER меряю на его входе... May 7 2014, 09:12 Dr.Alex Этого я не заметил.
В таком случае непонятно, что... May 7 2014, 09:33 Neznaika Все точно) Именно так... либо так мерить нельзя, н... May 7 2014, 09:52 Dr.Alex В таком случае это вопрос типа "у меня нихрен... May 7 2014, 10:06 Neznaika BER-тестер HBT фирмы RAD, выдает в моем случае пос... May 7 2014, 10:14
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|