exponenta event banner

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

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

Описание

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

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

  1. Определите и настройте объект демодулятора PSK TCM. См. раздел Строительство.

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

Примечание

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

Строительство

H = comm.PSKTCMDemodulator создает объект системы демодулятора с решетчатым кодированием, фазовым сдвигом M-ary, манипулированием (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

Решетчатая структура сверточного кода

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

TerminationMethod

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

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

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

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

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

TracebackDepth

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

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

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

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

ResetInputPort

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

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

ModulationOrder

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

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

OutputDataType

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

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

Методы

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

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

reset

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

Примеры

свернуть все

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

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

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

Создать 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