comm.PSKTCMDemodulator

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

Описание

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

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

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

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

Примечание

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

Конструкция

H = comm.PSKTCMDemodulator создает демодулятор с резьбовым кодом, M-арным сдвигом фазы, манипуляцией (PSK TCM) Системного объекта, H. Этот объект демодулирует сверточно закодированные данные, которые были отображены в созвездие M-PSK.

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

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

Свойства

TrellisStructure

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

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

TerminationMethod

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

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

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

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

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

TracebackDepth

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

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

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

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

ResetInputPort

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

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

ModulationOrder

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

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

OutputDataType

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

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

Методы

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

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

reset

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

Примеры

свернуть все

Модулируйте и демодулируйте данные 8-PSK используя модуляцию TCM в канале AWGN. Оцените полученную частоту ошибок.

Задайте структуру шпалеры с четырьмя входными символами и восемью выходными символами.

t =  poly2trellis([5 4],[23 35 0; 0 5 13]);

Создайте модулятор и демодулятор System objects™ с помощью шпалеры, t, имеющий порядок 8 модуляции.

hMod = comm.PSKTCMModulator(t,'ModulationOrder',8);
hDemod = comm.PSKTCMDemodulator(t,'ModulationOrder',8, ...
    'TracebackDepth',16);

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

hAWGN = comm.AWGNChannel('NoiseMethod','Signal to noise ratio (SNR)', ...
    'SNR',7);

Создайте калькулятор частоты ошибок с задержкой в битах, равной TracebackDepth умножить количество бит на символ.

hError = comm.ErrorRate('ReceiveDelay',...
    hDemod.TracebackDepth*log2(t.numInputSymbols));

Сгенерируйте случайные двоичные данные и модулируйте с 8-PSK TCM. Пропустите модулированный сигнал через канал AWGN и демодулируйте. Вычислите статистику ошибок.

for counter = 1:10
    % Transmit frames of 250 2-bit symbols
    data = randi([0 1],500,1);
    % Modulate
    modSignal = step(hMod,data);
    % Pass through AWGN channel
    noisySignal = step(hAWGN,modSignal);
    % Demodulate
    receivedData = step(hDemod,noisySignal);
    % Calculate error statistics
    errorStats = step(hError,data,receivedData);
end

Отображение BER и количества битовых ошибок.

fprintf('Error rate = %5.2e\nNumber of errors = %d\n', ...
    errorStats(1),errorStats(2))
Error rate = 2.17e-02
Number of errors = 108

Алгоритмы

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

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

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