最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Overlap-Add/Overlap-Save

この例では、Frequency-Domain FIR フィルター ブロックを使用して、オーバーラップ加算およびオーバーラップ保存 FFT 手法で正弦波をフィルター処理する方法を示します。

オーバーラップ加算アルゴリズム [1] は、周波数領域の入力信号をフィルター処理します。入力はオーバーラップしないブロックに分割され、それらのブロックには FIR フィルター係数で線形畳み込みが行われます。各ブロックの線形畳み込みは、ブロックの離散フーリエ変換 (DFT) とフィルター係数を乗算し、積の逆 DFT を計算して求めます。フィルター長が M、FFT サイズが N の場合、線形畳み込みの最後の M-1 サンプルは次の入力シーケンスの最初の M-1 サンプルに追加されます。各総和結果の最初の N-M+1 サンプルは、連続した出力になります。

オーバーラップ保存アルゴリズム [2] も、周波数領域の入力信号をフィルター処理します。入力はオーバーラップするブロックに分割され、それらのブロックには FIR フィルター係数で循環畳み込みが行われます。各ブロックの循環畳み込みは、ブロックの DFT とフィルター係数を乗算し、積の逆 DFT を計算して求めます。フィルター長が M、FFT サイズが N の場合、循環畳み込みの最初の M-1 点は無効となり、破棄されます。出力は、実際の畳み込みと同様に残りの N-M+1 点で構成されます。

オーバーラップ保存およびオーバーラップ加算では、N-M+1 サンプルの処理レイテンシが生じます。分子を短いセグメントに分割して各区画にオーバーラップ加算またはオーバーラップ保存を適用し、結果を結合してフィルター処理された出力を得ることで、このレイテンシは削減できます [3]。レイテンシは分割の長さにまで減少しますが、その代わり従来のオーバーラップ保存またはオーバーラップ加算と比べて追加の計算が必要になります (それでも長いフィルターの時間領域のフィルター処理よりも計算は効率的です)。このモデルでは、分割の長さとして 30 を使用します。これによりレイテンシは従来のオーバーラップ加算またはオーバーラップ保存の 213 サンプルから 30 サンプルに減少します。

参照

[1] Overlap-Add Algorithm: Proakis and Manolakis, Digital Signal Processing, 3rd ed, Prentice-Hall, Englewood Cliffs, NJ, 1996, pp. 430 - 433.

[2] Overlap-Save Algorithm: Oppenheim and Schafer, Discrete-Time Signal Processing, Prentice-Hall, Englewood Cliffs, NJ, 1989, pp. 558 - 560.

[3] T. G. Stockham Jr., "High-speed convolution and correlation", Proc. 1966 Spring Joint Computer Conf., AFIPS, Vol 28, 1966, pp. 229-233.