УДК 517.51
ТАШАТОВ Н. Н., ЕФИМОВ Д. А.
Евразийский национальный университет им. Л. Н. Гумилева, Астана, Казахстан УСТРОЙСТВО КОДЕРА И ДЕКОДЕРА ТУРБОКОДА
Турбокодер представляет собой хороший способ построения случайного кода большой длины. Главный принцип турбокодирования – использование двух параллельно работающих элементарных кодеров. При этом информационный блок кодируется дважды, причем второй раз – после предварительного случайного перемежения.
Схема турбокодера состоит из двух одинаковых блоков RSC1 и RSC2, которые называют рекурсивными систематическими кодирующими (Recursive Systematic Codes – RSC) устройствами[1]. Между ними блок чередования INT (Interleaver), иначе перемежитель, который перестраивает информационные биты (рисунок 1).
Рисунок 1. Схема параллельного соединения двух RSC-кодеров
Он служит для того, чтобы сделать закодированные последовательности данных приблизительно статистически независимыми друг от друга. Тогда к информационной последовательности (Xk) добавляют две проверочные группы (Y1k и Y2k). Игнорируя задержки для каждого блока, мы принимаем данные с обеих кодирующих устройств одновременно. Если два кодирующих устройства связаны с переключательным устройством, то степень кодирования будет равна 1/2, и получим следующую выходную последовательность: (X1,Y11), (X2,Y22), (X3,Y33)…. Без переключателя степень кодирования кода будет 1/3. Ограничений на количество соединяемых кодеров нет.
Структуру на рисунке 1, которая использована в /2/, называют параллельным каскадным сверточным кодом (Parallel Concatenated Convolutional Code – PCCC), так как один и тот же информационный поток кодируется дважды, параллельно. Другая схема чередует выходные биты одного кодирующего устройства и перекодирует их снова. Эту структуру называют последовательным каскадным сверточным кодом (Serial Concatenated Convolutional Code – SCCC). Может использоваться любая другая возможная комбинация PCCC и SCCC. Эту структуру называют гибридным каскадным сверточным кодом (Hybrid Concatenated Convolutional Code – HCCC).
PCCC структура имела BER больше чем 10-6 при определенных ограничениях системы.
Однако, для меньших BER, подобно 10-10 для передач данных, структуру PCCC трудно
реализовать. Базируясь на аналитических исследованиях и из опыта в осуществлении PCCC в аппаратных средствах ЭВМ и программном обеспечении, можно заключить, что изменение в наклоне кривой BER появляется для BER < 10-7. Наклон – функция размера чередования и проекта чередования[2].
Пример SCCC со степенью кодирования 1/3 показан на рисунке 2.
Рисунок 2. SCCC структура
Структура SCCC может иметь большую, около 100%, задержку. Известен также выигрыш в 2дБ для SCCC по сравнению с PCCC схемой для BER 10-11. Доказано, что PCCC схемы лучше, чем SCCC схемы при низком отношении сигнал/шум (Signal-to-Noise Ratio – SNR). Однако, увеличивая SNR, SCCC схемы выигрывают у PCCC схем. Возможная точка пересечения зависит от размера чередования и проекта чередования.
В настоящее время турбокоды развиваются по двум альтернативным направлениям – это
«сверточные» турбокоды (Turbo Convolutional Codes – TCC), появившиеся исторически первыми, и турбокоды произведения (Turbo Product Codes – TPC). Оба класса кодов характеризуются итеративными алгоритмами декодирования и мягкими решениями на входе и выходе каждой итерации. Доказана эффективность TCC при малых степенях кодирования (менее 2/3). Это определяет выбор TCC в каналах с низкой энергетикой.
HCCC является комбинацией последовательной и параллельной связи и имеет преимущества перед структурами SCCC или PCCC. Структура HCCC показана на рисунке 3.
Структура HCCC – дальнейшее усовершенствование структуры SCCC.
Рисунок 3. HCCC структура
Декодер представляет собой каскадное соединение двух элементарных декодеров, двух перемежителей, идентичных используемым в кодере, и двух деперемежителей, осуществляющих восстановление исходного (до перемежения) порядка символов. Как видно из рисунка, декодер каждого составляющего кода имеет три входа: принятые из канала информационные биты, канальные проверочные биты от соответствующего кодера и информация от другого декодера, оценивающая значение информационных бит (данная информация называется априорной).
Единственным выходом компонентного декодера являются мягкие решения относительно декодируемых бит, причем для представления мягких решений обычно используется логарифм отношения правдоподобия, знак которого определяет значение декодированного бита (отрицательное значение соответствует нулю, положительное – единице), а модуль – надежность этого значения[3].
Общая структура итеративного турбодекодера представлена на рисунке 4.
Рисунок 4. Схема декодера турбокода
Логарифм отношения правдоподобия для информационного символа , как следует из его названия, определяется следующим образом:
, где – вероятность того, что .
Принцип работы декодера турбокода заключается в выполнении нескольких итераций декодирования, для первой из которых на входе декодера первого составляющего кода отсутствует априорная информация, т.е. он формирует оценку информационных бит, используя только принятую из канала последовательность. Далее из полученной оценки выделяется так называемая внешняя информация, определяемая исключением из оценки декодируемых символов априорной информации (на первой итерации априорная информация равна нулю) и принятых из канала систематических символов:
,
где определяет надежность канала (для канала с АБГШ
, – дисперсия шума) /7/.
Затем декодер второго кода использует эту внешнюю информацию в качестве априорной для получения своей оценки информационных бит. На второй итерации первый декодер снова обрабатывает принятую из канала последовательность, но уже с учетом априорной информации, сформированной из оценки второго декодера на первой итерации. Эта дополнительная информация позволяет первому декодеру получить более точную оценку декодируемых бит, используемую затем вторым декодером в качестве априорной. Далее декодер турбокода выполняет еще несколько итераций декодирования, на каждой из которых осуществляется уточнение оценки информационной последовательности (т.е. средняя вероятность ошибки декодирования постепенно уменьшается). К сожалению, с каждой новой итерацией улучшение от ее применения становится все меньше. Поэтому, для снижения сложности декодера, итеративный процесс прекращается после выполнения некоторого небольшого A0-20) количества итераций. Также для завершения декодирования можно использовать некоторый критерий, определяющий целесообразность применения дополнительной итерации, что часто позволяет существенно сократить среднее число итераций и сложность декодера при незначительных потерях в эффективности. После выполнения заданного количества итераций или вынесения решения о нецелесообразности продолжения итеративного процесса жесткое решение о восстановленной после перемежения оценке второго декодера будет определять результат декодирования.
Вычислительная сложность турбодекодера в расчете на один информационный бит не зависит от длины информационного блока и сравнима со сложностью декодера Витерби для
сверточного кода. Критерием выбора параметров кода служит минимум количества кодовых блоков с малым взаимным расстоянием при максимуме среднего расстояния в противоположность весьма распространенному критерию максимума минимального расстояния между кодовыми блоками. Такой критерий обеспечивает более высокую достоверность декодирования при низком отношении сигнал/шум, чем критерий минимума максимального расстояния. Снижение вероятности ошибки декодирования достигается увеличением длины информационного блока без увеличения вычислительной сложности алгоритма декодирования. Иначе говоря, длиной блока можно управлять вероятностью ошибки.
Ввиду исключительно высокой энергетической эффективности, турбокоды должны найти свое место в системах связи военного назначения для увеличения дальности приема, скрытности системы, а также для обеспечения связи в радиосистемах с низким энергетическим потенциалом.
Литература
1. George C. Clark, Jr. and J. Bibb Cain. Error-Correction Coding for Digital Communications. – New York and London: Plenum Press, 1982. – 391 p.
2. Хоанг Тху Ха. Определение оптимальных матриц прокалывания для турбо кода. – Пятая Всероссийская научно-практическая конференция «Современные проблемы создания и эксплуатации радиотехнических систем», Ульяновск, 19-20 июня 2007г.
3. Золотарев В. В., Овечкин Г. В. Помехоустойчивое кодирование. Методы и алгоритмы.
– М.: Горячая линия-Телеком, 2004. – 126 с.