使用内置八度音程功能的幅度调制

时间:2014-02-20 08:44:24

标签: matlab communication octave modulation

我使用以下代码调制和解调简单波形。

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),我想我正在上面的代码中跟随它) 可以请任何帮助吗?

1 个答案:

答案 0 :(得分:2)

看一下解调信号的频谱: enter image description here

您需要对信号进行低通滤波。您可以使用以下内容:

% 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)');

结果是:

enter image description here