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

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

Описание

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

Модулировать сигнал с помощью манипулирования сдвига частоты:

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

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

Примечание

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

Конструкция

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

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

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

Свойства

ModulationOrder

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

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

BitInput

Примите битные входные параметры

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

Когда вы устанавливаете это свойство на false, вход метода step требует числового (кроме типа данных одинарной точности) вектор-столбец целочисленных значений между 0 и ModulationOrder –1. В этом случае входной вектор может также иметь тип данных, логический, если ModulationOrder равняется 2.

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

SymbolMapping

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

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

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

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

FrequencySeparation

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

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

ContinuousPhase

Непрерывность фазы

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

Когда вы устанавливаете это свойство на true, модулируемый сигнал поддерживает непрерывную фазу, даже когда ее частота изменяется.

Когда вы устанавливаете это свойство на false, модулируемый сигнал включает фрагменты синусоид ModulationOrder различных частот. В этом случае изменение во входном значении может вызвать прерывистое изменение в фазе модулируемого сигнала.

SamplesPerSymbol

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

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

SymbolRate

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

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

OutputDataType

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

Задайте тип выходных данных как один из double | single. Значением по умолчанию является 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

Визуализируйте отображение символа FSK модулируемый сигнал со спектрограммой.

Задайте 20 выборок для каждого символа. 0 карт к-50 кГц (отрицательный наклон фазы) и 1 карта к +50 кГц (положительный наклон фазы).

mod = comm.FSKModulator;  
mod.ModulationOrder = 2;  
mod.FrequencySeparation = 100000;  
mod.SamplesPerSymbol = 20;  
mod.SymbolMapping = 'Gray';  
mod.SymbolRate = 1e4  
mod = 
  comm.FSKModulator with properties:

        ModulationOrder: 2
               BitInput: false
          SymbolMapping: 'Gray'
    FrequencySeparation: 100000
        ContinuousPhase: true
       SamplesPerSymbol: 20
             SymbolRate: 10000
         OutputDataType: 'double'

x = mod([0 1 0 1 0 1]');  
figure; subplot(1,2,1); plot(unwrap(angle(x)),0:length(x)-1);  
grid on; xlabel('Phase'); ylabel('Samples') 
subplot(1,2,2);  
spectrogram(x,20,0,[],mod.SymbolRate*mod.SamplesPerSymbol,'centered')

Алгоритмы

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

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

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

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

Смотрите также

|

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