Декодируйте входной сигнал с помощью параллели, конкатенированной, декодируя схему
Сверточная подбиблиотека Выявления ошибок и Коррекции
Блок Turbo Decoder декодирует входной сигнал с помощью параллели, конкатенированной, декодируя схему. Итеративная схема декодирования использует декодер по опыту вероятности (APP) в качестве составляющего декодера, interleaver и deinterleaver.
Два составляющих декодера используют ту же структуру решетки и алгоритм декодирования.
Предыдущая блок-схема иллюстрирует, что декодеры APP (помеченный как модули SISO в предыдущем изображении) выводят обновленную последовательность логарифмической правдоподобности входных битов энкодера, π (u; O. Эта последовательность основана на полученной последовательности логарифмической правдоподобности (закодированных) битов канала, π (c; I), и параметры кода.
Блок декодера итеративно обновляет эти вероятности для постоянного числа декодирования итераций и затем выводит биты решения. interleaver (π), который использует декодер, идентичен тому использование энкодера. deinterleaver (π-1) выполняет обратное сочетание относительно interleaver. Декодер не принимает знание битов хвоста и исключает эти биты из итераций.
Этот блок принимает M-by-1 входной сигнал вектор-столбца и выводит L-by-1 сигнал вектор-столбца. Для данной решетки L и M связаны:
и
где
M = декодер ввел длину
L = декодер вывел длину
n = log2 (решетка. NumOutputSymbols), для уровня 1/2 решетка, n = 2
numTails = log2 (trellis.numStates) * n
Подсистема порядка битов реорганизовывает входящие данные в два потоковых входа логарифмического отношения правдоподобия (LLR) к составляющим декодерам. Эта подсистема восстанавливает второй систематический поток и переупорядочивает биты так, чтобы они совпадали с двумя составляющими энкодерами выходные параметры в передатчике. Эта подсистема упорядоченного расположения является инверсией подсистемы переупорядочения в турбо энкодере.
Структура решетки составляющего сверточного кода.
Задайте решетку как структуру MATLAB®, которая содержит описание решетки составляющего сверточного кода. В качестве альтернативы используйте функцию poly2trellis, чтобы создать пользовательскую решетку с помощью продолжительности ограничения, (восьмеричный) генератор кода, и (восьмеричная) связь обратной связи.
Структура по умолчанию является результатом poly2trellis (4, [13 15], 13).
Задайте источник interleaver индексов как Property
или Input port
.
Когда вы устанавливаете этот параметр на Property
, блок использует параметр Interleaver indices, чтобы задать interleaver индексы.
Когда вы устанавливаете этот параметр на Input port
, блок использует вторичный входной порт, IntrInd, чтобы задать interleaver индексы.
Задайте отображение что Турбо использование блока энкодера, чтобы переставить входные биты как вектор-столбец целых чисел. Значением по умолчанию является (64:-1:1).'
. Это отображение является вектором с числом элементов, равным L, длине выходного сигнала. Каждый элемент должен быть целым числом между 1 и L без повторных значений.
Задайте алгоритм декодирования что составляющее использование декодеров APP, чтобы декодировать входной сигнал как True APP
Max
Max
. Когда вы устанавливаете этот параметр на:
True APP
– реализации блока, верные по опыту декодирование вероятности
Max*
или Max
– блок использует приближения, чтобы увеличить скорость расчетов.
Задайте количество битов, которые составляющие декодеры APP должны использовать, чтобы масштабировать входные данные, чтобы не терять точность во время расчетов. Декодер умножает вход на 2^Number of scaling bits и делит предварительный выход на тот же фактор. Значение для этого параметра должно быть скалярным целым числом между 0
и 8
. Этот параметр только применяется, когда вы устанавливаете Decoding algorithm на Max*
. Значением по умолчанию является 3
.
Задайте количество декодирования итераций использование блока. Значением по умолчанию является 6
. Блок выполняет итерации и обеспечивает обновления отношений логарифмической правдоподобности (LLR) незакодированных выходных битов. Выход блока является трудным решением выход итогового обновления LLR.
Задайте, симулирует ли блок использование Code generation
или Interpreted execution
. Значением по умолчанию является Interpreted execution
.
Порт | Поддерживаемые типы данных |
---|---|
\in |
|
|
Для примера, который использует Турбо блоки Декодера Энкодера и Турбо, смотрите Параллельное Конкатенированное Сверточное Кодирование: пример Турбокодов.
[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.