Convolutional Encoder

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

Библиотека

Сверточная сублибрария Выявления ошибок и Коррекции

  • 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 набранные сигналы.

Определение энкодера

Чтобы задать сверточный энкодер, используйте параметр Trellis structure. Этот параметр является MATLAB® структура, формат которой описан в Trellis Description of a Convolutional Code. Вы можете использовать это поле параметра двумя способами:

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

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

    poly2trellis(7,[171 133],171)

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

Параметры

Trellis structure

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

Operation mode

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

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

Примечание

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

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

Примечание

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

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

Delay reset action to next time step

Когда вы выбираете Delay reset action to next time step, блок Convolutional Encoder сбрасывается после вычисления закодированных данных. Этот флажок появляется только, когда вы устанавливаете параметр Operation mode равным Reset on nonzero input via port.

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

Output final state

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

Specify initial state via input port

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

Puncture code

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

Puncture vector

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

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

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

См. также

Viterbi Decoder, APP Decoder

Ссылки

[1] Clark, George C. Jr. and J. Bibb Cain, Error-Correction Coding for Digital Communications, New York, Plenum Press, 1981.

[2] Gitlin, Richard D., Jeremiah F. Hayes, and Stephen B. Weinstein, Data Communications Principles, New York, Plenum, 1992.

[3] Yasuda, Y., et. al., «High rate procected convolutional codes for soft decoding Viterbi decoding», IEEE Transactions on Communications, Vol. COM-32, No. 3, pp 315-319, March 1984.

[4] Haccoun, D. and Begin, G., «High-rate puctured convolutional codes for Viterbi and Sequential decoding», IEEE Transactions on Communications, Vol. 37, No11, pp 1113-1125, Nov. 1989.

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

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

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

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