Forward-Backwards Filtering Next  |  Prev  |  Up  |  Top  |  Index  |  JOS Index  |  JOS Pubs  |  JOS Home  |  Search

## Forward-Backwards Filtering

One is normally told there is no such thing as a linear phase recursive filter because a recursive filter cannot generate a symmetric impulse response. However, it is possible to implement recursive, zero-phase filters offline. That is, if the entire input signal is stored on a computer disk, e.g., we can apply a recursive filter both forwards and backwards in time. Doing this squares the amplitude response of the filter and zeros the phase response.

To show this analytically, let denote the output of the first filtering operation (which we'll take to be forward'' in time in the normal way), and let be the impulse response of the recursive filter. Then we have

where is the input signal at sample . For the second pass, we flip'' to obtain and apply the filter again:

FLIP

The final output is then this result flipped:

FLIP   FLIP   FLIP   FLIP

where the last simplification tells us that flipping the input and output signals is equivalent to flipping the impulse response instead. Putting all these operations together, we have

FLIP   FLIPFLIP

By the flip theorem for z transforms, we have that the z transform of FLIP is :

Using this result and applying the convolution theorem twice gives the z transform

On the unit circle, this reduces to, for real filters ,

We have thus shown that forwards-backwards filtering squares the amplitude response and zeros the phase response. Note also that the phase response is truly zero, not alternating between zero and .

In summary, no matter what nonlinear phase response a filter may have, this phase is completely canceled out by forward and backwards filtering. The amplitude response, on the other hand, is squared. For simple bandpass filters (including lowpass, highpass, etc.), for which the desired gain is 1 in the passband and 0 in the stopband, squaring the amplitude response usually improves the response, however, since any stopband ripple'' (deviation from 0) is squared, thereby doubling the stopband attenuation in dB. On the other hand, passband ripple (deviation from 1) is only doubled by the squaring (since ).

A Matlab example of forward-backward filtering is presented in §12.3 (Fig.12.1).

Next  |  Prev  |  Up  |  Top  |  Index  |  JOS Index  |  JOS Pubs  |  JOS Home  |  Search

[How to cite this work] [Order a printed hardcopy]