Сверточное кодирование двоичных данных и модуляция с использованием метода QAM
TCM, в цифровом поддиапазоне модулирования
Прямоугольный блок кодера QAM TCM реализует решетчато-кодированную модуляцию (TCM) путем сверточного кодирования двоичного входного сигнала и отображения результата в совокупность сигналов QAM.
Параметр M-ary number - это количество точек в созвездии сигналов, которое также равно количеству возможных выходных символов от сверточного кодера. (То есть log2 (M-арное число) равно n для сверточного кода скорости k/n.)
Если сверточный кодер, описанный решетчатой структурой, представляет код скорости k/n, то вход блока TCM кодера прямоугольного QAM должен быть двоичным вектором-столбцом длиной L * k для некоторого положительного целого L.
Выходной сигнал блока кодера TCM прямоугольного QAM представляет собой сложный вектор столбца длины L.
Для определения сверточного кодера используйте параметр структуры решетки. Этот параметр представляет собой структуру MATLAB, формат которой описан в описании сверточного кода Trellis. Это поле параметра можно использовать двумя способами:
Если необходимо указать кодер, используя его длину ограничения, полиномы генератора и, возможно, полиномы соединения обратной связи, то используйте poly2trellis в поле структуры решетки. Например, чтобы использовать кодер с длиной ограничения 7, полиномы генератора кода 171 и 133 (в восьмеричных числах) и соединение обратной связи 171 (в восьмеричном), задайте для параметра структуры Решетка значение
poly2trellis(7,[171 133],171)
Если в рабочем пространстве MATLAB имеется переменная, содержащая решетчатую структуру, введите ее имя в качестве параметра решетчатой структуры. Это происходит быстрее, поскольку это приводит к тому, что Simulink тратит меньше времени на обновление диаграммы в начале каждого моделирования по сравнению с использованием в предыдущем маркированном элементе.
Регистры кодера начинаются в состоянии «все нули». В процессе моделирования кодировщик можно настроить таким образом, чтобы его регистры переводились в состояние «все нули». Для этого установите Operation mode для сброса на ненулевом входе через порт. Затем блок открывает второй входной порт с меткой Rst. Сигнал на Rst порт является скалярным сигналом. Когда он не равен нулю, кодер сбрасывает перед обработкой данных на первом входном порте.
Метод модуляции с решетчатым кодированием разделяет созвездие на подмножества, называемые косметическими группами, чтобы максимизировать минимальное расстояние между парами точек в каждом косметическом группе. Этот блок внутренне формирует допустимую секцию на основе значения, выбранного для параметра M-ary number.
На рисунках ниже показаны маркированные комбинации сигналов с установленным разделением, которые блок использует, когда M-ary число 16, 32, и 64. Созвездия других размеров см. Biglieri, E., D. Divsalar, P. J. McLane и M. K. Simon, Introduction to Trellis-Coded Modulation with Applications, New York, Macmillan, 1991.



Коэффициенты усиления кодирования от 3 до 6 децибел относительно некодированного случая могут быть достигнуты в присутствии AWGN с многофазными решетчатыми кодами. Для получения дополнительной информации см. Biglieri, E., D. Divsalar, P. J. McLane и M. K. Simon, Introduction to Trellis-Coded Modulation with Applications, New York, Macmillan, 1991.
Структура 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.