Сверточное кодирование двоичных данных и карту с помощью произвольных созвездий
TCM, в цифровой поддиапазоне базовых частот модуляции
Блок General TCM Encoder реализует trellis-кодированную модуляцию (TCM) путем сверточного кодирования двоичного входного сигнала и преобразования результата в произвольное сигнальное созвездие. Параметр Signal constellation приводит точки сигнального созвездия в разбиенном на группы порядке. Этот параметр является комплексным вектором с длиной, M, равной количеству возможных выходных символов от сверточного энкодера. (То есть log2 M равно n для сверточного кода скорости k/ n.)
Если сверточный энкодер представляет код скорости k/ n, то вход блока General TCM Encoder должен быть двоичным вектором-столбцом с длиной 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 является скалярным сигналом. Когда это ненулевое, энкодер сбрасывается перед обработкой данных в первом входном порте.
Метод модуляции, закодированный в решетке, разделяет созвездие на подмножества, называемые смежными узлами, так, чтобы максимизировать минимальное расстояние между парами точек в каждом смежном узле.
Примечание
Когда вы устанавливаете параметр Signal constellation, необходимо убедиться, что вектор созвездия уже находится в порядке с разбиением на наборы. В противном случае блок может привести к неожиданным или неоптимальным результатам.
В качестве примера, схема ниже показывает один способ разработки разграниченного по набору порядка для точек для 8-PSK сигнального созвездия. Рисунок в верхней части дерева является всем 8-PSK сигнальным созвездием, в то время как восемь рисунков в нижней части дерева содержат по одной точке созвездия. Каждый уровень дерева соответствует другому биту в двоичной последовательности (b3, b2, b1), в то время как каждая ветвь в заданном уровне дерева соответствует конкретному значению для этого бита. Перечисление точек созвездия с помощью последовательности в нижней части дерева приводит к вектору
exp(2*pi*j*[0 4 2 6 1 5 3 7]/8)
которое является допустимым значением для параметра Signal constellation в этом блоке.
Для других примеров сигнальных созвездий в разграниченном порядке смотрите [1] или страницы с описанием для блоков M-PSK TCM Encoder и Rectangular QAM TCM Encoder.
Коэффициент усиления кодирования от 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.