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

 
 
 
Reply to this topicStart new topic
> Реализация декодера турбокода DVB-RCS, Декодирование свёрточных double-binary кодов DVB-RCS
Coder2009
сообщение Jul 18 2009, 16:57
Сообщение #1





Группа: Участник
Сообщений: 5
Регистрация: 18-07-09
Пользователь №: 51 365



Столкнулся с задачей реалезации декодера свёрточного циркулярного недвоичного (double-binary) турбокода DVB-RCS. Предстоит сделать как аппаратную, так и программную реализацию. Для начала попробовал сделать программную реализацию, для этого выбрал декодер SOVA - алгоритм Витерби с мягким выходом (по той причине, что алгоритм Витерби мне очень хорошо знаком и его реализовать для меня не составило труда). Всё получилось, модель алгоритма (написана на Си) работает. Но дело в том, что требуется обеспечить скорость обработки хотя бы 1 мегабит в секунду на компьютере Intel с частотой 2.8 .. 3 ГГц, а ввиду огромного количества вычислений (с учётом не двоичной, а четверичной решётки кода, большого количества сравнений и копирований блоков данных, а также итерационного декодирования) такие скорости никак не получаются Даже после всевозможных оптимизаций кода. В связи с этим решил попробовать разобраться с алгоритмами декодирования серии log-MAP и max-log-MAP, где вычисляются апостериорные вероятности и LLR (есть подозрение, что реализация такого алгоритма может оказаться оптимальнее мягкого Витерби), но везде в литературе данные алгоритмы описываются на уровне теории, с теоремами и формулами, а хотелось бы что-либо почитать такое, где бы описывалось именно практическое применение, и алгоритм был бы описан именно в виде алгоритма, понятного программисту. С той целью, чтобы разобраться по возможности быстрее, ибо время ограничено. Вопрос: есть ли источники с такими, наиболее понятными описаниями? И, что ещё лучше - может, кто-либо встречал хорошие и понятные на уровне программирования описания алгоритмов декодирования именно свёрточных турбокодов DVB-RCS?

Спасибо заранее.
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Jul 18 2009, 17:06
Сообщение #2


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(Coder2009 @ Jul 18 2009, 19:57) *
Всё получилось, модель алгоритма (написана на Си) работает. Но дело в том, что требуется обеспечить скорость обработки хотя бы 1 мегабит в секунду на компьютере Intel с частотой 2.8 .. 3 ГГц, а ввиду огромного количества вычислений (с учётом не двоичной, а четверичной решётки кода, большого количества сравнений и копирований блоков данных, а также итерационного декодирования) такие скорости никак не получаются Даже после всевозможных оптимизаций кода.
Спасибо заранее.

...есть другой путь - CUDA... очень трудно придумать сейчас тяжелые вычисления для топовых видях а уж тем более спецвычислителей...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
alex_os
сообщение Jul 21 2009, 04:47
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(Coder2009 @ Jul 18 2009, 20:57) *
Вопрос: есть ли источники с такими, наиболее понятными описаниями? И, что ещё лучше - может, кто-либо встречал хорошие и понятные на уровне программирования описания алгоритмов декодирования именно свёрточных турбокодов DVB-RCS?

Поищите, где-то здесь кто-то выкладывал L. Hanzo. Turbo Coding, Turbo Equalisation and Space-Time Coding. Там все возможные виды MAP (MAP... MAX-LOG-MAP) очень хорошо расписаны. По поводу производительности MAX-LOG-MAP быстрее будет чем SOVA (в силу меньшей корявости алгоритма). Далее берете Intel C compiler и с помощью SSE2(3) инстринстиков пишите. Если получится обрабатывать сразу 4-8 состояний кодера будет Вам счастье. Ну еще полезно какие-нибудь доки от интела почитать как писать быстрый код.

p.s. еще можно посмотреть реализацию MAP в матлабовских исходниках.
p.p.s еще хорошая книга K.Moon. Error Correction Coding: Mathematical Methods and Algorithms.
К ней прилагалось куча примеров на матлабе и кажется на С.


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
Coder2009
сообщение Jul 26 2009, 17:32
Сообщение #4





Группа: Участник
Сообщений: 5
Регистрация: 18-07-09
Пользователь №: 51 365



Цитата(alex_os @ Jul 21 2009, 08:47) *
Поищите, где-то здесь кто-то выкладывал L. Hanzo. Turbo Coding, Turbo Equalisation and Space-Time Coding.
p.s. еще можно посмотреть реализацию MAP в матлабовских исходниках.
p.p.s еще хорошая книга K.Moon. Error Correction Coding: Mathematical Methods and Algorithms.
К ней прилагалось куча примеров на матлабе и кажется на С.

Спасибо.

По поводу первой книги - посты в форуме нашёл, но файл уже удалён, видимо, за давностью. А в инете эта книга только за деньги продается. Зато, нашёл статью "Comparative Study of Turbo Decoding Techniques: An Overviev", где один из авторов этот же Hanzo. Там на удивление расписано всё достаточно понятно. Ещё нашел пошаговое описание MAP-алгоритма Charan Langton (www.complextoreal.com), жаль только, что там есть огрехи и ошибки, но в общем всё достаточно наглядно расписано, и это помогло разобраться. Ну и, статья "Low-Power Traceback MAP Decoding for Double-Binary Convolutional Turbo Decoder" от Cheng-Hung Lin, Chun-Yu Chen, and An-Yeu (Andy) Wu после этого воспринимается уже понятно в качестве поправок, которые надо применить в случае double-binary кода.

По поводу матлаба - а что за исходники имелись в виду? Точнее можно?

Что касается третьей книги, а её можно где-то найти в свободном доступе?
Go to the top of the page
 
+Quote Post
(57rus)AlieN
сообщение Feb 5 2010, 07:03
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 18-05-07
Из: Орел
Пользователь №: 27 813



Что касается Ханз(ц)о - нашел по этой ссылке. Части глав нет, но что касается турбокодов - на месте
Go to the top of the page
 
+Quote Post
BOBA_12345
сообщение Jul 12 2010, 12:13
Сообщение #6





Группа: Участник
Сообщений: 9
Регистрация: 20-02-09
Пользователь №: 45 141



Цитата((57rus)AlieN @ Feb 5 2010, 11:03) *
Что касается Ханз(ц)о - нашел по этой ссылке. Части глав нет, но что касается турбокодов - на месте


В библиотеке колхоза ( биб тиера ру ) есть третья книжка
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 12 2010, 12:24
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(Coder2009 @ Jul 27 2009, 00:32) *
а что за исходники имелись в виду? Точнее можно?

http://the-art-of-ecc.com/topics.html

книжку тоже почитайте
Go to the top of the page
 
+Quote Post
Serg76
сообщение Jul 12 2010, 14:21
Сообщение #8


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

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



как писал alex_os в дополнение к интеловскому компилятору имеется еще набор библиотек IPP (intel primitive performance), среди которых имеются и функции (выполненные с помощью тех же самых SSE инструкций) для декодирования 4D Viterbi (применяется в проводных модемах, стандарт ITU-V.34) - очень сильно ускоряет работу. Кроме того, я когда то реализовывал турбодекодер и код писал в виде набора макросов (Visual C++ компилятор), получилось тоже очень быстро на машине типа Core2Duo 2.4 GHz (правда универсального декодера не получилось, но чем-то приходится жертвовать).
Go to the top of the page
 
+Quote Post
DMax
сообщение Jul 12 2010, 19:16
Сообщение #9


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

Группа: Свой
Сообщений: 161
Регистрация: 19-01-08
Из: Питер
Пользователь №: 34 234



http://www.iterativesolutions.com/Matlab.htm
Это исходники матлабовской библиотеки. Там есть нужный вам турбокод, обвязка написана на матлабе + Си для ядра декодера. Почитайте, как матлаб сопрягается с сями, чтобы понять что происходит - ничего сложного нет.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 09:45
Рейтинг@Mail.ru


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