1

我有一个波形,其中我已经确定了一个带有标准的特定点(下图中的绿色星形)。我现在想自动找到该点右侧的下一个峰值(可能是最大值或最小值)的位置(例如下图中的红色圆圈,在这种情况下,它是最小值)。请注意,我将在具有不同峰值高度/噪声内容的多个波形上运行它。

尝试了该功能findpeaks(),但无法真正使其正常工作!任何帮助将不胜感激。

示例波形

在 user3288586 回答后编辑新代码,工作:

prominence_factor = 0.1 
[peakPos , locPos] = findpeaks (signal,time,'Npeaks',1,'MinPeakProminence', prominence_factor);
[peakNeg, locNeg] = findpeaks (-signal,time, 'Npeaks', 1, 'MinPeakProminence', prominence_factor);
4

1 回答 1

2

您可以运行 findpeaks 两次。首先是原始信号,然后是反相信号。要反转信号,您可以这样做:

inverted_signal = 2*mean(original_signal) - original_signal

然后看看哪个峰最近。反相信号中的峰值当然表示最小值。

于 2016-04-30T05:17:45.063 回答