Турбо-коды на основе сверточных кодов
Как известно, рекурсивная структура сверточных кодов (решетка с минимальной памятью) способствует разработке рекуррентных процедур декодирования низкой сложности (подобно алгоритмам Витерби или BCJR[2]). Поскольку работа в области около пропускной способности может, в принципе, осуществляться только с достаточно длинными кодами, когда сложность процедуры декодирования является определяющим фактором, естественно, что сверточные коды наиболее популярны в качестве образующих в турбо-конструкции. Как правило, турбо-кодер имеет симметричную структуру, состоящую из двух одинаковых образующих сверточных кодеров, которые в отличие от обычных, основанных на использовании фильтров с конечным откликом (FIR), оба относятся к рекурсивному типу. Целью применения рекурсивной (на основе фильтров с бесконечным откликом (IIR)) схемы служит стремление избежать одновременного генерирования слов с малым весом обоими образующими кодерами в случае, когда на турбо-кодер поступает блок данных источника единичного веса, т.е. состоящего только из одного ненулевого бита. Обычный сверточный кодер прореагировал бы на этот блок образованием конечного импульсного отклика, который всегда имел бы малый вес (не больший, чем Для избежания подобной ситуации в качестве компонентного используется рекурсивный кодер, формирующий такие же сверточные кодовые слова, как и не рекурсивный, но с измененным порядком отображения блоков входных бит источника в кодовые слова. Теперь входной блок веса один, подаваемый на вход сверточного кодера, вызывает бесконечный отклик фильтра, который в отсутствии окончания будет иметь бесконечный вес. Таким образом, блок источника веса два (скорее, чем веса один) с некоторым конкретным промежутком между ненулевыми битами может оказаться наименее предпочтительным входным образцом, порождающим кодовое слово малого веса на выходе первого компонентного кодера. Однако, присутствующий в схеме перемежитель, который, конечно, сохраняет вес два блока данных, изменит промежуток между ненулевыми битами, так что второй компонентный кодер будет формировать отличное кодовое слово большего веса, чем генерируемое первым кодером. Дополнительным достоинством компонентного кодера с IIR фильтра может рассматриваться и то, что он способен генерировать такие же кодовые слова, как и кодер с FIR фильтром, но соответствующие биты источника будут вложены в слово в систематической форме. Следовательно, преодолевается типичная неспособность FIR кодера вырабатывать систематический код, эквивалентный по дистанционным свойствам, лучшим не систематическим кодам. Систематическое компонентное кодирование в некоторой степени упрощает процедуру турбо декодирования. Для приведения рекурсивного (систематического) сверточного кодера к эквивалентному FIR кодеру с фиксированным множеством порождающих полиномов
так что, выбирая
Пример 11.3.2. Опираясь на образующий кодер из предыдущего примера, приходим к турбо коду со скоростью , генерируемому кодером на рис. 11.5. Для возвращения к образующей скорости можно отбрасывать каждый четный и каждый нечетный проверочные символы первого и второго образующих кодов соответственно. Предположим, что входной блок бит представляет собой , так что . Тогда и последовательность проверочных символов первого компонентного кода определяется как , формируя первое образующее кодовое слово с общим весом пять (минимальным для (5,7) кода). Пусть псевдослучайный перемежитель перегруппирует входные биты по правилу , т.е. первый бит становится пятым, второй – четвертым, третий – первым и т.д. Тогда перемеженные биты представимы как или в полиномиальном представлении . После деления на приходим к результату , на основании которого получаем выражение для проверочных символов второго образующего кода в виде . В итоге, слово турбо-кода скорости представимо как , т.е. имеет вес девять. Выкалывание каждого четного символа в и каждого нечетного символа в приводит к слову турбо-кода скорости веса шесть.
Диаграмма, представленная на рис. 11.6, иллюстрирует процедуру формирования кодовых символов в рамках кодового слова турбо-кода скорости с помощью двух образующих кодов скорости . Для лучшего понимания информационные и проверочные символы первого и второго образующего кодов помечены разными буквами.
|