Декодируйте сверточный код с помощью метода по опыту вероятности (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 (Simulink) к входу L (u) и блок (Simulink) Simulink® Terminator к выходу L (c).
Этот блок принимает single
и double
типы данных. Оба входных параметров, однако, должны иметь тот же тип. Тип выходных данных совпадает с типом входных данных.
Чтобы задать сверточный энкодер, который произвел закодированный вход, используйте параметр Trellis structure. Этот параметр является структурой MATLAB®, формат которой описан в Описании Решетки Сверточного кода. Можно использовать это поле параметра двумя способами:
Если у вас есть переменная в рабочем пространстве MATLAB, которое содержит структуру решетки, введите ее имя как параметр Trellis structure. Этот путь предпочтителен, потому что он заставляет Simulink проводить меньше времени, обновляя схему в начале каждой симуляции, по сравнению с использованием, описанным затем.
Если вы хотите задать энкодер с помощью его продолжительности ограничения, полиномы генератора, и возможно полиномы связи обратной связи, используют a 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
опции аппроксимируют выражения как
другими количествами. Max
опция использует макс. (ай) в качестве приближения, в то время как Max*
опция использует макс. (ай) плюс срок коррекции, данный
[3].
Max*
опция включает параметр Scaling bits в диалоговом окне. Этот параметр является количеством битов, которыми блок масштабирует данные, которые это обрабатывает внутренне (умножает вход на (2^numScalingBits
) и делит предварительный выход на тот же фактор). Используйте этот параметр, чтобы не терять точность во время расчетов.
Структура MATLAB, которая содержит описание решетки сверточного энкодера.
Любой Truncated
или Terminated
. Этот параметр указывает, как сверточный энкодер обрабатывает решетку вначале и конец систем координат.
Любой True APP
Max
, или Max
.
Целое число между 0 и 8, который указывает тем, сколько битов декодер масштабирует данные во избежание проигрывающей точности. Это поле активно только, когда Algorithm установлен в Max*
.
Установите этот флажок, чтобы отключить вторичный блок выход, 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.