【发布时间】:2008-10-16 15:13:49
【问题描述】:
我正在尝试编写一个音频分析应用程序,我需要在表示频谱图的二维数组中识别局部最大值。我已经有了一个开源库,可以使用快速傅里叶变换生成频谱图,但我想知道是否有人知道任何好的库来帮助我实际找到最大值?我不太确定要在 Google 上搜索什么 - 我能想到的最好的就是“数值库”,但这并没有让我走得太远。
最好用 C 语言,但我愿意接受其他建议。
【问题讨论】:
我正在尝试编写一个音频分析应用程序,我需要在表示频谱图的二维数组中识别局部最大值。我已经有了一个开源库,可以使用快速傅里叶变换生成频谱图,但我想知道是否有人知道任何好的库来帮助我实际找到最大值?我不太确定要在 Google 上搜索什么 - 我能想到的最好的就是“数值库”,但这并没有让我走得太远。
最好用 C 语言,但我愿意接受其他建议。
【问题讨论】:
寻峰是一个相当普遍的问题。它已经在 SO 上以Peak detection of measured signal 讨论过一次。
提供的答案包括几个可行的启发式方法。
当然,如果你需要严谨的话,我更喜欢my own answer,但是ROOT 是用c++ 编写的,对于你的应用程序来说几乎肯定是太重了,所以你只需要去掉你想要的代码......
【讨论】:
GNU 科学图书馆有一个multidimensional minimization framework,可以很容易地实现最大化。然而,它被设计为只返回一个最小值而不是一堆不同的最小值。
【讨论】: