Декодирование турбо-кодов
11.4.1. Правило максимума апостериорной вероятности (MAP).
Хотя турбо кодер является устройством с конечным числом состояний, наличие в нем перемежителя приводит к изменяющейся во времени решетчатой диаграммы, определяющей, в свою очередь, запредельную (при большой длине блока N) сложность оптимальной (максимально правдоподобной) процедуры декодирования, которая подразумевает нахождение кодового слова, ближайшего к принятому наблюдению (аналогично алгоритму Витерби с жесткими или мягкими решениями). Авторы открытия турбо-кодов предложили итеративную процедуру декодирования с мягкими решениями, которая позднее стала общепринятой для многих других кодов. В отличие от правила максимального правдоподобия (ML), состоящего в поиске кодового слова, минимизирующего вероятность перепутывания истинного кодового слова с некоторым другим, новый алгоритм декодирования направлен на минимизацию вероятности ошибки в каждом отдельном бите «чистой» информации. Эта цель может быть полностью достигнута на основе правила максимума апостериорной вероятности (MAP). Пусть
или
11.4.2. Итеративная процедура декодирования.
Не существует практического метода точного вычисления апостериорной вероятности или, что эквивалентно, совместной вероятности для всего наблюдения , простирающегося на все слово турбо-кода. Процедура итеративного декодирования оперирует с аппроксимациями апостериорного распределения, постепенно уточняемыми в ходе итераций. Любая следующая итерация состоит из двух шагов, каждый из которых заключается в раздельном декодировании образующих кодов и использовании на втором шаге информации, извлеченной из первого образующего кода во время первого шага. После окончания k –й итерации (но не последней) ее результаты (k –я итерация апостериорного распределения) используются на следующей итерации в качестве априорной информации. Общее число итераций может быть установлено заранее или определено в ходе выполнения декодирования фиксацией момента стабилизации выходных данных (согласно стоп–критерию). После заключительной итерации решение принимается по правилу MAP (11.1) или (11.2). Основной принцип процедуры иллюстрирует схема, представленная на рис. 11.7.[3]
Первоначально первый образующий декодер принимает отсчеты наблюдения, отвечающие символам первого образующего кода, и выдает мягкие оценки бит данных. Эти мягкие решения используются вторым образующим декодером в качестве априорной информации совместно с отсчетами наблюдения, отвечающими второму образующему коду, для выработки первой аппроксимации решающих статистик Обращаясь к подробностям, отметим, что мягкие решения
где первое слагаемое содержит априорную информацию об i – м бите данных Первая итерация начинается с декодирования первого компонентного кода в отсутствии априорной информации:
На первом шаге второй итерации избыточная информация второго декодирования на первой итерации используется как априорная:
и т.д.: на любом шаге избыточная информация, добытая на предшествующем шаге используется в качестве априорной. Как видно из приведенных соотношений взаимосвязь между образующими кодерами исключает рециркуляцию (повторное использование) старой априорной информации, что обеспечивается блоками вычитания в схеме на рис. 11.7. Поскольку благодаря перемежению в кодере i –й систематический бит имеет различное местоположение в образующих кодах, то систематические отсчеты наблюдения и мягкие решения первого декодера должны претерпевать аналогичное перемежение, что и в турбо кодере, перед подачей на второй декодер. Указанные операции осуществляются двумя перемежителями. Аналогичным образом, мягкие решения второго кодера должны располагаться на соответствующих позициях в обратной связи к первому декодеру, т.е. перемешиваться в обратном порядке тому, которое выполняется деперемежителем.
11.4.3. Компонентное декодирование и прямой–обратный алгоритм.
Существуют различные возможные стратегии компонентного декодирования. Одним из вариантов служит алгоритм Витерби с мягкими решениями на входе и выходе (Soft-in-Soft-out Viterbi algorithm (SOVA)). Альтернативным путем является точное вычисление апостериорной вероятности для одиночного образующего кода с использование прямого–обратного алгоритма (иное наименование BCJR[4] или алгоритм Баля). Для определенности начнем с первого образующего кода половинной скорости, обозначив через
Введем совместную вероятность
Прямой–обратный алгоритм вычисляет
где
Из трех вышеприведенных функций с самого начала известна
где первый множитель представляет собой условную вероятность перехода сверточного кодера в состояние
для любой пары состояний Знание
По завершению прямой рекурсии при
Подстановка значений
с априорным компонентом
и избыточным компонентом
Функция
тогда как в общем случае, она представляет собой произведение переходных канальных вероятностей для отсчетов наблюдения, отвечающих Декодирование второго кода выполняется аналогично, а обмен избыточной информацией между обоими компонентными декодерами и последовательные итерации выполняются так, как это было описано в п. 11.4.2.
|