加速度积分算法C语言,加速度频域积分的实现及其局限性分析

4. 虚数 j

得到ω数组后就是处理 j 了,j

是单位虚数,j的平方为-1。积分公式中F(ω)除了一个 j,而 j 在频域中表示相移,每乘一个 j

就逆时针旋转了90度,每除一个j,顺时针旋转90度。也就是说,时域的一次积分转到频域后需要顺时针旋转90度,而二次积分需要顺时针旋转180度。

5. 进行积分的频域变换

频域变换就是第二步中FFT的结果(即1024个复数)依次除以ω数组。

a4c26d1e5885305701be709a3d33442f.png

6. 进行积分的相位变换

第4步中提到一次积分顺时针旋转90度,而二次积分顺时针旋转180度。相位变换就是把第5步得到的复数数组每个复数都旋转,假设实部为real,虚部为imag,一次积分时虚部等于实部imag=real,实部等于负虚部real=-imag;二次积分时实部等于负实部real=-real,虚部等于负虚部imag=-imag

a4c26d1e5885305701be709a3d33442f.png

7. 滤波

此时如果不进行滤波直接跳到第8步就能得到时域的二次积分结果。如果想把其中的低频和高频部分滤除,则可以将第6步得到的复数数组中的开头几个复数和最后几个复数直接置零,假设需要滤除Fmin=10Hz以下的部分,先计算出10Hz大概是哪个点ni=Fim/df+1,10/0.977+1≈11,即把第6步得到的复数数组前11个复数都置位0,滤高频同理。

补充:以上方法其实就是用了矩形窗函数,如果想要达到不同的滤波效果,可以考虑其他窗函数如汉宁窗、海明窗、高斯窗等等。

8. IFFT返回时域

最后通过IFFT将处理完的复数数组转回时域,得到积分结果。

附上MATLAB代码,C语言代码点击下面链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值