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

Демодулируйте использующий M-арный метод FSK

Описание

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

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

  1. Задайте и настройте свой объект демодулятора FSK. Смотрите Конструкцию.

  2. Вызовите step, чтобы демодулировать сигнал согласно свойствам FSKDemodulator. Поведение step характерно для каждого объекта в тулбоксе.

Примечание

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

Конструкция

H = comm.FSKDemodulator создает Системный объект демодулятора, H. Этот объект демодулирует M-арный сдвиг частоты, включающий (M-FSK) использование сигнала некогерентного энергетического детектора.

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

H = comm.FSKDemodulator(M,FREQSEP,RS,Name,Value) создает объект демодулятора M-FSK, H. Этот объект имеет набор свойств ModulationOrder к M, набор свойств FrequencySeparation к FREQSEP, набор свойств SymbolRate к RS и другой заданный набор свойств к заданным значениям.

Свойства

ModulationOrder

Количество частот в модулируемом сигнале

Задайте количество частот в модулируемом сигнале как числовое, положительное, значение целочисленного скаляра, которое является степенью двойки. Значением по умолчанию является 8.

BitOutput

Выходные данные как биты

Задайте, является ли вывод группами битов или целочисленных значений. Значением по умолчанию является false.

Когда вы устанавливаете это свойство на false, метод step выводит вектор-столбец длины, равной N/SamplesPerSymbol. N является длиной вектора входных данных к методу шага. Элементы выходного вектора являются целыми числами между 0 и ModulationOrder –1. Когда вы устанавливаете это свойство на true, метод step выводит вектор-столбец длины, равной log2 (ModulationOrder)×(N/SamplesPerSymbol). Элементы свойства являются битными представлениями целых чисел между 0 и ModulationOrder –1.

SymbolMapping

Кодирование символа

Задайте, как объект сопоставляет целое число или группу log2 (ModulationOrder) биты к соответствующему символу как один из Binary | Gray. Значением по умолчанию является Gray.

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

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

Для любого типа отображения объект сопоставляет самую низкую частоту с целым числом 0 и сопоставляет самую высокую частоту с целочисленным M –1. В основополосной симуляции самая низкая частота является отрицательной частотой с самым большим абсолютным значением.

FrequencySeparation

Разделение частоты между последовательными тонами

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

SamplesPerSymbol

Количество выборок на вводимый символ

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

SymbolRate

Длительность символа

Задайте уровень символа в символах в секунду как положительное, действительное скалярное значение с двойной точностью. Значением по умолчанию является 100. Чтобы избежать искажения выходного сигнала, задайте выходной уровень выборки, Fs = SamplesPerSymbol×SymbolRate, который больше, чем ModulationOrder × FrequencySeparation. Длительность символа остается то же самое, независимо от того, является ли вход битами или целыми числами.

OutputDataType

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

Задайте тип выходных данных как один из logical | int8 | uint8 | int16 | uint16 | int32 | uint32 | double. Значением по умолчанию является double. Тип logical допустим только, когда вы устанавливаете свойство BitOutput на ложь и свойство ModulationOrder к два. Когда вы устанавливаете свойство BitOutput на истину, выходные данные требует типа logical | double.

Методы

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

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

Примеры

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

Модулируйте и демодулируйте сигнал с помощью модуляции 8-FSK с разделением частоты 100 Гц.

Установите разделительные параметры порядка и частоты модуляции.

M = 8;
freqSep = 100;

Создайте модулятор FSK, и Система демодулятора objects™ с модуляцией заказывают разделение частоты на 8 и 100 Гц.

fskMod = comm.FSKModulator(M,freqSep);
fskDemod = comm.FSKDemodulator(M,freqSep);

Создайте аддитивный белый Гауссов шумовой канал, где шум задан как отношение сигнал-шум.

ch = comm.AWGNChannel('NoiseMethod', ...
    'Signal to noise ratio (SNR)','SNR',-2);

Создайте объект калькулятора коэффициента ошибок.

err = comm.ErrorRate;

Передайте сто кадров с 50 символами с помощью 8-FSK в канале AWGN.

for counter = 1:100
    data = randi([0 M-1],50,1);
    modSignal = step(fskMod,data);
    noisySignal = step(ch,modSignal);
    receivedData = step(fskDemod,noisySignal);
    errorStats = step(err,data,receivedData);
end

Отобразите ошибочную статистику.

es = 'Error rate = %4.2e\nNumber of errors = %d\nNumber of symbols = %d\n';
fprintf(es,errorStats)
Error rate = 1.40e-02
Number of errors = 70
Number of symbols = 5000

Алгоритмы

Этот объект реализует алгоритм, входные параметры и выходные параметры, описанные на странице с описанием блока M-FSK Demodulator Baseband. Свойства объектов соответствуют параметрам блоков, кроме:

  • Параметр Symbol set ordering соответствует свойству SymbolMapping.

  • Свойство SymbolRate заменяет возможность частоты дискретизации блока.

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

Представленный в R2012a