Создайте сверточный код из двоичных данных
Сверточная подбиблиотека Выявления ошибок и Коррекции
Блок Convolutional Encoder кодирует последовательность векторов двоичного входа, чтобы произвести последовательность векторов двоичного выхода. Этот блок может обработать несколько символов за один раз.
Этот блок может принять входные параметры, которые варьируются по длине в процессе моделирования. Для получения дополнительной информации о сигналах переменного размера, смотрите Основы Сигнала Переменного Размера (Simulink).
Если энкодер берет входные потоки битов k (то есть, он может получить 2k возможные вводимые символы), длина входного вектора блока является L*k для некоторого положительного целого числа L. Точно так же, если энкодер производит n выходные потоки битов (то есть, это может произвести 2n возможные выходные символы), длина выходного вектора блока является L*n.
Этот блок принимает на вход сигнал в виде вектора - столбца или скалярной величины с любым положительным целым числом для L. Для входных параметров переменного размера L может варьироваться в процессе моделирования. Операцией блока управляет параметр Operation mode.
Для обоих его вводов и выводов для портов данных блок поддерживает double
единственный
, boolean
int8
uint8
int16
uint16
int32
uint32
, и ufix1
. Типы данных порта наследованы от сигналов, которые управляют блоком. Вход сбросил поддержки порта double
и boolean
введенные сигналы.
Чтобы задать сверточный энкодер, используйте параметр Trellis structure. Этот параметр является структурой MATLAB®, формат которой описан в Описании Решетки Сверточного кода. Можно использовать это поле параметра двумя способами:
Если у вас есть переменная в рабочем пространстве MATLAB, которое содержит структуру решетки, введите ее имя в параметре Trellis structure. Этот путь предпочтителен, потому что он заставляет Simulink® проводить меньше времени, обновляя схему в начале каждой симуляции, по сравнению с использованием, описанным затем.
Если вы хотите задать энкодер с помощью его продолжительности ограничения, полиномы генератора, и возможно полиномы связи обратной связи, используют a 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)
).
Примечание
Это кладка блоков для случаев , где это имеет те же значения в течение продолжительностей ограничения в каждом входном потоке (e.g., продолжительности ограничения [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.