comm.FMBroadcastDemodulator

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

Описание

comm.FMBroadcastDemodulator Система object™ демодулирует модулируемый FM сигнал широковещательной передачи комплекса и фильтрует сигнал с фильтром de-акцента, чтобы произвести звуковой сигнал. Для получения дополнительной информации смотрите раздел Algorithms.

Демодулировать широковещательную передачу звуковой сигнал FM:

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

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

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

Создание

Описание

fmbdemodulator = comm.FMBroadcastDemodulator создает широковещательный Системный объект демодулятора FM.

пример

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

fmbdemodulator = comm.FMBroadcastDemodulator(fmbmodulator) свойства наборов на основе настройки входа comm.FMBroadcastModulator Системный объект, fmbmodulator.

Свойства

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

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

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

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

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

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

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

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

Стандарты телерадиовещания FM задают значение 75 кГц в Соединенных Штатах и 50 кГц в Европе.

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

De-акцент highpass фильтрует постоянную времени в секундах в виде положительной скалярной величины. Стандарты телерадиовещания FM задают значение 75 μs в Соединенных Штатах и 50 μs в Европе.

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

Опция, чтобы включить демодуляцию стерео в виде логического 0 ложь) или 1 TRUE).

  • false — Выход является моно аудио.

  • true — Объект выполняет декодирование стерео и выходное аудио стерео.

Для получения дополнительной информации смотрите раздел Algorithms.

Типы данных: логический

Опция, чтобы включить воспроизведение звука в виде логического 0 ложь) или 1 TRUE). Чтобы воспроизвести выходной сигнал на аудио устройстве по умолчанию, соединенном с компьютером, установите это свойство на true.

Типы данных: логический

Частота дискретизации выходного звукового сигнала в Гц в виде положительной скалярной величины.

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

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

Зависимости

Чтобы включить это свойство, установите PlaySound свойство к true.

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

Опция, чтобы включить RDS (или RBDS) демодуляция формы волны в виде логического 0 ложь) или 1 TRUE). Если вы устанавливаете этот набор свойств на true, объект демодулирует RDS (или RBDS) форма волны. Для получения дополнительной информации смотрите раздел Algorithms.

Типы данных: логический

Сверхдискретизация фактора RDS (или RBDS) выходной сигнал в виде положительного целого числа. Частота дискретизации RDS (или RBDS) широковещательные данные составляет 1 187,5 Гц. RDS (или RBDS) частота дискретизации сигнала является RBDSSamplesPerSymbol × 1187.5 Гц.

Зависимости

Чтобы включить это свойство, установите RBDS свойство к true.

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

Опция, чтобы восстановить фазу RDS (или RBDS) сигнализирует в виде логического 0 ложь) или 1 TRUE).

Чтобы восстановить фазу RDS (или RBDS) сигнал при помощи Схемы Костаса, установите это свойство на true. Для радиостанций, которые не блокируют 57 kHz RDS (или RBDS) сигнализируют в фазе с третьей гармоникой 19 пилот kHz настраивает, Схема Костаса помогает восстановить фазу RDS (или RBDS) сигнал.

Зависимости

Чтобы включить это свойство, установите RBDS свойство к true.

Типы данных: логический

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

Описание

пример

audiosig = fmbdemodulator(insig) демодулирует модулируемый FM основополосный звуковой сигнал и фильтрует этот сигнал с фильтром de-акцента, чтобы произвести звуковой сигнал.

пример

[audiosig,rbdssig] = fmbdemodulator(insig) также модулирует основополосный сигнал RBDS на уровне 57 кГц. Чтобы включить этот синтаксис, установите RBDS свойство к true.

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

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

Модулируемый FM основополосный звуковой сигнал в виде вектор-столбца. Для получения информации об ограничениях длины сигнала смотрите Ограничения.

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

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

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

Звуковой сигнал, возвращенный как вектор-столбец или M-by-N матрица. M является количеством стереоканалов. N является количеством отсчетов в звуковом сигнале на канал. Выход имеет совпадающий тип данных как входной сигнал, insig.

Если вы устанавливаете Stereo свойство к true, звуковой сигнал должен иметь по крайней мере два канала, и Системный объект выполняет стерео, кодирующий перед фильтрацией de-акцента. Продолжительностью выхода является N × (AudioSampleRate/SampleRate).

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

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

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

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

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

fmbMod = comm.FMBroadcastModulator( ...
    'AudioSampleRate',audiofilereader.SampleRate, ...
    'SampleRate',240e3);
fmbDemod = comm.FMBroadcastDemodulator( ...
    'AudioSampleRate',audiofilereader.SampleRate, ...
    'SampleRate',240e3,'PlaySound',true);

Считайте аудиоданные в системах координат длины 4410, примените широковещательную модуляцию FM, демодулируйте сигнал FM и воспроизведите демодулируемый сигнал (demodData).

while ~isDone(audiofilereader)
    audioData = audiofilereader();
    modData = fmbMod(audioData);
    demodData = fmbDemod(modData); % Demodulate and play signal
end

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

Задайте параметры для формы волны RBDS с 19 группами на систему координат и 10 выборками на символ. Частота дискретизации формы волны RBDS дана 1187.5 x 10. Установите частоту дискретизации звука на 1187.5 x 40.

groupLen = 104;
sps = 10;
groupsPerFrame = 19;
rbdsFrameLen = groupLen*sps*groupsPerFrame;
afrRate = 40*1187.5;
rbdsRate = 1187.5*sps;
outRate = 4*57000;

Загрузите звуковой файл guitartune.wav при помощи Системы читателя звукового файла object™ при установке выборок на систему координат. Создайте генератор формы волны RBDS, широковещательный модулятор FM, широковещательный демодулятор FM, и время определяет объем Системных объектов. Сконфигурируйте модулятор, и демодулятор возражает, чтобы обработать звуковой файл стерео и форму волны RBDS.

afr = dsp.AudioFileReader( ...
    'rbds_capture_47500.wav', ...
    'SamplesPerFrame',rbdsFrameLen*afrRate/rbdsRate);
rbds = comm.RBDSWaveformGenerator( ...
    'GroupsPerFrame',groupsPerFrame, ...
    'SamplesPerSymbol',sps);

fmMod = comm.FMBroadcastModulator( ...
    'AudioSampleRate',afr.SampleRate, ...
    'SampleRate',outRate,...
    'Stereo',true, ...
    'RBDS',true, ...
    'RBDSSamplesPerSymbol',sps);
fmDemod = comm.FMBroadcastDemodulator( ...
    'SampleRate',outRate,...
    'Stereo',true, ...
    'RBDS',true, ...
    'PlaySound',true);
scope = timescope( ...
    'SampleRate',outRate, ...
    'YLimits',10^-2*[-1 1]);

Считайте звуковой сигнал. Сгенерируйте информацию RBDS на том же сконфигурированном уровне как аудио. Широковещательная передача FM модулирует звуковой сигнал стерео с информацией RBDS. Добавьте аддитивный белый Гауссов шум. FM - демодулирует звуковой сигнал и формы волны RBDS. Просмотрите формы волны в осциллографе времени.

for idx = 1:7
    input = afr();                         
    rbdsWave = rbds();                     
    yFM = fmMod([input input],rbdsWave);  
    rcv = awgn(yFM,40);                   
    [audioRcv, rbdsRcv] = fmDemod(rcv);    
    scope(rbdsRcv);
end

Ограничения

Длина входного сигнала, insig, должно быть целочисленное кратное AudioDecimationFactor свойство. Если вы устанавливаете RBDS свойство к true, длина входного сигнала, insig, также должно быть целочисленное кратное RBDSDecimationFactor. Для получения дополнительной информации о AudioDecimationFactor и RBDSDecimationFactor свойства, смотрите info объектная функция.

Алгоритмы

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

Широковещательный демодулятор FM включает функциональность основополосного демодулятора FM, фильтрации de-акцента и способности получить стереофонические сигналы. Для получения дополнительной информации об алгоритмах, используемых для основной модуляции FM и демодуляции, смотрите comm.FMDemodulator Системный объект.

Ссылки

[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.

[3] Der, Лоуренс. "Пример по Частотной модуляции (FM)". Silicon Laboratories Inc., стр 4–8.

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

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