Сверточное кодирование двоичных данных и модуляция с использованием метода PSK
TCM, в цифровом поддиапазоне модулирования
Блок кодера TCM M-PSK реализует решетчато-кодированную модуляцию (TCM) путем сверточного кодирования двоичного входного сигнала и отображения результата в совокупность сигналов PSK.
Параметр M-ary number - это количество точек в созвездии сигналов, которое также равно количеству возможных выходных символов от сверточного кодера. (То есть log2 (M-арное число) равно n для сверточного кода скорости k/n.)
Если сверточный кодер, описанный решетчатой структурой, представляет код скорости k/n, то блочным входным сигналом должен быть вектор двоичного столбца длиной L * k для некоторого положительного целого L.
Этот блок принимает входной сигнал с двоичным значением. Выходной сигнал представляет собой комплексный вектор столбца длины L.
Для определения сверточного кодера используйте параметр структуры решетки. Этот параметр представляет собой структуру MATLAB ®, формат которой описан в описании сверточного кода Trellis. Это поле параметра можно использовать двумя способами:
Если необходимо указать кодер, используя его длину ограничения, полиномы генератора и, возможно, полиномы соединения обратной связи, то используйте poly2trellis в поле структуры решетки. Например, чтобы использовать кодер с длиной ограничения 7, полиномы генератора кода 171 и 133 (в восьмеричных числах) и соединение обратной связи 171 (в восьмеричном), задайте для параметра структуры Решетка значение
poly2trellis(7,[171 133],171)
Если в рабочем пространстве MATLAB имеется переменная, содержащая решетчатую структуру, введите ее имя в качестве параметра решетчатой структуры. Это происходит быстрее, поскольку программное обеспечение Simulink ® тратит меньше времени на обновление диаграммы в начале каждого моделирования по сравнению с использованием предыдущего маркированного элемента.
Регистры кодера начинаются в состоянии «все нули». В процессе моделирования кодировщик можно настроить таким образом, чтобы его регистры переводились в состояние «все нули». Для этого установите Operation mode для сброса на ненулевом входе через порт. Затем блок открывает второй входной порт с меткой Rst. Сигнал на Rst порт является скалярным сигналом. Когда он не равен нулю, кодер сбрасывает перед обработкой данных на первом входном порте.
Метод модуляции с решетчатым кодированием разделяет созвездие на подмножества, называемые косметическими группами, чтобы максимизировать минимальное расстояние между парами точек в каждом косметическом группе. Этот блок внутренне формирует допустимую секцию на основе значения, выбранного для параметра M-ary number.
На рисунке ниже показана маркированная группировка сигналов с установленным разделением, которая используется блоком, когда M-ary число равно 8. Для получения информации о созвездиях других размеров см. [1].

Коэффициенты усиления кодирования от 3 до 6 децибел относительно некодированного случая могут быть достигнуты в присутствии AWGN с многофазными решетчатыми кодами [3].
Структура MATLAB, которая содержит решетчатое описание сверточного кодера.
В Continuous (установка по умолчанию), блок сохраняет состояния кодера в конце каждого кадра для использования со следующим кадром.
В Truncated (reset every frame) В этом режиме блок обрабатывает каждый кадр независимо. То есть состояния кодера сбрасываются в состояние всех нулей в начале каждого кадра.
В Terminate trellis by appending bits В этом режиме блок обрабатывает каждый кадр независимо. Для каждого входного кадра дополнительные биты используются для установки состояний кодера в состояние всех нулей в конце кадра. Выходная длина задаётся )/k, где x - количество входных битов, длина ограничения − 1 (или, в случае множественных длин ограничения, s =sum(ConstraintLength(i)-1)). Блок поддерживает этот режим для входных сигналов векторов столбцов.
В Reset on nonzero input via port режим, блок имеет дополнительный входной порт, помеченный Rst. Когда Rst вход ненулевой, кодер сбрасывается в состояние «все нули».
Количество точек в созвездии сигналов.
Тип вывода блока может быть указан как single или double. По умолчанию блок устанавливает значение double.
[1] Бигльери, Э., Д. Дивсалар, П. Дж. Маклейн и М. К. Саймон, Введение в модуляцию, кодированную треллисом, с приложениями, Нью-Йорк, Макмиллан, 1991.
[2] Проакис, Джон Г., Digital Communications, четвертое издание, Нью-Йорк, McGraw-Hill, 2001
[3] Ungerboeck, G., «Канальное кодирование с многоуровневыми/фазовыми сигналами», IEEE Trans. on Information Theory, Vol IT28, Jan. 1982, pp. 55-67.