加速度积分算法C语言,加速度频域积分的实现及其局限性分析
4. 虚数 j得到ω数组后就是处理 j 了,j是单位虚数,j的平方为-1。积分公式中F(ω)除了一个 j,而 j 在频域中表示相移,每乘一个 j就逆时针旋转了90度,每除一个j,顺时针旋转90度。也就是说,时域的一次积分转到频域后需要顺时针旋转90度,而二次积分需要顺时针旋转180度。5. 进行积分的频域变换频域变换就是第二步中FFT的结果(即1024个复数)依次除以ω数组。6. 进行积分的相位变
4. 虚数 j
得到ω数组后就是处理 j 了,j
是单位虚数,j的平方为-1。积分公式中F(ω)除了一个 j,而 j 在频域中表示相移,每乘一个 j
就逆时针旋转了90度,每除一个j,顺时针旋转90度。也就是说,时域的一次积分转到频域后需要顺时针旋转90度,而二次积分需要顺时针旋转180度。
5. 进行积分的频域变换
频域变换就是第二步中FFT的结果(即1024个复数)依次除以ω数组。

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

7. 滤波
此时如果不进行滤波直接跳到第8步就能得到时域的二次积分结果。如果想把其中的低频和高频部分滤除,则可以将第6步得到的复数数组中的开头几个复数和最后几个复数直接置零,假设需要滤除Fmin=10Hz以下的部分,先计算出10Hz大概是哪个点ni=Fim/df+1,10/0.977+1≈11,即把第6步得到的复数数组前11个复数都置位0,滤高频同理。
补充:以上方法其实就是用了矩形窗函数,如果想要达到不同的滤波效果,可以考虑其他窗函数如汉宁窗、海明窗、高斯窗等等。
8. IFFT返回时域
最后通过IFFT将处理完的复数数组转回时域,得到积分结果。
附上MATLAB代码,C语言代码点击下面链接
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)