2016-08-03 76 views
0

我一直在考虑一个任务,即给定的离散数据,这样峰检测/片离散数据

enter image description here

我需要把它切成5片,通过它创建模板确定。

我不允许猜测模板,因为每个输入看起来都不一样。

我的方法是在数据中找到峰值(高于或低于零),然后使用该峰值模式切片数据。下面是我得到了什么:(不适用于上述数据)

enter image description here

上图是图中的峰,因为我知道我有整整5个和15分,我可以说,每片有3分,然后切片,这是该图片中的第二张图。

在40个输入中,我只设置了5个输入,因为我的“峰值检测”算法非常基本。

我应该使用什么峰值检测算法,也可以找到局部最小值,并且有PHP实现/简单的psudo代码?我是这个数据分析领域的初学者,所以我需要你的提示。

最后,我是否正在如何切片这个数据正确的方向?还是有更好的方法来做到这一点?

编辑:

我不解释之前糟糕:这切片的目标,是建立一个统一的不是时间依赖模型片,这意味着多空的作品将是同样的长度,那就是每个高峰。如果这是每片完成,只是伸展,数据看起来很嘈杂,像这样:(这仍在开发中,所以我没有写它之前) enter image description here

我不知道该怎么做因为每个切片对于不同的部分具有不同的时间(1秒,1.1秒等)

回答

0

查找数据中没有相交的4个最长的子集,其中值保持在零的容差范围内。如果您不知道有多少次拍子,您必须隔离峰值检测变得更相关,因为超过给定阈值的峰值数量会定义您要分割多少部分。

我不认为你是攻击这类问题的第一人...... https://www.biopac.com/knowledge-base/extracting-heart-rate-from-a-noisy-ecg-signal/

编辑:: 至于一峰查找算法,我认为本文提供了一些方法。 http://www.ifi.uzh.ch/dbtg/teaching/thesesarch/ReportRSchneider.pdf

该方法标记Significant Peak-Valley Algorithm或多或少归结为找出在区域局部极值(最小值和最大值)以外(下面和上面分别)通过从平均标准偏差的一些任意数目来定义给定阈值。

+0

谢谢!我错误地没有把首先需要的原因包括在内,我只是编辑了这篇文章。我会研究这些方法,并返回结果 – Amit

+0

考虑到编辑,我认为您最好将您的切片置于每个重要波谷与下一个重要波峰之间的中点。棘手的部分将找到正确的门槛,以便您获得正确的点作为高峰和低谷。 – kpie

+0

看起来每个节拍都有三条腿,由2个极值和0定义。首先下降,从0到一个低谷,然后是从最后一条腿到另一条下降的谷底到下一个高峰的口音,这次是从峰值为零。通过专注于这些腿的起点和终点,一旦您拥有槽峰对,应该相对容易地获得切片。 – kpie