коммуникация. 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.

Методы

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

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

Примеры

развернуть все

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

Для просмотра документации необходимо авторизоваться на сайте