[英]AM Modulation in MATLAB: Sampling frequency?
我正在尝试使用Fm = 200 Hz(时域从0到1)的正弦消息调制Fc = 10 KHz的载波
采样率Fs = 1KHz。
这是我的代码:
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));
现在需要在时域中将运营商和消息相乘。 但是承运人是不正确的。 问题源于Fs << Fc
这就是为什么我为承运商弄错了FT。
请问该如何解决?
注意:这只是我用来了解情况的一个示例。 我要解决的实际问题包括wav音频文件(Fs = 44.1 KHz)和载波频率(Fc = 100 KHz)。 因此,Fs << Fc,我对此无能为力。
谢谢,
如果要在调制后绘制频谱图,则应设置样本频率fs = 2*(fc + fsignal)
。 参见奈奎斯特一世定理。
也许您正在尝试查看运营商周围的频谱? 没有高采样? 您可以使用zoom-fft和Nyquist II定理
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.