APP Decoder

Декодируйте сверточный код с помощью метода апостериорной вероятности (APP)

Библиотека

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

  • APP Decoder block

Описание

Блок APP Decoder выполняет апостериорное декодирование (APP) сверточного кода.

Входные сигналы и Выход сигналы

Входной L (u) представляет последовательность логарифмических вероятностей входных битов энкодера, в то время как входной L (c) представляет последовательность логарифмических вероятностей кодовых битов. Выходы L (u) и L (c) являются обновленными версиями этих последовательностей на основе информации о энкодере.

Если сверточный код использует алфавит 2n возможные символы, векторы L (c) этого блока имеют длину Q * n для некоторых положительных целочисленных Q. Точно так же, если декодированные данные используют алфавит 2k возможные выходные символы, тогда векторы L (u) этого блока имеют длину Q * k.

Этот блок принимает вектор-столбец входной сигнал с любым положительным целым числом для Q.

Если вам нужны только входной L (c) и выходной L (u), можно прикрепить блок Simulink Ground (Simulink) к входному L (u) и Simulink® Terminator (Simulink) блока к выходу L (c).

Этот блок принимает single и double типы данных. Оба входа, однако, должны быть одного типа. Тип выходных данных совпадает с типом входных данных.

Определение энкодера

Чтобы задать сверточный энкодер, который произвел закодированный вход, используйте параметр Trellis structure. Этот параметр является MATLAB® структура, формат которой описан в Trellis Description of a Convolutional Code. Вы можете использовать это поле параметра двумя способами:

  • Если в рабочем пространстве MATLAB есть переменная, содержащая структуру шпалеры, введите ее имя как Trellis structure параметр. Этот способ предпочтителен, потому что он заставляет Simulink тратить меньше времени на обновление схемы в начале каждой симуляции по сравнению с использованием, описанным далее.

  • Если вы хотите задать энкодер, используя его ограниченную длину, полиномы генератора и, возможно, полиномы связи с обратной связью, используйте poly2trellis команда в поле Trellis structure. Для примера, чтобы использовать энкодер с ограничительной длиной 7, полиномами генератора кода 171 и 133 (в октальных числах) и соединением обратной связи 171 (в восьмиугольнике), установите параметр Trellis structure на

    poly2trellis(7,[171 133],171)

Чтобы указать, как энкодер обрабатывает шпалеру в начале и конце каждой системы координат, задайте значение параметра Termination method Truncated или Terminated. The Truncated опция указывает, что энкодер сбрасывается в состояние «все нули» в начале каждой системы координат. The Terminated опция указывает, что энкодер заставляет шпиндель заканчивать каждую систему координат в состоянии «все нули». Если вы используете блок Convolutional Encoder с Operation mode набора параметров, чтобы Truncated (reset every frame), используйте Truncated опция в этом блоке. Если вы используете блок Convolutional Encoder с Operation mode набора параметров, чтобы Terminate trellis by appending bits, используйте Terminated опция в этом блоке.

Определение деталей алгоритма

Можно управлять частью алгоритма декодирования, используя параметр Algorithm. The True APP опция реализует апостериорное декодирование вероятностей согласно уравнениям 20-23 в разделе V [1]. Чтобы увеличить скорость, оба Max* и Max опции аппроксимируют выражения, такие как

logiexp(ai)

другими количествами. The Max опция использует max (ai) в качестве приближения, в то время как Max* опция использует max (ai) плюс коррекцию термин, заданный какln(1+exp(|ai1ai|)) [3].

The Max* опция включает параметр Scaling bits в диалоговом окне. Этот параметр является количеством бит, на которое блок масштабирует данные, которые он обрабатывает внутри (умножает вход на (2 ^ numScalingBits) и делит предварительный выход на тот же коэффициент). Используйте этот параметр, чтобы избежать потери точности во время расчетов.

Параметры

Trellis structure

Структура MATLAB, которая содержит описание решетки сверточного энкодера.

Termination method

Либо Truncated или Terminated. Этот параметр указывает, как сверточный энкодер обрабатывает шпалеру в начале и конце системы координат.

Algorithm

Либо True APP, Max*, или Max.

Number of scaling bits

Целое число от 0 до 8, которое указывает, сколько биты декодер шкал данные в порядок, чтобы избежать потери точности. Это поле активно только, когда Algorithm установлено на Max*.

Disable L(c) output port

Установите этот флажок, чтобы отключить выход вторичного блока L (c).

Ссылки

[1] Бенедетто, S., Г. Монторси, Д. Дивсэлэр и Ф. Поллара, «Maximum A Posterior (MAP) Мягкого Входа Мягкого Выхода модуль, чтобы расшифровать параллельные и последовательные связанные коды», отчет о выполнении работ JPL TDA, издание 42-127, ноябрь 1996.

[2] Benedetto, Sergio and Guido Montorsi, «Performance of Continuous and Blockwise Decoded Turbo Codes». IEEE Communications Letters, том 1, май 1997 года, 77-79.

[3] Витерби, Эндрю Дж., «Интуитивное обоснование и упрощенная реализация декодера MAP для сверточных кодов», Журнал IEEE по отдельным областям в коммуникациях, том 16, февраль 1998, 260-264.

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

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

.

См. также

Блоки

Функции

Представлено до R2006a