Этот пример характеризует работу турбокодов по шумному каналу. На ней показана основная структура турбокодов в передатчике и приемнике. Мы выбрали спецификации долгосрочной эволюции (LTE) [4] для параметров составляющих компонентов.
Изобретение турбокодов [1], наряду с разработкой принципов итеративного декодирования с близкими к пределам Шеннона рабочими характеристиками, привело к их поглощению в самых разнообразных применениях, некоторые из которых включают в себя дальнюю космическую связь, стандарты беспроводной связи третьего поколения и цифровое видеовещание [3].
Этот пример включает реализации MATLAB ® и Simulink ®:
Сценарий MATLAB с использованием системных объектов: commTurboCoding.m
Модель Simulink с использованием системных блоков: commpccc.slx
Модель Simulink с использованием кодовых блоков переменного размера: commpcccvs.slx
Реализации системы MATLAB и Simulink задаются таким образом, чтобы можно было моделировать систему в диапазоне значений Eb/No для заданных пользователем системных параметров, таких как длина кодового блока и количество итераций декодирования. В следующих разделах используется реализация Simulink с кодовым блоком фиксированного размера для описания деталей схемы кодирования.

A comm.TurboEncoder представляет собой схему параллельной конкатенации с множеством составляющих сверточных кодеров. Первый кодер работает непосредственно на входной битовой последовательности, в то время как любой другой работает на перемеженных входных последовательностях, полученных перемежением входных битов по длине блока.
Блок турбокодера на основе системного блока использует два идентичных 8-статусных рекурсивных систематических сверточных кодера. comm.ConvolutionalEncoder Системный object™ использует параметр «Terminated» для TerminationMethod собственность. Это восстанавливает кодеры в начальное состояние всех нулей для каждого кадра данных, обрабатываемых блоком. Внутренний блочный перемежитель использует предварительно вычисленные индексы перестановки на основе заданного пользователем параметра длины блока Code (см. Model Parameters block ). Подсистема переупорядочивания битов удаляет дополнительный набор систематических битов с выхода второго кодера и реализует решетчатое завершение согласно [4].
Для итеративного декодирования схемы параллельного конкатенированного кодирования, comm.TurboDecoder использует декодер апостериорной вероятности (APP) [2] в качестве составляющего компонента декодера.
Каждый comm.APPDecoder Системный объект соответствует составному кодеру, который обеспечивает обновленную последовательность значений логарифмического правдоподобия для некодированных битов из принятой последовательности логарифмических правдоподобий для канальных (кодированных) битов. Для каждого набора принятых последовательностей каналов декодер итеративно обновляет возможности регистрации для некодированных битов до тех пор, пока не будет выполнен критерий остановки. В этом примере используется фиксированное число итераций декодирования, указанное параметром Number of decoding iterations в модели. Model Parameters блок. Число итераций по умолчанию равно шести.
TerminationMethod свойство объекта APP Decoder System имеет значение «Termined» для соответствия кодерам. Декодер не предполагает знания хвостовых битов, и в результате они исключаются из множества итераций.
Внутренний перемежитель декодера идентичен тому, который используется кодером. Он переупорядочивает последовательности так, чтобы они были правильно выровнены в двух декодерах.
На следующем рисунке показана эффективность частоты битовых ошибок схемы параллельного конкатенированного кодирования в канале AWGN в диапазоне значений Eb/No для двух наборов длин кодовых блоков и количества итераций декодирования.

Как показано на чертеже, производительность итеративного декодирования улучшается с увеличением числа итераций декодирования (за счет вычислительной сложности) и большей длины блока (за счет задержки декодирования).
Сопутствующая модель commpcccvs.slx выделяет турбокодирование с использованием кодовых блоков переменного размера в прогоне моделирования.

Модель настроена на выполнение двух заданных пользователем длин кодовых блоков, которые изменяются по выбранному управляющему сигналу. Индексы перемежителя на длину блока и дисперсию шума вычисляют за шаг времени. Используя детектор синдрома CRC, модель отображает частоту ошибок кодового блока в дополнение к частоте ошибок битов, так как первая является более релевантной метрикой производительности с кодовыми блоками переменного размера.
На следующем рисунке показана эффективность частоты ошибок кодовых блоков схемы параллельного конкатенированного кодирования в канале AWGN в диапазоне значений Eb/No для аналогичной установки, используемой для BER.

Мы наблюдаем те же улучшения, что и ранее, в производительности с увеличением числа итераций декодирования и/или длин блоков.
Пример позволяет исследовать влияние различных длин блоков и количества итераций декодирования на производительность системы. Он поддерживает все 188 размеров кодовых блоков, указанных в [4], для заданного пользователем фиксированного числа итераций декодирования.
К. Берру, А. Главье и П. Титимаджсима, «Near Shannon limit error correcting coding and decoding: turbo codes», Proc. IEEE ® Int. Conf. on Communications, Женева, Швейцария, май 1993 года, стр. 1064-1070.
Бенедетто, С., Г. Монторси, Д. Дивсалар и Ф. Поллара, «Модуль мягкого ввода и мягкого вывода с максимумом А (MAP) для декодирования параллельных и последовательных конкатенированных кодов», JPL TDA Progress Report, Vol. 42-127,
Шлегель, Кристиан Б. и Лэнс К. Перес, «Trellis and Turbo Coding», IEEE Press, 2004.
3GPP TS 36.212 v10.8.0, "Проект партнерства 3-го поколения; Техническая спецификация групповой сети радиодоступа; усовершенствованный универсальный наземный радиодоступа (E-UTRA); Мультиплексирование и канальное кодирование (версия 10) ", 2013-06.