exponenta event banner

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

Демодулировать сверточно закодированные данные, отображенные в прямоугольную сигнальную совокупность КАМ

Описание

RectangularQAMTCMDemodulator объект использует алгоритм Витерби для декодирования сигнала с решетчатым кодированием (TCM), который был предварительно модулирован с использованием прямоугольной комбинации сигналов 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. Этот объект демодулирует сверточно закодированные данные, которые были отображены в прямоугольную совокупность КАМ.

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объект сохраняет метрику внутреннего состояния в конце каждого кадра. В следующем кадре используется та же метрика состояния. Каждый путь отслеживания обрабатывается объектом независимо. Если входной сигнал содержит только один символ, следует использовать Continuous режим.

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

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

TracebackDepth

Глубина отслеживания для декодера Витерби

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

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

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

ResetInputPort

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

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

ModulationOrder

Количество точек в созвездии сигналов

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

OutputDataType

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

Укажите тип выходных данных как logical | double. Значение по умолчанию: double.

Методы

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

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

reset

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

Примеры

свернуть все

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

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

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

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

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

Определите задержку с помощью демодулятора QAM TCM. Демодулятор использует алгоритм Витерби для декодирования сигнала TCM, который был модулирован с использованием прямоугольной КАМ. Для точного вычисления частоты битовых ошибок должна быть известна задержка через декодер.

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

Алгоритмы

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

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

.
Представлен в R2012a