Filter-Design Exercise
Using the zero-placement method, design the FIR filters for
the multirate system in
Multirate Filtering: Introduction.
Recall that the
z
z-transform of a length-
N
N FIR filter is a polynomial in
z-1
z
-1
, and that this polynomial can be factored into
N-1
N
1
roots.
Hz=
h
0
+
h
1
z-1+
h
2
z-2+⋯=
z
1
-z-1
z
2
-z-1
z
3
-z-1⋯
H
z
h
0
h
1
z
-1
h
2
z
-2
⋯
z
1
z
-1
z
2
z
-1
z
3
z
-1
⋯
(1)
Use this relation to design a low-pass filter
(for the anti-aliasing and anti-imaging filters of the multirate
system) by placing twelve
complex zeros on the unit circle at
±3π8
±
3
8
,
±π2
±
2
,
±5π8
±
5
8
,
±3π4
±
3
4
,
±7π8
±
7
8
, and
±π
±
. This filter that you have just designed will
serve for both FIR 1 and FIR 3. For filter FIR 2 (operating
at the decimated rate), use four equally-spaced zeros on the
unit circle located at
±π4
±
4
and
±3π4
±
3
4
. Be sure to adjust the resulting filter
coefficients to ensure that the gain does not exceed one
at any frequency.
Design your filters by writing a MATLAB script to compute the
filter coefficients from the given zero locations. The MATLAB
function poly is very useful for this; type
help poly in MATLAB for details.
Once you have determined the coefficients of the filters, use
MATLAB function freqz to plot the frequency
responses. You will find that the frequency response of these
filters has a large gain. Adjust the resulting filter
coefficients to ensure that the largest frequency gain is less
than or equal to one by dividing the coefficients by an
appropriate value. Do the frequency responses match your
expectations based on the locations of the zeros in the
z-plane?