2 DFTの累乗を実行することで本質的に「魔法の」ものはありませんが、2 DFTの累乗を実行すると、 O (Nl o g(N)) の代わりに O (N2)。したがって、2 DFTの能力(これを行うアルゴリズムはFFTと呼ばれます)を使用すると、DFT計算を非常に高速に高速化できます。
私はfftを再度適用し、ビン番号が変更されます(これは正常であり、それが予想される場所です)、振幅は同じですが、位相角は異なります)最初にこれは正常ですか?
データベクトルよりも大きいDFTを実行する場合は、基本的に周波数領域で補間することになります。したがって、新しいピークは、より大きなDFTを行う前に最初に検出した古い同等のピークではない可能性があります。そして、それは同じではないので、基本的に今回は異なる複素指数(サインとコサイン)の基底を選択しています。つまり、異なる位相値を持っている可能性があります。
PS:どちらのセットアップ(上記)も2の累乗の長さのデータを提供しません。たとえば、最初のものは1620データポイントを提供し、2番目は1745データポイントを提供するため、両方から次の2の累乗を取る必要があります。はじめに?
はい、2のべき乗のFFTを取得する場合は、データレコード長よりも大きい次の2のべき乗の長さのFFTを選択するだけです。
私は必ずしも2 FFTのパワーを使いたくない、またはしたくない(時間のパフォーマンスはまったく問題ではない)、もっと必要なのですか?
データを破棄したくない場合を除き、レコード長より短いFFTは絶対に使用しないでください。FFTの長さがデータレコード長よりも大きいと仮定すると、「FFTはどのくらいの大きさである必要があるか」という質問は、すぐにアプリケーションに依存するようになります。通常は、レコード長と同じFFT長で十分です。ただし、「滑らかな」FFTからピークを選択したい場合があります。この場合、より長いFFT長(2倍、3倍、10倍など)をとることができ、周波数ドメインでピークを補間します。ただし、マジックナンバーはありません。FFT結果の粒度は常にfsN。