Sei sulla pagina 1di 35

1

Digital Signal Processing





IIR digital filter structures
Filter design
2
Basic IIR Digital Filter Structure
An N-th order IIR digital transfer function is characterised by 2N+1 unique
coefficients, and in general, requires 2N+1 multipliers and 2N two input adders for
implementation

Direct form IIR filter: Filter structures in which the multiplier coefficients are
precisely the coefficients of the transfer function

Consider, a 3
rd
order IIR filter with transfer function



We can implement H(z) as a cascade



where
3
Basic IIR Digital Filter Structure
The filter section H
1
(z) can be seen to be an FIR filter and can be realised:








Time domain representation of H
2
(z) is given by



4
Direct Form IIR Digital Filter Structure
Cascade of the two structures leads to H(z) and is known as direct form I structure








It is noncanonic as it uses 6 delays to realise 3
rd
order transfer function

Its transpose (direct form I
t
)



5
Direct Form IIR Digital Filter Structure
Various other noncanonic direct
form structures can be derived by
simple block diagram
manipulations

Observe in the direct form
structure (on the right), signal
variables in nodes 1 and 1 are the
same, so the two top delays can
be shared

Likewise, the middle and bottom
two delays can be shared

We get direct form II and its
transpose (direct form II
t
) is
also shown

Now, it is canonic


6
Cascade form IIR Digital Filter Structure
By expressing the numerator and the denominator polynomials of the
transfer function as a product of polynomials of lower degree, a digital
filter can be realised as a cascade of low-order filter sections





) (
) (
) (
) (
) (
) (
) (
) (
) (
3
3
2
2
1
1
z D
z P
z D
z P
z D
z P
z D
z P
z H = =
Consider, for example,
H(z)=P(z)/D(z) expressed as

Examples of cascade realisations
obtained by different pole-zero
pairings



Examples of cascade realisations
obtained by different ordering of
sections

7
Cascade form IIR Digital Filter Structure
There are altogether a total of 36 different cascade realisations of H(z)
based on pole-zero pairings and orderings

Due to finite wordlength effects, each such realisation behaves
differently

Usually, the polynomials are factored into a product of 1
st
order and 2
nd

order polynomials:





For a first order,
8
Consider an example:





The direct form II and cascade
realisations are
Cascade form IIR Digital Filter Structure
How?
(

+ +
+ +
(

2 1
2 1
1
1
5 . 0 8 . 0 1
0455 . 0 8227 . 0 1
4 . 0 1
44 . 0
) (
z z
z z
z
z
z H
Hint: try to remember a general form for direct form II and then reuse it!
9
Parallel Form IIR Digital Filter Structures
A partial-fraction expansion of the transfer function in z
-1
leads to the
parallel form I structure

Assuming simple poles, the transfer function H(z) can be expressed as



In the above for a real pole,

A direct partial fraction expansion of the transfer function in z leads to
the parallel form II structure



In the above for a real pole,

Well see some examples.

10
A partial fraction expansion of



in z
-1
yields
Parallel Form IIR Digital Filter Structures
1 . 0
4 . 0 1
6 . 0
) 5831 . 0 4 . 0 ( 1
25 . 0
) 5831 . 0 4 . 0 ( 1
25 . 0
) (
1 1 1

+


+
+

=

z z j z j
z H
) 1 )( 1 (
) 1 ( ) 1 (
1 1 B A
A b B a
B
b
A
a
Use

+
=

Parallel form I
11
A partial fraction expansion of



in z yields
Parallel Form IIR Digital Filter Structures
1
1
1
1
1
1
) 5831 . 0 4 . 0 ( 1
) 1458 . 0 1 . 0 (
) 5831 . 0 4 . 0 ( 1
) 1458 . 0 1 . 0 (
4 . 0 1
24 . 0
) (


+
+
+

+

=
z j
z j
z j
z j
z
z
z H
) 1 )( 1 (
) 1 ( ) 1 (
1 1 B A
A b B a
B
b
A
a
Use

+
=

Parallel form II
FIR filter design
We have briefly explored the design of FIR filters in Lecture 5
Well look at it again here using MATLAB
Well use the window method to design FIR filters
12
13
Ideal filter and impulse response
An ideal LPF Its impulse











What is the problem we cant have infinite coefficient length
So, we need to truncate

13
Gain
freq
w
c
1
LPF
Inverse DFT
Similar to
14 14
Let us use a rectangular window









We can see that the shape of the LPF has changed

This is know as Gibbs phenomenon oscillatory behaviour in the magnitude
responses caused by truncating the ideal impulse response function (i.e. the
rectangular window has an abrupt transition to zero)

Gibbs phenomenon can be reduced by
Using a window that tapers smoothly at each end
Providing a smooth transition from passband to stopband in the magnitude
specifications
14
Ideal filter and impulse response
DFT
15 15 15
Filter length
The filter length (i.e. order) affects the
magnitude response

Length increase, number of ripples in both
passband and stopband increases but with
a corresponding decrease in the ripple
widths

That is as N increase, it gets closer to the
ideal LPF

But height of largest ripples remain the
same independent of length

Similar oscillatory behaviour could be
observed in the magnitude responses of
the truncated versions of other types of
ideal filters
15
Infinite N
N=25
N=13
16 16
Common window functions
Some common window functions

Low pass filter frequency response

N=51 and
2
t
=
c
w
Magnitude response of window
functions with M=25
17 17 17
FIR filter design
Step 1 - Specify the ideal or required frequency response, H
D
(w)

Step 2 - Obtain impulse response, h
D
(n) of the desired filter by evaluating the
inverse Fourier transform

Important note: well look at h
D
(n) for standard filter designs in the next slide

Step 3 - Select a window function and then the number of filter coefficients

Step 4 - Obtain values of w(n) for the chosen window function and the values of
the actual FIR coefficients, h(n), by multiplying h
D
(n) with w(n)

h(n)=h
D
(n) w(n)

FIR filter design (Steps 1 and 2)
18
We can make
use of available
h
D
(n)
19
FIR filter design (step 3) window?
First problem in step 3 - which window function?

The ratio of the main lobe/side lobe can be used

Example, the frequency response of Hamming and Blackman windows








Main lobe centred at =0

Other ripples are called side lobes

FIR filter design (step 3) window?
To ensure a fast transition from passband to stopband, window should
have a very small main lobe width

To reduce the passband and stopband ripple o, the area under the
sidelobes should be small so to increase the stopband attenuation, we
need to decrease the sidelobe amplitude

Most of the time, these two requirements are contradictory

Example: LPF with length=51 and cut-off at t/2

20
21
FIR filter design (step 3) length?
Second problem in step 3 number of filter coefficients?

To obtain good (i.e. sharper) transition band reduce main lobe width
increase the filter length

But increased filter length means increased computational complexity

Eg: Frequency response of Hamming window with length 101 and 201
are shown below

21
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-400
-200
0
200
Normalized Frequency (trad/sample)
P
h
a
s
e

(
d
e
g
r
e
e
s
)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-100
-50
0
50
Normalized Frequency (trad/sample)
M
a
g
n
i
t
u
d
e

(
d
B
)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-400
-200
0
200
Normalized Frequency (trad/sample)
P
h
a
s
e

(
d
e
g
r
e
e
s
)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-100
-50
0
50
Normalized Frequency (trad/sample)
M
a
g
n
i
t
u
d
e

(
d
B
)
FIR filter design (step 3) length?
Using the same window as in the previous slide

LPF with Hamming window, with normalised cut-off=0.3



22
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-4000
-3000
-2000
-1000
0
Normalized Frequency (t rad/sample)
P
h
a
s
e

(
d
e
g
r
e
e
s
)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-150
-100
-50
0
50
Normalized Frequency (t rad/sample)
M
a
g
n
i
t
u
d
e

(
d
B
)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-6000
-4000
-2000
0
Normalized Frequency (t rad/sample)
P
h
a
s
e

(
d
e
g
r
e
e
s
)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-150
-100
-50
0
50
Normalized Frequency (t rad/sample)
M
a
g
n
i
t
u
d
e

(
d
B
)
23
To select the suitable order i.e. the length
The lowest order that can meet the requirements

There are several methods:
Kaiser, Bellanger, Hermann

Kaisers formula:




Actual location of transition band is immaterial

Bellangers formula:




Hermanns formula is more complex so we will not consider here (but generally it
gives slightly more accurate value for the order)


23
FIR filter design (step 3) order selection
( )
) ( 6 . 14
13 log 20
10
p s
s p
f f
N


~
o o
( )
1
) ( 3
10 log 2
10

~
p s
s p
f f
N
o o
( )
t e e
o o
2 / ) ( 6 . 14
13 log 20
10
p s
s p
N


~
24 24
Example Kaisers formula
Estimate the order of a linear-phase lowpass FIR filter with the following
specifications: passband edge F
p
=1.8 kHz, stopband edge F
s
=2 kHz,
peak passband ripple o
p
=0.1 dB, minimum stopband attenuation o
s
=35
dB and sampling rate F
T
=12 kHz.

Get the peak ripple values: o
p
=0.0115, o
s
=0.0178

Using the Kaisers formula:

which gives 98.27

Since N must be an integer, we round up the value to give N=99
As the order is odd, a Type 2 FIR filter can be designed. To design a
Type 1 FIR filter, N should be increased to 100
In Matlab, you can use kaiserord function but it only gives an
approximation
Normally, you should check to see if the filter specifications are met, if
not change N
24
( )
) 12000 / 1800 12000 / 2000 ( 6 . 14
13 ) 0178 . 0 ( 0115 . 0 log 20
10


~ N
25
Another example
A requirement exists for an FIR digital filter to meet the following specifications:
Passband: 150-250 Hz
Transition width: 50 Hz
Passband ripple: 0.1 dB
Stopband attenuation: 60 dB
Sampling frequency: 1 kHz
Obtain the filter coefficients
Solution - The peak ripple values are o
p
=0.0115, o
s
=0.001

Using Kaisers formula:

which give N=49.85. So, we could take N=50 (type 1, odd length)

Note that the passband information is not used to obtain N, so it will be the same
even if we shift the passband or even if we use it for highpass, stopband etc

If the transition bands are not same then we use the smaller transition band
bigger transition band requires smaller N, so the smaller transition band
requires a higher order and is more important for the order selection
( )
) 1000 / 50 ( 6 . 14
13 ) 001 . 0 ( 0115 . 0 log 20
10

~ N
( )
) ( 6 . 14
13 log 20
10
p s
s p
f f
N


~
o o
A common mistake
Example: Obtain the FIR coefficients for a highpass filter with
Fc=600 Hz with FT=2000 Hz

Assume we start with N=100
Use the known impulse response for HPF





Problem
The phase is completely non-linear
The magnitude response is not good



26
0 20 40 60 80 100 120
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
20
40
60
80
Normalized Frequency (trad/sample)
P
h
a
s
e

(
d
e
g
r
e
e
s
)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-15
-10
-5
0
5
Normalized Frequency (trad/sample)
M
a
g
n
i
t
u
d
e

(
d
B
)
27
To obtain linear phase response
Coefficients must be symmetry/antisymmetry

So say, change N=201








Linear phase response achieved
But there are still ripples (Gibbs phenomenon)
A common mistake solution 1
0 50 100 150 200 250
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-10000
-5000
0
5000
Normalized Frequency (trad/sample)
P
h
a
s
e

(
d
e
g
r
e
e
s
)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-150
-100
-50
0
50
Normalized Frequency (trad/sample)
M
a
g
n
i
t
u
d
e

(
d
B
)
28

Let us use a window, say Hamming




Less ripple in the magnitude
response (in the passband)

Why is the cut-off frequency in the
plot at 0.6 t rad/sample?
We used 0.3 to obtain the impulse
response function, right?
A common mistake solution 2
0 50 100 150 200 250
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 50 100 150 200 250
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-10000
-5000
0
5000
Normalized Frequency (trad/sample)
P
h
a
s
e

(
d
e
g
r
e
e
s
)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-150
-100
-50
0
50
Normalized Frequency (trad/sample)
M
a
g
n
i
t
u
d
e

(
d
B
)
Taking the example further
29
Let us actually use the filter after designing it!












It could be improved using higher N and improved window such as
Kaiser window

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-100
-80
-60
-40
-20
0
20
Frequency
P
o
w
e
r

S
p
e
c
t
r
u
m

M
a
g
n
i
t
u
d
e

(
d
B
)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-120
-100
-80
-60
-40
-20
0
20
Frequency
P
o
w
e
r

S
p
e
c
t
r
u
m

M
a
g
n
i
t
u
d
e

(
d
B
)
Using MATLAB fir1 function
30
Using MATLAB, filter coefficients can easily obtained using fir1 function!
Hamming window is used by default
For the same input x in the previous slide, let us design a bandpass filter
to extract only the component at 650 Hz
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-100
-80
-60
-40
-20
0
20
Frequency
P
o
w
e
r

S
p
e
c
t
r
u
m

M
a
g
n
i
t
u
d
e

(
d
B
)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-120
-100
-80
-60
-40
-20
0
20
Frequency
P
o
w
e
r

S
p
e
c
t
r
u
m

M
a
g
n
i
t
u
d
e

(
d
B
)
0 50 100 150 200 250
-0.1
-0.08
-0.06
-0.04
-0.02
0
0.02
0.04
0.06
0.08
Improved FIR filter design
31
The windows such as Hanning, Hamming etc are known as fixed window designs as
the o ripple values are fixed)

FIR filter design can also be improved using adjustable window functions such as
Dolph-Chebyshev and Kaiser that provide control over o by means of an additional
parameter characterising the window

The basis of FIR filter design is to obtain the set of minimal number of coefficients
for the required response

So, computer based optimisation methods have been invented
Parks-McClellan algorithm can be used to obtain the FIR coefficients (in MATLAB,
we can design this filter using remez function)
Normally, improved design over the standard window based method
Known as computer based FIR filter design

The only other FIR design method is frequency sampling method
But knowledge of the window based method is sufficient for this course

Note: Kaiser order and Kaiser window are two different matters, though we normally use them
together
32
IIR filter design
32
The most common approach to IIR filter design:
Convert the digital filter specifications into an analogue prototype
low-pass filter specifications
Determine the analogue low-pass filter transfer function, H
a
(s)
Transform H
a
(s) in the desired digital transfer function G(z)

The most widely used transformation is the bilinear transformation that
maps the imaginary axis in the s-plane (jO) onto the unit circle of the z-
plane


So, relation between G(z) and H
a
(s)


However, this design requires some knowledge of analogue low-pass
filters and also s-plane and therefore, we will skip this method and
straightaway utilise IIR filter design using MATLAB

33 33
IIR filter design using MATLAB
33
We have done IIR filter design using MATLAB in Lecture 5

There are several classical IIR filters
Butterworth, Chebyshev Types I and II, Elliptic
MATLAB functions
butter Butterworth filter with flat passband (no ripples)
ellip Elliptic filter with ripples (but normally requiring lower order than
Butterworth for same transition band)
cheby1 - Chebyshev filter controlling peak-to-peak ripple in the passband
cheby2 - Chebyshev filter controlling the amount of stopband ripple

First step is to estimate the order of the filter given the specifications using
functions: buttord, cheb1ord, cheb2ord, ellipord etc

Next, obtain the coefficients, B and A using functions: buttord, besself, cheby1,
cheby2, ellip, etc

Finally, do the filtering using filtfilt function

The frequency response of the filter can be obtained using function freqz(B,A)

34
IIR filter design using MATLAB -example
Design an elliptic IIR low-pass filter with the specifications: F
p
=0.8 kHz,
F
s
=1 kHz, F
T
=4 kHz, o
p
=0.5 dB, o
s
=40 dB

MATLAB code:
[N,Wn]=ellipord(0.4,0.5,0.5,40)
[B,A]=ellip(N,0.5,40,Wn)



0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-400
-300
-200
-100
0
Normalized Frequency (trad/sample)
P
h
a
s
e

(
d
e
g
r
e
e
s
)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-150
-100
-50
0
Normalized Frequency (trad/sample)
M
a
g
n
i
t
u
d
e

(
d
B
)
35 35
IIR filter design using MATLAB -example
To filter a signal, use filtfilt function




0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-120
-100
-80
-60
-40
-20
0
20
Frequency
P
o
w
e
r

S
p
e
c
t
r
u
m

M
a
g
n
i
t
u
d
e

(
d
B
)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-120
-100
-80
-60
-40
-20
0
20
Frequency
P
o
w
e
r

S
p
e
c
t
r
u
m

M
a
g
n
i
t
u
d
e

(
d
B
)

Potrebbero piacerti anche