【求助】关于离散信号求导的问题
我是课题是做拖拉机主动减振的,然后建立的数学模型涉及到路面输入的一阶导数和二阶导数。用simulink建立的路面模型仿真图如下,然后也把仿真的数据导入TXT文件了,就是相当于是一连串的离散点。然后需要对这个路面输入求导,只要低频的,10HZ以下就行,我应该怎么做呢,步长取得1e-3,之前直接用相邻点的差除以步长,得到的结果一个是会出现许多很大的峰值,再一个肯定非常不准确不能用。我应该怎样得到精确的导数呢?diff函数不可以么? 江树空 发表于 2014-3-27 18:14
diff函数不可以么?
问题是只是一系列离散的点,都没有函数呢 diying813 发表于 2014-3-27 18:29
问题是只是一系列离散的点,都没有函数呢
diff也可用于离散点,叫做差分,求导的话可以用diff(x)./dy http://forum.vibunion.com/thread-130768-1-2.html
看牛主任的解释,挺对你的 这种情况要先对数据进行平滑处理,然后在对数据进行求导 diying813 发表于 2014-3-27 18:29
问题是只是一系列离散的点,都没有函数呢
请在matlab的help中查看完diff函数的用法后再提问 跳动的杯子 发表于 2014-3-27 22:39
diff也可用于离散点,叫做差分,求导的话可以用diff(x)./dy
我想问下,diff对于离散点,是不是就是相当于相邻两项相减再除以dt,可是这样不行的呀,会出现许多很大的尖峰,结果也不准确 simon21 发表于 2014-3-28 05:44
这种情况要先对数据进行平滑处理,然后在对数据进行求导
我想只留下低频的信号,想求教下是不是在这之前再滤波下呢? 江树空 发表于 2014-3-28 09:12
请在matlab的help中查看完diff函数的用法后再提问
之前没看到它用于离散点的情况,但是我想求教下,diff对于离散点,是不是就是相当于相邻两项相减再除以dt,可是这样不行的呀,会出现许多很大的尖峰,结果也不准确。 马社 发表于 2014-3-27 22:50
http://forum.vibunion.com/thread-130768-1-2.html
看牛主任的解释,挺对你的
可是直接差分得到的结果不能用啊,我之前虽然没有用diff这个函数,但是我写的语句应该差不多就是那个意思,我把相邻两项相减再处于dt,但是会出现许多大峰值,结果肯定也不对 本帖最后由 江树空 于 2014-3-28 17:14 编辑
diying813 发表于 2014-3-28 11:17
之前没看到它用于离散点的情况,但是我想求教下,diff对于离散点,是不是就是相当于相邻两项相减再除以dt ...
嗯,你这样求导从算法上来讲是没错的,结果不好只能是因为数据本身就不好了。你那个图是时域信号对吧?再就是你说只要10Hz以下的的这里我不是太明白,如果说你是要以求导结果为输入,那我觉得你应该在求完导之后,还要再进行低通滤波。 diying813 发表于 2014-3-28 11:23
可是直接差分得到的结果不能用啊,我之前虽然没有用diff这个函数,但是我写的语句应该差不多就是那个意思 ...
还是要认真读一下牛主任的意思,要领会其中的意思 马社 发表于 2014-3-28 18:28
还是要认真读一下牛主任的意思,要领会其中的意思
求点拨{:{16}:} 江树空 发表于 2014-3-28 17:13
嗯,你这样求导从算法上来讲是没错的,结果不好只能是因为数据本身就不好了。你那个图是时域信号对吧?再 ...
这个数据是根据标准路面谱的公式生成的,嗯是时域信号。然后我仿真的时候是这个数据,然后它的导数,二阶导数都需要用到,作为系统的输入。然后说是10HZ以下,是因为系统是分析路面输入对拖拉机振动的影响,只考虑低频振动。现在就是不知道怎么得到那个导数输入
页:
[1]
2