我有一个波形,我在其中确定了一个标准的特定点(下图中的绿色星)。我现在想要自动找到该点右侧的下一个峰值的位置(可能是最大值或最小值)(例如,下图中的红色圆圈,在这种情况下,它是最小值)。请注意,我将在多个波形上运行此功能,具有不同的峰值高度/噪声内容。
尝试了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);
答案 0 :(得分:1)
你可以运行两次findpeaks。首先是原始信号,然后是反转信号。要反转信号,您可以执行以下操作:
inverted_signal = 2*mean(original_signal) - original_signal
然后看哪个峰值最近。倒置信号中的峰值当然会表示最小值。