我使用以下代码调制和解调简单波形。
Fs = 44100;
T = 1;
Fc = 15000;
t=[0:1/Fs:T];
x=cos(20*pi*t);
y=ammod(x,Fc,Fs);
z=amdemod(y,Fc,Fs);
plot(z);
当Fc大约为12k时,'z'与'x'相同,但当Fc高(大约15k,如上面的代码所示)时,'z'不合适。虽然波形看起来类似于'x',但它就像一个调制波。 我显然遗漏了一些东西(我知道Fs> 2 *(Fc + BW),我想我正在上面的代码中跟随它) 可以请任何帮助吗?
答案 0 :(得分:2)
看一下解调信号的频谱:
您需要对信号进行低通滤波。您可以使用以下内容:
% Parameters
Fs = 44100;
T = 1;
Fc = 15000;
Fm = 10;
% Low-pass filter design
[num,den] = butter(10,1.2*Fc/Fs);
% Signals
t = 0:1/Fs:T;
x = cos(2*pi*Fm*t);
y = ammod(x,Fc,Fs);
z = amdemod(y,Fc,Fs);
w = amdemod(y,Fc,Fs,0,0,num,den);
% Plot
figure('Name','AM Modulation');
subplot(4,1,1); plot(t,x); title('Modulating signal');
subplot(4,1,2); plot(t,y); title('Modulated signal');
subplot(4,1,3); plot(t,z); title('Demodulated signal');
subplot(4,1,4); plot(t,w); title('Demodulated signal (filtered)');
结果是: