MATLAB实现信号频谱分析(以余弦信号的FFT为例)

作者:没什么大不了 | 创建时间: 2023-05-21
本文将以余弦信号为例,介绍使用MATLAB进行数字信号频谱分析的方法,主要使用了fft函数与fftshift函数,并对结果作出分析。...
MATLAB实现信号频谱分析(以余弦信号的FFT为例)

操作方法

产生余弦信号以作频谱分析: 余弦信号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处的两个峰值。 运行结果:

温馨提示

由于本文对实信号作FFT,得到的频谱幅度是关于频率轴对称的;若对复信号作频谱分析,则得到的谱线不一定关于频率轴对称。
点击展开全文

更多推荐