exponenta event banner

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

Создание сверточного кода из двоичных данных

Библиотека

Сверточный поддиапазон обнаружения и исправления ошибок

  • Convolutional Encoder block

Описание

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

Этот блок может принимать входные данные, изменяющиеся по длине во время моделирования. Дополнительные сведения о сигналах переменного размера см. в разделе Основы сигналов переменного размера (Simulink).

Размеры ввода и вывода

Если кодер принимает k входных битовых потоков (то есть он может принимать 2k возможных входных символов), длина блочного входного вектора равна L * k для некоторого положительного целого L. Аналогично, если кодер производит n выходных битовых потоков (то есть он может генерировать 2n возможных выходных символов), длина блочного выходного вектора равна L * n.

Этот блок принимает входной сигнал вектора столбца с любым положительным целым числом для L. Для входов переменного размера L может изменяться во время моделирования. Работа блока регулируется параметром Operation mode.

Как для входов, так и для выходов портов данных блок поддерживает double, single, boolean, int8, uint8, int16, uint16, int32, uint32, и ufix1. Типы данных порта наследуются из сигналов, управляющих блоком. Входной порт сброса поддерживает double и boolean набранные сигналы.

Указание кодировщика

Для определения сверточного кодера используйте параметр структуры решетки. Этот параметр представляет собой структуру MATLAB ®, формат которой описан в описании сверточного кода Trellis. Это поле параметра можно использовать двумя способами:

  • Если в рабочем пространстве MATLAB имеется переменная, содержащая решетчатую структуру, введите ее имя в параметр решетчатой структуры. Этот способ является предпочтительным, поскольку он заставляет Simulink ® тратить меньше времени на обновление диаграммы в начале каждого моделирования по сравнению с использованием, описанным ниже.

  • Если необходимо указать кодер, используя его длину ограничения, полиномы генератора и, возможно, полиномы соединения обратной связи, используйте poly2trellis в параметре структуры решетки. Например, чтобы использовать кодер с длиной ограничения 7, полиномы генератора кода 171 и 133 (в восьмеричных числах) и соединение обратной связи 171 (в восьмеричном), задайте для параметра структуры Решетка значение

    poly2trellis(7,[171 133],171)

Регистры кодера начинаются в состоянии «все нули». Установите для параметра Operation mode значение Reset on nonzero input via port сброс всех регистров кодировщика в состояние «все нули» во время моделирования. При выборе этого параметра открывается второй входной порт с меткой Rst, который принимает скалярный входной сигнал. Когда входной сигнал не равен нулю, блок сбрасывается перед обработкой данных на первом входном порте. Для сброса блока после обработки данных на первом входном порте выберите действие Delay reset to next time step.

Параметры

Решетчатая конструкция

Структура MATLAB, которая содержит решетчатое описание сверточного кодера.

Режим работы

В Continuous В этом режиме блок сохраняет состояния кодера в конце каждого входа для использования со следующим кадром.

В Truncated (reset every frame) в режиме блок обрабатывает каждый вход независимо. Состояния кодера сбрасываются в состояние всех нулей в начале каждого входа.

Примечание

Когда этот блок выводит последовательности, варьирующиеся по длине во время моделирования, и устанавливается режим «Работа» Truncated (reset every frame) или Terminate trellis by appending bitsсостояние блока сбрасывается на каждом шаге времени ввода.

В Terminate trellis by appending bits в режиме блок обрабатывает каждый вход независимо. Для каждого входного кадра дополнительные биты используются для установки состояний кодера в состояние всех нулей в конце кадра. Выходная длина задаётся y=n⋅ (x + s )/k, где x - количество входных битов, а s = длина ограничения − 1 (или, в случае множественных длин ограничения, s =sum(ConstraintLength(i)-1)).

Примечание

Этот блок работает для случаев k≥1, где он имеет одинаковые значения для длин ограничений в каждом входном потоке (например, длины ограничений [2 2] или [7 7] будут работать, но [5 4] не будут работать).

В Reset on nonzero input via port режим, блок имеет дополнительный входной порт, помеченный Rst. Когда Rst вход ненулевой, кодер сбрасывается в состояние «все нули».

Отложить действие сброса на следующий шаг времени

При выборе действия «Задержка сброса» на следующий шаг времени блок сверточного кодера сбрасывается после вычисления закодированных данных. Этот флажок появляется только в том случае, если для параметра Operation mode установлено значение Reset on nonzero input via port.

Задержка в операции сброса позволяет блоку поддерживать генерацию кода HDL. Для создания кода HDL необходимо иметь лицензию HDL Coder™.

Конечное состояние вывода

При выборе параметра Output final state второй выходной сигнал порта определяет выходное состояние блока. Выходной сигнал представляет собой скалярное целое значение. Можно выбрать конечное состояние вывода для всех режимов работы, кроме Terminate trellis by appending bits .

Укажите начальное состояние через входной порт

При выборе параметра Specify initial state through input port второй входной сигнал порта определяет начальное состояние для каждого кадра в блоке. Входной сигнал должен быть скалярным целочисленным значением. Укажите начальное состояние с помощью входного порта, отображаемого только в Truncated режим работы.

Код прокола

При выборе этой опции открывается поле Вектор прокола.

Проколотый вектор

Вектор, используемый для прокалывания закодированных данных. Вектор прокола представляет собой рисунок 1s и 0s, где 0s указывает проколотые биты. Это поле появляется при выборе «Проколотый код».

Примеры шаблона прокола

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

Ссылки

[1] Кларк, Джордж К. младший и Дж. Бибб Кейн, кодирование с исправлением ошибок для цифровых коммуникаций, Нью-Йорк, Plenum Press, 1981.

[2] Гитлин, Ричард Д., Джеремайя Ф. Хейз и Стивен Б. Вайнштейн, Принципы передачи данных, Нью-Йорк, Пленум, 1992.

[3] Ясуда, Ю., и др. al., «High rate puncted convolutional codes for soft decision Viterbi», IEEE Transactions on Communications, том COM-32, № 3, стр. 315-319, март 1984.

[4] Хаккун, Д. и Бегин, Г., «Высокоскоростные проколотые сверточные коды для Витерби и последовательного декодирования», IEEE Transactions on Communications, Vol. 37, No. 11, pp 1113-1125, Nov. 1989.

[5] Begin, G., et.al., «Дальнейшие результаты по высокоскоростным проколотым сверточным кодам для Витерби и последовательному декодированию», IEEE Transactions on Communications, том 38, № 11, стр. 1922-1928, ноябрь 1990.

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

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

.
Представлен до R2006a