【问题标题】:Measuring Distance Between Peaks测量峰间距离
【发布时间】:2016-12-13 13:54:44
【问题描述】:

我在 Matlab 中使用了 (findpeaks) 函数,以查找信号中峰值的位置和值。

findpeaks(X_Segments{1});

X_Segments 包含数据,这是我得到的图形示例

如图所示,一些峰值彼此非常接近,因此,我将过滤掉这些峰值(去除它们),以便在信号中定期出现峰值。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    如果您将参数MinPeakDistance 传递给findpeaks 函数,您可以设置峰值之间的最小距离。在你的情况下:

    findpeaks(X_Segments{1}, 'MinPeakDistance', 10);
    

    或者,您可能会发现MinPeakProminencethreshold 参数很有用。请参阅示例here

    【讨论】:

    • 非常感谢你,伙计,如果你不介意我再问你一个问题,我想以毫秒为单位测量连续峰值之间的时间,然后计算平均值。
    • 查看findpeaks 以返回峰值的索引。使用这些来确定峰值的实际时间值。然后,您可以使用diffmean 函数来查找平均间距。但是,查看您的数据,峰值似乎不是很均匀分布。如果您遇到困难,请尝试提出一个单独的问题(cmets 部分并不是真正提出新问题的地方!)