求matlab加速度积分位移程序问题,求解决。 matlab中怎样将加速度信号积分
作者&投稿:红肯 (若有异议请与网页底部的电邮联系)
最近在用matlab处理振动数据,加速度频域积分为位移,但是我不明白为什么最后是用逆变换的实部作为结果?~
以上程序是对加速度二次积分为位移,将时域积分装换为频域积分, 实现方法为将时域信号进行FFT到频域,然后对频谱做简单运算实现了频域上的积分 最后将频域经过IFFT到时域 实现了频域上的积分。
时域积分对应在频域上的频谱函数为:∫f(x)dx →F(jw)/jw
所以时域上的一次积分对应在频域上的处理为:逆完FFT之后取虚部,因为加速度与速度之间的关系为jw
二次积分时因为是-w^2,所以有 y=-a 即为取实部
我是用采集到的加速度信号来做两次积分得到位移信号,由于采集到的加速度信号有直流偏移量,所以用了detrend命令做去趋势处理。为了检验代码是否正确,我用了一个标准的正弦函数来验证。代码如下:
t=(0:1:10240-1)/2000;
a=sin(5*t); %标准的正弦函数,准备对其进行两次积分处理
fs=2000;
N=10240;
za=detrend(a); %对采集到的加速度信号去趋势处理(因为采集到的加速度信号有直流偏移量)
v=cumtrapz(t,za); %对加速度信号积分得速度信号
zv=detrend(v); %对速度信号去趋势处理
l=cumtrapz(t,zv); %对速度信号积分得到位移信号
zl=detrend(l); %对位移信号去趋势处理
figure(1)
subplot(3,1,1)
plot(t,za)
title('加速度信号');
subplot(3,1,2)
plot(t,zv)
title('速度信号');
subplot(3,1,3)
plot(t,zl)
title('位移信号');