comm.FSKModulator

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

Описание

The 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 модулятор и демодулятор System 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. Axes 1 contains an object of type line. Axes 2 contains an object of type image.

Алгоритмы

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

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

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

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

.
Введенный в R2012a