Эта модель показывает, как использовать Convolutional Encoder и Viterbi Decoder блоки для имитации сверточного кода с хвостовым укусом. Завершение решетки сверточного кода является ключевым параметром в производительности кода для пакетной связи. Сверточное кодирование с хвостовым укусом представляет собой метод решетчатого завершения, который позволяет избежать потерь скорости, возникающих при нулевом завершении, за счет более сложного декодера [1].
В этом примере используется специальный субоптимальный способ декодирования для декодирования хвостовых битов и показано, как кодирование достигается для кодера прямой передачи. Сравнение производительности Bit-Error-Rate выполняется с нулевым вариантом для стандартного сверточного кода.
Кодирование с окончанием укуса гарантирует, что начальное состояние кодера будет таким же, как и конечное состояние (и что это значение состояния не обязательно должно быть полностью нулевым состоянием). Для ставки 1/n кодер прямой передачи, это достигается путем инициализации m элементы памяти кодера с последним m информационные биты блока данных длиной Lи игнорирование выходных данных. Все L Затем биты вводятся в кодер и результирующий L*n выходные биты используются в качестве кодового слова.
Это моделируется Tail-biting Convolutional Encoder подсистема в следующей модели, commtailbiting.slx:

При длине блока 100 бит, подсистема кодера выводит 200 бит для кодера скорости 1/2 прямой передачи с 6 элементами памяти. Display блок в подсистеме указывает, что начальное и конечное состояния идентичны для каждого блока обработанных данных.
Блоки сверточного кодера используют настройку «Усечение (сброс каждого кадра)» для параметра режима работы, чтобы указать обработку по блокам.
Сведения о том, как обеспечить кодирование конечных битов для кодера обратной связи, см. в документе Кодирование с использованием обратной связи в соответствии с [2].
Для сравнения, добавляется метод окончания нулевого конца m нули в блок данных, чтобы гарантировать, что кодер прямой передачи начинается с и заканчивается в состоянии полного нуля для каждого блока. Это приводит к потере скорости из-за передаваемых дополнительных хвостовых битов (т.е. неинформационных битов).
Ссылаясь на следующую модель, commterminatedcnv.slx,

заметим, что для одной и той же длины блока, равной 100 битам, выходной сигнал кодера теперь включает в себя нулевые хвостовые биты, что приводит к фактической скорости кодирования 100/212, которая меньше, чем та, которая достигается кодером с концевыми битами.
Convolutional Encoder блок использует параметр «Terminate trellis by appending bits» для параметра режима работы для этого случая, который также работает для кодеров обратной связи.
Декодер с хвостовым укусом с максимальным правдоподобием включает в себя определение наилучшего пути в решетке при условии, что он начинается и заканчивается в том же состоянии. Способ реализовать это - запустить M параллельные алгоритмы Витерби, где M - количество состояний в решетке и выбор декодированных битов на основе алгоритма Витерби, дающего наилучшую метрику. Однако это делает декодирование M в несколько раз сложнее, чем при нулевом кодировании.
В этом примере используется схема ad-hoc suboptimum согласно [3], которая намного проще подхода максимального правдоподобия и при этом работает сопоставимо. Схема основана на предположении, что шпалеру с хвостовым укусом можно считать круглой, когда она начинается и заканчивается в одном и том же состоянии. Это позволяет продолжить алгоритм Витерби после конца блока путем циклического повторения принятого кодового слова. В результате модель повторяет принятое кодовое слово от демодулятора и запускает этот набор данных через декодер Витерби, выполняя трассировку из наилучшего состояния в конце повторного набора данных. В качестве битов декодированного сообщения выбирается только часть декодированных битов из середины.
Параметр режима работы для блока декодера Витерби установлен как «Усеченный» для случая с конечным куском, в то время как для случая с нулевым хвостом установлен как «Завершенный».
В примере сравниваются характеристики частоты битовых ошибок двух методов завершения для декодирования с жестким решением в канале AWGN в диапазоне значений Eb/No. Следует отметить, что эти две модели установлены таким образом, что они могут быть смоделированы в диапазоне значений Eb/No с использованием BERTool.

Как показано на чертеже, схема ad-hoc декодирования хвостовых битов выполняется сравнительно близко к более низкой ограниченной производительности сверточного кода с нулевым хвостом для выбранных параметров.
После загрузки модели инициализируют набор переменных, управляющих моделированием. К ним относятся длина блока, Eb/No и максимальное количество моделируемых ошибок и битов. Рекомендуется играть со значениями этих переменных, чтобы увидеть их влияние на производительность связи.
Следует отметить, что рабочие характеристики схемы ad-hoc декодирования чувствительны к используемой длине блока. Также производительность кода зависит от длины декодирования отслеживания, используемой для алгоритма Витерби.
H. Ma и J. Wolf, «On Tail Biting convolutional codes», IEEE Transactions on Communications, том COM-34, № 2, февраль 1986, стр. 104-11.
C. Weiss, C. Bettstetter, S. Riedel, «Code Construction and Decoding of Parallel Concatenated Tail-Biting Codes», IEEE Transactions on Information Theory, том 47, № 1, январь 2001, стр. 366-386.
Ю. Э. Ван и Р. Рамеш: "Укусить или не укусить? Исследование "Tail Bits vs. Tail-Biting", "Персональная, внутренняя и мобильная радиосвязь, 1996. PIMRC '96, седьмой Международный симпозиум IEEE ®, том 2, октябрь 15-18, 1996 года, страница (страницы): 317 - 321.