3

http://www.tech.dmu.ac.uk/~eg/tensiometer/fft/fft.c

http://www.tech.dmu.ac.uk/~eg/tensiometer/fft/fft_test.c

上記のリンクで、時間ドメインを周波数ドメインに、またはその逆に変換するための FFT アルゴリズムの適切な C コードを見つけました。しかし、このコードがどのように機能するかのフローチャートまたは段階的なプロセスを知りたいと思っていました。FFT に間に合うように間引きのバタフライ法でコードを分析しようとしていますが、コードを理解するのが困難です。コードは非常にうまく機能し、正しい結果が得られますが、このコードがどのように機能するかについて誰かが簡単または詳細に説明してくれると非常に役に立ちます。

fft.c コードで使用されている配列とポインターと混同しています。また、コード内の変数オフセットデルタ平均が何であるかを取得していません。実数項と虚数項の長方形行列は、コードでどのように考慮/使用されますか?? 私を案内してください。

ありがとう、Psbk

4

1 に答える 1

0

これを読むことを強くお勧めします: https://stackoverflow.com/a/26355569/2521214

一見すると、オフセットとデルタは次の目的で使用されます。

  • バタフライシャッフル順列を作る
  • ステップ 1 から開始し、インターバルの半分
  • そして再帰により、log2(N) ステップと 1 アイテムの間隔に到達します ...
  • +/- 1 再帰レベル
  • 私は通常、逆の順序でバタフライを行います

XX配列

  • サブ結果または入力データを格納するバッファです
  • FFT inplace を簡単に実行することはできません (仮にあったとしても)
  • そのため、代わりに一時バッファとの間で計算します
  • そして、再帰ごとに、データと一時バッファを交換するだけです(物理的またはそれらの意味)
于 2015-01-09T08:30:49.413 に答える