exponenta event banner

Турбокодер

Кодирование двоичных данных с использованием схемы параллельного конкатенированного кодирования

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

  • Turbo Encoder block

Описание

Блок турбокодера кодирует двоичный входной сигнал, используя схему параллельного конкатенированного кодирования. Эта схема кодирования использует два идентичных сверточных кодера и один внутренний перемежитель. Каждый составной кодер независимо оканчивается хвостовыми битами. Дополнительные сведения о компонентных кодерах см. в разделе Схема параллельного конкатенированного сверточного кодирования.

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

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

Продукция

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

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

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

Параметры

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Зависимости

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

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

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

  • При установке для этого параметра значения Propertyблок использует выходные индексы, указанные для параметра «Выходные индексы».

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

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

Зависимости

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

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

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

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

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

Типы данных

Boolean | double | fixed point[a] | integer | single

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

no

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

yes

[a] ufix (1).

Подробнее

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

Ссылки

[1] Берру, К., А. Главье и П. Титимаджсима. «Около предела Шеннона - исправление ошибок при кодировании и декодировании: турбокоды». Материалы Международной конференции МТП 93-IEEE по коммуникациям, Женева, Швейцария, май 1993 года, 1064-70. https://doi.org/10.1109/icc.1993.397441.

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

[3] Шлегель, Кристиан и Лэнс Перес. Решетка и турбокодирование. Серия IEEE Press по цифровой и мобильной связи. Пискатауэй, Нью-Джерси; Хобокен, Нью-Джерси: IEEE Press; Wiley-Interscience, 2004.

[4] 3GPP TS 36.212. «Мультиплексирование и канальное кодирование». Проект партнерства 3-го поколения; техническая спецификация на сеть радиодоступа группы; Усовершенствованный универсальный наземный радиодоступа (E-UTRA). https://www.3gpp.org.

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.
Представлен в R2011b