APP Decoder

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

Библиотека

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

Описание

Блок 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 к входу L (u) и блок Simulink® Terminator к выходу L (c).

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

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

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

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

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

    poly2trellis(7,[171 133],171)

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

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

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

logiexp(ai)

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

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

Параметры

Trellis structure

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

Termination method

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

Algorithm

Любой True APPMax , или Max.

Number of scaling bits

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

Disable L(c) output port

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

Примеры

Для примера с помощью этого блока смотрите, что Итеративное Декодирует Последовательно Конкатенированного примера Сверточного кода.

Ссылки

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

[2] Бенедетто, Серджио и Гидо Монторси, “Производительность непрерывных и Blockwise декодируемые турбокоды”. Коммуникационные буквы IEEE, издание 1, май 1997, 77–79.

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

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

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

Смотрите также

Блоки

Функции

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