APP Decoder

Декодируйте convolutionally-закодированные значения LLR с помощью алгоритма MAP

  • Библиотека:
  • Wireless HDL Toolbox / Выявление ошибок и Коррекция

  • APP Decoder block

Описание

Блок APP Decoder декодирует convolutionally-закодированные значения отношения логарифмической правдоподобности (LLR) с помощью алгоритма декодирования максимума по опыту вероятности (MAP). Блок принимает закодированные и незакодированные значения LLR и samplecontrol соедините шиной, декодирует закодированные значения LLR и выводит обновленные версии закодированных и незакодированных значений LLR и samplecontrol шина.

Блок поддерживает два алгоритма декодирования: Max Log MAP (max) и Log MAP (max*). Можно выбрать алгоритм путем установки параметра Algorithm. Поддержки блока отключенные и усеченные режимы и эти уровни декодирования: 1/2, 1/3, 1/4, 1/5, 1/6, и 1/7. Блок обеспечивает архитектуру, подходящую для аппаратного развертывания и генерации HDL-кода.

Декодирование поддержек блока последовательных и параллельных каскадных кодов. Используя этот блок, можно создать турбо декодеры, пользовательские декодеры для каскадных кодов и коды продуктов для итеративного декодирования.

Порты

Входной параметр

развернуть все

Закодированные значения LLR в виде вектор-столбца с действительным знаком размера N-by-1, где N является уровнем декодирования в диапазоне от 2 до 7.

Размер входного вектора зависит от скорости кода блока. Блок выводит скорость кода из значения полинома генератора кода, заданного в маске блока. Блок поддерживает эти скорости кода: 1/2, 1/3, 1/4, 1/5, 1/6 или 1/7.

double и single типы данных поддерживаются для симуляции, но не для генерации HDL-кода. Для генерации HDL-кода блок поддерживает fixdt(1,WL,FL) тип данных и входной размер слова (WL) должны быть в диапазоне от 4 до 16.

Типы данных: single | double | int8 | int16 | signed fixed point

Незакодированные значения LLR в виде скаляра с действительным знаком.

double и single типы данных поддерживаются для симуляции, но не для генерации HDL-кода. Для генерации HDL-кода блок поддерживает fixdt(1,WL,FL) тип данных и входной размер слова (WL) должны быть в диапазоне от 4 до 16.

Типы данных: single | double | int8 | int16 | signed fixed point

Управляющие сигналы, сопровождающие демонстрационный поток в виде samplecontrol шина. Шина включает startконец, и valid управляющие сигналы, которые указывают на контуры системы координат и валидность выборок.

  • start — Указывает на запуск входного кадра

  • end — Указывает на конец входного кадра

  • valid — Указывает, что данные по порту входа data допустимы

Для большего количества детали смотрите Демонстрационную Шину управления.

Типы данных: bus

Вывод

развернуть все

Незакодированные значения LLR, возвращенные как скаляр с действительным знаком. Тип выходных данных совпадает с типом входных данных.

Для входных параметров fixed point тип данных, выходной размер слова увеличивается floor(log2 (N)) + floor(log2 (K – 1)) + 2 бита. N является скоростью кода, и K является продолжительностью ограничения блока.

Типы данных: single | double | int8 | int16 | fixed point

Закодированные значения LLR, возвращенные как вектор-столбец с действительным знаком размера N-by-1. Тип выходных данных совпадает с типом входных данных.

Для fixed point входные параметры, выходной размер слова увеличивается floor(log2 (N)) + floor(log2 (K – 1)) + 2 бита, где N является скоростью кода и K, являются продолжительностью ограничения блока.

Типы данных: single | double | int8 | int16 | fixed point

Управляющие сигналы, сопровождающие демонстрационный поток, возвращенный как samplecontrol шина. Шина включает startконец, и valid управляющие сигналы, которые указывают на контуры системы координат и валидность выборок.

  • start — Указывает на запуск выходной системы координат

  • end — Указывает на конец выходной системы координат

  • valid — Указывает, что данные по порту выхода data допустимы

Для большего количества детали смотрите Демонстрационную Шину управления.

Типы данных: bus

Блокируйте готовый индикатор, возвращенный как булев скаляр.

Блок устанавливает этот сигнал на 1 TRUE) когда блок готов принять запуск следующей системы координат. Если блок получает сигнал входа ctrl.start, в то время как nextFrame является 0 ложь), блок отбрасывает происходящую систему координат и начинает обрабатывать новые данные.

Типы данных: Boolean

Параметры

развернуть все

Задайте 1 n вектором из восьмеричных значений, где n является длиной полинома. Блок принимает полиномы от 2 до 7 элементов долго.

Блок выводит продолжительность ограничения и скорость кода на основе заданного полинома генератора кода. Задайте полином генератора кода таким способом, которым продолжительность ограничения находится в диапазоне от 3 до 9, и скорости кода являются 1/2, 1/3, 1/4, 1/5, 1/6, или 1/7.

Для получения дополнительной информации о том, как задать полином генератора кода для декодирования блоков, см. Описание Решетки Сверточного кода.

Выберите метод завершения, чтобы задать конец поведения системы координат.

  • Truncated — Блок сбрасывает метрики состояния после каждой системы координат, запускается во все-нулевом состоянии и заканчивает состоянием "не все нули". Шина входа ctrl квалифицирует входные выборки и отмечает контуры системы координат.

  • Terminated — Блок сбрасывает метрики состояния после каждой системы координат и начал и концов во все-нулевом состоянии. Шина входа ctrl квалифицирует входные выборки и отмечает контуры системы координат.

Выберите тип декодирования алгоритма.

  • Max Log MAP (max) — Логарифмическое приближение MAP Max

  • Log MAP (max*) — Регистрируйте приближение MAP

Для получения дополнительной информации об этих алгоритмах, см. [1].

Окно, на котором алгоритм MAP должен быть выполнен в виде целого числа в диапазоне от 3 до 128. Это целое число представляет длину окна.

Для лучших результатов эффективности блока рекомендуемая длина окна является по крайней мере пять раз продолжительностью ограничения.

Выберите этот параметр, чтобы отключить выходной порт LLRc от блока. Очистите этот параметр, чтобы включить выходному порту LLRc на блоке.

Алгоритмы

развернуть все

Чтобы выполнить декодирование MAP, блок использует Bahl, Cocke, Jalinek и Raviv (BCJR) алгоритм. Блок реализует декодирование MAP с помощью логарифмического приближения MAP, или макс. регистрируйте алгоритм аппроксимации MAP. Можно выбрать алгоритм с помощью параметра Algorithm. Эти алгоритмы реализуют декодирование по опыту вероятности (APP). Макс. логарифмическая опция приближения MAP использует макс. (ai) в качестве приближения, в то время как логарифмическая опция приближения MAP использует макс. (ai) плюс термин коррекции, данный ln(1+exp(|ai1ai|)) [1].

Ссылки

[1] Viterbi, A.J. “Интуитивное Выравнивание и Упрощенное внедрение Декодера MAP для Сверточных кодов”. Журнал IEEE на Выбранных областях в Коммуникациях 16, № 2 (февраль 1998): 260–64. https://doi.org/10.1109/49.661114.

[2] Бенедетто, S., Д. Дивсэлэр, Г. Монторси и Ф. Поллара. “Модуль APP Soft-Input Soft-Output для Итеративного Декодирования Каскадных кодов”. Коммуникационные Буквы IEEE 1, № 1 (январь 1997): 22–24. https://doi.org/10.1109/4234.552145.

[3] Бенедетто, S. и Г. Монторси. “Эффективность Непрерывных и Blockwise Декодируемые Турбокоды”. Коммуникационные Буквы IEEE 1, № 3 (май 1997): 77–79. https://doi.org/10.1109/4234.585802.

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

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

Блоки

Введенный в R2021b