【发布时间】:2016-12-13 13:54:44
【问题描述】:
我在 Matlab 中使用了 (findpeaks) 函数,以查找信号中峰值的位置和值。
findpeaks(X_Segments{1});
X_Segments 包含数据,这是我得到的图形示例
如图所示,一些峰值彼此非常接近,因此,我将过滤掉这些峰值(去除它们),以便在信号中定期出现峰值。
【问题讨论】:
标签: matlab
我在 Matlab 中使用了 (findpeaks) 函数,以查找信号中峰值的位置和值。
findpeaks(X_Segments{1});
X_Segments 包含数据,这是我得到的图形示例
如图所示,一些峰值彼此非常接近,因此,我将过滤掉这些峰值(去除它们),以便在信号中定期出现峰值。
【问题讨论】:
标签: matlab
如果您将参数MinPeakDistance 传递给findpeaks 函数,您可以设置峰值之间的最小距离。在你的情况下:
findpeaks(X_Segments{1}, 'MinPeakDistance', 10);
或者,您可能会发现MinPeakProminence 或threshold 参数很有用。请参阅示例here。
【讨论】:
findpeaks 以返回峰值的索引。使用这些来确定峰值的实际时间值。然后,您可以使用diff 和mean 函数来查找平均间距。但是,查看您的数据,峰值似乎不是很均匀分布。如果您遇到困难,请尝试提出一个单独的问题(cmets 部分并不是真正提出新问题的地方!)