オーバーラップ処理に関して利用可能な(可能であれば科学的な)優れたリソース(Webまたは書籍)はありますか。要件が異なるため、信号を分析するときにオーバーラップ処理とウィンドウを使用した場合の影響にはそれほど興味がありません。それは次のリアルタイムの状況についての詳細です:(私は現在オーディオ信号を扱っています)
- 信号を小さな部分に分割します。
- オーバーラップウィンドウの作成。
- ウィンドウ化されたチャンクのFFT。
- 周波数領域で処理を行います。
- 結果をIFFTします。
- チャンクをまとめて連続ストリームにします。
特に、使用するウィンドウが結果のエラーに与える影響と、オーバーラップの長さの影響に関心があります。しかし、私はその主題を詳細に扱っている良いリソースを見つけることができませんでした。助言がありますか?
編集:
ウィンドウ関数を使用することが適切かどうかをいくつか議論した後、オーバーラップと追加/保存の方法を説明する適切な配布物を見つけました。http://www.ece.tamu.edu/~deepa/ecen448/handouts/08c/10_Overlap_Save_Add_handouts.pdf
ただし、いくつかのテストを行った後、ウィンドウバージョンは、ほとんどの場合、オーバーラップ&追加/保存方法よりも正確に実行されることに気付きました。誰かがこれを確認できますか?ただし、計算時間に関する結論に飛びつきたくありません。
Edit2:
これが私のテストからのいくつかのグラフです:
3つの正弦波で構成される信号を作成しました
このフィルター関数を時間領域でフィルター処理に使用しました。(FFTの出力全体に適用されるため、対称です。これは、実際の入力信号に対しても対称です)
IFFTの出力は次のようになります。低周波数が中域の周波数よりも減衰していることがわかります。
オーバーラップ加算/保存とウィンドウ処理のために、入力信号を256サンプルの8つのチャンクに分割しました。それらを再組み立てした後、それらはそのように見えます。(サンプル490-540)
オーバーラップ加算/保存プロセスは、チャンクがまとめられる点でウィンドウバージョンとは異なることがわかります(サンプル511)。これは、ウィンドウ処理とオーバーラップ加算/保存を比較したときに異なる結果につながるエラーです。ウィンドウ処理されたプロセスは、1つの大きなジャンクで処理されたプロセスに近いものです。
しかし、なぜ彼らがそこにいるのか、あるいは彼らがまったくそこにいるべきではないのか、私にはわかりません。