使用Android中的Libgdx从加速度计数据标准化fft的输出

时间:2013-01-12 23:37:22

标签: java android normalization fft libgdx

我使用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

2 个答案:

答案 0 :(得分:4)

我正要说“只是查看文档”,但事实证明这很糟糕,并没有说出这样或那样的方式!

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

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

你可以为逆FFT做同样的技巧,尽管它是多余的。正向和反向比例因子必须乘以1 / N.

答案 1 :(得分:2)

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

这是一份文档,详细解释了所有内容以及窗口函数的全面比较。

http://edoc.mpg.de/395068