design and implementation of iir filter
DESCRIPTION
IIR FILTERTRANSCRIPT
DESIGN AND
IMPLEMENTATION OF
IIR FILTER
By-
SAURABH SHUKLA
M.Tech (CE)
ICE2012005
2
CONTENTS Introduction
Two Approaches The Main Problem
Characteristics of Prototype Analog Filters Design of IIR Filter from Analog Filter Different Methodologies to Design IIR Filter
Finite Difference Approximation Technique Impulse Invariance Transformation Bilinear Transformation The Matched z- Transform
Different IIR Filters Design Using MATLAB GUI For Digital Filter Design Implementation of IIR Filter References
3
INTRODUCTION
IIR filter have infinite-duration impulse responses, hence they can be matched to analog filters, all of which generally have infinitely long impulse responses.
The basic technique of IIR filter design transforms well-known analog filters into digital filters using complex-valued mappings.
The advantage of this technique lies in the fact that both analog filter design (AFD) tables and the mappings are available extensively in the literature.
4
The basic technique is called the A/D filter transformation.
However, the AFD tables are available only for low pass filters. We also want design other frequency-selective filters (high pass, band pass, band stop, etc.)
To do this, we need to apply frequency-band transformations to low pass filters. These transformations are also complex-valued mappings.
5
TWO APPROACHES
Design analoglowpass filter
Apply Freq. bandtransformation
s-->s
Apply filtertransformation
s-->z
DesiredIIR filter
Design analoglowpass filter
Apply filtertransformation
s-->z
Apply Freq. bandtransformation
z-->z
DesiredIIR filter
Approach 1, used in Matlab
Approach 2, study
6
THE MAIN PROBLEM
We have no control over the phase characteristics of the IIR filter.
Hence IIR filter designs will be treated as magnitude-only designs.
It doesn’t mean that we consider the phase response unimportant.
We specify the desired magnitude characteristics and accept the phase response that is obtained from the design methodology.
7
CHARACTERISTICS OF PROTOTYPE ANALOG FILTERS
IIR filter design techniques rely on existing analog filter to obtain digital filters. We designate these analog filters as prototype filters.
Three prototypes are widely used in practiceButterworth lowpassChebyshev lowpass (Type I and II)Elliptic lowpass
8
IIR Filter Types
Butterworth Chebyshev Type I
Elliptic
Chebyshev Type II
9
Basic idea behind the conversion of into is to apply a mapping from the s-domain to the z-domain so that essential properties of the analog frequency response are preserved.
Thus mapping function should be such that
Imaginary ( ) axis in the s-plane be mapped onto the unit circle of the z-plane.(Thus there will be a direct relationship b/w the two frequency variables in the two domains. )
A stable analog transfer function should be mapped into a stable digital transfer function (the left half of s-plane should map into the inside of unit circle in the z-plane)
)(sH a )(zH
j
DESIGN OF IIR FILTER FROM ANALOG FILTER
10
An analog filter can be described by
-----(1)
where and are the filter coefficient.
An analog filter can also be described by the linear constant coefficients differential equation
----(2)
where x(t) denotes the input signal and y(t) denoted the output of the filter.
N
k
kk
M
k
kk
a
s
s
sA
sBsH
0
0
)(
)()(
k k
M
kk
k
k
N
kk
k
k dt
txd
dt
tyd
00
)()(
11
Maximum passband deviation= maximum stopband magnitude = 1/A Pass band Frequency (normalized) Stop band Frequency (normalized)
21
1
s
pp F
s
ss F
12
DIFFERENT METHODOLOGIES TO DESIGN IIR FILTER
The transformations are derived by preserving different aspects of analog and digital filters.
Finite difference approximation technique Convert a differential eq. representation into a
corresponding difference eq.
Impulse invariance transformation Preserve the shape of the impulse response from A to
D filter
Bilinear transformation Preserve the system function representation from A to
D domain
The Matched Z transformation Try to match the impulse response from A to D filter.
13
1-FINITE DIFFERENCE APPROXIMATION TECHNIQUE One of the simplest methods for converting an
analog filter into digital filter. For the derivative at time t=nT. we do,
In this we replace
T
TnTynTy
dt
tdy
nTt
)()()(
T
nyny )1()(
dttdy )(
k
k
T
zs
11
14
Thus
and if we substitute s=jΩ in the above eq. we find
As Ω varies from -∞ to ∞, the corresponding locus of points in the z-plane is a circle of radius ½ and with a center z= ½ as shown below
sTz
1
1
Tjz
1
1
frequency digital
frequency analog
15
The mapping takes points in the LHP of the s-plane into corresponding points inside the circle in the z-plane and points in the RHP of the s-plane are mapped into outside this circle.
Thus this mapping has the desirable property that a stable analog filter is transformed into a stable digital filter.
The possible location of poles of the digital filter are confined to relatively small frequencies and the mapping is restricted to design of lowpass filters and a bandpass filters having relatively small resonant frequencies.
16
2-IMPULSE INVARIANCE TRANSFORMATION
Our objective to design an IIR filter having a unit sample response h(n), that is the sampled version of the impulse response of the analog filter.
h(n)=h(nT) n=0,1,2,….. where T is the sampling interval.
for mapping
Thus for σ<0 (i.e. LHP) 0<r<1 & σ>0 (i.e. RHP) r>1.
When σ=0 (imaginary axis) r=1.
Therefore the LHP in s is mapped inside the unit circle in z and the RHP in s is mapped outside the unit circle in z.
T
eeer TjjT
and
sTez TjTj eere
17
Also s=j Ω axis is mapped into the unit circle in z. We have the following transformation from the s-plane
to the z-plane: z=esT
Many s to one z mapping: many-to-one mapping Every semi-infinite left strip (so the whole left
plane) maps to inside of unit circle. Since ω is unique over the range (-π,π), the
mapping ω=ΩT implies in general
ka k
TjsH
TzH
21)(
Frequency-domain aliasing formula
TkTk /)12(/)12(
18
Causality and Stability are the same without changing.
Aliasing occur if filter not exactly band-limited
So, The digital filter impulse response is similar to that of a frequency-selective analog filter.
Advantages It is a stable design and the frequencies Ω and w are linearly
related.
Disadvantage We should expect some aliasing of the analog frequency
response, and in some cases this aliasing is intolerable.
Consequently, this design method is useful only when the analog filter is essentially band-limited to a lowpass or bandpass filter in which there are no oscillations in the stopband.
19
MATLAB PROGRAM FOR IMPULSE INVARIANCE TRANSFORMATION Program-1
[b,a] = butter(4,0.3,'s');
[bz,az] = impinvar(b,a,10);
sys = tf(b,a);
impulse(sys);
hold on;
impz(10*bz,az,[],10);
Zooming the resulting plot shows that the analog and digital impulse responses are the same.
20
Program-2clc
disp(' Impulse invariance transformation'); disp(' ');
Wp = input('Enter passband edge frequency in rad/sec = '); %1500
Rp = input('Enter passband ripple in dB = '); %.5
Ws = input('Enter stopband edge frequency in rad/sec = '); %3000
Rs = input('Enter stopband ripple in dB = '); %60
Fs = input('Enter the sampling frequency = '); %7000
[n,Wn] = cheb1ord(Wp,Ws,Rp,Rs,'s');
disp('The order of the filter is n = ');
disp(n); %display order of the filter%
[num,den] = cheby1(n,Rp,Wn,'s'); % calculates coefficients of analog filter%
[b,a] = impinvar(num,den,Fs) %applies IIT%
freqz(b,a,512,Fs); %frequency response %
grid on;
xlabel('Frequency in Hz');
ylabel('Gain in dB');
title('Frequency Response of the filter');
21
22
3- BILINEAR TRANSFORMATION
The above two discussed design techniques have severe limitation in that they are appropriate only for LPF and a limited class of BPF.
This bilinear transformation is a mapping that transforms the jΩ axis into the unit circle in the z-plane only once.
Thus it avoids aliasing of frequency components.
Furthermore all points of the LHP of s are mapped inside the unit circle in the z-plane and all points in the RHP of s are mapped into corresponding points outside the unit circle in z-plane.
This mapping is the best transformation method.
23
The complex plane mapping is shown as below-
Relation of ω to Ω is nonlinear-
Ω=2tan(ω/2)/T ω= 2tan-1(ΩT/2)
Therefore due to this highly nonlinear mapping, we observe a frequency compression or frequency warping.
2/1
2/1
1
121
1
sT
sTz
z
z
Ts
24
The entire range in Ω is mapped only once into the range
Frequency Warping Because of the non linear mapping, the amplitude
response of digital IIR filter is expanded at lower frequencies and compressed at higher frequencies in comparison to analog filter.
25
The Ha(jΩ) compressed in frequency by this transformation.
But the characteristics of Ha(jΩ) are preserved in H(z).
If |Ha(jΩ)| is equiripple in passband or stopband, then |H(z)|is also. This property is the most important feature of bilinear transformation and made it most widely employed transformation for classical designs.
Advantages It is a stable design. There is no aliasing. There is no restriction on the type of filter that can be
transformed.
26
MATLAB PROG FOR BILINEAR TRANSFORMATION
Program-1clc
Wp = input('Enter passband edge frequency in rad/sec = ');
Rp = input('Enter passband ripple in dB = ');
Ws = input('Enter stopband edge frequency in rad/sec = ');
Rs = input('Enter stopband ripple in dB = ');
Fs = input('Enter the sampling frequency = ');
[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s');
disp('The order of the filter is n = ');
disp(n); %display order of the filter%
[num,den] = butter(n,Wn,'s'); %calculates coefficients of analog filter%
[b,a] = bilinear(num,den,Fs) % apply bilinear transformation%
freqz(b,a,512,Fs); %frequency response %
grid on;
xlabel('Frequency in Hz');
ylabel('Gain in dB');
title('Frequency Response of the filter');
27
28
4-THE MATCHED Z TRANSFORM In the matched z-transform digital filter design
method we try to “match” the impulse response of the analog filter with that of the digital filter being designed.
To match the impulse responses, we take the inverse Laplace transform of the analog filter H(s)h(t), then sample the impulse response h(t)h[n], then take the z-transform of the sampled impulse response to get the z-transform transfer function h[n]H(z).
29
Example-
And
thus
Note- Poles obtained from the matched z-transformation
are identical to the poles obtained with the impulse invariance method.
But the two techniques results in different zero location
ssH
1)(
)()( tuth ][][ nunh
11
1)(
zzH
11
1
)(
)()(
zzX
zYzH
)(]1)[( 1 zXzzY ][]1[][ nxnyny
30
DIFFERENT IIR DIGITAL FILTERS DESIGN USING MATLAB Program-1 (Elliptic IIR Lowpass Filter Design)
%---N-filter order& Wn= Frequency scaling factor---%
Wp = input('Normalized passband edge = ');
Ws = input('Normalized stopband edge = ');
Rp = input('Passband ripple in dB = ');
Rs = input('Minimum stopband attenuation in dB = ');
[N,Wn] = ellipord(Wp,Ws,Rp,Rs)
[b,a] = ellip(N,Rp,Rs,Wn);
[h,omega] = freqz(b,a,256);
plot (omega/pi,20*log10(abs(h)));grid;
xlabel('\omega/\pi'); ylabel('Gain, dB');
title('IIR Elliptic Lowpass Filter');
(in case of elliptic filter Wn=Wp)
31
32
Program-2 (Type-1 Chebyshev IIR HPF Design)
Wp = input('Normalized passband edge = ');
Ws = input('Normalized stopband edge = ');
Rp = input('Passband ripple in dB = ');
Rs = input('Minimum stopband attenuation in dB = ');
[N,Wn] = cheb1ord(Wp,Ws,Rp,Rs)
[b,a] = cheby1(N,Rp,Wn,'high');
[h,omega] = freqz(b,a,256);
plot (omega/pi,20*log10(abs(h)));grid;
xlabel('\omega/\pi'); ylabel('Gain, dB');
title('Type I Chebyshev Highpass Filter');
33
34
Program-3 (Butterworth IIR BPF Design)
Wp = input('Passband edge frequencies = ');
Ws = input('Stopband edge frequencies = ');
Rp = input('Passband ripple in dB = ');
Rs = input('Minimum stopband attenuation = ');
[N,Wn] = buttord(Wp, Ws, Rp, Rs);
[b,a] = butter(N,Wn);
[h,omega] = freqz(b,a,256);
gain = 20*log10(abs(h));
plot (omega/pi,gain);grid;
xlabel('\omega/\pi'); ylabel('Gain, dB');
title('IIR Butterworth Bandpass Filter');
Note-
(the i/p data are the vector of passband edges Wp= [0.45 0.65], the vector of stop band edges Ws=[0.3 0.75])
35
36
Program-4 (Butterworth IIR LPF/HPF Design)clc;
clear all;
close all;
disp('enter the IIR filter design specifications');
rp=input('enter the passband ripple');
rs=input('enter the stopband ripple');
wp=input('enter the passband freq');
ws=input('enter the stopband freq');
fs=input('enter the sampling freq');
w1=2*wp/fs; w2=2*ws/fs;
[n,wn]=buttord(w1,w2,rp,rs,'s');
c=input('enter choice of filter 1. LPF 2. HPF \n ');
if(c==1)
disp('Frequency response of IIR LPF is:');
[b,a]=butter(n,wn,'low','s');
end
CONTD…..
37
if(c==2)
disp('Frequency response of IIR HPF is:');
[b,a]=butter(n,wn,'high','s');
end
w=0:.01:pi;
[h,om]=freqs(b,a,w);
m=20*log10(abs(h));
an=angle(h);
figure,subplot(2,1,1);plot(om/pi,m);
title('magnitude response of IIR filter is:');
xlabel('(a) Normalized freq. -->');
ylabel('Gain in dB-->');
subplot(2,1,2);plot(om/pi,an);
title('phase response of IIR filter is:');
xlabel('(b) Normalized freq. -->');
ylabel('Phase in radians-->');
38
39
40
GUI FOR DIGITAL FILTER DESIGN There are some inbuilt function in MATLAB i.e.
“fdatool, sptool, fvtool”. Filter Design with FDATOOL-
41
GUI Window -2
42
IMPLEMENTATION OF IIR FILTER
1- Through TMS-320 C6713 DSP starter KIT Set up the DSK kit as shown below and load with the c-
program (implementing IIR HPF with 7kHz cutoff Frequency) and the i/p is given by function generator sinusoid of 11kHz and the o/p is also shown below:-
43
2- By LABVIEW Digital Filter Design Toolkit The following figure illustrates the magnitude responses
of a typical LPF designed by the four IIR filter design methods. Each filter has the same numerator and denominator order values.
44
REFERENCES Digital Filters and Signal Processing: 3rd edition- By Leland B. Jackson Digital signal processing: 3rd edition by John G. Proakis & Manolakis. Digital Signal Processing-A computer based approach: 2nd Edition- by
Sanjit K Mitra Multirate System & Filter Banks- By P.P. Vaidhyanathan Digital Signal Processing- By R A Barapate http://nptel.iitm.ac.in/video.php?subjectId=117102060 (NPTEL Online
Video Course) Mathworks Webpage
(http://www.mathworks.in/products/signal/description4.html) Mikroelektronika Webpage
(http://www.mikroe.com/chapters/view/73/chapter-3-iir-filters/) TMS-320 C6713 DSP Starter KIT User Manual Wikipedia National Instrument
(http://zone.ni.com/reference/en-XX/help/371325F-01/lvdfdtconcepts/design_methods/)
EE TIMES (http://eetimes.com/electronics-news/4164517/Practical-applications-of-digital-filters)
45