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

 
 
 
Reply to this topicStart new topic
> Декодер сверточных кодов по алгоритму Фано, Интересует декодер для K >= 36
ShamilIhs
сообщение Oct 25 2008, 19:06
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 25-10-08
Пользователь №: 41 186



Уважаемые специалисты.
Буду очень признателен, если кто-нибудь поможет исходником декодера систематических сверточных кодов по алгоритму Фано. Интересует декодер, который работает с длиной кодового ограничения К=36.
Заранее благодарен.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Oct 26 2008, 14:31
Сообщение #2


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

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



Цитата(ShamilIhs @ Oct 25 2008, 23:06) *
Уважаемые специалисты.
Буду очень признателен, если кто-нибудь поможет исходником декодера систематических сверточных кодов по алгоритму Фано. Интересует декодер, который работает с длиной кодового ограничения К=36.
Заранее благодарен.

Не вижу в этом никакой проблемы. Алгоритм Фано входит в семейство алгоритмов последовательного декодирования, поэтому сложность и структура построения декодера не зависят от длины кодового ограничения, в отлчие от алгоритма Витерби, где сложность реализации экспоненциально возрастает с увеличением длины кодового ограничения. Я тоже в свое время столкнулся с такой проблемой, когда надо было реализовать ССК декодер с относительной скоростью кодирования 7/8 (семь полиномов кода имели общую длину регистра 91 бит), но выход очевиден. Реализован декодер был на С++ (компилятор MS VisualStudio 6), поэтому максимально доступными оказались регистры unsigned __int64. Поэтому я брал 2 регистра данного типа (общая длина такой спарки составляла 128 бит, что вполне достаточно) и на каждом такте работы декодера старшие 7 бит первого регистра заносились в младшие 7 бит второго и оба сдвигались тоже на 7 бит. Для 1/2 подход тот же, только сдвигать регистры надо побитно. Вот и весь секрет. Реализовывал я ССК декодеры со скоростями 1/2, 3/4 и 7/8 в жесткой (Хемминга) и мягкой (Эвклидовой) метрике. Для 1/2 даже с длиной регистра 63 бита. Привожу фрагмент кода для декодера 7/8:

unsigned __int64 state1; /* Состояние первого регистра кодера следующего узла */
unsigned __int64 state2; /* Состояние второго регистра кодера следующего узла */

state1 <<= 7;
tstate = state1 >> 57; // временный регистр
state2 <<= 7;
state2 |= tstate;

// и так на каждом такте, при условии, что в канале нет ошибок
Go to the top of the page
 
+Quote Post
ShamilIhs
сообщение Oct 26 2008, 18:40
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 25-10-08
Пользователь №: 41 186



[quote name='Serg76' date='Oct 26 2008, 16:31' post='491510']
Thank You!
Go to the top of the page
 
+Quote Post

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

 


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


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