коммуникация. 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
шагПрименяет основополосную демодуляцию FM
Характерный для всех системных объектов
release

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

Примеры

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

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

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

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 object™.

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

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

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

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

DEMOD = comm.FMDemodulator('SampleRate',fs,'FrequencyDeviation',fd);
z = step(DEMOD,y);

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

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

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

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

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

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

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

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

DEMOD = comm.FMDemodulator(MOD);

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

MOD
DEMOD
MOD = 

  comm.FMModulator with properties:

            SampleRate: 300000
    FrequencyDeviation: 50000


DEMOD = 

  comm.FMDemodulator with properties:

            SampleRate: 300000
    FrequencyDeviation: 50000

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

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

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

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

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

modData = step(MOD,data);
demodData = step(DEMOD,modData);

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

step(SA,[data demodData])

Воспроизведите звуковой файл после применения модуляции 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

Алгоритмы

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

Y(t)=Aпотому что(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.

Выбранная библиография

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

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

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

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