ECE 8443 – PatternContinuous Recognition EE 3512 – Signals: and Discrete LECTURE 36: DESIGN OF IIR FILTERS • Objectives: Filters and Difference Equations Signal Flow Graphs FIR and IIR Filters Bilinear Transform Digital Conversion of Filters Design of Analog Filters • Resources: ISIP: Filter Transformations Wiki: Digital Filter Design JOS: Digital Filters Wiki: Bilinear Transform CNX: IIR Design URL: Converting Difference Equations To Signal Flow Graphs • Recall our expression for a linear, constant-coefficient difference equation: y[n] a1 y[n 1] a2 y[n 2] ... aN y[n N ] b0 x[n] b1 x[n 1] ... bM x[n M ] • This equation can be written succinctly using summations: N M k 1 l 0 y[n] ak y[n k ] bl x[n l ] • We can draw a signal flow graph implementation of this equation: b0 x[n] z z 1 1 b1 b2 y[n] + + + + 1 + 2 + a 1 z a 1 z ... ... • This is known as the Direct Form I implementation of the above difference equation. Can we implement this more efficiently? EE 3512: Lecture 36, Slide 1 Direct Form II: Sharing Delay Elements (Memory) • One of the more elementary aspects of the field of digital signal processing is to develop more efficient implementations of digital filters, as well as improve their ability to produce accurate results with less numerical precision. • A more efficient implementation of our filter is a Direct Form II: x[n] b0 + + + a 1 z 1 a 2 z 1 b1 b2 + y[n] + + ... • This filter has the same transfer function, but shares the delay element between the feedforward (moving average/finite impulse response) and feedback (autoregressive/infinite impulse response) portions of the filter. • Analog differential equations can be represented by similar signal flow graphs, but their implementation involves physical components (e.g., RLCs, op amps). EE 3512: Lecture 36, Slide 2 More About Types of Filters • Consider a filter with only feedforward components: • The transfer function is: M y[n] bl x[n l ] l 1 Y ( z) M H ( z) bl z l X ( z ) l 0 • Since the impulse response of this filter, h[n], has a finite number of nonzero terms, this filter is referred to as a finite impulse response (FIR) filter. Observe that this filter only has zeroes. • Next, consider a filter with only feedback components: • The transfer function is: N y[n] ak y[n k ] b0 x[n] k 1 H ( z) b0 N 1 ak z k k 1 • This is an all-pole filter with an infinite impulse response (IIR). Why? EE 3512: Lecture 36, Slide 3 Design of Digital Filters Using Analog Prototypes • Analog filter design theory was developed in the mid-1900’s. • As digital signal processing developed, it seemed reasonable to leverage existing knowledge in analog filter design. • Our strategy will be to design the filter in the analog domain, and then transform the filter to the digital domain. • We can derive this transformation by recalling the relationship between the Laplace transform and the z-transform: 1 z e sT s ln( z ) T • We can approximate the logarithm using a Taylor series: 1 2 z 1 2 1 z 1 s ln( z ) 1 T T z 1 T 1 z • This transformation is known as the bilinear transform. It maps the left-half s-plane to the interior of the unit circle in the z-plane. • Unfortunately, it also “warps” the frequency axis, so the analog filter design must be prewarped so that it lands at the proper frequency in the z-plane. Let s = + j and z = re j: 2 1 re j j T 1 re j EE 3512: Lecture 36, Slide 4 Frequency Warping In the Bilinear Transform • We can solve for and by equating real and imaginary parts: 2 r 2 1 2 T 1 r 2r cos 2 2r sin T 1 r 2 2r cos • To understand the implications on frequency response, set r = 1 and = 0 : 2 sin 2 tan T 1 cos T 2 T 2 2 tan1 • This suggests a design strategy where: (1) Establish requirements (e.g., cutoff frequency of c = 2(1 kHz)/(8 kHz)). 2 (2) “Prewarp” by computing the equivalent analog frequency: c tan c . T 2 (3) Design an analog filter, generating H(s). (4) Derive: H ( z ) H ( s) s 2 z 1 T z 1 EE 3512: Lecture 36, Slide 5 Design Example: Butterworth Lowpass Filter • Recall our expression for a second-order Butterworth filter: c2 H ( s) 2 s 2c s c2 (1) Requirements: Let our sample frequency be 5 Hz, and our desired lowpass cutoff frequency be 0.318 Hz (2 rd/sec). Our desired digital cutoff frequency is 2 rd/sec * (1/5 Hz) = 0.4 rd. 2 2 0.4 (2) Prewarp: c tan c tan 2.027 rd / sec T 2 1 / 5 2 f c c / 2 0.323 Hz (shiftedfrom 0.318 Hz) 2 0.16 c (3) Derive: H (s) 2 s 2 2c s c2 s 0.567s 0.16 0.0309(1 2 z 1 z 2 ) H ( z ) H ( s) s 2 z 1 1 1.444z 1 0.5682z 2 T z 1 (5) Compare frequency responses: (4) Derive: H ( z ) no warping H ( z ) prewarped 0.0302(1 2 z 1 z 2 ) 1 1.4514z 1 0.5724z 2 0.0309(1 2 z 1 z 2 ) 1 1.444z 1 0.5682z 2 EE 3512: Lecture 36, Slide 6 Design of Analog Filters in MATLAB • Butterworth: Let our sample frequency be 5 Hz, and our desired lowpass cutoff frequency be 0.318 Hz (2 rd/sec). Our desired digital cutoff frequency is 2 rd/sec * (1/5 Hz) = 0.4 rd. [z, p, k] = buttap(2); % creates a 2-pole filter [num, den] = zp2tf(z, p, k); wc = 2; % desired cutoff frequency [num, den] = lp2lp(num, den, wc); T = 0.2; [numd, dend] = bilinear(num, den, 1/T); numd = [0.0302 0.0605 0.5724] dend = [1 -1.4514 0.5724] • Note that a direct digital design can be done using the “butter” command. • Chebyshev Type 1 Highpass Filter: Let our sample frequency be 5 Hz, and our desired highpass cutoff frequency be 0.318 Hz (2 rd/sec). Our passband ripple is 3 dB. N = 2; % number of poles; Rp = 3; % passband ripple; T = 0.2; % sampling period; wc = 2; % analog cutoff frequency; Wc = wc * T / pi; % normalized cutoff frequency [numd, dend] = cheby1(N,Rp,Wc,’high’); numd = [0.5697 -1.1394 0.5697] dend = [1 -1.516 0.7028] EE 3512: Lecture 36, Slide 7 • Note this filter was designed directly in the digital domain. Summary • Introduced realizations of difference equations using signal flow graphs. • Introduced the concept of FIR and IIR filters. • Discussed a method for transforming an analog filter to a digital filter that preserves the stability of the filter. • Described a method to prewarp the frequency axis so that the analog filter results in a digital filter at the correct frequency. • Demonstrated this design process using Butterworth and Chebyshev prototype analog filters. EE 3512: Lecture 36, Slide 8