怎样判断一条曲线有几个波峰

无情猫 2010-07-03 03:04:40
曲线是从一个数组ADD到CHART中的

我现在的做法是判断一个点前后的点都比它小就是波峰

但曲线上有很多毛刺 导致一些非常小的波也算成了波峰

有没有什么好的方法可以判断的

...全文
1427 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
无情猫 2010-07-08
  • 打赏
  • 举报
回复
你们说的貌似很复杂 不过我这软件要的是速度 太复杂影响速度 本来就是循环3000多次寻找最高点的
我在这个循环里加个IF语句就多用了几十MS的时间

这个问题我自己给解决了 我发现右边的波峰有时会找不到是因为呈M形状 我把这个特殊情况加进去就OK了

谢谢大家了
wwyyxx26 2010-07-06
  • 打赏
  • 举报
回复
先曲线拟合算法,再找波峰
ThinkHand 2010-07-05
  • 打赏
  • 举报
回复
你能确定数据的正常最高值和正常最低值的话,设个参数来判断这样比较靠谱点。像你现在这种判断方法,很难确定啦。要么还有个每次都记录一下最高值和最低值,如果大于最高值用其替换最高值,相反小的话替换最小值。这样话我觉得即便是有锯齿波也能避免一些吧。
chip_wang 2010-07-05
  • 打赏
  • 举报
回复
这个好办,先确定阀值,才判断高于阀值的点维持多久就能得出多少个波峰啦.
Waiting4you 2010-07-05
  • 打赏
  • 举报
回复
如果没有毛刺的话,还是很简单的,波峰左边后数比前数大,右边后数比前数小(相当于求导一下)。用这个特点就可以找到所有波峰了。
若毛刺不多的话,可以设个阀值,达到几个数据满足由大变小才确认为波峰。
若毛刺多的话,就要先去噪了,如用DFT算法。
hind24 2010-07-05
  • 打赏
  • 举报
回复
阈值
回复不能太短
___NULL 2010-07-05
  • 打赏
  • 举报
回复
全部提取曲线坐标后,将其存入链表或者数据库表,再排序查找,否则毛刺较难判断
无情猫 2010-07-03
  • 打赏
  • 举报
回复
比如说 遇到一个M形的波峰 就判断不出来了

13,825

社区成员

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

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