comm.FMDemodulator

Демодулируйте основополосный сигнал FM

Описание

comm.FMDemodulator Система object™ демодулирует основополосный сигнал FM.

Демодулировать основополосный сигнал FM:

  1. Создайте comm.FMDemodulator объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?

Создание

Описание

пример

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

fmdemodulator = comm.FMDemodulator(Name,Value) свойства наборов с помощью одних или нескольких аргументов name-value. Например, 'Samplerate',400e3 задает частоту дискретизации 400 кГц.

пример

fmdemodulator = comm.FMDemodulator(fmmodulator) свойства наборов на основе настройки входа comm.FMModulator Системный объект, fmmodulator.

Свойства

развернуть все

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

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Частота дискретизации входного сигнала в Гц в виде положительной скалярной величины. Это свойство задает частоту дискретизации при выходе модулятора или во входе демодулятора. Частота дискретизации должна быть больше дважды отклонения частоты (то есть, SampleRate > 2×FrequencyDeviation).

Типы данных: double

Пиковое отклонение частоты выходного сигнала в Гц, заданном положительная скалярная величина. Отклонение частоты должно быть меньше половины частоты дискретизации (то есть, FrequencyDeviation <SampleRate/2).

Системной полосой пропускания является B T = 2× (FrequencyDeviation + B M), где B M является полосой пропускания сообщения в Гц. Для получения дополнительной информации смотрите раздел Algorithms.

Типы данных: double

Использование

Описание

пример

outsig = fmdemodulator(insig) демодулирует основополосный сигнал FM, и выходные параметры передают данные.

Входные параметры

развернуть все

Основополосный сигнал FM в виде скаляра или вектор-столбца.

Типы данных: double | single | fi
Поддержка комплексного числа: Да

Выходные аргументы

развернуть все

Передайте данные, возвращенные как скаляр или вектор-столбец совпадающего типа данных и размера как вход insig.

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

Воспроизведите звуковой файл после применения модуляции FM и демодуляции при помощи Системных объектов, чтобы обработать данные в потоковом режиме.

Загрузите звуковой файл guitartune.wav при помощи Системы читателя звукового файла object™.

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

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

audioplayer = audioDeviceWriter;

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

fmmod = comm.FMModulator;
fmdemod = comm.FMDemodulator;

Считайте аудиоданные, FM - модулируют аудиоданные, FM - демодулируют модулируемый FM сигнал и воспроизводят демодулируемый сигнал (z).

while ~isDone(audiofilereader)
    x = audiofilereader();
    y = fmmod(x);
    z = fmdemod(y);
    audioplayer(z);
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, установив отклонение частоты и частота дискретизации. Затем создайте Системный объект демодулятора FM, с помощью настройки модулятора FM, чтобы установить свойства демодулятора.

fmmodulator = comm.FMModulator( ...
    'SampleRate',fs, ...
    'FrequencyDeviation',fd);
fmdemodulator = comm.FMDemodulator(fmmodulator);

FM - модулируйте сигнал и постройте действительный компонент комплексного сигнала. Частота модулируемого сигнала изменяется с амплитудой входного сигнала.

y = fmmodulator(x);
plot(t,[x real(y)])
title('Input Sinusoid and FM-Modulated Signals')
xlabel('Time (seconds)'); ylabel('Amplitude')
legend('Input signal','Modulated signal (real component)')

Figure contains an axes object. The axes object with title Input Sinusoid and FM-Modulated Signals contains 2 objects of type line. These objects represent Input signal, Modulated signal (real component).

Демодулируйте модулируемый FM сигнал.

z = fmdemodulator(y);

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

plot(t,x,'r',t,z,'ks')
legend('Original signal','Demodulated signal')
xlabel('Time (s)')
ylabel('Amplitude')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Original signal, Demodulated signal.

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

Инициализируйте параметры для примера.

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

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

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

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

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 = load('handel.mat');
data = S.y;
fsamp = S.Fs;

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

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

FM - модулирует, и - демодулируют аудиоданные.

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

Проверьте что график спектра входных данных (Channel 1) выравнивается с теми из демодулируемых данных (Channel 2).

specanalyzer([data demodData])

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

Алгоритмы

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

Y(t)=Acos(2πfct+2πfΔ0tx(τ)dτ),

где:

  • A является амплитудой несущей.

  • f c является несущей частотой.

  • x (τ) является входным сигналом основной полосы.

  • f Δ является отклонением частоты в Гц.

Отклонение частоты является максимальным сдвигом от f c в одном направлении, принимая |x (τ) | ≤ 1.

Основополосный сигнал FM может быть выведен из представления полосы пропускания downconverting сигнал полосы пропускания f c таким образом что

ys(t)=Y(t)ej2πfct=A2[ej(2πfct+2πfΔ0tx(τ)dτ)+ej(2πfct+2πfΔ0tx(τ)dτ)]ej2πfct=A2[ej2πfΔ0tx(τ)dτ+ej4πfctj2πfΔ0tx(τ)dτ].

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

y(t)=A2ej2πfΔ0tx(τ)dτ.

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

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

Baseband FM demodulator

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

w(t)=A24ejϕ(t)ejϕ(tT)=A24ej[ϕ(t)ϕ(tT)],

где T является периодом расчета. В дискретных терминах,

wn=w(nT),wn=A24ej[ϕnϕn1], иvn=ϕnϕn1.

v сигнала n является аппроксимативной производной ϕ n таким образом что v nx n.

Ссылки

[1] Hatai, я., и я. Chakrabarti. “Новый Высокоэффективный Цифровой Модулятор FM и Демодулятор для Программно определяемого Радио и Его Реализации FPGA”. Международный журнал Реконфигурируемого Вычисления (25 декабря 2011): 1-10. https://doi.org/10.1155/2011/342532.

[2] Taub, H. и D. Шиллинг. Принципы Систем связи. Ряд McGraw-Hill в Электротехнике. Нью-Йорк: McGraw-Hill, 1971, стр 142–155.

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

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