Skip to main content

Why decompose higher-order filters; ladder realization

Short answer

High-order transfer functions are decomposed to reduce sensitivity to coefficient quantization errors. Ladder expansion gives: A0=2, B1=0.7143, A1=16.333, B2=0.0357, A2=-20. The ladder uses two delay elements in a continued-fraction topology.

Higher order pulse transfer functions are generally realized by decomposing it into several lower order pulse transfer function why? Consider a digital filter shown below. Realize this filter in ladder scheme. G(z)=(2+2.2z⁻¹+0.2z⁻²)/(1+0.4z⁻¹-0.12z⁻²)

Why higher-order pulse transfer functions are decomposed

A high-order G(z)G(z) realized directly (direct or standard programming) is very sensitive to coefficient errors. The controller coefficients are stored with finite word length. A small rounding error in one coefficient of a high-order denominator can move all the poles a lot, even outside the unit circle, and make the filter unstable. So the transfer function is split into first- and second-order blocks (series, parallel or ladder programming):

  • A coefficient error then affects only the one or two poles of that block.
  • The structure is less sensitive to quantization, and the computations are better conditioned.
  • Low-order blocks are easier to program, test and scale.

Ladder realization

Write the filter in positive powers of zz:

G(z)=2+2.2z−1+0.2z−21+0.4z−1−0.12z−2=2z2+2.2z+0.2z2+0.4z−0.12G(z) = \frac{2 + 2.2z^{-1} + 0.2z^{-2}}{1 + 0.4z^{-1} - 0.12z^{-2}} = \frac{2z^2 + 2.2z + 0.2}{z^2 + 0.4z - 0.12}

In ladder programming, G(z)G(z) is expanded as a continued fraction:

G(z)=A0+1B1z+1A1+1B2z+1A2G(z) = A_0 + \cfrac{1}{B_1z + \cfrac{1}{A_1 + \cfrac{1}{B_2z + \cfrac{1}{A_2}}}}

Each 1/(Biz)1/(B_iz) is realized by a delay z−1/Biz^{-1}/B_i, and each AiA_i by a constant.

Step 1: A0A_0.

G(z)=2+1.4z+0.44z2+0.4z−0.12G(z) = 2 + \frac{1.4z + 0.44}{z^2 + 0.4z - 0.12}

So A0=2A_0 = 2.

Step 2: B1B_1.

z2+0.4z−0.121.4z+0.44=0.7143z+0.0857z−0.121.4z+0.44\frac{z^2 + 0.4z - 0.12}{1.4z + 0.44} = 0.7143z + \frac{0.0857z - 0.12}{1.4z + 0.44}

So B1=1/1.4=0.7143B_1 = 1/1.4 = 0.7143.

Step 3: A1A_1.

1.4z+0.440.0857z−0.12=16.333+2.40.0857z−0.12\frac{1.4z + 0.44}{0.0857z - 0.12} = 16.333 + \frac{2.4}{0.0857z - 0.12}

So A1=49/3=16.333A_1 = 49/3 = 16.333.

Step 4: B2B_2 and A2A_2.

0.0857z−0.122.4=0.0357z−0.05\frac{0.0857z - 0.12}{2.4} = 0.0357z - 0.05

So B2=1/28=0.0357B_2 = 1/28 = 0.0357 and A2=−1/0.05=−20A_2 = -1/0.05 = -20.

G(z)=2+10.7143z+116.333+10.0357z−0.05G(z) = 2 + \cfrac{1}{0.7143z + \cfrac{1}{16.333 + \cfrac{1}{0.0357z - 0.05}}}
A0A_0B1B_1A1A_1B2B_2A2A_2
20.714316.3330.0357−20

Ladder diagram:

X(z)--o-----------------[A0]--------------->(S)--> Y(z)
      |                                      ^
      v +                                    | Y1
     (S1)-->[z^-1/B1]-------------o----------+
      ^ -                         | +
      |                           v
      o<--E1--[1/A1]<----------- (S2)
      |                           ^ -
      v +                         |
     (S3)-->[z^-1/B2]-------------o Y2
      ^ -                         |
      |                           |
      +<--E2--[1/A2]<-------------+

Signal equations of the ladder (oo = take-off point, (S) = summer):

Y1=z−1B1(X−E1),E1=1A1(Y1−Y2)Y2=z−1B2(E1−E2),E2=1A2Y2Y=A0X+Y1\begin{aligned} Y_1 &= \tfrac{z^{-1}}{B_1}(X - E_1), & E_1 &= \tfrac{1}{A_1}(Y_1 - Y_2) \\ Y_2 &= \tfrac{z^{-1}}{B_2}(E_1 - E_2), & E_2 &= \tfrac{1}{A_2}Y_2 \\ Y &= A_0X + Y_1 \end{aligned}

With the values: 1/B1=1.41/B_1 = 1.4, 1/A1=0.061221/A_1 = 0.06122, 1/B2=281/B_2 = 28, 1/A2=−0.051/A_2 = -0.05.

The ladder needs only two delays. Because of its continued-fraction structure, it has low sensitivity to coefficient rounding.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Control System chapter 4 questions →