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

 时间:2026-02-14 01:16:38

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为例)

  • matlab怎么运行代码
  • 如何在MATLAB中清空命令行窗口?
  • Matlab如何给图像添加高斯噪声?
  • matlab编辑器怎么调出
  • matlab创建m文件
  • 热门搜索
    紫的部首是什么 国家一级运动员 什么是结核病 相煎何太急是什么意思 脚后跟干裂是什么原因 玉竹是什么 缺维生素d的症状 红酒不能和什么一起吃 自贡有什么好玩的地方 梳子什么材质的好