Skip to main content

Bilinear Butterworth, 0.8 to 1 and 0.2 limits

Short answer

Order N=2, Ωc=0.7504 rad/s. H(z)=0.08422(1+2z⁻¹+z⁻²)/(1−1.02819z⁻¹+0.36508z⁻²).

Using bilinear transformation method, design a digital filter using Butterworth approximation which satisfies the following conditions: 0.8 ≤ |H(e^jw)| ≤ 1 for 0 ≤ w ≤ 0.2π; |H(e^jw)| ≤ 0.2 for 0.6π ≤ w ≤ π.

Step 1: specifications

Butterworth low-pass: 0.8 ≤ |H| ≤ 1 for 0 ≤ ω ≤ 0.2π, and |H| ≤ 0.2 for 0.6π ≤ ω ≤ π. T is not given; take T = 1 s (it cancels in the bilinear transformation).

Step 2: pre-warp the edges (bilinear: Ω = (2/T) tan(ω/2), T = 1 s)

  • Ωp = (2/1) tan(0.2π/2) = 0.6498 rad/s
  • Ωs = (2/1) tan(0.6π/2) = 2.7528 rad/s

Step 3: order of the Butterworth filter

N ≥ log[(1/0.2² − 1)/(1/0.8² − 1)] / (2 log(Ωs/Ωp)) = log[24.0000/0.5625] / (2 log 4.2361) = 1.3000

So N = 2.

Step 4: cut-off frequency

Using the pass-band condition (1 + (Ωp/Ωc)^(2N)) = 1/0.8²: Ωc = Ωp / (0.5625)^(1/4) = 0.7504 rad/s (This meets the pass-band exactly and exceeds the stop-band requirement.)

Step 5: analog transfer function

Poles of the normalised filter lie on the left half of the circle of radius Ωc. Pairing complex poles:

H(s) = 0.5631 / [(s² + 1.0612 s + 0.5631)]

Step 6: bilinear transformation

Replace s by (2/T)(1 − z⁻¹)/(1 + z⁻¹) = 2(1 − z⁻¹)/(1 + z⁻¹) in each factor:

  • H1(z) = 0.08422(1 + 2z⁻¹ + z⁻²) / (1 − 1.0282 z⁻¹ + 0.3651 z⁻²)

H(z) = H1(z)

Multiplied out:

        0.08422 0.16844 0.08422   (numerator coefficients, powers z⁰ … z⁻2)
H(z) = ---------------------------------------------
        1.00000 -1.02819 0.36508   (denominator coefficients)

Step 7: check

|H(e^jω)| at ωp = 0.8000 (required ≥ 0.8); at ωs = 0.0741 (required ≤ 0.2). Both conditions are satisfied.

Answer: N = 2, Ωc = 0.7504 rad/s, H(z) = 0.08422(1 + 2z⁻¹ + z⁻²)/(1 − 1.02819z⁻¹ + 0.36508z⁻²).

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Signal Analysis and Processing chapter 6 questions →