使用Matlab 进行FFT 计算

作为一个电控工程师,在分析采集的信号的时候,如果只停留在靠经验和感觉去给出结论,就会陷入经验论,很多时候不能找到事情的本源,所以采集信号后,对信号进行傅里叶变化,拨开现象更好的发现内部的本源,才能在技术上更上一层楼。

以前写的一个通过matlab 进行FFT的脚本,直接上代码

 % 导入采样点和采样频率 计算FFT
 function [FFT_FundA,FFT_FundP,Ax,Ay,py]=FFT_DKZ(InputSampleValue,fs)
 %FFT function  by FFT_DKZ 20210820
 %input sample data and sample frequency
 %output compute Amplitude and phase
fft_N=length(InputSampleValue); 
FFT_sample_T =InputSampleValue;
Y=fft(FFT_sample_T,fft_N);%%获得fft后的复数
Ayy=abs(Y);%% 获得幅值
Ay=[Ayy(1)/fft_N,Ayy(2:fft_N)/fft_N*2];%获得幅值
Ax=([1:fft_N]-1)*fs/fft_N;%获得频率   采样频率除以点出是频率的间隔 从0~N-1
py=atan2(imag(Y),real(Y)); %和phase 效果一样
FFT_FundA=max(Ay);
% A_low=find(Ay<FFT_FundA*0.5);% 可以屏蔽掉低幅值的信号更好的看到比重大的信号的相位
% py(A_low)=0;
fund_Index                              = find(Ay == max(Ay),1);
FFT_FundP=py(fund_Index);
 end

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DKZ001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值