Сверточный декодер

Декодируйте сверточно закодированное демонстрационное использование алгоритм Viterbi

  • Библиотека:
  • LTE HDL Toolbox / Выявление ошибок и Исправление

Описание

Блок Convolutional Decoder реализует всеобъемлющий алгоритм Viterbi (WAVA), чтобы декодировать выборки, закодированные с кусающими хвост полиномами, заданными TS 36.212 [1] стандарта LTE. Сверточный код имеет продолжительность ограничения 7 и является хвостом, резким с кодированием уровня 1/3 и восьмеричные полиномы G0=133, G1=171 и G2=165. Блок обеспечивает аппаратную оптимизированную архитектуру и интерфейс.

Этот блок использует демонстрационный интерфейс потоковой передачи с шиной для связанных управляющих сигналов. Этот интерфейс позволяет блоку действовать независимо от формата кадра и соединиться легко с другими блоками LTE HDL Toolbox™. Блок принимает и возвращает значение, представляющее одну выборку и шину, содержащую три управляющих сигнала. Эти сигналы указывают на валидность каждой выборки и контуры кадра. Чтобы преобразовать матрицу в демонстрационный поток и эти управляющие сигналы, используйте блок Frame To Samples или функцию ltehdlFramesToSamples. Для полного описания интерфейса смотрите Демонстрационный Интерфейс Потоковой передачи.

Блок принимает входные выборки, представляющие мягкие или трудные решения. Каждая выборка является вектором 3 на 1, где эти три значения представляют биты, закодированные этими тремя полиномами, [G0 G1 G2].

Декодирование сообщения выборок M требует 2*M+140 циклы, принимая непрерывный допустимый вход. Поэтому необходимо уехать, по крайней мере, который структурируют много неактивных циклов между входом. Также можно использовать выходной сигнал ctrl.end, чтобы определить, когда блок готов к новому входу.

Эта форма волны показывает входной сигнал 100 выборок с 340 неактивными циклами между кадрами. Входные данные являются вектором трех закодированных битов. Ввод и вывод шины ctrl расширен, чтобы показать управляющие сигналы. start и end показывают контуры кадра, и valid квалифицирует выборки данных.

Порты

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

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

Введите выборку, заданную как вектор-столбец 3 на 1. Блок выполняет декодирование мягкого решения, когда входной тип является подписанной фиксированной точкой или целым числом со знаком, или выполняет декодирование трудного решения, когда входным типом является Boolean или fixdt(0,1,0). Блок выполняет неквантованное декодирование мягкого решения для single и типов double, но этот режим не поддержан для генерации HDL-кода.

Для аппаратной реализации мягкого решения, целого числа или фиксированной точки, которая равняется трем или четыре бита шириной, рекомендуется. Этот входной размер слова достигает, декодируют производительность при оптимизации синхронизации и использования ресурса, когда проект синтезируется к FPGA. Тип входных данных должен быть меньше чем 16 битов шириной. Внутренние типы данных выведены от этого типа данных, и более низкие типы точности могут привести к потере декодирования производительности.

Меньше значений, чем нуль наиболее вероятны логический 0, в то время как значения, больше, чем нуль, наиболее вероятны логический 1. Абсолютное значение определяет уровень уверенности. Например, таблица показывает доверительные уровни, используемые, если входом является sfix4 (WL =4, FL =0).

Мягкое значение–8, –7, –6, –5, –4, –3, –2, –101, 2, 3, 4, 5, 6, 7
Логический уровеньлогический 0неизвестныйлогический 1
Уверенностьвысокий → низко'none'низкий → высоко

Типы данных: Boolean | fixdt(0,1,0) | fixdt(1,WL,FL) | int8 | int16 | single | double

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

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

Вывод

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

Выведите выборку, возвращенную как бинарное скалярное значение.

double и single поддерживаются для симуляции, но не для генерации HDL-кода.

Типы данных: single | double | Boolean | ufix1

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

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

Параметры

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

Максимальный входной формат кадра, заданный как положительное целое число от 6 до 2 048. Блок использует этот параметр, чтобы определить сумму RAM, требуемого сохранить промежуточные решения. Если вы не задаете степень двойки, блок использует следующую самую большую степень двойки.

Если входной кадр больше, чем заданная максимальная длина сообщения, блок возвращает предупреждение.

Алгоритмы

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

Блок Convolutional Decoder реализует всеобъемлющий алгоритм Viterbi (WAVA). Входной сигнал циклически расширен, чтобы обеспечить учебные выборки для Декодера Витерби. Этот алгоритм работает с кусающими хвост сверточными энкодерами, где состояние энкодера является тем же самым вначале и концом сообщения.

Схема показывает высокоуровневое представление архитектуры декодера.

Во-первых, блок расширяет сообщение путем повторения 2*T выборки сообщения, где T является 40 выборками. Это значение T обеспечивает баланс между частотой ошибок по битам (BER) и оптимизирующий аппаратные ресурсы. Блок использует расширенное сообщение, чтобы вычислить метрики ответвления, метрики состояния, и операции использования выборов при разветвлении "добавляют, сравнивают выбор". Метрические размеры слова выведены от типа данных входной выборки. Блок хранит представление решетки, которая основана на вычисленных решениях. Затем это выполняет декодирование traceback. Если демонстрационные значения сообщения решены, блок удаляет дублирующиеся учебные выборки и переупорядочивает выборки для вывода.

Ссылки

[1] 3GPP TS 36.212. "Мультиплексирование и кодирование канала". Проект Партнерства третьего поколения; Сеть радиодоступа Technical Specification Group; Развитый Универсальный Наземный Радио-доступ (к E-UTRA). URL: http://www.3gpp.org.

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

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

Блоки

Функции

Введенный в R2017b