exponenta event banner

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

Демодуляция методом FM

Описание

FMDemodulator Система object™ демодулирует ЧМ-модулированный сигнал.

Для демодуляции сигнала ЧМ:

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

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

Примечание

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

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

H = comm.FMDemodulator создает объект системы демодулятора, Hэта частота демодулирует входной сигнал.

H = comm.FMDemodulator(mod) создает объект демодулятора ЧМ, свойства которого определяются соответствующим объектом модулятора ЧМ, mod.

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

Свойства

FrequencyDeviation

Пиковое отклонение частоты выходного сигнала (Гц)

Задайте отклонение частоты ЧМ-демодулятора в Гц как положительный действительный скаляр. Значение по умолчанию: 75e3. Пропускная способность системы равна удвоенной сумме отклонения частоты и пропускной способности сообщения. Это свойство не настраивается.

SampleRate

Частота дискретизации входного сигнала (Гц)

Укажите частоту дискретизации в Гц как положительный действительный скаляр. Значение по умолчанию: 240e3. Выходная частота дискретизации равна входной частоте дискретизации. Это свойство не настраивается.

Методы

шагПрименяет демодуляцию основной полосы частот FM
Общие для всех системных объектов
release

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

reset

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

При использовании resetэтот способ сбрасывает подоконный суффикс с последнего символа в ранее обработанном кадре.

Примеры

свернуть все

Модулировать и демодулировать синусоидальный сигнал. Постройте график демодулированного сигнала и сравните его с исходным сигналом.

Задайте параметры примера.

fs = 100; % Sample rate (Hz)
ts = 1/fs; % Sample period (s)
fd = 25; % Frequency deviation (Hz)

Создайте синусоидальный входной сигнал длительностью 0,5 с и частотой 4 Гц.

t = (0:ts:0.5-ts)';
x = sin(2*pi*4*t);

Создание объектов системы FM-модулятора и демодулятора.

fmmod = comm.FMModulator('SampleRate',fs,'FrequencyDeviation',fd);
fmdemod = comm.FMDemodulator('SampleRate',fs,'FrequencyDeviation',fd);

ЧМ модулирует входной сигнал и строит график его реальной части. Видно, что частота модулированного сигнала изменяется с амплитудой входного сигнала.

y = fmmod(x);
plot(t,[x real(y)])

Figure contains an axes. The axes contains 2 objects of type line.

Демодулируйте ЧМ-модулированный сигнал.

z = fmdemod(y);

Постройте график входных и демодулированных сигналов. Выходной сигнал демодулятора точно совпадает с входным сигналом.

plot(t,x,'r',t,z,'ks')
legend('Input Signal','Demod Signal')
xlabel('Time (s)')
ylabel('Amplitude')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Input Signal, Demod Signal.

Создайте object™ системы демодулятора ЧМ из объекта модулятора ЧМ. Модулировать и демодулировать аудиоданные, загруженные из файла, и сравнивать спектр для демодулированных данных и входных данных.

Задайте параметры примера.

fd = 50e3;  % Frequency deviation (Hz)
fs = 300e3; % Sample rate (Hz)

Создайте объект системы модулятора FM.

mod = comm.FMModulator('FrequencyDeviation',fd,'SampleRate',fs);

Создайте сопутствующий объект демодулятора, используя объект модулятора для его конфигурирования.

demod = comm.FMDemodulator(mod);

Убедитесь, что свойства двух системных объектов идентичны.

mod
mod = 
  comm.FMModulator with properties:

            SampleRate: 300000
    FrequencyDeviation: 50000

demod
demod = 
  comm.FMDemodulator with properties:

            SampleRate: 300000
    FrequencyDeviation: 50000

Загрузка аудиоданных в структурную переменную, S.

S = load('handel.mat');
data = S.y;
fsamp = S.Fs;

Создайте объект System анализатора спектра.

specanalyzer = dsp.SpectrumAnalyzer('SampleRate',fsamp,'ShowLegend',true);

ЧМ модулируют и демодулируют аудиоданные.

modData = mod(data);
demodData = demod(modData);

Убедитесь, что график спектра входных данных (канал 1) выровнен с графиком спектра демодулированных данных (канал 2).

specanalyzer([data demodData])

Figure Spectrum Analyzer contains an axes and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes contains 2 objects of type line. These objects represent Channel 1, Channel 2.

Воспроизведение аудиофайла после применения ЧМ модуляции и демодуляции. В примере используются характеристики System objects™ для обработки данных в потоковом режиме.

Загрузите аудиофайл, guitartune.wav, используя объект чтения аудиофайлов.

AUDIO = dsp.AudioFileReader...
    ('guitartune.wav','SamplesPerFrame',4410);

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

AUDIOPLAYER = audioDeviceWriter;

Создайте объекты модулятора и демодулятора, имеющие свойства по умолчанию.

MOD = comm.FMModulator;
DEMOD = comm.FMDemodulator;

Считывание аудиоданных, модуляция ЧМ, демодуляция ЧМ и воспроизведение демодулированного сигнала. z.

while ~isDone(AUDIO)
    x = step(AUDIO);                      % Read audio data
    y = step(MOD,x);                      % FM modulate
    z = step(DEMOD,y);                    % FM demodulate
    step(AUDIOPLAYER,z);                  % Playback the demodulated signal
end

Модулировать и демодулировать синусоидальный сигнал. Постройте график демодулированного сигнала и сравните его с исходным сигналом.

Задайте параметры примера.

fs = 100; % Sample rate (Hz)
ts = 1/fs; % Sample period (s)
fd = 25; % Frequency deviation (Hz)

Создайте синусоидальный входной сигнал длительностью 0,5 с и частотой 4 Гц.

t = (0:ts:0.5-ts)';
x = sin(2*pi*4*t);

Создание объектов системы FM-модулятора и демодулятора.

fmmod = comm.FMModulator('SampleRate',fs,'FrequencyDeviation',fd);
fmdemod = comm.FMDemodulator('SampleRate',fs,'FrequencyDeviation',fd);

ЧМ модулирует входной сигнал и строит график его реальной части. Видно, что частота модулированного сигнала изменяется с амплитудой входного сигнала.

y = fmmod(x);
plot(t,[x real(y)])

Figure contains an axes. The axes contains 2 objects of type line.

Демодулируйте ЧМ-модулированный сигнал.

z = fmdemod(y);

Постройте график входных и демодулированных сигналов. Выходной сигнал демодулятора точно совпадает с входным сигналом.

plot(t,x,'r',t,z,'ks')
legend('Input Signal','Demod Signal')
xlabel('Time (s)')
ylabel('Amplitude')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Input Signal, Demod Signal.

Избранная библиография

[1] Чакрабарти, И. Х., и Хатай, И. «Новый высокопроизводительный цифровой ЧМ-модулятор и демодулятор для программно-определяемого радио и его реализации FPGA». Международный журнал реконфигурируемых вычислений. т. 2011, № 10.1155/2011, 2011, с. 10.

[2] Тауб, Герберт и Дональд Л. Шиллинг. Принципы работы систем связи. Нью-Йорк: McGraw-Hill, 1971, стр. 142-155.

Алгоритмы

Представляют частотно-модулированный сигнал полосы пропускания Y (t), как

Y (t) = Acos (2πfct+2πfΔ∫0tx (

где A - амплитуда несущей, fc - частота несущей, x (start) - входной сигнал основной полосы частот, а - отклонение частоты в Гц. Отклонение частоты представляет собой максимальный сдвиг от fc в одном направлении, предполагая | x (t) | ≤ 1.

ЧМ-сигнал основной полосы может быть получен из представления полосы пропускания путем его преобразования с понижением частоты на fc, так что

ys (t) =Y (t) e−j2πfct=A2 [ej (2πfct+2πfΔ 0tx (τ) ) +e−j (2πfct+2πfΔ 0tx (τ) )] e−j2πfct=A2 [ej2πfΔ  0tx (τ) + e−j4πfct−j2πfΔ  0tx (τ) dτ].

Удаление компонента при -2fc из ys (t) оставляет представление сигнала основной полосы y (t), которое выражается как

y (t) =A2ej2πfΔ∫0tx (

Выражение для y (t) переписывается как

y (t) = A2ejstart( t),

где ϕ (t) =2πfΔ 0tx (τ) dτ, который подразумевает, что входной сигнал - чешуйчатая версия производной фазы, ϕ (t).

Демодулятор задержки основной полосы используется для восстановления входного сигнала от y (t).

Задержанная и сопряженная копия принятого сигнала вычитается из самого сигнала,

w (t) = A24ej, (t) e j, (t T) = A24ej [

где T - период выборки. В дискретных терминах wn = w (nT) и

wn=A24ej[ϕn−ϕn−1], vn =ϕn−ϕn−1.

Сигнал vn является аппроксимированной производной, такой, что vnxn.

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

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