我可以自己写一些东西,通过找到一阶导数的零交叉点或其他东西,但它似乎是一个足够通用的函数,可以包含在标准库中。有人知道吗?
我的特殊应用是一个二维数组,但通常它会用于在FFT等中查找峰值。
具体地说,在这类问题中,有多个强峰值,然后有许多较小的"峰值",这些都是由噪声引起的,应该忽略不计。这些只是例子,不是我的实际数据:
一维峰值:
二维峰值:
寻峰算法可以找到这些峰的位置(不仅仅是它们的值),理想情况下可以找到真正的样本间峰,而不仅仅是具有最大值的指数,可能使用二次插值或其他方法。
一般来说,你只关心一些强峰,所以它们要么被选择是因为它们高于某个阈值,要么因为它们是按振幅排序的有序列表的前n个峰。
正如我所说,我知道如何自己写这样的东西。我只是在问是否有一个预先存在的函数或包可以很好地工作。
更新:
我翻译了一个matlab脚本,它可以很好地处理一维情况,但可能会更好。
最新更新:
Sixtenbe为一维案例创建了一个更好的版本。
@Endolith您有原始的matlab文件,您为此翻译成python吗?谢谢!
@mohammad:billauer.co.il/peakdet.html gist.github.co m/250860文件
怎么办