2012-04-22 17 views
1

AppleのAccelerate Framework(iOSデバイスで実行)を使用して、配列データを取得して高速フーリエ変換を実行するコードを正常に実装しました。高速フーリエ変換結果:周波数軸のスケール?

ここで私の質問は、周波数軸のスケールは何ですか?結果には特定の周波数範囲で予想されるピークがありますが、その頻度はどうあるべきかわかりません。 Accelerate FrameworkのFFT関数は配列を取り込み、同じ(またはそれ以上の)数のデータポイントを持つ配列を吐き出します。それらの点はすべて時間的に等間隔であると仮定していますか?サンプリング周波数または時間変数を入力として使用しません。サンプリング周期だけを2 * Pi(またはそれに類似したもの)で割った周波数軸のスケール(すなわち、各点の周波数増分)は、これに関する文書で多くの情報を見つけることができませんでした。私はオンラインで同様の質問をしてきましたが、何も見つかりませんでした。

これはいくつかの点で数学的な質問ですが、Accelerate Frameworkの実装に大きく依存しています。

おかげ

EDIT 私は、フォローアップの質問hereを尋ねたが、誰もまだそれに答えていません。どうぞご覧ください!

答えて

6

FFTは、サンプリング周波数まで直線的に間隔を空けた周波数ビンを提供します。これは、ビン間の間隔が(サンプル周波数)/(ビン数)であることを意味します。

+0

ビンとは何ですか?ビンはどれくらい大きいですか? – shim

+1

各ビンは、1つの複素FFT結果配列要素で表されます。最初のビンはDCです。次に、上記のようにポイントを配置します。 – hotpaw2

+0

ありがとうございます。 実際のデータのFFTでは、FFTデータの符号は何を表していますか?正のデータは実数で、負のデータは想像上のものですか?私はこれを言います。なぜなら、私がFFTを通して単純なサインとコサインを実行したとき、コサインはインパルスを上向きに、サインはインパルスを下向きにしていたからです。 – shim

5

周波数軸スケールは、時間領域データのサンプルレート(FS)とFFTの長さ(N)についてのみ、Accelerateフレームワーク実装に依存しません。任意のFFT。

厳密に実際のデータ入力の場合、FFT結果の後半は、前半の複素共役になります。 FS/2までの最初の半分だけが、通常、実際のデータに対してプロットされます。

+0

どちらですか?他のすべてのデータポイントは複素共役ですか?またはデータの後半?アクセラレーションフレームワークには、データをパック/アンパックする機能(ztoc、ctoz)があります。実際のデータを一緒にしたい場合は、最後に解凍してはいけませんか? 複雑な点は負で、実数は正のようです。それは理にかなっていますか?私はsin(t)とcos(t)にFFTを行い、cosはスパイクが上を向いていて正弦波が下を指していたので、そうだと思います。 – shim

関連する問題