我可以自己写一些东西,通过找到一阶导数的过零点之类的,但它似乎是一个足够普通的函数,可以包含在标准库中。有人知道吗?
我的特殊应用程序是一个2D 数组,但通常用于在 FFT 中查找峰值,等等。
具体来说,在这类问题中,有多个强峰,然后有许多较小的“峰”,这些“峰”仅仅是由噪声引起的,应该被忽略。这些只是例子,不是我的实际数据:
一维峰值:
二维峰值:
峰值搜索算法可以找到这些峰值的位置(而不仅仅是它们的值) ,并且在理想情况下可以找到真正的样本间峰值,而不仅仅是具有最大值的指数,可能使用 二次插值法二次插值法或其他方法。
通常,您只关心一些强峰,所以选择它们要么是因为它们高于某个阈值,要么是因为它们是按振幅排序的有序列表中的第一个 N峰。
正如我所说,我知道如何自己写这样的东西。我只是想知道是否有一个预先存在的函数或包可以很好地工作。
更新:
我 翻译了一个 MATLAB 脚本和它的工作体面的一维情况下,但可以更好。
更新:
一维情况下的 创造了一个更好的版本。