三分钟学会FFT求频谱(matlab)
(以下可不看)
简介:FFT是离散傅立叶变换的快速算法,可以将一个信号变换 到频域。有些信号在时域上是很难看出什么特征的,但是如
果变换到频域之后,就很容易看出特征了。这就是很多信号 分析采用FFT变换的原因。
(以下必看)
一、FFT求频谱你需要知道的参数:
1.采样频率即Fs
2.需要进行FFT的数据
二、matlab程序
你需要替换的东西:
1.fs改成你的采样频率
2.fft_a = step(:,1);中的step(:,1)改成你的原始数据
3.在ylabel(‘’)中填上原始数据的单位
新增很多人问这个’acc_x_AmF’ matlab里没有,大家可以改成fft_Amf试试
fs=50; %采样频率为1000Hz
%fft_a原始数据
fft_a = step(:,1);
n1=length(fft_a); %原始数据长度
t1=(0:1/fs:(n1-1)/fs)'; %时间
%进行FFT频谱分析
fftnoise_1 = fft_a - mean(fft_a); %减去直流分量
fft_DFT=fft(fftnoise_1)/n1;%傅里叶变换
fft_AmF=abs(fft_DFT);
%单边幅度频谱分析
f_SS_1=(fs*(0:(n1/2))/n1)'; %fs采样频率
fft_AmF_SS_1=acc_x_AmF(1:floor(n1/2)+1,:);
fft_AmF_SS_1(2:end-1,:)=2*fft_AmF_SS_1(2:end-1,:);
%信号频域可视化
figure(1)
plot(f_SS_1,fft_AmF_SS_1(:,1))
xlabel('f/Hz')
ylabel('加速度/m^2/s') %原始数据的单位是啥你就填啥
title('原始数据FFT')
下图为运行后的结果
注:我的原始数据是三轴加计测量步数的原始数据
好了到这里你就学会怎么对原始数据进行FFT求频谱了,这个程序为什么会这么写,FFT的原理等这里不介绍。如果这篇文章对你有帮助记得三连谢谢啦。