comm.PSKTCMDemodulator

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

Описание

PSKTCMDemodulator возразите использует алгоритм Viterbi, чтобы декодировать сигнал закодированной решеткой модуляции (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. Этот объект демодулирует convolutionally закодированные данные, которые были сопоставлены с созвездием 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, объект сохраняет метрику внутреннего состояния в конце каждой системы координат. Следующая система координат использует ту же метрику состояния. Объект обрабатывает каждый 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. Значением по умолчанию является 8. ModulationOrder значение свойства должно равняться количеству возможных вводимых символов к сверточному декодеру PSK объект демодулятора TCM. ModulationOrder свойство должно равняться 2N для уровня K/N сверточный код.

OutputDataType

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

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

Методы

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

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

reset

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

Примеры

свернуть все

Модулируйте и демодулируйте данные с помощью 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