exponenta event banner

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

Модулировать методом M-ary FSK

Описание

FSKModulator объект модулирует методом М-арной частотной манипуляции. Выходной сигнал является представлением модулированного сигнала в основной полосе частот.

Для модуляции сигнала с помощью частотной манипуляции:

  1. Определите и настройте объект модулятора FSK. См. раздел Строительство.

  2. Звонить step для модуляции сигнала в соответствии со свойствами comm.FSKModulator. Поведение step относится к каждому объекту на панели инструментов.

Примечание

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

Строительство

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

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-ary FSK
Общие для всех системных объектов
release

Разрешить изменение значения свойства объекта системы

reset

Сброс внутренних состояний объекта System

Примеры

свернуть все

Модулировать и демодулировать сигнал с помощью 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. Axes 1 contains an object of type line. Axes 2 contains an object of type image.

Алгоритмы

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

  • Параметр упорядочения набора символов соответствует SymbolMapping собственность.

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

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

.
Представлен в R2012a