您的位置首页百科知识

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

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

的有关信息介绍如下:

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

本文将以余弦信号为例,介绍使用MATLAB进行数字信号频谱分析的方法,主要使用了fft函数与fftshift函数,并对结果作出分析。

产生余弦信号以作频谱分析:

余弦信号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处的两个峰值。

运行结果: