Digital Signal Processing IIR Filter Design via Bilinear Transform D. Richard Brown III D. Richard Brown III 1 / 12
Basic Procedure We assume here that we ve already decided to use an IIR filter. The basic procedure for IIR filter design via bilinear transform is: 1. Determine the CT filter class: 1.1 Butterworth 1.2 Chebychev Type I or Type II 1.3 Elliptic 1.4... 2. Transform the DT filter specifications to CT (sampling period T d is arbitrary) including prewarping the band edge frequencies 3. Design CT filter based on the magnitude squared response H c (jω) 2 Determine filter order Determine cutoff frequency 4. Determine H c (s) corresponding to a stable causal filter 5. Convert to DT filter H(z) via bilinear transform such that H(z) = H c ( 2 T d ( 1 z 1 1 + z 1 )) D. Richard Brown III 2 / 12
Bilinear Transform Idea: Given a causal stable LTI CT filter H c (s), we simply substitute s = 2 ( ) 1 z 1 T d 1 + z 1 to get H(z). This substitution is based on converting H c (s) to a differential equation, performing trapezoidal numerical integration with step size T d to get a difference equation, and then converting the difference equation to a transfer function H(z). Remarks: Direct method to go from H c (s) to H(z) that always works without going through the time-domain. This is a one-to-one mapping between points in the s-plane and z-plane. Points in the left-half (right-half) s-plane are mapped to points inside (outside) the unit circle on the z-plane. There is no aliasing even if H c (s) is not bandlimited. D. Richard Brown III 3 / 12
Bilinear Transform: Simple Example Suppose you are given a causal LTI CT system with H c (s) = 1 s a. We can compute H(z) straightforwardly with a little algebra: H(z) = H c (s) ( ) s= 2 1 z 1 T d 1+z 1 = = = 1 ( 2 1 z 1 T d 1+z 1 ) a T d (1 + z 1 ) 2(1 z 1 ) at d (1 + z 1 ) T d (1 + z 1 ) (2 at d ) (2 + at d )z 1 = β(1 + z 1 ) 1 αz 1 (bilinar transform) This is quite different than the H(z) we computed via impulse invariance: H(z) = 1 1 e at d z 1 (impulse invariance) D. Richard Brown III 4 / 12
Bilinear Transform: Frequency Response Given a causal stable LTI CT filter H c (s), we can compute H(z) with via the bilinear transform. What is the relationship between H c (jω) and H(e jω )? Recall that H c (jω) = H c (s) s=jω and H(e jω ) = H(z) z=e jω. Substituting these into the bilinear transform formula, we get jω = 2 ( ) 1 e jω T d 1 + e jω = 2 ( e jω/2 e jω/2 ) T d e jω/2 + e ( jω/2 = 2j 1 ) 2j (ejω/2 e jω/2 ) T 1 d 2 (ejω/2 + e jω/2 ) = 2j tan(ω/2) T d Hence Ω = 2 T d tan(ω/2) or ω = 2 tan 1 (ΩT d /2). This nonlinear relationship is called frequency warping. D. Richard Brown III 5 / 12
Bilinear Transform: Frequency Warping 1 0.8 0.6 0.4 0.2 ω (times π) 0 0.2 0.4 0.6 0.8 1 4 3 2 1 0 1 2 3 4 ΩT (times π) D. Richard Brown III 6 / 12
Bilinear Transform: Consequences of Frequency Warping The good news is that we don t have to worry about aliasing. The bad news is that we have to account for frequency warping when we start from a discrete-time filter specification. Ω p = 2 T d tan(ω p /2) Ω s = 2 T d tan(ω s /2) D. Richard Brown III 7 / 12
Bilinear Transform Lowpass Butterworth Filter Design Ex. We start with the desired specifications of the DT filter. Suppose ω p = 0.2π, ω s = 0.3π, 1 δ 1 = 0.89125, and δ 2 = 0.17783. Our first step is to convert the DT filter specs to CT filter specs via the pre-warping equations. Setting T d = 1, we can compute Ω p = 2 T d tan(0.2π/2) = 0.6498 Ω s = 2 T d tan(0.3π/2) = 1.0191 Assuming a Butterworth design, the squared magnitude response given by H c(jω) 2 1 = ( ) 2N (1) 1 + jω jω c We can substitute our specs directly into (1) to write ( ) 2N ( 0.6498 1 1 + Ω c 0.89125 ( ) 2N ( 1.0191 1 1 + 0.17783 Ω c ) 2 ) 2 D. Richard Brown III 8 / 12
Determine the N and Ω c We can take the previous inequalities and write them as equalities as ( ) 0.6498 2N ( ) 1 2 1 + = Ω c 0.89125 ( ) 1.0191 2N ( ) 1 2 1 + = 0.17783 Ω c We have two equations and two unknowns. Solving for N, we get N = 5.305. Note that N must be an integer, so we can choose N = 6. We now can decide whether to pick Ω c to match the passband spec (and exceed the stopband spec) or match the stopband spec (and exceed the passband spec). Since we don t need to worry about aliasing when using bilinear transforms, we often choose the latter. Plugging N = 6 into the second equality and solving for Ω c yields Ω c = 0.766. D. Richard Brown III 9 / 12
Bilinear Transform Lowpass Butterworth Filter Design Ex. The remaining steps in deriving H c (s) are identical to those we saw when looking at impulse invariant filter design. By choosing the poles of H c (s)h c ( s) in the left half plane, we have H c (s) = 0.20238 (s 2 + 0.3966s + 0.5871)(s 2 + 1.0836s + 0.5871)(s 2 + 1.4802s + 0.5871) We then substitute to get the final result s = 2 ( ) 1 z 1 T d 1 + z 1 H(z) = 0.0007378(1 + z 1 ) 6 (1 1.2686z 1 +0.7051z 2 )(1 1.0106z 1 +0.3583z 2 )(1 0.9044z 1 +0.2155z 2 ) which can be implemented in any of the usual realization structures (direct, cascade, parallel,...). D. Richard Brown III 10 / 12
Bilinear Transform Lowpass Butterworth Filter Design Ex. 10 0 CT Butterworth LPF DT Butterworth LPF via bilinear transform 10 20 magnitude response 30 40 50 60 70 80 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 normalized frequency (times π) D. Richard Brown III 11 / 12
Bilinear Transform Lowpass Butterworth Filter Design Ex. 2 0 CT Butterworth LPF DT Butterworth LPF via bilinear transform 2 4 magnitude response 6 8 10 12 14 16 18 0.14 0.16 0.18 0.2 0.22 0.24 0.26 0.28 0.3 0.32 0.34 normalized frequency (times π) D. Richard Brown III 12 / 12