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

2025-11-12 07:48:20

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

余弦信号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('幅度');

运行结果:

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

2、用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得到的。

运行结果:

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

3、用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处的两个峰值。

运行结果:

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢