Analog and Digital Filter Design
Digital filters
FIR and IIR structures
Miroslav Lutovac and Dejan Tosic
Overview
• Review: Discrete-time system, Digital
system, LTI system
• Impulse response
• Definition of FIR and IIR systems
• FIR and IIR structures
• MATLAB examples
• FDAtool design example
Review: Discrete-time system
Discrete-time system has discrete-time
input and output signals
Review: Digital system
• A discrete-time system is digital if it
operates on discrete-time signals whose
amplitudes are quantized
• Quantization maps each continuous
amplitude level into a number
• The digital system employs digital hardware
1. explicitly in the form of logic circuits
2. implicitly when the operations on the signals are
executed by writing a computer program
Linear time-invariant (LTI) system
Discrete-time system is LTI if its
input-output relationship can be described by the
linear constant coefficients difference equation
The output sample y(ν ) might depend on all input samples
that can be represented as
y (ν ) = Φ ( x(k ))
MATLAB example 1
N = 80; k = 0:(N-1);
MATLAB filter
b0 = 1; command
b1 = -1; corresponds to
the symbol Φ
b2 = 1;
B = [b0 b1 b2];
f = 1/8;
x = sin(2*pi*f*k+pi/6);
y = filter(B,1,x); y (n) = b0 x(n) + b1 x(n − 1) + b2 x(n − 2)
subplot(2,1,1)
systemFIR(0,0,4,5,10,'b')
subplot(2,1,2)
plot(k,x,'go', k,y,'bo',...
k,x,'g-', k,y,'b-')
legend('input','output')
Impulse response
Response of a system to the
unit impulse sequence is called
the unit impulse response or
impulse response for short
h(n) = Φ (δ (k ))
MATLAB example 2
N = 16; k = 0:(N-1);
y (n) = b0 x(n) + b1 x(n − 1) + b2 x(n − 2)
b0 = 1;
b1 = -1;
b2 = 2;
B = [b0 b1 b2];
x = (k==0);
y = filter(B,1,x);
subplot(3,1,1)
systemFIR(0,0,4,5,10,'b')
subplot(3,1,2)
stem(k,x,'r')
ylabel('input')
subplot(3,1,3)
stem(k,y,'b')
ylabel('output')
What are FIR and IIR systems?
• A discrete system is said to be an
FIR system if its impulse response has
zero-valued samples for n > M > 0
• Integer number M is called the
length of the impulse response
• IIR system is a discrete system with an
infinite impulse response
• FIR = Finite Impulse Response
IIR = Infinite Impulse Response
MATLAB example 3
N = 80; k = 0:(N-1);
y (n) = x(n − 1) + ay (n − 1)
a = 0.97;
B = [0 1]; The impulse response
A = [1 -a]; does not vanish after
finite number of
x = (k==0);
samples
y = filter(B,A,x);
subplot(3,1,1)
draw1stIIR(0,0,4,5,10,'b')
subplot(3,1,2)
stem(k,x,'r')
ylabel('input')
subplot(3,1,3)
stem(k,y,'b')
ylabel('output')
Basic FIR structures
Direct form, Transposed form,
Cascade form, Linear-phase,
Symmetric
Direct form 2 order
nd
Transposed direct form 2nd order
Cascade direct form
Direct form (Tapped delay line)
Transposed direct form
Linear-phase type 1
Linear-phase type 2
Symmetric FIR type I
Symmetric FIR type II
Basic IIR structures
Direct form, Transposed form
Direct form I 2 order
nd
Direct form II 1 order
st
Direct form II 2 order
nd
Cascade direct form II
Transposed direct form II 1st order
Transposed direct form II 2nd order
FIR design example
4th order linear-phase filter
FDAtool FIR design example
File, Export …
Edit, Convert Structure …
FIR example
designs
Further reading
M. D. Lutovac, D. V. Tošić, B. L. Evans
Filter Design for Signal Processing
Using MATLAB and Mathematica
Prentice Hall
Upper Saddle River, New Jersey
ISBN 0-201-36130-2, (c) 2001
http://kondor.etf.bg.ac.yu/~lutovac/