使用MATLAB

时间:2016-04-30 03:49:24

标签: matlab find maxima minima

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

尝试了findpeaks()功能,但无法让它真正起作用!任何帮助将不胜感激。

example waveform

来自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);

1 个答案:

答案 0 :(得分:1)

你可以运行两次findpeaks。首先是原始信号,然后是反转信号。要反转信号,您可以执行以下操作:

inverted_signal = 2*mean(original_signal) - original_signal

然后看哪个峰值最近。倒置信号中的峰值当然会表示最小值。