操作方法
产生余弦信号以作频谱分析: 余弦信号y=cos(2π*f*t); 信号频率为f=10Hz; 时宽:1s 采样率为fs=100Hz; MATLAB程序: f=10; fs=100; T=1; n=round(T*fs);%采样点个数 t=linspace(0,T,n); y=cos(2*pi*f/fs*[0:n-1]); figure; plot(t,y); title('余弦信号时域'); xlabel('t/s'); ylabel('幅度'); 运行结果:
用fft函数对产生的余弦信号作频谱分析: 注意:该步骤得到的是0~fs内的频谱。 MATLAB代码: fft_y=fft(y); f=linspace(0,fs,n); figure; plot(f,abs(fft_y)); title('余弦信号频谱'); xlabel('f/Hz'); ylabel('幅度'); 可以看到10Hz处有峰值,90Hz的峰值是-10Hz的峰值向右频谱搬移fs=100Hz得到的。 运行结果:
用fftshift函数得到-fs/2~fs/2内的频谱: MATLAB代码: fftshift_y=fftshift(fft_y); f=linspace(-fs/2,fs/2,n); figure; plot(f,abs(fftshift_y)); title('余弦信号频谱'); xlabel('f/Hz'); ylabel('幅度'); 由于实信号频谱幅度关于原点对称,可以看到10Hz与-10Hz处的两个峰值。 运行结果: