如何找到最大的峰值和2负峰旁边两侧?

46个视图(30天)
我现在试图取代部分的一个信号。我能找到的最大峰值,只需使用findpeak函数和设置在一定的高度,但我需要2负峰,邻居,所以我可以使用所有的数据在这两个负峰。谢谢你!

答案(2)

图像分析
图像分析 2018年8月21日
请把你的信号,或者至少是它的屏幕截图。既然你知道主峰,您可以简单地“跑”,高峰直到“转身”的价值,像(未测试)
%找到所有的山峰。
[peakValues、索引]= findPeaks(信号)
%的山峰,找到最高的一个。
[highestPeak, indexOfHighestPeak] = max (peakValues);
%右侧,直到它变成向上运行。
k = indexOfHighestPeak:长度(信号)
如果信号(k) <信号(k + 1)
打破;
结束
结束
rightValleyIndex = k;%商店山谷右侧的位置。
%左侧,直到它变成向上。
k = indexOfHighestPeak: 1: 1
如果信号(k) <信号(k - 1)
打破;
结束
结束
leftValleyIndex = k;%商店山谷左侧的位置。
5个评论

登录置评。


明星黾
明星黾 2018年1月30日
我是 猜测 在这里,因为我不知道你的信号是什么样子。
找到“谷层”而不是“山峰”, 否定 你的信号,基本上把它倒这原始的“山谷”现在“山峰”。使用 “loc” 那些不变的(“峰值”值将负的实际值)。
如果你有 R2017b ,你也可以尝试 islocalmin (链接)函数。

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!