Upload
letitia-mcgee
View
316
Download
10
Tags:
Embed Size (px)
Citation preview
1
Digital Signal ProcessingDigital Signal Processing
IIR digital filter structuresIIR digital filter structures
Filter designFilter 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 3rd order IIR filter with transfer function
We can implement H(z) as a cascade
where
3
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
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 3rd order transfer function
Its transpose (direct form It)
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 IIt) 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
zD
zP
zD
zP
zD
zP
zD
zPzH 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 1st order and 2nd 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?
21
21
1
1
5.08.01
0455.08227.01
4.01
44.0)(
zz
zz
z
zzH
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,
We’ll see some examples……….
10
A partial fraction expansion of
in z-1 yields
Parallel Form IIR Digital Filter Structures
1.04.01
6.0
)5831.04.0(1
25.0
)5831.04.0(1
25.0)(
111
zzjzjzH
)1)(1(
)1()1(
11 BA
AbBa
B
b
A
aUse
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.04.0(1
)1458.01.0(
)5831.04.0(1
)1458.01.0(
4.01
24.0)(
zj
zj
zj
zj
z
zzH
)1)(1(
)1()1(
11 BA
AbBa
B
b
A
aUse
Parallel form II
FIR filter design
We have briefly explored the design of FIR filters in Lecture 5 We’ll look at it again here using MATLAB We’ll 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 can’t have infinite coefficient length So, we need to truncate
13
Gain
freqwc
1LPF
Inverse DFT
Similar to
1414
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
151515
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
1616
Common window functions
Some common window functions
Low pass filter frequency response
N=51 and 2
cw
Magnitude response of window functions with M=25
171717
FIR filter design
Step 1 - Specify the ideal or required frequency response, HD(w)
Step 2 - Obtain impulse response, hD(n) of the desired filter by evaluating the inverse Fourier transform
Important note: we’ll 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 hD(n) with w(n)
h(n)=hD(n) w(n)
FIR filter design (Steps 1 and 2)
18
We can make use of available hD(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 , 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
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 ( rad/sample)
Pha
se (
degr
ees)
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 ( rad/sample)
Mag
nitu
de (
dB)
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 ( rad/sample)
Pha
se (
degr
ees)
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 ( rad/sample)
Mag
nitu
de (
dB)
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 ( rad/sample)
Pha
se (
degr
ees)
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 ( rad/sample)
Mag
nitu
de (
dB)
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 ( rad/sample)
Pha
se (
degr
ees)
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 ( rad/sample)
Mag
nitu
de (
dB)
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
Kaiser’s formula:
Actual location of transition band is immaterial
Bellanger’s formula:
Hermann’s 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
13log20 10
ps
sp
ffN
1
)(3
10log2 10
ps
sp
ffN
2/)(6.14
13log20 10
ps
spN
2424
Example – Kaiser’s formula
24
)12000/180012000/2000(6.14
13)0178.0(0115.0log20 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 p=0.0115, s=0.001
Using Kaiser’s 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.0log20 10 N
)(6.14
13log20 10
ps
sp
ffN
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 10
20
40
60
80
Normalized Frequency ( rad/sample)
Pha
se (
degr
ees)
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 ( rad/sample)
Mag
nitu
de (
dB)
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 ( rad/sample)
Pha
se (
degr
ees)
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 ( rad/sample)
Mag
nitu
de (
dB)
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 rad/sample? We used 0.3 to obtain the impulse
response function, right?
A common mistake – solution 2
0 50 100 150 200 2500
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 ( rad/sample)
Pha
se (
degr
ees)
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 ( rad/sample)
Mag
nitu
de (
dB)
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
Pow
er S
pect
rum
Mag
nitu
de (
dB)
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
FrequencyP
ower
Spe
ctru
m M
agni
tude
(dB
)
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
Pow
er S
pect
rum
Mag
nitu
de (
dB)
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
Pow
er S
pect
rum
Mag
nitu
de (
dB)
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 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
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, 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 z-plane
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
3333
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: 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)
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 ( rad/sample)
Pha
se (
degr
ees)
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 ( rad/sample)
Mag
nitu
de (
dB)
3535
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
Pow
er S
pect
rum
Mag
nitu
de (
dB)
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
Pow
er S
pect
rum
Mag
nitu
de (
dB)