comm.FMDemodulator

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

Описание

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

К FM демодулируют сигнал:

  1. Задайте и настройте FMDemodulator объект. Смотрите Конструкцию.

  2. Вызовите step к FM демодулируют сигнал согласно свойствам comm.FMDemodulator. Поведение step характерно для каждого объекта в тулбоксе.

Примечание

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

Конструкция

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

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

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

Свойства

FrequencyDeviation

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

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

SampleRate

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

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

Методы

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

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

reset

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

При использовании 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);

FM модулирует входной сигнал и строит его действительную часть. Вы видите, что частота модулируемого сигнала изменяется с амплитудой входного сигнала.

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

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

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

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.

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

Установите параметры в качестве примера.

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;

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

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

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

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.

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

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

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

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

AUDIOPLAYER = audioDeviceWriter;

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

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

Считайте аудиоданные, FM модулируют, FM демодулируют и воспроизводят демодулируемый сигнал, 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);

FM модулирует входной сигнал и строит его действительную часть. Вы видите, что частота модулируемого сигнала изменяется с амплитудой входного сигнала.

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

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

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

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] Chakrabarti, я. H. и Hatai, я. “Новый Высокоэффективный Цифровой Модулятор FM и Демодулятор для Программно определяемого Радио и Его Реализации FPGA”. Международный журнал Реконфигурируемого Вычисления. Издание 2011, № 10.1155/2011, 2011, p. 10.

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

Алгоритмы

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

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

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

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

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 от ys(t) оставляет представление сгенерированного модулированного сигнала, y(t), который описывается как

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

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

y(t)=A2ejϕ(t),

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

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

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

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

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

wn=A24ej[ϕnϕn1],vn=ϕnϕn1.

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

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

Представленный в R2015a
Для просмотра документации необходимо авторизоваться на сайте