Overlap–add method

In signal processing, the overlap–add method (OA, OLA) is an efficient way to evaluate the discrete convolution of a very long signal x[n] with a finite impulse response (FIR) filter h[n]:

where h[m] = 0 for m outside the region [1, M].

The concept is to divide the problem into multiple convolutions of h[n] with short segments of x[n]:

where L is an arbitrary segment length. Then:

and y[n] can be written as a sum of short convolutions:

where  y_k[n] \ \stackrel{\mathrm{def}}{=} \ x_k[n]*h[n]\,  is zero outside the region [1, L + M  1].  And for any parameter  N\ge L+M-1,\,  it is equivalent to the N\,-point circular convolution of x_k[n]\, with h[n]\,  in the region [1, N].

The advantage is that the circular convolution can be computed very efficiently as follows, according to the circular convolution theorem:

where FFT and IFFT refer to the fast Fourier transform and inverse fast Fourier transform, respectively, evaluated over N discrete points.

The algorithm

Fig. 1 sketches the idea of the overlap–add method. The signal x[n] is first partitioned into non-overlapping sequences, then the discrete Fourier transforms of the sequences y_k[n] are evaluated by multiplying the FFT of x_k[n] with the FFT of h[n]. After recovering of y_k[n] by inverse FFT, the resulting output signal is reconstructed by overlapping and adding the y_k[n] as shown in the figure. The overlap arises from the fact that a linear convolution is always longer than the original sequences. In the early days of development of the fast Fourier transform, L was often chosen to be a power of 2 for efficiency, but further development has revealed efficient transforms for larger prime factorizations of L, reducing computational sensitivity to this parameter. A pseudocode of the algorithm is the following:

Podcasts:

PLAYLIST TIME:
×