exponenta event banner

Декодер APP

Декодирование сверточного кода методом апостериорной вероятности (APP)

Библиотека

Сверточный поддиапазон обнаружения и исправления ошибок

  • APP Decoder block

Описание

Блок декодера APP выполняет декодирование апостериорной вероятности (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 типы данных. Оба входа, однако, должны быть одного типа. Тип выходных данных совпадает с типом входных данных.

Указание кодировщика

Чтобы определить сверточный кодер, который создал кодированный вход, используйте параметр структуры решетки. Этот параметр представляет собой структуру MATLAB ®, формат которой описан в описании сверточного кода Trellis. Это поле параметра можно использовать двумя способами:

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

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

    poly2trellis(7,[171 133],171)

Чтобы указать, как кодер обрабатывает решетку в начале и конце каждого кадра, установите для параметра метода завершения значение Truncated или Terminated. Truncated указывает, что кодер сбрасывает все нули в начале каждого кадра. Terminated указывает, что кодер заставляет решетку заканчивать каждый кадр в состоянии «все нули». Если используется блок «Сверточный кодировщик» с параметром «Режим работы», равным Truncated (reset every frame), используйте Truncated в этом блоке. Если используется блок «Сверточный кодировщик» с параметром «Режим работы», равным Terminate trellis by appending bits, используйте Terminated в этом блоке.

Указание подробных данных алгоритма

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

log∑iexp (ай)

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

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

Параметры

Решетчатая конструкция

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

Метод прекращения

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

Алгоритм

Также True APP, Max*, или Max.

Количество битов масштабирования

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

Отключить выходной порт L (c)

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

Ссылки

[1] Бенедетто, С., Г. Монторси, Д. Дивсалар и Ф. Поллара, «Модуль Soft-Input Soft-Output Maximum A Posterior (MAP) для декодирования параллельных и последовательных конкатенированных кодов», JPL TDA Progress Report, Vol. 42-

[2] Бенедетто, Серджио и Гвидо Монторси, «Производительность непрерывных и блоковых декодированных турбокодов». IEEE Communications Letters, том 1, май 1997 года, 77-79.

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

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