Skip to main content

Steps in designing a constant delay filter

Short answer

A constant delay filter has maximally flat group delay. Design steps: specify delay tolerance, normalize frequency, choose order from delay tables, write normalized Bessel polynomial, denormalize by replacing s with sτ₀. Example: τ₀=0.5 ms, flat delay up to 2000 rad/s gives order 3 with T(s)=1.2×10¹¹/(s³+12000s²+6×10⁷s+1.2×10¹¹).

What is constant delay filter? What are the steps involved in designing a constant delay filter? Explain with suitable example.

Constant delay filter

A constant delay (Bessel–Thomson) filter is a low-pass filter designed so that its group delay τ(ω)=−dθ/dω\tau(\omega) = -d\theta/d\omega is maximally flat (nearly constant) over the passband. All frequency components are delayed equally, so the waveform shape is preserved (no phase distortion). Its transfer function is T(s)=K/Bn(s)T(s) = K/B_n(s), where Bn(s)B_n(s) is a Bessel polynomial: B1=s+1B_1 = s + 1, B2=s2+3s+3B_2 = s^2 + 3s + 3, B3=s3+6s2+15s+15B_3 = s^3 + 6s^2 + 15s + 15, and Bn=(2n−1)Bn−1+s2Bn−2B_n = (2n-1)B_{n-1} + s^2B_{n-2}.

Design steps

  1. Specifications: dc delay τo\tau_o, allowed delay error (e.g. within 1%) up to frequency ω1\omega_1, and any attenuation limits.
  2. Normalize: take τo\tau_o = 1 s, so the frequency axis becomes ωτo\omega\tau_o; the normalized band edge is ω1τo\omega_1\tau_o.
  3. Choose the order: from Bessel delay curves/tables, pick the lowest nn whose normalized delay stays within the tolerance up to ω1τo\omega_1\tau_o (also check the loss there).
  4. Write Tn(s)=Bn(0)/Bn(s)T_n(s) = B_n(0)/B_n(s).
  5. Denormalize: replace ss by sτos\tau_o.
  6. Realize the function with a passive ladder or active sections (Sallen–Key/MFB), then apply magnitude scaling for practical values.

Example

Design a filter with dc delay τo\tau_o = 0.5 ms whose delay is within 1% up to ω1\omega_1 = 2000 rad/s.

Normalized frequency: ω1τo=2000×0.5×10−3=1\omega_1\tau_o = 2000 \times 0.5\times10^{-3} = 1.

Normalized delay at ω\omega = 1 rad/s (computed from τ=−dθ/dω\tau = -d\theta/d\omega):

Order nnτ(1)\tau(1) (s)Error
20.9237.7% (fails)
30.9960.36% (meets)

So n=3n = 3: T(s)=15s3+6s2+15s+15T(s) = \dfrac{15}{s^3 + 6s^2 + 15s + 15}. Replacing ss by sτo=s/2000s\tau_o = s/2000:

T(s)=15(s/2000)3+6(s/2000)2+15(s/2000)+15=1.2×1011s3+12000s2+6×107s+1.2×1011\begin{aligned} T(s) &= \frac{15}{(s/2000)^3 + 6(s/2000)^2 + 15(s/2000) + 15} \\ &= \frac{1.2\times10^{11}}{s^3 + 12000s^2 + 6\times10^{7}s + 1.2\times10^{11}} \end{aligned}

The magnitude loss at 2000 rad/s is only about 0.9 dB. The function can be realized as a first-order RC section (pole at −2.322×2000=−4644-2.322 \times 2000 = -4644 rad/s) cascaded with a Sallen–Key biquad (poles at (−1.839±j1.754)×2000(-1.839 \pm j1.754)\times2000 rad/s).

✓ Answer checked by Claude Sonnet 5.5

All Filter Design chapter 2 questions →