Overlap-add FFT processors provide efficient implementations for FIR filters longer than 100 or so taps on single CPUs. Specifically, we ended up with:

(9.24) |

where is acyclic in this context. Stated as a procedure, we have the following steps in an overlap-add FFT processor:

- (1)
- Extract the th length frame of data at time .
- (2)
- Shift it to the base time interval (or ).
- (3)
- Optionally apply a length analysis window (causal or zero phase, as preferred). For simple LTI filtering, the rectangular window is fine.
- (4)
- Zero-pad the windowed data out to the FFT size (a power of 2), such that , where is the FIR filter length.
- (5)
- Take the -point FFT.
- (6)
- Apply the filter frequency-response as a windowing operation in the frequency domain.
- (7)
- Take the -point inverse FFT.
- (8)
- Shift the origin of the -point result out to sample where it belongs.
- (9)
*Sum*into the output buffer containing the results from prior frames (OLA step).

A second condition is that the analysis window be COLA at the hop size used:

(9.25) |

[How to cite this work] [Order a printed hardcopy] [Comment on this page via email]

Copyright ©

Center for Computer Research in Music and Acoustics (CCRMA), Stanford University