FMBroadcastModulator вопрос по стерео демодуляции
Здравствуйте! Возник вопрос по реализации стерео модулятора/демодулятора. На базе примера из help https://www.mathworks.com/help/comm/ref/comm.fmbroadcastmodulator-system-object.html реализовал коротенький скрипт:
clear all;
[y,Fs] = audioread('stereo_file.mp3');
% soundsc(y, Fs)
AirFs = 441000;
fmbMod = comm.FMBroadcastModulator('AudioSampleRate',Fs, ...
'SampleRate',AirFs, 'Stereo', true);
fmbDemod = comm.FMBroadcastDemodulator( ...
'AudioSampleRate',Fs, ...
'SampleRate',AirFs,'PlaySound',true, 'Stereo', true);
audioData = y(1:AirFs*2, 1:2);
modData = fmbMod(audioData);
demodData = fmbDemod(modData);
В результате выполнения проигрывается моно сигнал(взял запись теста стереоэффекта с поочередным появлением звука то в одном канале, то в другом). Если убрать комментарий и проиграть soundsc(y, Fs), то стереоэффект есть.
Еще информация - в исходном стереосигнале есть большая разница между сигналами R и L, после демодуляции разница между каналами на 4 порядка ниже.
Если использовать пример из хелпа, то он не репрезентативный(пример с RBDS) так как там хоть и стоит флаг stereo, но в исходном сигнале нет стереоэффекта(rbds_capture_47500.wav)
Так же пробовал повторить в симулинке - там такая же проблема.
Более того если построить спектр от моделированного сигнала, я ожидал увидеть нечто похожее на картинку из help - то есть L+R, L-R и пилот на 19кГц, я же такой картины не вижу, то есть явно есть какая-то проблема с модуляцией.
Помогите пожалуйста разобраться.
Комментарии