1

iFFT を繰り返し呼び出すモデリングを行いたいと考えています。これは、複雑な周波数応答 (振幅、位相) のパラメトリック モデルを入力として取り、出力としてインパルス応答を生成します。これを、部屋のラウドスピーカーで測定した「ウィンドウ化された」インパルス応答と比較したいと思います。測定されたインパルスは、空気中を直接マイクに伝わる音に対応する最初の部分によって特徴付けられます。これは、数ミリ秒間続き、その後、部屋の表面 (床、壁など) で反射した音が部屋を汚染します。信号。汚染されていない部分は、測定された総インパルスの 5% 程度です。iFFT が周波数応答から生成するインパルス応答を、測定されたインパルスの汚染されていない部分のみと比較したいと考えています。

必要に応じて、周波数応答からインパルス応答全体を計算し、結果の 95% を捨てることができますが、これは非常に非効率的です。モデルが最適化されている間、iFFT は何度も (おそらく数千回) 計算されるので、できる限り効率的にできるようにしたいと考えています。この時点で、私の唯一の選択肢は、FFTW を使用し、必要のないデータを破棄することです (より良いアイデアがないため)。

FFT がアクセスできる全時間範囲ではなく、対象の時点についてのみ逆 FFT を計算する高速な方法はありますか? たとえば、時点の 5% だけが必要な場合があります。私は FFT と iFFT の計算に詳しくないので、この質問に対する答えはわかりません。

編集:再確認したところ、16k インパルスを 96kHz で録音した場合、反射が信号を汚染する前に「良好なデータ」のサンプルは約 475 しかありません。これは、記録された信号全体の 3% 弱です。周波数応答からこの 200 ポイントだけを効率的に計算するにはどうすればよいでしょうか?

4

1 に答える 1

0

それはすべて、時間の長さと周波数の解像度の問題です。

元の (測定された) インパルス応答が 512 サンプル未満の場合、これらの 512 サンプルを使用して 512 ポイント FFT を計算できます。これにより、周波数分解能が低下しますが、必要に応じてスペクトルをインタープレートすることができます。

他の方向では、長いスペクトルを 512 周波数ビンスペクトルに「ダウンサンプリング」し (たとえば、4 行ごとに取得)、逆 FFT を実行すると、512 サンプルの短いインパルス応答が得られます。

于 2015-02-10T16:41:12.260 に答える