# Low Pass FIR Filters and and Zero placement.

Cuthbert Nyack
This applet looks at the possibility of developing FIR filters by placing zeros in the Z plane to illustrate the relation between FIR filters and zeros. With zero placement, it is not necessary to sample the frequency response and use the IDFT as with the equiripple approximation. Instead the impulse response is obtained from simple multiplication of the zero factors.

For zeros z(i) the Transfer function of the filter is
Õ(z - z(i)) = I(0) zn + I(1) zn-1 + I(2) zn-2 + ....
The impulse response is the coefficients of the product polynomial. In practice, the zeros are taken as complex conjugate pairs to avoid complex arithmetic.

The applet shows how zeros can be placed in the Z plane to construct an FIR filter with symmetric Impulse response and linear phase. The zeros can be moved interactively by the scrollbars until a 'flat' response is obtained in the passband and an equiripple response is obtained in the stop band.

In the pass band, the zeros are assumed to be on either side of the unit circle and on the unit circle in the stop band.
The numerical values of the zeros are shown on the right, Zr is the magnitude(radius) and Zp * 2p is the phase. The zeros shown as magenta circles are moved by scrollbars shown in white. In the pass band scrollbar n,n+1 control zeros n,n+1. Because the radius and phase of zeros n,n+1 are related, only 2 scrollbars are needed to move both. n changes the radius of both zeros and n+1 changes the phase of both. In the stop band the zero labelled n is moved by the scrollbar labelled n.
In the stop band the zeros are moved along the unit circle to get an equiripple response. In the pass band, zeros near a minimum are moved away from the unit circle and zeros close to maxima are moved closer to the unit circle. The phases can also be changed to move zeros closer to maxima. While it is easy to get equiripple behaviour in the stop band, getting acceptable ripple behaviour in the pass band can be time consuming at first and requires some practice.

The plot of the impulse response assumes the same number of poles at the origin as the number of zeros. The impulse response I(n) is shown on the applet as I(55:n) where n is changed by scrollbar 55. The impulse response shown is normalised so its maximum value is 1, however the maximum gain in the frequency response is Nfp. If a maximum gain of 0dB is required, then the impulse response must be divided by Nfp.

The pink line shows a magnified plot of the frequency response in the pass band with gain controlled by the last scrollbar and shown as mpb(63).
The vertical scale is set by scrollbar 57 and the stop band reference line is set by scrollbar 56 and its numerical value in dB is shown as dB(56).

Unfortunately, there is a strong interaction between the pass and stop band zeros and the filters produced are much longer than those produced by the equiripple method.

In the cases below, the transition bandwidth is 0.08 ws, the scale for the pink line is 1dB/div and the pass band ripple is ~0.1dB. The stop band attenuation varies between 50 and 70dB.
The first 3 have the same number of zeros in both bands but different attenuations in the stop band because of different ripple behaviour in the pass band.
In contrast using the equiripple method with the same fp, fs and N produces a filter with a stop band attenuation of 72dB and a pass band ripple of ±0.05dB.
In the case below, the pass band ripple is ~ 0.02dB, the stop band attenuation is 91dB, the transition bandwidth is 0.08ws.
In the case below, the transition bandwidth is 0.06ws, a total of 51 zeros and a length of 103. The pass band edge is 0.2ws and the 3dB frequency is ~ 0.217ws. The pass band ripple is ~ 0.06dB and the minimum stop band attenuation is 80dB.