Spire 发表于 2010-4-25 15:55

离散数据积分

在论坛上看见一个帖子里面提到了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 编辑 ]

Spire 发表于 2010-4-25 16:14

已经解决了。
原因是我没有读懂cumtrapz这个函数的定义。
在调用该函数的时候写成cumtrapz(x)*dt就没有问题了

[ 本帖最后由 Spire 于 2010-4-25 16:28 编辑 ]

ChaChing 发表于 2010-4-25 21:22

建议LZ若代码不长的话, 尽量直接贴出, 这边打开会乱码!
可以的话, 请使用编辑功能修下!

happycqliu 发表于 2011-5-6 11:14

没事路过来看看,{:{40}:}
页: [1]
查看完整版本: 离散数据积分