comm.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