您好,欢迎来到保捱科技网。
搜索
您的当前位置:首页Matlab使用fft画出信号频谱图的方法

Matlab使用fft画出信号频谱图的方法

来源:保捱科技网
Matlab使⽤fft画出信号频谱图的⽅法

做雷原作业,需要对信号进⾏频谱分析,⽹上⼀搜太乱了,很多不是我想要的,特此整理。DSP还没学到fft,就不对fft原理进⾏详细解释了,直接上代码。

fs=500;%采样率f1=5;%信号频率f2=10;%信号频率T=1;%时宽1s

n=round(T*fs);%采样点个数t=linspace(0,T,n);%时域横坐标

x = 3+cos(2*pi*f1*t) + 2.*cos(2*pi*f2*t);%形成三频信号,注意第⼆个频率信号幅度为2,直流幅度为3figure(1);

plot(t,x);%画时域图xlabel(\"t/s\")grid on

X = fftshift(fft(x./(n))); %⽤fft得出离散傅⾥叶变换

f=linspace(-fs/2,fs/2-1,n);%频域横坐标,注意奈奎斯特采样定理,最⼤原信号最⼤频率不超过采样频率的⼀半figure(2)

plot(f,abs(X));%画双侧频谱幅度图xlabel(\"f/Hz\")ylabel(\"幅度\")grid on

显然,该信号有三个频率分量,直流(0频),5Hz和10Hz,对应的幅度分别为3、1、2,其时域波形图如下:

转换为频域的关键函数是X = fftshift(fft(x./(n)));⼀定注意需要除以总样本数n,然后⽤fftshift将曲线挪⼀下位置。

做完这步操作后,得出的是双边频谱,频率范围从-fs/2到fs/2,这是因为奈奎斯特采样定理,给定采样频率为fs,那么原信号的最⼤频率不超过fs/2。横坐标的点数和时域信号的采样点数相同,这由离散傅⾥叶变换的性质给出。绘制频谱幅度图如下:

可以看到,直流分量的幅度是3,这与时域的幅度相同,5Hz和10Hz的幅度分别为0.5和1,这⽐时域的幅度减⼩了⼀半,这是由于这个频谱图是双边频谱。沿着x=0线“对折”过去加起来,就变成单边频谱,频域幅度就和时域幅度对应上了。

到此这篇关于Matlab使⽤fft画出信号频谱的⽂章就介绍到这了,更多相关Matlab画fft信号频谱内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务