Этот пример характеризует производительность турбокодов по шумному каналу. Он показывает базовую структуру турбо- кодов в передатчике и приемнике. Мы выбрали спецификации Long Term Evolution (LTE) [4] для параметров.
Изобретение турбокодов [1], наряду с разработкой принципов итерационного декодирования с почти предельной эффективностью Шеннона, привело к их поглощению в широком спектре применений, некоторые из которых включают глубокую космическую связь, беспроводные стандарты третьей генерации и цифровое видеовещание [3].
Этот пример включает как реализации MATLAB ®, так и реализации Simulink ®:
Скрипт MATLAB с использованием Системные объекты: commTurboCoding.m
Simulink модель с использованием Системные блоки: commpcc.slx
Simulink модель с использованием кодовых блоков переменного размера: commpccvs.slx
И реализация MATLAB, и реализации Simulink системы настроены, чтобы вы могли симулировать систему в области значений значений Eb/No для пользовательских системных параметров, таких как длина блока кода и количество итераций декодирования. В следующих разделах используется реализация Simulink блока кода фиксированного размера, чтобы описать детали схемы кодирования.
A comm.TurboEncoder
является параллельной схемой конкатенации с несколькими составляющими сверточными энкодерами. Первый кодер работает непосредственно с входной битовой последовательностью, в то время как любой другой работает с перемеженными входными последовательностями, полученными путем перемежения входных битов по длине блока.
Блок Turbo Encoder на основе системных блоков использует два одинаковых рекурсивных систематических сверточных энкодера с 8 состояниями. The comm.ConvolutionalEncoder
Системная object™ использует настройку «Завершено» для TerminationMethod
свойство. Это восстанавливает энкодеры в стартовом состоянии «все нули» для каждой системы координат данных, обрабатываемых блоком. Внутренний перемежитель блоков использует предварительно вычисленные индексы сочетания, основанные на пользовательском параметре Code block length (см. Model Parameters block
). Подсистема переупорядочивания битов удаляет дополнительный набор систематических бит из выхода второго энкодера и реализует завершение решетки согласно [4].
Для итерационного декодирования схемы параллельного конкатенированного кодирования comm.TurboDecoder
использует декодер апостериорной вероятности (APP) [2] в качестве составляющего компонента декодера.
Каждый comm.APPDecoder
Системный объект соответствует составляющему энкодеру, который обеспечивает обновленную последовательность значений логарифмической правдоподобности для незакодированных бит из принятой последовательности логарифмической правдоподобности для канальных (закодированных) бит. Для каждого набора принятых канальных последовательностей декодер итерационно обновляет логарифмическую правдоподобность для незакодированных бит до тех пор, пока не будет достигнут критерий остановки. Этот пример использует фиксированное количество итераций декодирования, заданное параметром Number of decoding итераций в модели Model Parameters
блок. Количество итераций по умолчанию составляет шесть.
The TerminationMethod
свойство для объекта APP Decoder System установлено в «Terminated», так чтобы оно совпадало с энкодерами. Декодер не принимает знания хвостовых бит и, как следствие, они исключены из нескольких итераций.
Внутренний перемежитель декодера идентичен тому, который использует энкодер. Он переупорядочивает последовательности так, чтобы они были правильно выровнены в двух декодерах.
Следующий рисунок показывает эффективность частоты битовой ошибки схемы параллельного конкатенированного кодирования в канале AWGN по области значений значений Eb/No для двух наборов длин кода блоков и количества итераций декодирования.
Как показывает рисунок, эффективность итерационного декодирования улучшается с увеличением количества итераций декодирования (за счет вычислительной сложности) и больших длин блоков (за счет задержки декодирования).
Компаньон модели commpccvs.slx подсветок турбокодирование с использованием кодовых блоков переменного размера в процессе симуляции.
Модель настроена на запуск двух пользовательских заданных длин блоков кода, которые варьируются в соответствии с выбранным сигналом управления. Индексы перемежителя на длину блока и отклонение шума вычисляются на временной шаг. Используя детектор синдрома CRC, модель отображает частоту ошибок блока кода в дополнение к вероятности битовой ошибки, так как первая является более релевантной метрикой эффективности с кодовыми блоками переменного размера.
Следующий рисунок показывает эффективность частоты ошибок блока кода схемы параллельного конкатенированного кодирования в канале AWGN в области значений значений Eb/No для аналогичной настройки, используемой для BER.
Мы наблюдаем те же улучшения, что и ранее, в эффективности с увеличением количества итераций декодирования и/или длин блоков.
Пример позволяет исследовать эффекты различных длин блоков и количества итераций декодирования на производительности системы. Он поддерживает все размеры 188 кодовых блоков, указанные в [4], для заданного пользователем фиксированного количества итераций декодирования.
C. Berrou, A. Glavieux и P. Thitimajshima, «Near Shannon limit error correcting coding and decoding: turbo codes», Proc. IEEE ® Int. Conf. on Communications, Женева, Швейцария, май 1993 года, стр. 1064-1070.
Benedetto, S., G. Montorsi, D. Divsalar, and F. Pollara, «A Soft-Input Soft-Output Maximum A Posterior (MAP) Module to Decode Parallel and Serial ConCcatenatenatatatatated codes», отчет о прогрессе.
Schlegel, Christian B. and Lance C. Perez, «Trellis and Turbo Coding», IEEE Press, 2004.
3GPP TS 36.212 v10.8.0 ", проект партнерства 3-ьей генерации; Технические спецификации группы сети радиодоступа; Evolved Universal Terrestrial Radio Access (E-UTRA); Мультиплексирование и канальное кодирование (Release 10) ", 2013-06.