FFT block convolution trades speed for double-block latency in reverbs

Evidence

Direct convolution can be implemented by storing each sample of the impulse response as a coefficient of an FIR filter whose input is the signal recorded in a free field. Direct convolution easily becomes impractical if the length of the target response exceeds small fractions of a second, since it would translate into several hundreds of taps in the filter structure. A solution is to perform the convolution block by block in the frequency domain. Given the Fourier transforms of the impulse response and of a block of the input signal, the two can be multiplied point by point and the result transformed back to the time domain. As this kind of processing is performed on successive blocks of the input signal, the output signal is obtained by overlapping and adding the partial results (Oppenheim and Schafer, 1975). Thanks to the FFT computation of the discrete Fourier transform, this technique is significantly faster. A drawback is that, in order to be operated in real time, a block of N samples must be read and then processed while a second block is being read. Therefore, the input–output latency in samples is twice the size of a block, and this is not tolerable in practical real-time environments. — Ville Pulkki, Matti Karjalainen, Communication Acoustics- An…, 1958

Categorization

  • DEFINE: Explains the tradeoff behind FFT-based convolution reverberation, a core DSP technique.
  • XREF: Links to standard DSP textbooks (Oppenheim and Schafer cited) and the general FIR-filter latency problem.