УДК 004.3.052.32
В.А. Ахмадулина, Д.А. Каримова, научный руководитель Д.А. Покаместов
Декодер Витерби
Рассмотрен алгоритм работы декодера Витерби.
Реализован алгоритм работы декодера Витерби, в пакете Matlab.
Ключевые слова: декодер Витерби, единственность пути, решетчатая диаграмма.
Быстрый рост объемов обработки данных, развитие цифровых систем вещания и вычислительных сетей предъявляют весьма высокие требования к минимизации ошибок в используемой дискретной информации. Переход всех видов создания, хранения, использования и передачи данных, а также средств вещания на цифровые методы, происходящие сейчас во всем мире, еще более повышает важность высококачественной передачи цифровых потоков. Важнейший вклад в повышение достоверности обмена цифровыми данными вносит теория помехоустойчивого кодирования. На ее основе разрабатываются все новые методы защиты от ошибок, базирующиеся на использовании корректирующих кодов.
Наиболее широко распространённым алгоритмом декодирования сверточных кодов является алгоритм Витерби, предложенный в 1967 году. Алгоритм Витерби является достаточно мощным алгоритмом декодирования, при этом сложность его аппаратурной реализации невысока. В настоящее время алгоритм Витерби применяется во многих стандартах беспроводной связи, таких как IEEE 802.11a/g, WiMAX, DAB/DVB, WCDMA, GSM. Наиболее подходящей элементной базой для аппаратной реализации декодера Витерби являются программируемые логические интегральные схемы (ПЛИС).
Задачу декодирования сверточных кодов можно рассматривать как задачу нахождения кратчайшего пути по решетчатой диаграмме, используя в качестве входных значений символов, сформированных кодером. [1]
Рассмотрим алгоритм работы декодера Витерби на примере кода
,
.
Рис. 1. Сверточный кодер (степень кодирования
)
Блоки программы декодера Витерби, реализованного в Matlab:
Вблоке формирования узлов сетки выполняются следующие функции:
1.Формируется матрица фрагмента решетчатой диаграммы размера (n m), в
которой количество столбцов соответствует числу состояний кодера (узлов), а количество строк равно числу путей, подходящих к каждому узлу. Каждому элементу матрицы соответствуют ответвляемые слова при переходах между состояниями. Переходы между состояниями повторяются на протяжении всей решетки.
2.Формируется матрица переходов между состояниями (рис. 2).
3.Каждому переходу к конкретному узлу соответствует определенный входной
бит (единица, либо нуль). Формируем матрицу размера (n m) состоящую только из
нулей и единиц (рис. 2).
4. Для каждого входного дибита (слова) декодера вычисляются все возможные значения метрик по фрагменту решетчатой диаграммы кодера, сформированной в предыдущем блоке. В каждый момент времени происходит операция сложения по модулю два входного дибита с соответствующим данному моменту времени ответвляемым словом. Для исключения нижней части решетчатой диаграммы в начальные моменты времени мы искусственно увеличиваем значение метрик переходов нижней части решетки.
1
2
3
4
Рис. 2 . Фрагмент решетчатой диаграммы декодера
Блок удаления путей:
1.В каждом узле, сравнивая метрики входных путей, обнуляем путь с наибольшей метрикой, тем самым убирая его из рассмотрения, но при этом могут возникнуть «тупиковые» пути.
2.Для удаления «тупиковых» путей, поочередно перебирая возможные m состояний в данный момент времени ищем отсутствие какого-либо элемента матрицы переходов состояний, если элемент отсутствует, то пути в предыдущих фрагментах решетки (матрицы) удаляются.
Рис. 3. Декодирование по выделенному пути
Блок декодирования:
Последовательно проверяем количество ненулевых переходов в n строках. Если такой переход единственный, то находим позицию этого элемента, и определяем какой бит был подан на вход кодера (рис. 3).
В дальнейшем данный код программы будет переведен на язык программирования Verilog, для реализации декодера Витерби на ПЛИС. Данный декодер будет использоваться в технологии MIMO.
Литература
1.Воробьев А.А., Воробьев К.А., Негрозов Е.А. Сравнение различных вариантов реализации декодера Витерби для ПЛИС. Ж. «Телекоммуникации и транспорт» №11, 2011, С. 13-17.
Ахмадулина Вероника Аликовна Студент кафедры средств радиосвязи (СРС) ТУСУРа Тел.:8(923)5850452
Эл. почта: ahmver@mail.ru
Каримова Дарья Александровна Студент кафедры средств радиосвязи (СРС) ТУСУРа Тел.: 8(952)1763960
Эл. почта: charmd_13@mail.ru
Покаместов Дмитрий Алексеевич Аспирант кафедры телекоммуникаций и основ радиотехники (ТОР) ТУСУРа Тел.: 8(952)8094375
Эл. Почта: dmaltomsk@mail.ru
Ahmadylina V.A., Karimova D.A., scientific director of D.A. Pokamestov
Viterbi decoder
The algorithm of the Viterbi decoder. The algorithm of the Viterbi decoder in the package Matlab.
Keywords: Viterbi decoder, the only way, the trellis diagram.
