Создайте сверточный код из двоичных данных
Сверточная подбиблиотека Выявления ошибок и Исправления
Блок Convolutional Encoder кодирует последовательность векторов двоичного входа, чтобы произвести последовательность векторов двоичного выхода. Этот блок может обработать несколько символов за один раз.
Этот блок может принять входные параметры, которые отличаются по длине во время симуляции. Для получения дополнительной информации о сигналах переменного размера, смотрите Основы Сигнала Переменного Размера (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®, формат которой описан в Описании Решетки Сверточного кода. Можно использовать это поле параметра двумя способами:
Если у вас есть переменная в рабочем пространстве 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.
Структура MATLAB, которая содержит описание решетки сверточного энкодера.
В режиме Continuous
блок сохраняет состояния энкодера в конце каждого входа для использования со следующим кадром.
В режиме Truncated (reset every frame)
блок обрабатывает каждый вход независимо. Состояния энкодера сбрасываются ко все-нулевому состоянию в начале каждого входа.
Когда этот блок выводит последовательности, которые отличаются по длине во время симуляции, и вы устанавливаете Operation mode на Truncated (reset every frame)
или Terminate trellis by appending bits
, сброс блока состояния на каждом входном временном шаге.
В режиме Terminate trellis by appending bits
блок обрабатывает каждый вход независимо. Для каждого входного кадра дополнительные биты используются, чтобы установить состояния энкодера на все-нулевое состояние в конце кадра. Продолжительностью вывода дают , где x является количеством входных битов, и (или, в случае нескольких продолжительностей ограничения, s =sum(ConstraintLength(i)-1)
).
Это кладка блоков для случаев , где это имеет те же значения в течение продолжительностей ограничения в каждом входном потоке (например, продолжительности ограничения [2 2] или [7 7] будут работать, но [5 4] не будет).
В режиме Reset on nonzero input via port
блок имеет дополнительный входной порт, маркировал Rst
. Когда вход Rst
является ненулевым, сброс энкодера ко все-нулевому состоянию.
Когда вы выбираете 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 для всех режимов работы кроме Terminate trellis by appending bits
.
Когда вы выбираете Specify initial state via input port, второй сигнал входного порта задает начальное состояние для каждого кадра в блоке. Входной сигнал должен быть скаляром, целочисленным значением. Specify initial state via input port появляется только в режиме работы Truncated
.
Выбор этой опции открывает поле Puncture vector.
Вектор раньше прокалывал закодированные данные. Вектор прокола является шаблоном 1
s и 0
s, где 0
s указывает на проколотые биты. Это поле появляется, когда вы выбираете Punctured code.
Для некоторых обычно используемых шаблонов прокола для определенных уровней и полиномов, смотрите последние три ссылки, перечисленные на этой странице.
[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.