假设正弦信号频率为f0=40000Hz,采样频率fs=160000Hz(注意,fs必须大于2f0,否则采到的点根本不是正弦。实际上,fs=4f0是比较合适的)。
Matlab程序如下:
function y=gensinx(f0,fs,n,N)
%f0 信号频率
%fs 采样频率
%n 采样点数
%N fft点数
ts=1/fs;
t=0:ts:(n*ts);
x=cos(2*pi*f0*t);
y1=fft(x,N);
y=fftshift(y1); %注意要调用fftshift,否则频谱点不正确。
f=(0:N-1)*fs/N-fs/2;
plot(f,abs(y));s