Turbo Decoder

Декодируйте входной сигнал с помощью параллельной конкатенированной схемы декодирования

  • Библиотека:
  • Communications Toolbox/Обнаружение и исправление ошибок/Сверточный

  • Turbo Decoder block

Описание

Блок Turbo Decoder декодирует входной сигнал с помощью параллельной конкатенированной схемы декодирования. Схема итерационного декодирования использует декодер апостериорной вероятности (APP) в качестве составляющего декодера, перемежителя и обратного перемежителя. Два составляющих декодера используют одну и ту же решетчатую структуру и алгоритм декодирования. Для получения дополнительной информации см. Parallel Concatenated Convolutional Decoding Scheme и APP Decoder.

Этот значок показывает блок с включенными всеми портами.

Turbo Decoder block with optional ports (IntrInd and InInd) enabled

Порты

Вход

расширить все

Параллельное конкатенированное кодовое слово, заданное как вектор-столбец длины M, где M - длина параллельного конкатенированного кодового слова.

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

Индексы перемежителя, заданные как вектор-столбец целых чисел. Вектор должен иметь L длину. Каждый элемент вектора должен быть целым числом в области значений [1, L] и должен быть уникальным. L - длина декодированного двоичного выходного сообщения, Out. Индексы перемежителя определяют отображение, используемое для перестановки входных бит в декодере.

Зависимости

Чтобы включить этот порт, установите параметр Source of interleaver indices равным Input port.

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

Входные индексы для упорядоченное расположение и прокалывания, используемые на полностью закодированных данных, заданные как вектор-столбец из целых чисел. Длина вектора InInd должна равняться длине вектора In входных данных. Значения элемента в векторе должны быть относительно полностью закодированных данных для схемы кодирования, включая хвостовые биты для всех потоков.

Зависимости

Чтобы включить этот порт, установите параметр Source of input indices равным Input port.

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

Выход

расширить все

Декодированное сообщение, возвращенное как двоичный вектор-столбец длины L, где L - длина декодированного двоичного выхода сообщения. Этот выход наследует свой тип данных от In вход.

Параметры

расширить все

Задайте шпалеру как MATLAB® структура, которая содержит описание решетки для K скорости ∕ N составляющего сверточного кода. K - количество входа битовых потоков, а N - количество выхода битовых потоков.

Примечание

K турбокодера должно быть 1. Для получения дополнительной информации смотрите Скорость кодирования.

Вы можете либо использовать poly2trellis функция для создания структуры шпалеры или создания ее вручную. Для получения дополнительной информации об этой структуре, см. Trellis Описание сверточного кода и istrellis функция.

Структура шпалеры содержит эти поля.

Количество символов, вводимых в энкодер, задается в виде целого числа, равного 2K, где K количество входа битовых потоков.

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

Количество символов, выводимых из энкодера, задается в виде целого числа, равного 2N, где N количество выхода битовых потоков.

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

Количество состояний в энкодере, заданное как степень 2.

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

Следующие состояния для всех комбинаций текущих состояний и токовых входов, заданных как матрица целых чисел. Размер матрицы должен быть numStates-by-2K.

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

Выходы для всех комбинаций состояний тока и входов тока, заданные как матрица восьмеричных чисел. Размер матрицы должен быть numStates-by-2K.

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

Укажите источник индексов перемежителя следующим Property или Input port.

  • Когда вы устанавливаете этот параметр Propertyблок использует параметр Interleaver indices, чтобы задать индексы перемежителя.

  • Когда вы устанавливаете этот параметр Input port, блок использует IntrInd входной порт для определения индексов перемежителя.

Задайте индексы перемежителя, которые определяют отображение, используемое для транспозиции бит кодового слова, входящих в декодер, в качестве вектора-столбца из целых чисел. Вектор должен иметь L длину. Каждый элемент вектора должен быть целым числом в области значений [1, L] и должен быть уникальным. L - длина декодированного двоичного выходного сообщения.

Зависимости

Чтобы включить этот параметр, установите параметр Source of interleaver indices равным Property.

Укажите источник входных индексов следующим Auto, Property, или Input port.

  • Когда вы устанавливаете этот параметр Autoблок вычисляет входные индексы, которые предполагают, что второй систематический поток проколот, и все хвостовые биты включены во вход.

  • Когда вы устанавливаете этот параметр Property, блок использует входные индексы, которые вы задаете для параметра Input indices.

  • Когда вы устанавливаете этот параметр Input portблок использует InInd входной порт, чтобы задать входные индексы. Длина вектора и значения для входных индексов и закодированного входного сигнала могут изменяться при каждом выполнении блока.

Задайте входные индексы для упорядоченное расположение и прокалывания, используемых на полностью закодированных данных в качестве вектора-столбца из целых чисел. Длина вектора этого параметра должна равняться длине вектора In входных данных.

Зависимости

Чтобы включить этот параметр, установите параметр Source of input indices равным Property.

Задайте алгоритм декодирования, который составляющие APP декодеры используют для декодирования входного сигнала как True APP, Max*, Max. Когда вы устанавливаете этот параметр True APP блок реализует истинное апостериорное вероятностное декодирование. Когда вы устанавливаете этот параметр Max* или Max блок использует приближения, чтобы увеличить скорость расчетов. Для получения дополнительной информации см. APP Decoder.

Укажите количество бит, которое составные декодеры APP должны использовать для масштабирования входных данных, чтобы избежать потери точности во время расчетов в качестве целого числа в область значений [0, 8]. Составляющие декодеры умножают вход на 2k и разделите предварительный выход на один и тот же коэффициент. k - значение параметра Number of scaling bits. Для получения дополнительной информации см. APP Decoder.

Зависимости

Это включает этот параметр, установите параметр Decoding algorithm равным Max*.

Задайте количество итераций декодирования, которые блок использует в качестве положительного целого числа. Блок итератирует и обеспечивает обновления логарифмических коэффициентов логарифмической правдоподобности (LLR) незакодированных выходных бит. Выходы блока являются выходами окончательного обновления LLR.

Тип выполняемой симуляции, заданный как Interpreted execution или Code generation.

  • Interpreted execution - Симулируйте модель с помощью интерпретатора MATLAB. Эта опция требует меньше времени запуска, чем Code generation метод, но скорость последующих симуляций медленнее. В этом режиме можно отлаживать исходный код блока.

  • Code generation - Симулируйте модель при помощи сгенерированного кода C. Первый раз, когда вы запускаете симуляцию, Simulink® генерирует код С для блока. Код С повторно используется для последующих симуляций, если модель не меняется. Эта опция требует дополнительного времени запуска, но скорость последующих симуляций быстрее Interpreted execution.

Характеристики блоков

Типы данных

double | single

Многомерные сигналы

no

Сигналы переменного размера

yes

Подробнее о

расширить все

Ссылки

[1] Бенедетто, С., Г. Монторси, Д. Дивсалар и Ф. Поллара. Модуль Soft-Input Soft-Output MAP для декодирования параллельных и последовательных конкатенированных кодов. Прогресс лаборатории реактивного движения TDA, 42-127 (ноябрь 1996 года).

[2] Viterbi, A.J. «Интуитивное обоснование и упрощенная реализация декодера MAP для сверточных кодов». IEEE Journal on Selected Areas in Communications 16, no. 2 (February 1998): 260-64. https://doi.org/10.1109/49.661114.

[3] Berrou, C., A. Glavieux, and P. Thitimajshima. Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes (неопр.) (недоступная ссылка). Материалы Международной конференции по коммуникациям ICC 93 - IEEE, Женева, Швейцария, май 1993, 1064-70 года. https://doi.org/10.1109/icc.1993.397441.

[4] Шлегель, Кристиан и Ланс Перес. Trellis и турбокодирование. Серия прессы IEEE по цифровой и мобильной связи. Piscataway, NJ; Hoboken, NJ: IEEE Press; Wiley-Interscience, 2004.

[5] 3GPP TS 36.212. «Мультиплексирование и канальное кодирование». 3rd Генерация Partnership Project; Группа технических спецификаций Radio Доступа Network; Evolved Universal Terrestrial Radio Access (E-UTRA). https://www.3gpp.org.

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

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.
Введенный в R2011b