Skip to main content

Ladder programming of a third-order filter

Short answer

Ladder realization expands G(z) in continued fraction: A0=1, B1=2, A1=4, B2=1, A2=2, B3=2, A3=4, giving G(z)=1+1/(2z+1/(4+1/(z+1/(2+1/(2z+1/4))))). The block diagram alternates constant gains A_i and delay branches z^-1/B_i, requiring three delays.

Realize the digital filter by ladder programming: G(z)=(128z⁻³+224z⁻²+106z⁻¹+11)/(128z⁻³+160z⁻²+34z⁻¹+1).

Assumption: the textbook form of this filter has positive powers of zz:

G(z)=128z3+224z2+106z+11128z3+160z2+34z+1G(z) = \frac{128z^3 + 224z^2 + 106z + 11}{128z^3 + 160z^2 + 34z + 1}

This gives a stable filter (poles −0.9895-0.9895, −0.2254-0.2254, −0.0350-0.0350) and integer ladder constants. If the z−kz^{-k} form is used literally, the same continued-fraction steps apply but the constants are not integers.

For a third-order filter, ladder programming expands G(z)G(z) as:

G(z)=A0+1B1z+1A1+1B2z+1A2+1B3z+1A3G(z) = A_0 + \cfrac{1}{B_1z + \cfrac{1}{A_1 + \cfrac{1}{B_2z + \cfrac{1}{A_2 + \cfrac{1}{B_3z + \cfrac{1}{A_3}}}}}}

Step 1: A0A_0

G(z)=1+64z2+72z+10128z3+160z2+34z+1G(z) = 1 + \frac{64z^2 + 72z + 10}{128z^3 + 160z^2 + 34z + 1}

So A0=1A_0 = 1.

Step 2: B1B_1

128z3+160z2+34z+164z2+72z+10=2z+16z2+14z+164z2+72z+10\frac{128z^3 + 160z^2 + 34z + 1}{64z^2 + 72z + 10} = 2z + \frac{16z^2 + 14z + 1}{64z^2 + 72z + 10}

So B1=2B_1 = 2.

Step 3: A1A_1

64z2+72z+1016z2+14z+1=4+16z+616z2+14z+1\frac{64z^2 + 72z + 10}{16z^2 + 14z + 1} = 4 + \frac{16z + 6}{16z^2 + 14z + 1}

So A1=4A_1 = 4.

Step 4: B2B_2

16z2+14z+116z+6=z+8z+116z+6\frac{16z^2 + 14z + 1}{16z + 6} = z + \frac{8z + 1}{16z + 6}

So B2=1B_2 = 1.

Step 5: A2A_2

16z+68z+1=2+48z+1\frac{16z + 6}{8z + 1} = 2 + \frac{4}{8z + 1}

So A2=2A_2 = 2.

Step 6: B3B_3 and A3A_3

8z+14=2z+14\frac{8z + 1}{4} = 2z + \frac{1}{4}

So B3=2B_3 = 2 and A3=4A_3 = 4.

G(z)=1+12z+14+1z+12+12z+14G(z) = 1 + \cfrac{1}{2z + \cfrac{1}{4 + \cfrac{1}{z + \cfrac{1}{2 + \cfrac{1}{2z + \cfrac{1}{4}}}}}}
A0A_0B1B_1A1A_1B2B_2A2A_2B3B_3A3A_3
1241224

Ladder block 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
      ^ -                         | +
      |                           v
      o<--E2--[1/A2]<----------- (S4)
      |                           ^ -
      v +                         |
     (S5)-->[z^-1/B3]-------------o Y3
      ^ -                         |
      |                           |
      +<--E3--[1/A3]<-------------+

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=1A2(Y2−Y3)Y3=z−1B3(E2−E3),E3=1A3Y3Y=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_3) \\ Y_3 &= \tfrac{z^{-1}}{B_3}(E_2 - E_3), & E_3 &= \tfrac{1}{A_3}Y_3 \\ Y &= A_0X + Y_1 \end{aligned}

With the values: 1/B1=0.51/B_1 = 0.5, 1/A1=0.251/A_1 = 0.25, 1/B2=11/B_2 = 1, 1/A2=0.51/A_2 = 0.5, 1/B3=0.51/B_3 = 0.5, 1/A3=0.251/A_3 = 0.25. Three delays are used.

Simulating these equations gives the same impulse response as G(z)G(z).

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Control System chapter 4 questions →