All-pass Filter - Digital Implementation

Digital Implementation

A Z-transform implementation of an all-pass filter with a complex pole at is

which has a zero at, where denotes the complex conjugate. The pole and zero sit at the same angle but have reciprocal magnitudes (i.e., they are reflections of each other across the boundary of the complex unit circle). The placement of this pole-zero pair for a given can be rotated in the complex plane by any angle and retain its all-pass magnitude characteristic. Complex pole-zero pairs in all-pass filters help control the frequency where phase shifts occur.

To create an all-pass implementation with real coefficients, the complex all-pass filter can be cascaded with an all-pass that substitutes for, leading to the Z-transform implementation

H(z)
=
\frac{z^{-1}-\overline{z_0}}{1-z_0z^{-1}} \times
\frac{z^{-1}-z_0}{1-\overline{z_0}z^{-1}}
=
\frac {z^{-2}-2\Re(z_0)z^{-1}+\left|{z_0}\right|^2} {1-2\Re(z_0)z^{-1}+\left|z_0\right|^2z^{-2}}, \

which is equivalent to the difference equation


y - 2\Re(z_0) y + \left|z_0\right|^2 y =
x - 2\Re(z_0) x + \left|z_0\right|^2 x, \,

where is the output and is the input at discrete time step .

Filters such as the above can be cascaded with unstable or mixed-phase filters to create a stable or minimum-phase filter without changing the magnitude response of the system. For example, by proper choice of, a pole of an unstable system that is outside of the unit circle can be canceled and reflected inside the unit circle.

Read more about this topic:  All-pass Filter