0

Android のプロジェクトで Libgdx ライブラリの FFT 関数を使用して、加速度計信号を処理して信号スペクトルを作成します。

加速度計データからの出力を正規化する必要があります。これを行う「正しい」方法はありませんが、従来の方法です。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

「ドキュメントを確認してください」と言おうとしましたが、ひどいことがわかり、どちらとも言えません!

それでも、スケール係数は経験的に決定できます。すべてが 1 のデータセットで FFT を実行するだけです。出力にはゼロ以外のビンが 1 つあります。このビンには 3 つの可能性のある値があります。

  • 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 に答える