Implementing IIR Digital Filters
AN540
Implementing IIR Digital Filters
INTRODUCTION
THEORY OF OPERATION
This application note describes the implementation of
various digital filters using the PIC17C42, the first mem-
ber of Microchip’s 2nd generation 8-bit microcontrollers.
The PIC17C42 is a very high speed 8-bit microcontroller
with an instruction cycle time of 250ns (@ 16 MHz input
clock). Even though PIC17C42 is an 8-bit device, it’s
high speed and efficient instruction set allows imple-
mentation of digital filters for practical applications.
Traditionally digital filters are implemented using expen-
sive Digital Signal Processors (DSPs). In a system the
DSP is normally a slave processor being controlled by
either an 8- or 16-bit microcontroller. Where sampling
rates are not high (esp. in mechanical control systems),
a single chip solution is possible using the PIC17C42.
Digital filters in most cases assume the following form of
relationship between the output and input sequences.
M
N
y(n) = - ∑ aiy(n - i) + ∑ bjx(n - j)
j=o
i=o
The above equation basically states that the present
output is a weighted sum of the past inputs and past
outputs. In case of FIR filters, the weighted constants
ai=0 and in case of IIR filters, at least one of the ai
constant is non zero. In case of IIR, the above formula
may be re written in terms of Z transform as:
4
M
-k
∑ bkZ
This application note provides a few examples of imple-
menting digital filters. Example code for 2nd order Infi-
nite Impulse Response (IIR) filters is given. The follow-
ing type of filters are implemented:
Y(z)
X(z)
k=0
H(z) =
=
N
1 + ∑ akZ -k
k=1
The above equation can further be rewritten in differ-
ence equation format as follows:
• Low Pass
• High Pass
N
M
• Band Pass
y(n) = - ∑ aiy(n - i) + ∑ bjx(n - j)
• Band Stop (notch) filter
j=o
i=1
Realization of the above equation is called as the Direct
FormIIstructure. Forexample, incaseofasecondorder
structure, M=N=2, gives the following difference equa-
tions :
This application note does not explain how to design a
filter. Filter design theory is well established and is
beyond the scope of this application note. It is assumed
that a filter is designed according to the desired specifi-
cations. The desired digital filters may be designed
using either standard techniques or using commonly
available digital filter design software packages.
d(n) = x(n) + a1d(n-1) + a2d(n-2)
y(n) = b0d(n) + b1d(n-1) + b2(d(n-2)
(1)
(2)
Finite Impulse Response (FIR) filters have many advan-
tages over IIR filters, but are much more resource
intensive (both in terms of execution time and RAM). On
the other hand, IIR filters are quite attractive for imple-
mentingwiththePIC17C42resources.Especiallywhere
phase information is not so important, IIR filters are a
good choice (FIR filters have a linear phase response).
Of the various forms used for realizing digital filters (like,
Direct form, Direct II form, Cascade form, Parallel,
Lattice structure, etc.) the Direct II form is used in this
application note. It is easy to understand and simple
macros can be built using these structures.
The above difference equations may be represented as
shown in Figure 1.
FIGURE 1 - 2ND ORDER DIRECT FORM II
STRUCTURE (TRANSPOSED)
X(n)
Y(n)
+
b0
b1
b2
Z-1
-a1
-a2
Z-1
© 1993 Microchip Technology Inc.
DS00540B-page 1
4-129