Turbo Decoder

Декодируйте входной сигнал с помощью параллели, конкатенированной, декодируя схему

Библиотека

Сверточная подбиблиотека Выявления ошибок и Коррекции

Описание

Блок Turbo Decoder декодирует входной сигнал с помощью параллели, конкатенированной, декодируя схему. Итеративная схема декодирования использует декодер по опыту вероятности (APP) в качестве составляющего декодера, interleaver и deinterleaver.

Два составляющих декодера используют ту же структуру решетки и алгоритм декодирования.

Блок-схема итеративного турбо декодирования

Предыдущая блок-схема иллюстрирует, что декодеры APP (помеченный как модули SISO в предыдущем изображении) выводят обновленную последовательность логарифмической правдоподобности входных битов энкодера, π (u; O. Эта последовательность основана на полученной последовательности логарифмической правдоподобности (закодированных) битов канала, π (c; I), и параметры кода.

Блок декодера итеративно обновляет эти вероятности для постоянного числа декодирования итераций и затем выводит биты решения. interleaver (π), который использует декодер, идентичен тому использование энкодера. deinterleaver (π-1) выполняет обратное сочетание относительно interleaver. Декодер не принимает знание битов хвоста и исключает эти биты из итераций.

Размерности

Этот блок принимает M-by-1 входной сигнал вектор-столбца и выводит L-by-1 сигнал вектор-столбца. Для данной решетки L и M связаны:

L=(M2numTails)(2n1)

и

M=L(2n1)+ ​2numTails

где

M = декодер ввел длину

L = декодер вывел длину

n = log2 (решетка. NumOutputSymbols), для уровня 1/2 решетка, n = 2

numTails = log2 (trellis.numStates) * n

Упорядоченное расположение потока битов

Подсистема порядка битов реорганизовывает входящие данные в два потоковых входа логарифмического отношения правдоподобия (LLR) к составляющим декодерам. Эта подсистема восстанавливает второй систематический поток и переупорядочивает биты так, чтобы они совпадали с двумя составляющими энкодерами выходные параметры в передатчике. Эта подсистема упорядоченного расположения является инверсией подсистемы переупорядочения в турбо энкодере.

Параметры

Trellis structure

Структура решетки составляющего сверточного кода.

Задайте решетку как структуру MATLAB®, которая содержит описание решетки составляющего сверточного кода. В качестве альтернативы используйте функцию poly2trellis, чтобы создать пользовательскую решетку с помощью продолжительности ограничения, (восьмеричный) генератор кода, и (восьмеричная) связь обратной связи.

Структура по умолчанию является результатом poly2trellis (4, [13 15], 13).

Source of interleaver indices

Задайте источник interleaver индексов как Property или Input port.

Когда вы устанавливаете этот параметр на Property, блок использует параметр Interleaver indices, чтобы задать interleaver индексы.

Когда вы устанавливаете этот параметр на Input port, блок использует вторичный входной порт, IntrInd, чтобы задать interleaver индексы.

Interleaver indices

Задайте отображение что Турбо использование блока энкодера, чтобы переставить входные биты как вектор-столбец целых чисел. Значением по умолчанию является (64:-1:1).'. Это отображение является вектором с числом элементов, равным L, длине выходного сигнала. Каждый элемент должен быть целым числом между 1 и L без повторных значений.

Decoding algorithm

Задайте алгоритм декодирования что составляющее использование декодеров APP, чтобы декодировать входной сигнал как True APPMax Max . Когда вы устанавливаете этот параметр на:

  • True APP – реализации блока, верные по опыту декодирование вероятности

  • Max* или Max – блок использует приближения, чтобы увеличить скорость расчетов.

Number of scaling bits

Задайте количество битов, которые составляющие декодеры APP должны использовать, чтобы масштабировать входные данные, чтобы не терять точность во время расчетов. Декодер умножает вход на 2^Number of scaling bits и делит предварительный выход на тот же фактор. Значение для этого параметра должно быть скалярным целым числом между 0 и 8. Этот параметр только применяется, когда вы устанавливаете Decoding algorithm на Max*. Значением по умолчанию является 3.

Number of decoding iterations

Задайте количество декодирования итераций использование блока. Значением по умолчанию является 6. Блок выполняет итерации и обеспечивает обновления отношений логарифмической правдоподобности (LLR) незакодированных выходных битов. Выход блока является трудным решением выход итогового обновления LLR.

Simulate using

Задайте, симулирует ли блок использование Code generation или Interpreted execution. Значением по умолчанию является Interpreted execution.

Поддерживаемый тип данных

ПортПоддерживаемые типы данных
\in
  • 'double'

  • Единственный

  • 'double'

Примеры

Для примера, который использует Турбо блоки Декодера Энкодера и Турбо, смотрите Параллельное Конкатенированное Сверточное Кодирование: пример Турбокодов.

Парный блок

Turbo Encoder

Ссылки

[1] Berrou, C., А. Глэвиукс и П. Титимэджшима. "Около Шенноновского предельного кодирования с коррекцией ошибок и декодирования: турбокоды”, Продолжения Международной конференции IEEE по вопросам Коммуникаций, Женевы, Швейцария, май 1993, стр 1064–1070.

[2] Бенедетто, S., Г. Монторси, Д. Дивсэлэр и Ф. Поллара. “Модуль мягкого входа Мягкого Выхода Максимума следующей (MAP), чтобы декодировать параллельные и последовательные каскадные коды”, лаборатория реактивного движения отчет о выполнении работ TDA, издание 42-27, ноябрь 1996.

[3] Шлегель, Кристиан Б. и Ланс К. Перес. Решетчатое кодирование и турбокодирование, нажатие IEEE, 2004.

[4] 3GPP TS 36.212 v9.0.0, проект партнерства третьего поколения; сеть радиодоступа группы Технической характеристики; Развитый Универсальный Наземный Радио-доступ (к E-UTRA); Мультиплексирование и кодирование канала (релиз 9), 2009-12.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Представленный в R2011b