findpeaks - MINPEAKDISTANCE

时间:2014-09-30 09:42:34

标签: matlab histogram

我试图了解MINPEAKDISTANCE的工作原理。我回到了文档here,但是这个参数的工作原理还不是很清楚。

你能稍微澄清一下吗?

感谢。

2 个答案:

答案 0 :(得分:2)

  

最小峰值间隔指定最小峰值距离或最小值   峰之间的分离为正整数。你可以使用   'MINPEAKDISTANCE'选项指定算法忽略小   发生在较大峰值附近的峰值。当你   最初为算法指定'MINPEAKDISTANCE'的值   识别输入数据中的所有峰值并对这些峰值进行排序   降序排列。从最大的峰值算法开始   忽略所有未分隔超过值的峰   'MINPEAKDISTANCE'。默认值:1

因此,如果您将峰值高度视为“y”方向的值,那么所讨论的分离是在“x”方向。例如,请查看此图片(来自Matlab docs,如果您有图像处理工具箱,则可以获取数据load noisyecg.mat):

enter image description here

假设您只想识别4个大的不同峰值,而不是由噪声引起的数百个小峰值,设置MINPEAKDISTANCE是一种可行的方法,因为噪声峰值频率高得多,即,它们在“x”方向上彼此靠近,或者与大峰相比具有较小的距离。因此,根据您感兴趣的峰值,选择足够大的MINPEAKDISTANCE,例如100350,可以帮助您无法检测到这些不需要的噪声峰值。

对具有不同findpeaks值的数据进行MINPEAKDISTANCE,看看你得到了什么!

答案 1 :(得分:1)

如果您有嘈杂的数据,您可能会发现不是一个固体峰值,而是获得许多小峰值(请参阅下面的图像)。

A digital signal with uniform noise applied

这里的重要数据是当信号很高而信号很低时 - 你不关心价值的微小变化,你只想使用其中一个峰而不是看所有较小的本地峰值周围。如果您知道信号的频率(即峰值发生的频率),您可以告诉函数确保峰值相隔一定量。

在上面的示例中,峰值是每15毫秒持续5毫秒,因此您可以将MINPEAKDISTANCE参数设置为15左右。