离散数据积分
在论坛上看见一个帖子里面提到了cumtrapz函数可以进行离散数据的积分,所以拿来用了一下,发现了一个问题,希望高手帮我解答一下。先贴出代码:clear; clc;
f0=50; %被测函数频率50Hz
n=1024; %采样点数1024个
sf=f0*64;%采样频率
dt=1/sf; %采样时间间隔
t=0:dt:(n-1)*dt; %离散时间序列
x=sin(2*pi*f0*t); %频率为50Hz的函数取值
z=cumtrapz(x))*dt; %对采集到的数据进行积分,原来没有乘以dt
plot(t,z); %绘制积分后的函数值我的问题是,更改采样频率sf,会影响积分出来的结果。
如,当sf=f0*128时,积分结果如下图:
当sf=f0*64时,积分结果如下图:
采样点数与积分结果的幅值成正比。 这是为什么呢?
如果考虑连续函数x=sin(100*pi*t),它的积分应该是x=-cos(100*pi*t)/(100*pi)啊,得出来的值一定的啊。这与上述现象相悖啊。
如果上述现象是正确的,那在实际操作中,应该怎么从采集到的加速度信号得到速度信号呢?
高手们,都出来啊!! 谢谢
[ 本帖最后由 ChaChing 于 2010-4-26 21:55 编辑 ] 已经解决了。
原因是我没有读懂cumtrapz这个函数的定义。
在调用该函数的时候写成cumtrapz(x)*dt就没有问题了
[ 本帖最后由 Spire 于 2010-4-25 16:28 编辑 ] 建议LZ若代码不长的话, 尽量直接贴出, 这边打开会乱码!
可以的话, 请使用编辑功能修下! 没事路过来看看,{:{40}:}
页:
[1]