Convolutional Encoder

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

Библиотека

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

Описание

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

Этот блок может принять входные параметры, которые варьируются по длине в процессе моделирования. Для получения дополнительной информации о сигналах переменного размера, смотрите Основы Сигнала Переменного Размера (Simulink).

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

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

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

Для обоих его вводов и выводов для портов данных блок поддерживает doubleединственный, booleanint8uint8int16uint16int32uint32, и ufix1. Типы данных порта наследованы от сигналов, которые управляют блоком. Вход сбросил поддержки порта double и boolean введенные сигналы.

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

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

  • Если у вас есть переменная в рабочем пространстве 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) режим, блок обрабатывает каждый вход независимо. Состояния энкодера сбрасываются ко все-нулевому состоянию в начале каждого входа.

Примечание

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

В Terminate trellis by appending bits режим, блок обрабатывает каждый вход независимо. Для каждого входного кадра дополнительные биты используются, чтобы установить состояния энкодера на все-нулевое состояние в конце системы координат. Продолжительностью выхода дают 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 режим, блок имеет дополнительный входной порт, пометил 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] Кларк, Джордж К. Младший и J. Затвор Каин, кодирование с коррекцией ошибок для цифровой связи, Нью-Йорка, нажатия пленума, 1981.

[2] Gitlin, Ричард Д., Иеремия Ф. Хейз, и Стивен Б. Вайнштейн, Дэта-Коммуникэйшнс-Принкиплс, Нью-Йорк, пленум, 1992.

[3] Yasuda, Y., и. al., “Высокий показатель проколол сверточные коды для мягкого решения декодирование Viterbi”, Транзакции IEEE на Коммуникациях, Издании COM-32, № 3, стр 315–319, март 1984.

[4] Haccoun, D., и Начинаются, G., “Высокий показатель проколол сверточные коды для декодирования Viterbi и Sequential”, Транзакции IEEE на Коммуникациях, Издании 37, № 11, стр 1113–1125, ноябрь 1989.

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

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

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

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