0

我将 Libgdx 库中的 FFT 函数用于 Android 中的一个项目,在该项目中我处理加速度计信号以创建信号频谱。

我需要标准化加速度计数据的输出,我读到没有“正确”的方法可以做到这一点,但这是传统的。有人在 FFT 中使用除以 1/N,另一种是除以 1/sqrt(N)。

我不明白这对于实现图书馆的人来说是否是常规的,这意味着每个图书馆都有他的规范化因子,或者对于用户来说是常规的,而不是我可以决定的审美表现。

如果它依赖于库,LIBGDX 库中 FFT 的归一化因子是什么?

Edit1:我已经在文档中进行了搜索,但一无所获。这是它: http: //libgdx-android.com/docs/api/com/badlogic/gdx/audio/analysis/FFT.html

4

2 回答 2

4

我正要说“只是检查文档”,但事实证明这很糟糕,并且没有说任何一种方式!

不过,您可以凭经验确定比例因子。只需在全为数据集上运行 FFT。输出中将有一个非零 bin。此 bin 有三个可能的值:

  • 1.0:比例为 1/N
  • sqrt(N):比例为 1/sqrt(N)
  • N:规模为1

您可以对逆 FFT 执行相同的技巧,尽管它是多余的。正向和反向比例因子必须乘以 1/N。

于 2013-01-12T23:45:40.180 回答
2

根据您是否需要频谱或功率谱密度,有一个特定的归一化。Oli 提供了一个很好的测试来确定库执行的 1/N、1/sqrt(N) 或无缩放。

这是一个文档,它详细解释了所有内容以及窗口功能的全面比较。

http://edoc.mpg.de/395068

于 2013-01-13T00:30:24.800 回答