最近在用matlab处理振动数据,加速度频域积分为位移,但是我不明白为什么最后是用逆变换的实部作为结果?

最近在用matlab处理振动数据,加速度频域积分为位移,但是我不明白为什么最后是用逆变换的实部作为结果?,第1张

以上程序是对加速度二次积分为位移,将时域积分装换为频域积分, 实现方法为将时域信号进行FFT到频域,然后对频谱做简单运算实现了频域上的积分 最后将频域经过IFFT到时域 实现了频域上的积分。

时域积分对应在频域上的频谱函数为:∫f(x)dx →F(jw)/jw

所以时域上的一次积分对应在频域上的处理为:逆完FFT之后取虚部,因为加速度与速度之间的关系为jw

二次积分时因为是-w^2,所以有 y=-a 即为取实部

%遗传算法子程序:求出群体中最大适应值及其个体

function =best(pop,fitvalue)

=size(pop)

bestindividual=pop(i,:)

bestfit=fitvalue(1)

for i=2:px

if fitvalue(i)>bestfit

bestindividual=pop(i,:)

bestfit=fitvalue(i)

end

end

错误: 文件:main.m 行:130 列:5

"i" 以前似乎用作函数或命令,与其在此处作为变量名称的用法冲突。

发生此错误的可能原因是您忘记初始化此变量,或者您已使用 load 或 eval 隐式初始化此变量。

积分为何要频域积分。时域积分才对吧,你在频域给滤波时域再两次积分得位置。单片机是离散积分,如果你精度要求float,采样率1K cortex m3是没问题,如果你用的频率更高涉及更多的浮点计算,那么cortex M4也应该够了。总之我觉得你不需要上DSP或者Cortex A系列。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11597542.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存