Вы находитесь на странице: 1из 35

Digital Signal Processing

IIR digital filter structures


Filter design
1

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 3rd order IIR filter with transfer function

We can implement H(z) as a cascade

where

Basic IIR Digital Filter Structure

The filter section H1(z) can be seen to be an FIR filter and can be realised:

Time domain representation of H2(z) is given by

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 3rd order transfer function

Its transpose (direct form It)

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 IIt) is
also shown

Now, it is canonic

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

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

H ( z)

P( z ) P1 ( z ) P2 ( z ) P3 ( z )

D( z ) D1 ( z ) D2 ( z ) D3 ( z )

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 1st order and 2nd
order polynomials:

For a first order,

Cascade form IIR Digital Filter Structure

Consider an example:

How?

The direct form II and cascade


realisations are

0.44 z 1 1 0.8227 z 1 0.0455 z 2

1
1 0.8 z 1 0.5 z 2
1 0.4 z

H ( z)

Hint: try to remember a general form for direct form II and then reuse it!

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.


9

Parallel Form IIR Digital Filter Structures

A partial fraction expansion of

in z-1 yields

H ( z)

0.25
0.25
0.6

0.1
1
1
1 ( 0.4 j 0.5831) z
1 (0.4 j 0.5831) z
1 0.4 z 1
Use

Parallel form I

a
b
a (1 B ) b(1 A)

1 A 1 B
(1 A)(1 B )

10

Parallel Form IIR Digital Filter Structures

A partial fraction expansion of

in z yields

0.24 z 1
(0.1 j 0.1458) z 1
(0.1 j 0.1458) z 1
H ( z)

1 0.4 z 1 1 (0.4 j 0.5831) z 1 1 (0.4 j 0.5831) z 1


Use

a
b
a (1 B ) b(1 A)

1 A 1 B
(1 A)(1 B)

Parallel form II
11

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

Ideal filter and impulse response

An ideal LPF

Its impulse

Inverse DFT

Similar to

What is the problem we cant have infinite coefficient length


So, we need to truncate
13

Ideal filter and impulse response

Let us use a rectangular window

DFT

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

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

N=13

N=25

Infinite N

15

Common window functions

Some common window functions

Low pass filter frequency response

N=51 and wc

Magnitude response of window


functions with M=25

16

FIR filter design

Step 1 - Specify the ideal or required frequency response, H D(w)

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

Important note: well look at hD(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)=hD(n) w(n)

17

FIR filter design (Steps 1 and 2)


We can make
use of available
hD(n)

18

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


19

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 , 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 /2

20

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
50
Magnitude (dB)

Magnitude (dB)

50
0
-50
-100

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

200
Phase (degrees)

Phase (degrees)

-50
-100

200
0
-200
-400

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

0
-200
-400

21
21

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


50

Magnitude (dB)

Magnitude (dB)

50

-50
-100
-150

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

-100
0

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

-1000

Phase (degrees)

Phase (degrees)

-50

-150

-2000
-3000
-4000

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

-2000
-4000
-6000

22

FIR filter design (step 3) order selection

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:

20 log10 p s 13
14.6(s p ) / 2

14.6( f s f p )

Actual location of transition band is immaterial

Bellangers formula:

20 log10 p s 13

2 log10 10 p s
3( f s f p )

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

Example Kaisers formula

20 log10 0.0115(0.0178) 13
14.6(2000 / 12000 1800 / 12000)

24

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 p=0.0115, s=0.001

20 log10 0.0115(0.001) 13
Using Kaisers formula: N
14.6(50 / 1000)

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

20 log10 p s 13
14.6( f s f p )

25

A common mistake

Example: Obtain the FIR coefficients for a highpass filter with


Fc=600 Hz with FT=2000 Hz
0.4
0.3

Assume we start with N=100


Use the known impulse response for HPF

0.2
0.1
0
-0.1
-0.2
-0.3
-0.4

20

40

60

80

100

120

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

0
-5
-10
-15

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

80
Phase (degrees)

Magnitude (dB)

60
40
20
0

26

A common mistake solution 1

0.4

To obtain linear phase response


Coefficients must be symmetry/antisymmetry

0.3
0.2
0.1

So say, change N=201

0
-0.1
-0.2
-0.3
-0.4

50

100

150

200

250

Magnitude (dB)

50
0
-50
-100
-150

Linear phase response achieved


But there are still ripples (Gibbs phenomenon)

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

5000
Phase (degrees)

0
-5000
-10000

27

A common mistake solution 2

Let us use a window, say Hamming


1

0.4

0.9

0.3

0.8

0.2

0.7

0.1

0.6
0.5

0.4

-0.1

0.3

-0.2

0.2

-0.3

0.1
0

Why is the cut-off frequency in the


plot at 0.6 rad/sample?

We used 0.3 to obtain the impulse


response function, right?

50

100

150

200

250

-0.4

50

100

150

200

250

50
Magnitude (dB)

Less ripple in the magnitude


response (in the passband)

0
-50
-100
-150

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

5000
Phase (degrees)

0
-5000
-10000

28

Taking the example further

Let us actually use the filter after designing it!

20

20
0
Power Spectrum Magnitude (dB)

Power Spectrum Magnitude (dB)

-20

-40

-60

-80

-100

-20
-40
-60
-80
-100

0.1

0.2

0.3

0.4

0.5
0.6
Frequency

0.7

0.8

0.9

-120

0.1

0.2

0.3

0.4

0.5
0.6
Frequency

0.7

0.8

0.9

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


Kaiser window

29

Using MATLAB fir1 function


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.08
0.06
0.04
0.02

0
-0.02
-0.04
-0.06
-0.08

20

20

Power Spectrum Magnitude (dB)

Power Spectrum Magnitude (dB)

50

100

150

200

250

-20

-40

-60

-80

-100

-0.1

-20
-40
-60
-80
-100

0.1

0.2

0.3

0.4

0.5
0.6
Frequency

0.7

0.8

0.9

-120

0.1

0.2

0.3

0.4

0.5
0.6
Frequency

0.7

0.8

0.9

30

Improved FIR filter design

The windows such as Hanning, Hamming etc are known as fixed window designs as
the 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 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
31

IIR filter design

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, Ha(s)

Transform Ha(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 (j) onto the unit circle of the zplane

So, relation between G(z) and Ha(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
32

IIR filter design using MATLAB

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)
33

IIR filter design using MATLAB -example

Design an elliptic IIR low-pass filter with the specifications: Fp=0.8 kHz,
Fs=1 kHz, FT=4 kHz, p=0.5 dB, s=40 dB

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

Magnitude (dB)

0
-50
-100
-150

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

0.1

0.2

0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)

0.9

Phase (degrees)

0
-100
-200
-300
-400

34

IIR filter design using MATLAB -example


To filter a signal, use filtfilt function

20

20

0
Power Spectrum Magnitude (dB)

Power Spectrum Magnitude (dB)

-20
-40
-60
-80

-40
-60
-80
-100

-100
-120

-20

0.1

0.2

0.3

0.4

0.5
0.6
Frequency

0.7

0.8

0.9

-120

0.1

0.2

0.3

0.4

0.5
0.6
Frequency

0.7

0.8

0.9

35

Вам также может понравиться