коммуникация. RectangularQAMTCMDemodulator

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

Описание

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

Демодулировать convolutionally закодированные данные, сопоставленные с прямоугольным сигнальным созвездием 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. Этот объект демодулирует convolutionally закодированные данные, которые были сопоставлены с прямоугольной совокупностью 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

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

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

TerminationMethod

Метод завершения закодированного кадра

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

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

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

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

TracebackDepth

Глубина Traceback для Декодера Витерби

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

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

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

ResetInputPort

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

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

ModulationOrder

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

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

OutputDataType

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

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

Методы

сбросСбросьте состояния прямоугольного объекта демодулятора QAM TCM
шагДемодулируйте convolutionally закодированные данные, сопоставленные с прямоугольной совокупностью QAM
Характерный для всех системных объектов
release

Позвольте изменения значения свойства Системного объекта

Примеры

развернуть все

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

Создайте модулятор QAM TCM и Систему демодулятора 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