Turbo Encoder

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

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

  • Turbo Encoder block

Описание

Блок Turbo Encoder кодирует двоичный входной сигнал с помощью схемы параллельного конкатенированного кодирования. Эта схема кодирования использует два одинаковых сверточных энкодеров и один внутренний перемежитель. Каждый составляющий энкодер независимо оконечен хвостовыми битами. Для получения дополнительной информации о составляющих кодерах смотрите Схему параллельного конкатенированного сверточного кодирования.

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

Turbo Encoder block with optional ports (IntrInd and OutInd) enabled

Порты

Вход

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

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

Типы данных: double | int8 | fi(data,0,1)

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

Зависимости

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

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

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

Настраиваемый: Да

Зависимости

Чтобы включить этот порт, задайте значение свойства Source of output indices Input port.

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

Выход

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

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

Типы данных: double | int8 | fi(data,0,1)

Параметры

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

Задайте шпалеру как 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, где L - длина двоичного входного сообщения. Каждый элемент вектора должен быть целым числом в области значений [1, L] и должен быть уникальным. Индексы перемежителя определяют отображение, используемую для перестановки входа бит в энкодере.

Зависимости

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

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

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

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

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

Задайте выходные индексы для упорядоченное расположение и прокалывания, используемых на полностью закодированных данных в качестве вектора-столбца из целых чисел. Количество бит выхода от энкодера равно длине этого параметра. Максимальная длина не должна превышать полностью закодированную длину (L + mLen) × <reservedrangesplaceholder3> × 2), где L - длина вектора входа, mLen - длина памяти, и N число закодированных потоков учредительного кодера.

Зависимости

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

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

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

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

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

Типы данных

Boolean | double | фиксированную точку[a] | integer | single

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

no

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

yes

[a] только ufix (1).

Подробнее о

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

Ссылки

[1] 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.

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

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

[4] 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