Сверточное кодирование двоичных данных и модулируйте с использованием PSK метода
TCM, в цифровой поддиапазоне базовых частот модуляции
Блок M-PSK TCM Encoder реализует кодированную решеткой модуляцию (TCM) путем сверточного кодирования двоичного входного сигнала и преобразования результата в сигнальное созвездие.
Параметром M-ary number является число точек в сигнальном созвездии, что также равняется количеству возможных выходных символов от сверточного энкодера. (То есть log2 (M-ary number) равен n для сверточного кода скорости k/n.)
Если сверточный энкодер, описанный структурой решетки, представляет собой код скорости k/ n, то входной сигнал блока должен быть двоичным вектором-столбцом с длиной L * k для некоторых положительных целочисленных L.
Этот блок принимает двоичный входной сигнал. Сигнал выхода является комплексным вектором-столбцом L длины.
Чтобы задать сверточный энкодер, используйте параметр Trellis structure. Этот параметр является MATLAB® структура, формат которой описан в Trellis Description of a Convolutional Code. Вы можете использовать это поле параметра двумя способами:
Если вы хотите задать энкодер, используя его ограниченную длину, полиномы генератора и, возможно, полиномы связи с обратной связью, используйте a poly2trellis
команда в поле Trellis structure. Для примера, чтобы использовать энкодер с ограничительной длиной 7, полиномами генератора кода 171 и 133 (в октальных числах) и соединением обратной связи 171 (в восьмиугольнике), установите параметр Trellis structure на
poly2trellis(7,[171 133],171)
Если в рабочем пространстве MATLAB есть переменная, содержащая структуру шпалеры, введите ее имя как Trellis structure параметр. Этот способ быстрее, потому что он вызывает Simulink® программное обеспечение, чтобы тратить меньше времени на обновление схемы в начале каждой симуляции по сравнению с использованием в предыдущем маркированном элементе.
Регистры энкодера начинаются в состоянии «все нули». Можно сконфигурировать энкодер так, чтобы он сбросил свои регистры в состояние всех нулей в течение симуляции. Для этого установите Operation mode
к Reset on nonzero input via port. Затем блок открывает второй входной порт, помеченный Rst
. Сигнал на Rst
port является скалярным сигналом. Когда это ненулевое, энкодер сбрасывается перед обработкой данных в первом входном порте.
Метод модуляции, закодированный в решетке, разделяет созвездие на подмножества, называемые смежными узлами, чтобы максимизировать минимальное расстояние между парами точек в каждом смежном узле. Этот блок внутренне формирует допустимый раздел на основе значения, которое вы выбираете для параметра M-ary number.
Рисунок ниже показывает маркированное сигнальное созвездие с разбиением на наборы, которое используется блоком, когда M-ary number равно 8. Для созвездий других размеров см. [1].
Коэффициент усиления кодирования от 3 до 6 децибел относительно незакодированного случая может быть достигнут в присутствии AWGN с многофазными шпалерными кодами [3].
Структура MATLAB, которая содержит описание решетки сверточного энкодера.
В Continuous
mode (настройка по умолчанию), блок сохраняет состояния энкодера в конце каждой системы координат для использования со следующей системой координат.
В Truncated (reset every frame)
mode, блок обрабатывает каждую систему координат независимо. То есть состояния энкодера сбрасываются в состояние «все нули» в начале каждой системы координат.
В Terminate trellis by appending bits
mode, блок обрабатывает каждую систему координат независимо. Для каждого входного кадра дополнительные биты используются, чтобы установить состояния энкодера в состояние «все нули» в конце системы координат. Длина выхода задается как , где x количество входа бит, и (или, в случае нескольких длин ограничений, s = sum(ConstraintLength(i)-1)
). Блок поддерживает этот режим для вектора-столбца входных сигналов.
В Reset on nonzero input via port
mode, блок имеет дополнительный входной порт, маркированный Rst
. Когда Rst
вход ненулевый, энкодер сбрасывается в состояние «все нули».
Число точек в сигнальном созвездии.
Выходной тип блока может быть задан как single
или double
. По умолчанию блок устанавливает это на double
.
[1] Biglieri, E., D. Divsalar, P. J. McLane and M. K. Simon, Introduction to Trellis-Coded Modulation With Applications, New York, Macmillan, 1991.
[2] Proakis, John G., Digital Communications, Fourth edition, New York, McGraw-Hill, 2001
[3] Ungerboeck, G., «Channel Coding with Multilevel/Phase Signals», IEEE Trans. on Information Theory, Vol IT28, Jane. 1982, pp. 55-67.