A digital filter takes a series of numbers as input
and produces the series of numbers
as output. The
type of filter we are going to talk about is called a linear time
invariant filter. In its most general form the output is related to
the input as follows.
![]() |
![]() |
(1) | ||
![]() |
The equation shows that the current output is a weighted sum of
the current input
, the
previous inputs and the
previous
outputs. The weight of the
previous input,
, is the
constant
, and the weight of the
previous output,
, is the constant
. Equation 1 can be
written more succinctly as
![]() |
(2) |
To find out how the filter behaves you have to take the z-transform of
this equation. To take the z-transform of any sequence of numbers
you multiply each
by
and sum up all
the products. Assume for now that
is just some complex number and
let
be the z-transform of the sequence, then the equation is
![]() |
(3) |
This definition of the z-transform is usually called the one-sided
z-transform since the summation goes from to
. The full
z-transform takes the summation from
to
but we will
only deal with sequences for which
for
so it becomes
equivalent to the one sided transform in this case.
The z-transform is a way to compactly represent a possibly infinite
sequence of numbers. The following are some examples of z-transforms
(in all cases for
).
![]() |
(4) |
![]() |
(5) |
![]() |
(6) |
In general may not have a simple form as in these examples. If
you are familiar with generating functions then the z-transform looks
like a generating function for the
sequence in the variable
and this is essentially what it is. If you are not familiar
with generating functions, don’t worry, they won’t come up again.
The system function for a digital filter is a z-transform that can be
used to analyze how the filter behaves with different inputs. The
system function will always have the form of the ratio of two
polynomials. To find the system function, multiply both sides of
equation 2 by and sum over
from
to
. On the left side of the equation, you have
![]() |
(7) |
which is the z-transform of the output sequence. On the right side you have terms of the form
![]() |
For the purpose of describing the operation of a digital filter we can
assume zero initial conditions which simply means that both the
and
sequence is zero for
. In this case the above equations
are equivalent to
![]() |
The summations are the z-transforms of and
so the two
equations are just
![]() |
Using these results, the z-transform of equation 2 becomes
![]() |
(8) |
Rearranging the terms in this equation gives you the filter’s system function
![]() |
(9) |
The system function is the ratio of the z-transform of the output to
the input. By definition must also be the z-transform of some
sequence which we will call
. In terms of
, we can write
as
![]() |
(10) |
The sequence is called the impulse response of the
filter. The name comes from the fact that it is the response of the
filter to the input given by eq. 4 which is called an
impulse. Equation 9 says that
but for
an impulse
so we have
or
![]() |
(11) |
Equating coefficients of gives
as the output when
the input is an impulse. For a general sequence of inputs
the output can be found by convolving the inputs with the
impulse response. To see what this means, write
as
follows
![]() |
![]() |
(12) | ||
![]() |
![]() |
|||
![]() |
When you perform the multiplication on the right and equate coefficients
of on the two sides of the equation, you find that
![]() |
(13) |
The summation on the right is called the convolution of the and
sequence. This equation shows why the system function and the
impulse response are so important. Suppose the input is
so
that the
input is the
power of the complex number
. According to eq. 13, the output is then
![]() |
(14) |
The output is the same as the input multiplied by the function
which looks like the system function
. It is not
quite the same since the summation only goes to
whereas the system
function summation goes to infinity, as defined in equation
10.
But we are only interested in stable filters for which and
the terms in the impulse response,
, decrease with increasing
so that
becomes closer and closer to
as
increases, and in the limit
. This means that
after the filter has been running for awhile, its output for the input
will, to a good approximation, be
.
The filter simply multiplies the input by the factor
to get the
output.
For inputs of the form the system function tells you all
you need to know about what the output will be. One important class
of inputs of this form occurs when
and
. The
are
points on the unit circle in the complex plane (we are using
which is the more common convention in engineering
work). An example of such a sequence is shown in figure
1.
As the index increases, the points
move around the unit
circle in angular steps of size
. The angle
acts as
a dimensionless frequency. To see how this can be related to a real
frequency, recall that a periodic function of time,
, can
be expressed as a Fourier series which is a weighted sum of the
complex exponentials
. When the function is sampled
at intervals
then the complex exponentials become
where
,
,
, and
is the sampling rate.
The value of as
ranges from
to
or
to
is the frequency response of the filter. In polar
form it can be written as follows
![]() |
(15) |
The magnitude measures how much the filter
amplifies or attenuates the input
and the phase
measures how much the filter shifts its phase.
Since the value of will generally be complex, we need
to represent
in the complex plane. The simplest way to do that
is with a pole-zero plot.
will be a rational
function of two polynomials as shown in eq. 9. The
poles of
are those values of
where
goes to infinity.
These values are the roots of the denominator polynomial, and
if the numerator degree is greater than the denominator
degree. The zeros of
are those values of
where
is
zero. These values are the roots of the numerator polynomial, and
if the denominator degree is greater than the numerator
degree. A pole-zero plot of
simply shows the location of the
poles and zeros in the complex plane along with the unit circle.
Poles are represented by a filled circle “
”, and zeros by an
unfilled circle “
”.
Let the the zeros of be
,
, and the poles
be
,
, then
can be written as
![]() |
(16) |
In eq. 9 the coefficients of the numerator and
denominator polynomial are real. For the filters we will consider,
this will always be true. This means that complex poles or zeros must
come in conjugate pairs. If is a complex zero then
there must be another zero equal to
and likewise for
poles.
Substituting into equation 16 and
taking the magnitude and phase gives the following equations
![]() |
(17) |
![]() |
(18) |
The following sections will show how these equations are used.