Turbo Encoder

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

  • Библиотека:
  • Communications Toolbox / Выявление ошибок и Коррекция / Сверточный

  • Turbo Encoder block

Описание

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

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

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

Порты

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

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

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

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

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

Зависимости

Чтобы включить этот порт, установите свойство 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 функция, чтобы создать структуру решетки или создать его вручную. Для больше об этой структуре, см. Описание Решетки Сверточного кода и istrellis функция.

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

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

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

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

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

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

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

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

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

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

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

Задайте источник interleaver индексов как Property или Input port.

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

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

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

Зависимости

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

Задайте источник выходных индексов как AutoСвойство, или Input port.

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

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

  • Когда вы устанавливаете этот параметр на 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® генерирует код С для блока. Код С снова используется для последующих симуляций, если модель не изменяется. Эта опция требует дополнительного времени запуска, но скорость последующих симуляций быстрее, чем Interpreted execution.

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

Типы данных

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

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

no

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

yes

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

Больше о

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

Ссылки

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

[2] Бенедетто, S., Г. Монторси, Д. Дивсэлэр и Ф. Поллара. "Модуль Мягкого Входа Мягкого Выхода Максимума следующего (MAP), чтобы декодировать параллельные и последовательные каскадные коды". Лаборатория реактивного движения отчет о выполнении работ TDA, 42–127, (ноябрь 1996).

[3] Шлегель, христианин, и Ланс Перес. Решетчатое кодирование и турбокодирование. IEEE нажимает Series on Digital & Mobile Communication. Пискатауэй, NJ  ; Хобокен, NJ: нажатие IEEE  ; Wiley-межнаука, 2004.

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

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

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

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

Блоки

Функции

Объекты

Представленный в R2011b