Сверточное кодирование двоичных данных и отображение с использованием произвольной совокупности
TCM, в цифровом поддиапазоне модулирования
Общий блок кодера TCM реализует решетчато-кодированную модуляцию (TCM) путем сверточного кодирования двоичного входного сигнала и преобразования результата в произвольную сигнальную совокупность. Параметр Signal constellation перечисляет точки объединения сигналов в установленном порядке. Этот параметр представляет собой комплексный вектор длиной M, равной числу возможных выходных символов сверточного кодера. (То есть log2M равно n для сверточного кода скорости k/n.)
Если сверточный кодер представляет код скорости k/n, то вход блока общего кодера TCM должен быть двоичным вектором-столбцом длиной L * k для некоторого положительного целого L.
Этот блок принимает входной сигнал с двоичным значением. Выходной сигнал представляет собой сложный вектор столбца длиной L. Информацию о типах данных, поддерживаемых каждым блочным портом, см. в разделе Поддерживаемые типы данных.
Для определения сверточного кодера используйте параметр структуры решетки. Этот параметр представляет собой структуру MATLAB ®, формат которой описан в описании сверточного кода Trellis. Это поле параметра можно использовать двумя способами:
Если необходимо указать кодер, используя его длину ограничения, полиномы генератора и, возможно, полиномы соединения обратной связи, то используйте poly2trellis в поле структуры решетки. Например, чтобы использовать кодер с длиной ограничения 7, полиномы генератора кода 171 и 133 (в восьмеричных числах) и соединение обратной связи 171 (в восьмеричном), задайте для параметра структуры Решетка значение
poly2trellis(7,[171 133],171)
Если в рабочем пространстве MATLAB имеется переменная, содержащая решетчатую структуру, введите ее имя в качестве параметра решетчатой структуры. Это происходит быстрее, поскольку программное обеспечение Simulink ® тратит меньше времени на обновление диаграммы в начале каждого моделирования по сравнению с использованием предыдущего маркированного элемента.
Регистры кодера начинаются в состоянии «все нули». В процессе моделирования кодировщик можно настроить таким образом, чтобы его регистры переводились в состояние «все нули». Для этого установите Operation mode для сброса на ненулевом входе через порт. Затем блок открывает второй входной порт с меткой Rst. Сигнал на Rst порт является скалярным сигналом. Когда он не равен нулю, кодер сбрасывает перед обработкой данных на первом входном порте.
Метод модуляции с решетчатым кодированием разделяет совокупность на подмножества, называемые совокупностями, так, чтобы максимизировать минимальное расстояние между парами точек в каждой совокупности.
Примечание
При установке параметра Signal constellation необходимо убедиться, что вектор constellation уже находится в установленном порядке. В противном случае блок может привести к неожиданным или неоптимальным результатам.
В качестве примера приведенная ниже диаграмма показывает один из способов создания установленного порядка разделения для точек для 8-PSK сигнальной совокупности. Фигура в верхней части дерева является всей 8-PSK сигнальной совокупностью, в то время как восемь фигур в нижней части дерева содержат по одной точке созвездия каждая. Каждый уровень дерева соответствует другому биту в двоичной последовательности (b3, b2, b1), в то время как каждая ветвь в данном уровне дерева соответствует конкретному значению для этого бита. Перечисление точек созвездия с помощью последовательности в нижней части дерева приводит к вектору
exp(2*pi*j*[0 4 2 6 1 5 3 7]/8)
которое является допустимым значением для параметра созвездия сигнала в этом блоке.

Для получения других примеров совокупностей сигналов в установленном порядке см. [1] или справочные страницы для блоков кодера TCM M-PSK и кодера TCM прямоугольного QAM.
Коэффициенты усиления кодирования от 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.
| Порт | Поддерживаемые типы данных |
|---|---|
Вход |
|
Продукция |
|
Biglieri, E., D. Divsalar, P. J. McLane и M. K. Simon, Введение в решетчато-кодированную модуляцию с приложениями, Нью-Йорк, Макмиллан, 1991.
[2] Проакис, Джон Г., Digital Communications, четвертое издание, Нью-Йорк, McGraw-Hill, 2001.
[3] Ungerboeck, G., «Канальное кодирование с многоуровневыми/фазовыми сигналами», IEEE Trans. on Information Theory, Vol IT28, Jan. 1982, pp. 55-67.