MATLAB中的AM调制:采样频率?

时间:2015-12-11 12:12:05

标签: matlab carrier modulation

我正在尝试使用Fm = 200 Hz的正弦信息调制Fc = 10 KHz的载波(在时域中从0到1)

采样率Fs = 1 KHz。

这是我的代码:

fs=1000;    % sampling freq.
ts=1/fs;
t= 0 : ts : 1;   % time axis
N=length(t);

%signal
fsignal=200;   % message signal freq.
y=sin(2*pi*fsignal*t);
f= -fs/2 : fs/N : fs/2 - fs/N;   % freq. axis
Y=fftshift(fft(y));
subplot(211); plot(f,abs(Y));

直到这一点,没问题。现在,对于载波信号:

%carrier:
fc = 10000;
carrier = cos(2*pi*fc*t);
CARRIER=fftshift(fft(carrier));
subplot(212); plot(f,abs(CARRIER));

Message- Carrier

现在需要在时域中乘以载波和消息。但承运人不正确。 问题是由于Fs <&lt;&lt;的Fc

这就是我为运营商弄错F.T的原因。

如何解决这个问题?

N.B:这只是我用来了解情况的一个例子。我试图解决的真正问题包括wav音频文件(Fs = 44.1 KHz)和载波频率(Fc = 100 KHz)。那么,Fs&lt;&lt; Fc和我无能为力。

谢谢,

1 个答案:

答案 0 :(得分:0)

如果您尝试在调制后绘制光谱,则应设置 样本频率fs = 2*(fc + fsignal)。见Nyquist I定理。

也许您正在尝试查看运营商周围的频谱?没有高采样? 您可以使用zoom-fft并使用Nyquist II定理