0

私はvDSPを使用してアルゴリズムの実装に取り​​組んでいます。

1)FFTを取得します2)絶対値の2乗のログを取得します(ルックアップテーブルで実行できます)3)別のFFTを取得します4)絶対値を取得します

FFTを実行する前に、ウィンドウ関数を介して受信データをスローするかどうかはわかりません。

vDSP_fft_zrip(setupReal, &A, stride, log2n, direction);

それが私のFFT関数です

最初にvDSP_hamm_window(...)を介してデータをスローする必要がありますか?

4

3 に答える 3

3

ケプストラム分析を行っているようですが、最初のFFTの前にウィンドウ関数が必要です。単純なハンまたはハミングウィンドウをお勧めします。

于 2011-01-03T09:44:46.080 に答える
3

iOS Accelerateライブラリ関数vDSP_fft_zrip()には、ウィンドウ関数の適用は含まれていません(有限長パラメーターのために暗黙の長方形ウィンドウをカウントしない限り)。

したがって、最初に選択したウィンドウ関数(多くの異なる関数があります)を適用する必要があります。

于 2011-01-04T02:14:01.867 に答える
2

私はあなたの特定のライブラリについての経験はありませんが、他のすべてのFFTライブラリでは、最初にデータをウィンドウ処理するのはあなた次第だと私は知っています。他に何もない場合、ライブラリは使用するウィンドウを認識できず、ウィンドウを使用したくない場合があります(オーバーラップ加算フィルタリングにFFTを使用している場合、または信号が正確であることがわかっている場合)変換ブロックで定期的)。

また、手に負えないように、2つのFFTを実行している場合、対数関数を呼び出すオーバーヘッドは比較的小さいようです。

于 2011-01-03T09:32:47.987 に答える