Декодируйте сверточный код с помощью метода апостериорной вероятности (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® 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
опции аппроксимируют выражения, такие как
другими количествами. The Max
опция использует max (ai) в качестве приближения, в то время как Max*
опция использует max (ai) плюс коррекцию термин, заданный как
[3].
The Max*
опция включает параметр Scaling bits в диалоговом окне. Этот параметр является количеством бит, на которое блок масштабирует данные, которые он обрабатывает внутри (умножает вход на (2 ^ numScalingBits
) и делит предварительный выход на тот же коэффициент). Используйте этот параметр, чтобы избежать потери точности во время расчетов.
Структура MATLAB, которая содержит описание решетки сверточного энкодера.
Либо Truncated
или Terminated
. Этот параметр указывает, как сверточный энкодер обрабатывает шпалеру в начале и конце системы координат.
Либо True APP
, Max*
, или Max
.
Целое число от 0 до 8, которое указывает, сколько биты декодер шкал данные в порядок, чтобы избежать потери точности. Это поле активно только, когда Algorithm установлено на Max*
.
Установите этот флажок, чтобы отключить выход вторичного блока 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.