comm.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 метода
Характерный для всех системных объектов
release

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

reset

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

Примеры

свернуть все

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

Figure contains 2 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type image.

Алгоритмы

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

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

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

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

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

|

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