Научная статья на тему 'Сравнение различных вариантов реализации декодера Витерби для ПЛИС'

Сравнение различных вариантов реализации декодера Витерби для ПЛИС Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1368
254
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Воробьев А. А., Воробьев К. А., Негрозов Е. А.

Сверточное кодирование, применяемое совместно с алгоритмом декодирования Витерби, является на данный момент одним из наиболее известных методов исправления ошибок. Это вызвано тем, что при относительно небольшой сложности декодирования можно получить значительный выигрыш в эффективности использования канала передачи данных. Поэтому аппаратная реализация декодера Витерби является важной практической задачей. При этом, для применения в различных приложениях необходимы различные компромиссы между пропускной способностью и вычислительной сложностью декодера. Рассматриваются особенности аппаратной реализации различных вариантов декодера Витерби, проводится сравнение их характеристик.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Сравнение различных вариантов реализации декодера Витерби для ПЛИС»

1S января 2012 г. 2:18

ТЕХНОЛОГИИ ИНФОРМАЦИОННОГО ОБЩЕСТВА

Сравнение различных вариантов реализации декодера Витерби для ПЛИС

Сверточное кеширование, применяемое совместно с алгоритмом декодирования Витерби, является на данный момент одним из наиболее известных методов исправления ошибок. Это вызвано тем, что при относительно небольшой сложности декодирования можно получить значительный выигрыш в эффективности использования канала передачи данных. Поэтому аппаратная реализация декодера Витерби является важной практической задачей. При »том, для применения в различных приложениях необходимы различные компромиссы между пропускной способностью и вычислительной сложностью декодера Рассматриваются особенности аппаратной реализации различных вариантов декодера Витерби, проводится сравнение их характеристик

Воробьев А.А., Воробьев КА, Негрозов Е.А.,

НИЧ МТУ СИ

kvorobiev@gmail.com

1. Введение

Быстрый рост объемов обработки данных, развитие цифровых систем вешания и вычислительных сетей предъявляют весьма высокие требования к минимизации ошибок в исполыусмой дискретной информации. Переход всех видов создания, хранения, исподыования и передачи данных, а также средств вешания на цифровые методы. происходящий сейчас во всем мире, еще более повышает важность высококачественной передачи цифровых потоков. Успешная работа этих систем возможна только при наличии специальной эффективной аппаратуры, которая позволяет гарантировать достоверную передачу информации. Важнейший вклад в повышение достоверности обмена цифровыми данными вносит теория помехоустойчивого кодирования. На ее основе разрабатываются все новые методы защиты от ошибок, базирующиеся на использовании корректирующих кодов.

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

Наиболее шнрокораспросгранснным алгоритмом декодирования сверточных кодов является предложенный в 1967 году алгоритм Витерби |1|. Алгоритм Витерби является достаточно мощным алгоритмом декодирования, при этом сложность его аппаратной реализации невысока. В настоящее время алгоритм Ви герби применяется во многих систем беспроводной связи, таких как IEEE 802.1 la/g. WiMax. DAB/DVB, WCDMA. GSM.

В связи с резким увеличением потребности в системах беспроводной связи аппаратная рс&тизания декодера Ви-тербн является практически важной задачей. При этом, в различных системах к декодеру предъявляются различные требования по аппаратной сложности реализации и пропускной способности. В настоящее время, наиболее подходящей элементной базой для аппаратной реализации декодера Витерби являются профаммирусмыс логические интегральные схемы (ПЛИС). В данной статье рассматриваются различные варианты реализации декодера Витерби на ПЛИС.

2. А.н ори і 'і декодирования Витерби

Задачу декодирования сверточных кодов можно рассматривав как задачу нахождения пути по решетчатой диаграмме, используя в качестве входных значений пары символов, сформированные кодером. Поскольку с ростом длины последовательности число путей растет экспоненциально, то на первый взгляд задача фактического построения оценки последовательности но максимуму правдоподобия для сверточного кода кажется безнадежной. Удивительно, что фактически эта задача оказывается не только возможной, но и сравнительно простой. Метод построения такой оценки легко найти, пытаясь непосредственно вычислить метрику для каждою пути на решегке. Вначале число путей действительно растет экспоненциально с ростом длины последовательности. Однако вскоре появляется возможность исключить из рассмотрения такое число путей в каждой вершине, которое в точности уравновешивает число вновь порожденных путей. Таким образом, оказывается возможным иметь сравнительно небольшой список путей, который всегда будет содержать наиболее правдоподобный путь. '>га простая итеративная процедура называется алгоритмом Витерби 11-3|.

Алгоритм Витерби легче всего понять, рассматривая в качестве примера решетчатую днаграмму для кода с К= 1/2. к ■ 3 (рис. 1). Заметим, прежде всего, что в решетке имеется ровно по два пути, ведущих в каждую вершину. Согласно алгоритму Витерби сравниваются два пути, входящие в каждую вершину, и сохраняется лишь тот из них. метрика которого лучше. Другой путь исключается из рассмотрения, поскольку при любых принятых впоследствии данных его правдоподобие не сможет превзойти правдоподобия оставшегося пути. Оставшиеся пути называются выжившими. Дія рассматриваемого кода с к * 3 в каждый момент будет сохраняться не более четырех выживших путей.

Рис. 1. Решетчатая лиа1рамма сверточного кода с к = 3

Для решения этой задачи используется итеративная процедура определения метрики пути для всех состояний. В качестве сигнала ошибки используется расстояние по Хсммиигу между принятой парой символов и парой сим-

T-Comm, #11-2011

13

ТЕХНОЛОГИИ ИНФОРМАЦИОННОГО ОБЩЕСТВА

волов, ожидаемой при переходе из одного состояния в другое. При приходе на вход декодера новой пары символов от кодера, декодер определяет наиболее вероятный путь, но которому можно попасть в каждое из состояний. Например, на вход декодера поступила пара символов 11. В состояние 00 кодер может попасть из состояния 00 с формированием 00 и из сосгояння 01 с формированием II. Таким образом, ошибка перехода из состояния 00 равна 2. а из состояния 01-0. Полученные величины ошибок прибавляются к уже накопленным значениям метрик для состояний 00 и 01 и декодер выбирает путь с наименьшей мсгрикой. Но поступлению новой нары символов процесс вычисления метрик путей повторяется. Ясно, что при отсутствии ошибок в канале, путь, соответствующий пути по которому проходит кодер во время кодирования, будет иметь общую суммарную метрику 0. При присутствии в канале ошибок декодер гоже выберет путь с минимальной метрикой, которая будет больше 0. Мели количество ошибок не слишком велико, также будет выбран правильный путь. При приеме ошибочною символа наилучшую метрику может иметь неправильный путь, однако, при дальнейшем декодировании, когда декодер выбирает иуть с паи лучшей метрикой, выжившие пути сіиваются. В этот момент согласно алгоритму Витерби принимается решение о переданном символе, так как все выжившие иуги приходяї из одной вершины (т. с. соответствуют одному информационному символу). Глубина, на которой происходит такое слияние, не может быть вычислена заранее: она является случайной величиной, зависящей от серьезности происшедших в канате ошибок. Поэтому при практической реалізацій« декодера не следует ждать указанного слияния, а нужно установить фиксированную глубину декодирования. Каждый раз при обработке новою ребра декодер выдает самый старый символ одною из выживших путей. Онтиматьный метол состоит в выборе пути с наилучшей метрикой.

В обычном режиме кодирования на каждый поступающий в кодер информационный символ формируется два выходных символа, т.е. скорость кода И=1/2. Для повышения скорости кода применяют перфорированные коды. т.е. кодер по-прежнему формирует два выходных символа на каждый поступающий информационный символ. но в канат перелаются не все символы. Если в канат из каждых 4 выходных символов кодера передаются только 3. то скорость кода возрастает до 11=3/4. Через кодер с кодовым ограничением 3 каждый входной символ проходит за 3 такта и участвует в формировании 6 выходных символов, поэтому, в случае перфорированного, выбор пути с минимальной метрикой также приводит к правильному решению.

Алгоритм декодирования Витерби легко модифицируется для работы с мягким решением демодулятора. За счет небольшою усложнения устройства вычисляющею метрики путей достигается вышрыш около 2 дБ по сравнению с жестким решением.

3. Последовательная реалитания декодера

Структурная схема последовательной рсашзацин декодера Витерби приведена на рис. 2. Как видно из рисунка в составе последовательного декодера можно выделить 3 основных блока:

- блок вычисления метрик путей;

- блок промежуточною хранения метрик путей;

- блок обратной трассировки по пути.

Рис. 2. Структурная схема послсловаїельного декодера Витерби

В блоке вычисления метрик путей выполняется две операции: вычисление метрик ребер и обновление метрик путей. Метрика ребер вычисляется при приеме каждою нового ребра. Теоретически, метрика ребра нронорцио-натьна условной вероятности передачи символов, соответствующих именно этому ребру при условии заданною набора принятых мягких решений демодулятора. В наиболее простом случае метрика ребра равна сумме метрик соответствующих каждому принятому символу. Структурная схема элемента для вычисления метрик символов приведена на рис. 3.

I Iptnni ии (inrni

Рис. 3. Структурная схема элемента для вычисления метрик символов

Решетчатая диаграмма произвольною кода с К=1/п может быть разбита на базисные модули, приведенные на рис. 4. Таким образом, вычисление метрик путей может быть выполнено с помощью элемента структурная схема которого приведена па рис. 5. Такой элемент состоит из двух сумматоров, устройства сравнения и ячейки памяти. Реализуемая этим элементом функция называется «сло-жнть-сравннть-выбрать» (ССВ).

М.

Состояние J #■

М*

Состояние j+2k 1 #•

Состояние 2j

Состояние 2j+l

Рис. 4. Базисный модуль в решетчатой лнаїрамме сверточного кода со скоростью R1- 1/п

д»

Рис. 5. Структурная схема элемента «сложнть-сравннть-выбрать»

14

T-Comm, #11-2011

ТЕХНОЛОГИИ ИНФОРМАЦИОННОГО ОБЩЕСТВА

С* и С* - метрики путей в состояния j и ]+2 ' вычисленный на предыдущем шаге. Д, и А* - метрики ребер.

При последовательной ортанизацин декодера используется один элемент ССВ работающий в режиме разделения времени. Таким образом, для обновления всех метрик путей необходимо 2к тактов, где к - длина кодовою ограничения. Однако, при несложной модификации элемент ССВ может за один так*т вычислить метрики двух путей. При этом, для обработки всех метрик потребуется 2к': такта.

Блок промежуточною хранения путей иснодыуется для хранения текущею состояния метрик путей. При практической реализации в ПЛИС дія организации данною блока используется блочная намять.

Блок обратной трассировки по пути отвечает за хранение и обновление гипотетической информационной последовательности . При этом запоминаются не фактические информационные последовательности, а результаты каждого сравнения (связи в решетке). После обработки нескольких ребер результаты сравнения вызываются из памяти в порядке, обратном порядку их запоминания, и с помощью этих связей строится путь в решетчатой диаграмме. Объем необходимой памяти при этом равен произведению числа состояний декодера на длину запоминаемого пути. Длина запоминаемого пути сильно зависит от слияния путей в коде и обычно выбирается равной 6к. Таким обра зом и задержка данного блока будет равна 6к.

Пропускная способность последовательного декодера Витсрби вычисляется по следующей формуле:

_______

тах(2 ‘.6-А*)

где Г,™ - максимальная частота работы декодера, шах(х.у) - функция возвращающая наибольшее из двух чисел, к - длина кодовою ограничения.

При реализации такого подхода на ПЛИС семейства Уігіех-2 при различных конфигурациях параметров пропускная способность декодера составляет от 500 Кбит/с до 7 Мбит/с.

Таким образом, последовательная реализация декодера Витсрби хорошо подходит дія приложении не требующих высокой пропускной способности. К преимуществам такой реализации можно отнести небольшую аппаратную сложность и независимость аппаратных затрат от выбранных длины кодового оіраничения и длины запоминаемого пути. К недостаткам следует отнести невысоку ю пропускную способность, более сложную управляющую лоїнку и дополнительные аппаратные затраты на промежуточное хранение метрик путей.

4. Параллельная реализация декодера

Структурная схема параллельною декодера Внтерби [4.5] приведена на рис. 6. В отличие от последовательной реализации отсутствует блок промежуточного хранения метрик путей. Обновление метрик всех путей выполняется за один такт. Это значительно упрощает структуру декодера.

На первом этапе декодирования производится вычисления метрик ребер. В отличие от последовательной архитектуры метрики всех ребер вычисляются параллельно. Дія кода с относительной кодовой скоростью К 1/2 каждому ребру соответствует 2 символа и всею необходимо вычислить четыре различных значения метрик.

Блок обновления метрик путей вычисляет новые метрики путей на основе информации о метриках ребер. Данный блок состоит из массива элементов ССВ. Для обновления всех метрик путей за один такт необходимо 2 таких элемента. При этом, выходы элементов ССВ соединены со входами в соответствии с рис. 4.

Рис. 6. Структурная схема параллельною декодера Витсрби

Хранение и обновление гипотетических информационных последовательностей выполняется с помощью алгоритма регистрового обмена |3.4). Дія каждою из 2м состояний хранится полная информационная последовательность. Регистры, в которых хранятся эти последовательности, связаны между собой точно так же, как модули ССВ. После каждой обработки новою ребра регистры обмениваются содержимым в соответствии с тем. какие последовательности выживают при сравнениях, в последнюю ячейку каждого регистра добавляется новый символ, а самый старый символ нулевого пуги подается на выход декодера. Дія параллельного осуществления всех сдвигов каждая ячейка памяти снабжена мультиплексором, позволяющим вводить символы с одного из двух адресов. Структурная схема метода реализации регистрового обмена приведена на рис. 7. Аппаратная сложность дайною метода резко возрастает с увеличение дитиы кодового оіраничсния и дзнны запоминаемого пути.

Рис. 7. Структу рная схема реализации метода регистровою обмена

Поскольку7 при параллельной организации декодер готов принимать новое ребро каждый такт, то пропускная способность такого декодера равна тактовой частоте его работы и для ПЛИС семейства Утсх-2 в зависимости от параметров декодера составляет 150-300 Мбит/с.

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

Т-Сотт, #11-2011

15

i Надоели баннеры? Вы всегда можете отключить рекламу.