一种寻找曲线峰值并统计峰的个数的python代码.pdfVIP

  • 308
  • 0
  • 约3.32千字
  • 约 5页
  • 2020-07-21 发布于广东
  • 举报

一种寻找曲线峰值并统计峰的个数的python代码.pdf

前些时间我需要用python 写一段代码来判别一个曲线图中有多少个峰,曲 线图类型大概如下图所示: 图1 原始曲线图 如果用肉眼鉴别,很容易就知道图中峰的个数为2。然而,计算机不是人脑 的思维方式,它靠的是数据和算法,因此需要将形象的东西数值化并将判别公式 化。当时我在百度以各种关键词查询如何写一段 python 程序来判别峰值并进行 个数的计算。然而都没有好的方法。 最简单粗暴的回答是,寻找这个曲线的最大值和最小值,显然,这个方法是 行不通的,从上面的图可以看到,第二个峰并不是最大值,但它确实是一个峰。 图2 寻找最大值和最小值确定波峰和波谷 然后我又查找了一下,有这么个方法,所谓峰值就是前后两个值都比当前的 值小,这样子的值便可以定义为峰值,并设计了代码如下: 图3 寻找极值作为峰值 这方法看上去很合理,可是在不平滑的曲线上会接连遇到问题,首选我们看 一下图1,红色箭头指示的两个位置,一个是噪声 (箭头1),它符合前后的值都 小于它的条件,会被判别为峰,而另一个 (箭头2),由于最高峰位置是个平顶, 不符合前后都大于它,会被认为不是峰,这些均导致

文档评论(0)

1亿VIP精品文档

相关文档