8
Python / SciPy的峰值发现算法
我可以通过找到一阶导数的零交叉点或类似的东西自己写点东西,但是它似乎包含在标准库中,具有足够的通用性。有人知道吗? 我的特定应用是2D阵列,但通常将其用于查找FFT等中的峰值。 具体来说,在这些类型的问题中,有多个强峰值,然后是由噪声引起的许多较小的“峰值”,应将其忽略。这些仅仅是示例;不是我的实际数据: 一维峰: 二维峰: 峰值查找算法将找到这些峰的位置(而不仅仅是它们的值),理想情况下,可能会使用二次插值或其他方法找到真正的样本间峰,而不仅仅是具有最大值的索引。 通常,您只关心几个强峰,因此选择它们是因为它们高于某个阈值,或者因为它们是有序列表的前n个峰(按振幅排序)。 正如我说的,我自己会写这样的东西。我只是问是否有一个已知的运作良好的功能或软件包。 更新: 我翻译了一个MATLAB脚本,它在1-D情况下工作得很好,但可能会更好。 更新的更新: sixtenbe 为一维案例创建了更好的版本。