Nasser M. Abbasi
May 10, 2010
This report derives a symbolic procedure to design a low pass IIR digital filter from an analog Butterworth filter using 2 methods: impulse invariance and bilinear transformation. Two numerical examples are then used to illustrate using the symbolic procedure. There are a total of 13 steps.
A Mathematica program with GUI is written to enable one to use this design for different parameters. A Matlab script is being written as well.
Filter specifications are 5 parameters. The frequency specifications are analog frequencies, while the attenuations for the passband and the stopband are given in db
These are the design steps
Now we begin the analytical design procedure.
We first convert analog specifications to digital specifications:
, hence
and
Convert the criteria relative to the digital normalized scale:
![]() |
(A) | |
![]() |
(B) |
![]() |
![]() |
|
![]() |
![]() |
Therefore the above becomes
![]() |
![]() |
|
![]() |
![]() |
Now, for impulse invariance,
and
.
![]() |
![]() |
(1) |
![]() |
![]() |
(2) |
![]() |
![]() |
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
||
![]() |
Now for impulse invariance method, use equation (1) above to solve for
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
Now that we found
and
, next find the poles of
Since the butterworth magnitude square of the transfer function
is
![]() |
||
![]() |
||
![]() |
||
![]() |
||
![]() |
||
![]() |
![]() |
(3) |
Now we need to write poles in non-polar form and plug them into (3)
![]() |
(4) |
We need to make sure that we multiply poles of complex conjugates with each others to make the result simple to see.
Now that we have
, we do the
conversion. I.e. obtain
from the above
. When using impulse invariance, we need to perform partial
fraction decomposition on (4) above in order to write
in
this form
We first convert analog specifications to digital specifications:
, hence
and
Convert the criteria relative to the digital normalized scale:
![]() |
(A) | |
![]() |
(B) |
![]() |
![]() |
|
![]() |
![]() |
![]() |
![]() |
(1) |
![]() |
![]() |
(2) |
![]() |
![]() |
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
Now for bilinear transformation we used equation (2) above to find
Hence we now solve for
![]()
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
![]() |
|
![]() |
Now that we found
and
we find the poles of
. Since for bilinear the magnitude square of the transfer function
is
![]() |
||
![]() |
||
![]() |
||
![]() |
||
![]() |
||
![]() |
![]() |
(3) |
Now we need to write poles in non-polar form and plug them into (3)
![]() |
(4) |
. This is much simpler than the
impulse invariance method. Before doing this substitution, make sure to
multiply poles which are complex conjugate of each others in the denominator
of
We will now make a table with the derivation equations to follow to design in
either bilinear or impulse invariance. Note that the same steps are used in
both designs except for step
. This table make it easy to develop a
program.
Sampling frequency
, passband frequency
, stopband
frequency
, with
and
Using the above design table, these are the numerical values:
![]()
Sampling frequency
, passband corner frequency
,
stopband corner frequency
, with criteria
and
![]()
![]()
me 2012-05-09