Декодер APP

Декодируйте сверточный код с помощью метода по опыту вероятности (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) и блок Terminator Simulink® к выводу L (c).

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

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

Чтобы задать сверточный энкодер, который произвел закодированный вход, используйте параметр 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 аппроксимируют выражения как

журналiexp(ai)

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

Опция 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., Г. Монторси, Д. Дивсэлэр и Ф. Поллара, “Модуль Мягкого Входа Мягкого Вывода Максимума следующей (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