DSP Tutorial II - Fully Solved (Numeric) 6.
Design a Chebyshev filter by bilinear
1. Distinguish between IIR and FIR filter: transform for spec: 0.8 ≤ |H| ≤ 1 for 0 ≤ ω ≤
IIR (Infinite Impulse Response): Feedback 0.2π and |H| ≤ 0.2 for 0.6π ≤ ω ≤ π. Assume T =
present, impulse response infinite, can realize 1 (so digital freq ω is used).
analog prototypes, possible instability, Prewarped Ω_p = 0.649839, Ω_s = 2.752764
requires fewer coefficients for sharp response. Passband ripple A_p = 1.938200 dB -> ε =
FIR (Finite Impulse Response): No feedback, 7.500000e-01
impulse response finite, always stable, can Stopband attenuation required A_s =
have exact linear phase, often requires higher 13.979400 dB
order for same specs. Computed Chebyshev order (exact) n =
1.207955, so choose n = 2.
2. Bilinear transform vs Impulse Invariant After obtaining n and ε, compute analog
method: prototype poles, then apply lowpass->desired
Bilinear transform: s = (2/T)*(1 - z^{-1})/(1 + transform (here lowpass to lowpass if
z^{-1}). No aliasing but causes frequency designing directly), then bilinear transform to
warping; prewarp critical frequencies: Ωp = get H(z). Detailed pole calculation involves
(2/T) tan(ωp/2). computing roots of the Chebyshev polynomial-
Impulse invariant: h[n] = T * h_a(nT). based denominator (can be done numerically
Preserves impulse samples but causes aliasing if needed).
in frequency domain. Good when analog
impulse response shape must be preserved. 7. Frequency warping: mapping between
digital ω and analog Ω is Ω = (2/T) tan(ω/2).
3. Butterworth vs Chebyshev Type-I: Example: ω = 0.2π -> Ω = 0.649839 (as above).
Butterworth: |H(jΩ)|^2 = 1 / (1 + Use prewarp to compensate.
(Ω/Ωc)^{2n}), maximally flat in passband, 8. Ha(s) = (s + 0.1) / ( (s + 0.1)^2 + 16 ). Obtain
monotonic. Chebyshev Type I: equiripple in digital H(z) by impulse invariant with T = 1 s.
passband, steeper transition for same order; Analog poles at s = -0.1 ± j4 -> impulse term r
characterized by ε and T_n polynomial. = e^(-0.1) = 9.048374e-01, θ = 4.0
h[n] = e^(-0.1 n) cos(4 n) for T=1
4. Convert H(s)=1/(1 + 1.414 s + s^2) into a H(z) = (1 - r cos θ z^{-1}) / (1 - 2 r cos θ z^{-1}
high-pass filter with pass band edge at 100 Hz + r^2 z^{-2})
and Fs = 1 kHz using bilinear transform. Numerically: r cos θ = -5.914412e-01, r^2 =
Prototype H_lp(s) = 1 / (s^2 + 1.414 s + 1). 8.187308e-01
This is normalized (Ω_c = 1 rad/s).
Digital passband edge ω_p = 2π*(100/1000) = 9. Design a Butterworth low-pass analog filter
0.628319 rad for: passband magnitude 0.9 at ω_p = 100
Prewarped analog passband Ω_p = (2/T) rad/s; attenuation must start at ω_s = 200
tan(ω_p/2) = 649.839392 rad/s rad/s. We assume required stopband
To obtain analog high-pass from low-pass magnitude <= 0.1 (A_s = 20 dB) for
prototype (with prototype cutoff = 1): concreteness.
substitute s -> Ω_p^2 / s in H_lp(s). Passband ripple A_p = 0.915150 dB -> ε =
Perform substitution and multiply numerator 4.843221e-01
and denominator by s^2 to get H_hp(s) in Assumed stopband attenuation A_s = 20.0 dB -
polynomial form. > computed order n = 4.360640, choose n = 5
Ω_p^2 = 4.222912e+05 Cutoff frequency ω_c (approx) = 115.604075
H_hp(s) = s^2 / ( Ω_p^4 + 1.414 Ω_p^2 s + s^2 rad/s
) (after algebraic rearrangement). With n and ω_c, Butterworth analog poles are
Now apply bilinear substitution s = (2/T)*(1 - at s_k = ω_c * exp(j π (2k + n -1)/(2n)) for
z^{-1})/(1 + z^{-1}). Substitute s into H_hp(s) k=0..n-1. Compute those numerically to get
and simplify to get H(z) = B(z^{-1}) / A(z^{- transfer function.
1}).
Carrying out the algebraic substitution 10. Two IIR realization methods: Direct Form I
(expanded coefficients shown): and Direct Form II (canonical). Also cascade of
Numerator polynomial coefficients biquads for numerical stability and parallel
(descending powers of z^{-1}): 1.121542e-05, form using partial fractions.
-2.243084e-05, 1.121542e-05
Denominator polynomial coefficients 11. Determine H(z) for a Butterworth filter
(descending powers of z^{-1}): 4.966734e-01, satisfying: 0 <= ω <= π/2 : |H| between
1.000000e+00, 5.033714e-01 sqrt(0.5) and 1, and 3π/4 <= ω <= π: |H| <=
Thus H(z) = (b0 + b1 z^{-1} + b2 z^{-2} + b3 0.2. Use impulse invariant with T = 1s
z^{-3} + b4 z^{-4}) / (a0 + a1 z^{-1} + a2 z^{- (assumption).
2} + a3 z^{-3} + a4 z^{-4}). Passband lower bound = sqrt(0.5) -> A_p =
3.010300 dB; Stopband A_s = 13.979400 dB
5. Convert Ha(s) = (s + 0.1) / ( (s + 0.1)^2 + 9 ) Prewarped Ω_p = 2000.000000, Ω_s =
into a digital IIR by impulse invariant method. 4828.427125
Assume T = 1 s (no sampling rate given). Computed order n = 1.802898, choose n = 2.
Analog poles: p1 = (-0.1+3j), p2 = (-0.1-3j) After computing n and ω_c (from passband
Analog impulse response (inverse Laplace): eqn), design analog Butterworth, map poles
h_a(t) = e^{-0.1 t} cos(3 t) * u(t). via impulse invariant z_k = e^{p_k T}, and form
Impulse invariant: h[n] = T * h_a(nT) = T * e^{- H(z) as product of second-order sections.
0.1 nT} cos(3 nT) for n >= 0.
For T=1: h[n] = e^{-0.1 n} cos(3 n). 12. (Repeat) Two IIR realizations: DF-I and
With r = e^(-0.1) = 9.048374e-01, θ = 3, the DF-II; cascade of biquads recommended for
digital H(z) (T=1) is: implementation.
H(z) = (1 + (-8.957823e-01) z^(-1)) / (1 + (-
1.791565e+00) z^(-1) + (8.187308e-01) z^(- 13. Evaluate Chebyshev polynomial C3(x)
2)) (first kind T3):
T_3(x) = 4 x^3 - 3 x