Weighted Overlap Add

In the weighted overlap add (WOLA) method, we apply a second window after the inverse DFT [49] and prior to the final overlap-add to create the output signal. Such a window can be called a ``synthesis window,'' ``postwindow,'' or simply ``output window.''

Output windows are important in audio compression applications for minimizing ``blocking effects.'' The synthesis window ``fades out'' any spectral coding error at the frame boundaries, thereby suppressing audible discontinuities.

Output windows are not used in simple FFT convolution processors because the input frames are supposed to be expanded by the convolution, and a synthesis window would ``pinch off'' the ``filter ringing'' from each block, yielding incorrect results. Output windows can always be used in conjunction with spectral modifications made by means of the ``filter bank summation'' (FBS) method, which is the subject of the next chapter.

The WOLA method is most useful for nonlinear ``instantaneous'' FFT processors such as

In these and other nonlinear signal processing operations, the output window helps to suppress artifacts caused by nonlinear spectral modifications. Another common factor in these applications is that filtering effects are not desired, so no provision for ``ringing'' in the time domain is necessary. In other words, WOLA is good for ``instantaneous nonlinear spectral processing.''

WOLA Processing Steps

The sequence of operations in a WOLA processor can be expressed as follows:

  1. Extract the $ m$ th windowed frame of data $ x_m(n)=x(n)w(n-mR)$ , $ n=mR,\ldots,mR+N-1$ (assuming a length $ M\leq N$ causal window $ w$ and hop size $ R$ ).

  2. Take an FFT of the $ m$ th frame translated to time zero,
    $ {\tilde x}_m(n)=x_m(n+mR)$ , to produce the $ m$ th spectral frame
    $ {\tilde X}_m(\omega_k)$ , $ k=0,\ldots,N-1$ .

  3. Process $ {\tilde X}_m(\omega_k)$ as desired to produce $ {\tilde Y}_m(\omega_k)$ .

  4. Inverse FFT $ {\tilde Y}_m$ to produce $ {\tilde y}_m(n)$ , $ n=0,\ldots,N-1$ .

  5. Apply a synthesis window $ f(n)$ to $ {\tilde y}_m(n)$ to yield a weighted output frame $ {\tilde y}^f_m(n) = {\tilde y}_m(n)f(n)$ , $ n=0,\ldots,N-1$ .

  6. Translate the $ m$ th output frame to time $ mR$ as $ y^f_m(n) =
{\tilde y}^f_m(n-mR)$ and add to the accumulated output signal $ y(n)$ .

(The overlap-add method discussed previously is obtained from the above procedure by deleting step 5.)

To obtain perfect reconstruction in the absence of spectral modifications, we require

\begin{eqnarray*}
x(n) &=& \sum_{m=-\infty}^{\infty} x(n) w(n-mR)f(n-mR) \\
&=& x(n) \sum_{m=-\infty}^{\infty} w(n-mR)f(n-mR),
\end{eqnarray*}

which is true if and only if

$\displaystyle \zbox {\sum_m w(n-mR)f(n-mR) = 1, \,\forall n\in{\bf Z}.}$ (9.44)

Choice of WOLA Window

The synthesis (output) window in weighted overlap-add is typically chosen to be the same as the analysis (input) window, in which case the COLA constraint becomes

$\displaystyle \zbox {\sum_m w^2(n-mR) = \hbox{constant}\,\forall n\in{\bf Z}.}$ (9.45)

We can say that $ R$ -shifts of the window $ w$ in the time domain are power complementary, whereas for OLA they were amplitude complementary.

A trivial way to construct useful windows for WOLA is to take the square root of any good OLA window. This works for all non-negative OLA windows (which covers essentially all windows in Chapter 3 other than Portnoff windows). For example, the ``root-Hann window'' can be defined for odd $ M$ by

\begin{eqnarray*}
w(n) &=& w_R(n) \sqrt{\frac{1}{2} + \frac{1}{2} \cos( 2\pi n/M) } \\
&=& w_R(n) \cos(\pi n/M),
\; n= -\frac{M-1}{2},\ldots,\frac{M-1}{2}
\end{eqnarray*}

Notice that the root-Hann window is the same thing as the ``MLT Sine Window'' described in §3.2.6. We can similarly define the ``root-Hamming'', ``root-Blackman'', and so on, all of which give perfect reconstruction in the weighted overlap-add context.


Next Section:
Review of Zero Padding
Previous Section:
Time Varying OLA Modifications