comm.RectangularQAMTCMDemodulator

Демодулируйте сверточно закодированные данные, сопоставленные с прямоугольным сигнальным созвездием QAM

Описание

The RectangularQAMTCMDemodulator объект использует алгоритм Viterbi, чтобы декодировать сигнал trellis-кодированной модуляции (TCM), который был ранее модулирован с использованием прямоугольного сигнального созвездия QAM.

Чтобы демодулировать сверточно закодированные данные, сопоставленные с прямоугольным сигнальным созвездием QAM:

  1. Определите и настройте прямоугольный объект демодулятора QAM TCM. См. «Конструкция».

  2. Функции step для демодуляции сигнала в соответствии со свойствами comm.RectangularQAMTCMDemodulator. Поведение step характерен для каждого объекта в тулбоксе.

Примечание

Начиная с R2016b, вместо использования step метод для выполнения операции, заданной Системной object™, можно вызвать объект с аргументами, как если бы это была функция. Для примера, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.

Конструкция

H = comm.RectangularQAMTCMDemodulator создает демодулятор с решетчатым кодом, прямоугольной, квадратурной амплитудой (QAM TCM) Системного объекта, H. Этот объект демодулирует сверточно закодированные данные, которые были сопоставлены с прямоугольным созвездием QAM.

H = comm.RectangularQAMTCMDemodulator(Name,Value) создает прямоугольный, QAM TCM, объект демодулятора, H, с каждым заданным набором свойств до заданного значения. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN).

H = comm.RectangularQAMTCMDemodulator(TRELLIS,Name,Value) создает прямоугольный объект демодулятора QAM TCM, H. Этот объект имеет набор свойств TrellisStructure, чтобы TRELLIS, и другие заданные свойства устанавливаются на заданные значения.

Свойства

TrellisStructure

Структура Trellis сверточного кода

Задайте шпалеру как MATLAB® структура, которая содержит описание решетки сверточного кода. Используйте istrellis функция для проверки того, является ли структура допустимой решеткой. Значение по умолчанию является результатом poly2trellis([3 1 1], [ 5 2 0 0; 0 0 1 0; 0 0 0 1]).

TerminationMethod

Метод завершения кодированной системы координат

Задайте метод завершения следующим Continuous | Truncated | Terminated. Значение по умолчанию является Continuous.

Когда вы устанавливаете это свойство на Continuousобъект сохраняет метрику внутреннего состояния в конце каждой системы координат. В следующей системе координат используется та же метрика состояния. Объект обрабатывает каждый путь трассировки независимо. Если входной сигнал содержит только один символ, следует использовать Continuous режим.

Когда вы устанавливаете это свойство на Truncatedобъект обрабатывает каждый входной вектор независимо. Путь трассировки начинается в состоянии с лучшей метрики и всегда заканчивается в состоянии всех нулей.

Когда вы устанавливаете это свойство на Terminatedобъект обрабатывает каждый входной вектор независимо, и путь трассировки всегда начинается и заканчивается в состоянии всех нулей.

TracebackDepth

Глубина следа для декодера Viterbi

Задайте скаляр, целое число шпалерных ветвей, чтобы создать каждый путь трассировки. Значение по умолчанию является 21. Параметр Traceback depth влияет на точность декодирования и задержку. Задержка декодирования является количеством нулевых символов, которые предшествуют первому декодированному символу на выходе.

Когда вы задаете свойство TerminationMethod равным Continuousзадержка декодирования состоит из нулевых символов TracebackDepth или TracebackDepth×K нуля биты для сверточного кода скорости K/ N .

Когда вы задаете свойство TerminationMethod равным Truncated или TerminatedЗадержка на выходе не происходит, и глубина обратного вызова должна быть меньше или равной количеству символов в каждом входном векторе.

ResetInputPort

Включите вход сброса демодулятора

Установите это свойство на true чтобы включить дополнительный вход в step способ. Значение по умолчанию является false. Когда этот дополнительный вход сброса является ненулевым значением, внутренние состояния энкодера сбрасываются к начальным условиям. Это свойство применяется, когда вы задаете значение свойства TerminationMethod Continuous.

ModulationOrder

Число точек в сигнальном созвездии

Задайте число точек в сигнальном созвездии, используемом для отображения сверточно закодированных данных, как положительное, целочисленное скалярное значение. Необходимо число точек 4, 8, 16, 32, или 64. Значение по умолчанию является 16. Значение свойства ModulationOrder должно равняться количеству возможных входных символов сверточному декодеру прямоугольного объекта демодулятора QAM TCM. The ModulationOrder должен равняться 2N для сверточного кода K/ N.

OutputDataType

Тип данных выхода

Задайте тип выходных данных следующим logical | double. Значение по умолчанию является double.

Методы

шагДемодулируйте сверточно закодированные данные, сопоставленные с прямоугольным созвездием QAM
Общий для всех системных объектов
release

Разрешить изменение значения свойства системного объекта

reset

Сброс внутренних состояний Системного объекта

Примеры

свернуть все

Модулируйте и демодулируйте данные 16-QAM используя TCM в канале AWGN. Оцените BER.

Создайте модулятор QAM TCM и демодулятор System objects™.

hMod = comm.RectangularQAMTCMModulator;
hDemod = comm.RectangularQAMTCMDemodulator('TracebackDepth',16);

Создайте объект канала AWGN.

hAWGN = comm.AWGNChannel('EbNo',5);

Определите задержку через демодулятор QAM TCM. Демодулятор использует алгоритм Viterbi, чтобы декодировать сигнал TCM, который был модулирован с использованием прямоугольного QAM. Чтобы точно вычислить вероятность битовой ошибки, задержка через декодер должна быть известна.

bitsPerSymbol = log2(hDemod.TrellisStructure.numInputSymbols);
delay = hDemod.TracebackDepth*bitsPerSymbol;

Создайте объект калькулятора частоты ошибок с ReceiveDelay значение свойства установлено в delay.

hErrorCalc = comm.ErrorRate('ReceiveDelay',delay);

Сгенерируйте двоичные данные и модулируйте с 16-QAM TCM. Пропустите сигнал через канал AWGN и демодулируйте. Вычислите статистику ошибок. Цикл запусков до тех пор, пока не будут обнаружены 100-битовые ошибки или не будет передано 1e7 бит.

% Initialize the error results vector.
errStats = [0 0 0];

while errStats(2) < 100 && errStats(3) < 1e7
    % Transmit frames of 200 3-bit symbols
    txData = randi([0 1],600,1);
    % Modulate
    txSig = step(hMod,txData);
    % Pass through AWGN channel
    rxSig = step(hAWGN,txSig);
    % Demodulate
    rxData = step(hDemod,rxSig);
    % Collect error statistics
    errStats = step(hErrorCalc,txData,rxData);
end

Отобразите данные об ошибке.

fprintf('Error rate = %4.2e\nNumber of errors = %d\n', ...
    errStats(1),errStats(2))
Error rate = 1.94e-03
Number of errors = 100

Алгоритмы

Этот объект реализует алгоритм, входы и выходы, описанные на Rectangular QAM TCM Decoder блочных страниц с описанием. Свойства объекта соответствуют параметрам блоков.

Расширенные возможности

.
Введенный в R2012a