一个波峰的算法问题,请大家提供点思路

coolsol 2003-08-14 07:49:50
比方说给一条曲线,程序自动来数波峰的个数。
我的想法是:分析当前点和左右点的纵坐标值,如果当前点的值比左右两点的值都大,那么认为这点就是波峰。
但是在实际应用中会出现很多错误判断的情况。如果这条曲线上又很多小锯齿,那么一个小锯齿程序也会认为是波峰,但是我们人脑判断波峰并不是这么机械,我们认为又明显起伏的才算是波峰。但是我在程序里面不知道怎样把人脑的判断方式和标准做进来。
还请各位大侠提供思路。不甚感激!
这个帖子应该是算法问题,但是我是用VB做的,也不知道发在哪里好,所以还请版主高抬贵手。谢谢
...全文
759 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
sippey 2003-08-16
  • 打赏
  • 举报
回复
y=(sinx)/x
y'=(cosx*x-sinx)/x^2
y'=0 即波峰或波谷
woodysoft 2003-08-16
  • 打赏
  • 举报
回复
如果你知道波峰出现的频率就好办多了,我做过类似的东西,波峰是在一定的范围内出现,在可能出现的区间里找最大值,然后再以这一点找下一点,就可以查出个数了!
Wang_xiaoni 2003-08-16
  • 打赏
  • 举报
回复
能不能提供点具体的实例,我也正在搞这个,我是还要找拐点,峰值,但是我知道我的曲线是一个(sinx)/x的对称函数,回答出来我再开帖,多少由你,只要不是我没有的(别要1000分,我会成光棍的)  ^_^
coolsol 2003-08-15
  • 打赏
  • 举报
回复
曲线上的波峰的峰值可能相差很大(可能只是相对的存在波峰)
我的意思是说,如果光靠阈值来判断是不行的
coolsol 2003-08-15
  • 打赏
  • 举报
回复
但是如果我的曲线是一条手绘的曲线,非常复杂,那样如果挑选一个拟合函数是不是很困难?并且曲线上的波峰的峰值可能相差很大(可能只是相对的存在波峰),那这样又怎么拟合呢?
jlum99 2003-08-15
  • 打赏
  • 举报
回复
噪声又叫背底.比如一条曲线存在很多低与平均值很多的峰,这些在数据处理中都是要去除的.至于拟合,有很多的方法,可以找到一个函数曲线与波峰很吻合,这个函数就能用做是波峰的拟合函数,其实就是个逆向求解方程的过程.函数可以自己定义,看要求了.在化学,物理分析中是经常用到的.有些工具软件也提供一些现成的拟合函数,都是平常用到的,至于求解算法就要自己做了.拟合过程自然就带了平滑效果,而且有利与数据的分析和处理.
doudou8090 2003-08-15
  • 打赏
  • 举报
回复
学习
lbhqu 2003-08-15
  • 打赏
  • 举报
回复
先设定一个值 凡是比这个大的又比其左右两边的值大的就是波峰
coolsol 2003-08-15
  • 打赏
  • 举报
回复
什么是拟合?我是用的滑动平均的方式消除部分伪波峰的。就是
上一点+当前点+下一点的值 平均赋给当前点。
我还有问题是:怎样消除噪声?怎样用极大点极小点判断波峰波谷?
jlum99 2003-08-15
  • 打赏
  • 举报
回复
先拟合,找写算法书看看.最简单的二项式拟合都可以做的
coolsol 2003-08-15
  • 打赏
  • 举报
回复
onlineboy(stame) ( ) 首先拟和,消除噪声
然后用极大点极小点判断波峰波谷
---------------------
请问你能不能详细一点说明一下你的方法?或者指点一些例程或参考资料?谢谢
还有,我用滑动平均的方式能够消除一些“伪波峰”,但是还是很不够。麻烦各位高手再指点!


onlineboy 2003-08-15
  • 打赏
  • 举报
回复
在这里,拟和和消除噪声是同一个过程,其目的是将曲线平滑化,消除随机事件在曲线中的干扰。
有许多现成的拟和算法,比如二项式算法、指数算法、平滑移动算法。
要注意的是,要根据你不同的曲线类型和期望精确度,来选择不同的算法,以及相关的参数。
曲线平滑化后,查找波峰(极大值)和波谷(极小值)就容易多了,用你原来的思路就可以了。
jlum99 2003-08-15
  • 打赏
  • 举报
回复
看看有没有合适的平滑算法。
hawk_yan 2003-08-14
  • 打赏
  • 举报
回复
去查查书吧,有很多方法的,但是有个前提条件!那就是需要先验概率,也就是你要根据大量的统计来得出一个阈值!
hawk_yan 2003-08-14
  • 打赏
  • 举报
回复
这是典型的寻峰算法的问题
zzyong00 2003-08-14
  • 打赏
  • 举报
回复
onlineboy(stame)说的对
赞同
zyl910 2003-08-14
  • 打赏
  • 举报
回复
可定义一个常量dX
当 当前波峰的X 与 前一波峰的X 的距离大于dX时就是
onlineboy 2003-08-14
  • 打赏
  • 举报
回复
首先拟和,消除噪声
然后用极大点极小点判断波峰波谷
hiiiiiijiang 2003-08-14
  • 打赏
  • 举报
回复
狂up,我也遇到相同的问题,请高手一定指点啊!!!!!!
since1990 2003-08-14
  • 打赏
  • 举报
回复
up

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧