首页 > 解决方案 > 如何解决以八度音阶执行 FM 解调的错误?

问题描述

我正在尝试解调调制的 FM 信号。正如您在下面的代码中看到的那样,我使用 fmmod 来调制 FM 信号,但是当我使用 fmdemod 或 ademodce 时,它​​们都不会返回与原始信号相似的任何东西。对于 fmdemod,我相信你不能像在 fmmod 中那样输入 freqdev,所以它不会执行相反的操作。对于ademodce,我不知道为什么这不起作用。是否有任何其他 Octave 函数可以用来再次获得原始信号,或者我如何正确使用这两个函数中的任何一个来做到这一点?

请参见下面的示例代码:

    [sound2,fs]=audioread('sound2.wav');
    
    fc=7500;
    freqdev=100;
    dt=1/fs;
    len=length(sound2)*dt;
    
    t=0:dt:len;
    t=t(1:end-1);
    t1=t(1:end-1);
    
    FMmod=fmmod(sound2.',fc,fs,freqdev);
    FMDemod=ademodce(FMmod,fs,"fm",freqdev); %Or fmdemod(FMmod.',fc,fs) Neither is working.
    
    sound(sound2,fs)
    sound(FMDemod,fs)
    
    
    subplot(2,2,1),plot(t,sound2),title('Original Sound');
    
    subplot(2,2,2),plot(t,FMmod,'r'),title('FM Modulated');
    
    subplot(2,2,3),plot(t,FMDemod,'g'),title('FM De-Modulated');
    
    subplot(2,2,4),plot(t,FMmod-sound2.'), title('Carrier Signal');

标签: audiosignalsoctavetelecommunication

解决方案


推荐阅读