Skip to main content

Standard and ladder programming block diagrams

Short answer

Standard programming uses two delays with w(k)=x(k)-a1w(k-1)-a2w(k-2) and y(k)=b0w(k)+b1w(k-1)+b2w(k-2). Ladder programming expands G(z) as a continued fraction, yielding A0, B1, A1, B2, A2, and also uses two delays in a ladder structure.

Assume that a digital filter is given by the following difference equation: y(k)+a₁y(k-1)+a₂y(k-2)=b₁x(k)+b₂x(k)+b₂x(k-1). Draw block diagrams for the filters using (i) standard programming and (ii) ladder programming.

The difference equation as printed has a typo. It is read as the standard second-order filter

y(k)+a1y(k−1)+a2y(k−2)=b0x(k)+b1x(k−1)+b2x(k−2)y(k) + a_1y(k-1) + a_2y(k-2) = b_0x(k) + b_1x(k-1) + b_2x(k-2) G(z)=Y(z)X(z)=b0+b1z−1+b2z−21+a1z−1+a2z−2=b0z2+b1z+b2z2+a1z+a2G(z) = \frac{Y(z)}{X(z)} = \frac{b_0 + b_1z^{-1} + b_2z^{-2}}{1 + a_1z^{-1} + a_2z^{-2}} = \frac{b_0z^2 + b_1z + b_2}{z^2 + a_1z + a_2}

(i) Standard programming

Let W(z)=X(z)/(1+a1z−1+a2z−2)W(z) = X(z)/(1 + a_1z^{-1} + a_2z^{-2}):

w(k)=x(k)−a1w(k−1)−a2w(k−2)y(k)=b0w(k)+b1w(k−1)+b2w(k−2)\begin{aligned} w(k) &= x(k) - a_1w(k-1) - a_2w(k-2) \\ y(k) &= b_0w(k) + b_1w(k-1) + b_2w(k-2) \end{aligned}
x(k)-->(S)------------o--[b0]------->(S)--> y(k)
        ^             |               ^
        |          [z^-1]             |
        |             | w(k-1)        |
       (S)<[-a1]------o--[b1]------->(S)
        ^             |               ^
        |          [z^-1]             |
        |             | w(k-2)        |
        +<[-a2]-------o--[b2]---------+

Only 2 delays are used, the minimum for second order.

(ii) Ladder programming

Expand 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}}}}

Define c1=b1−a1b0c_1 = b_1 - a_1b_0, c2=b2−a2b0c_2 = b_2 - a_2b_0, d=a1c1−c2d = a_1c_1 - c_2 and e=c2−a2c12de = c_2 - \dfrac{a_2c_1^2}{d}. Then:

G(z)=b0+c1z+c2z2+a1z+a2A0=b0,B1=1c1,A1=c12d,B2=dc1e,A2=ea2\begin{aligned} G(z) &= b_0 + \frac{c_1z + c_2}{z^2 + a_1z + a_2} \\ A_0 &= b_0, \quad B_1 = \frac{1}{c_1}, \quad A_1 = \frac{c_1^2}{d}, \quad B_2 = \frac{d}{c_1e}, \quad A_2 = \frac{e}{a_2} \end{aligned}
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]<-------------+
y1(k)=1B1[x(k−1)−e1(k−1)],e1(k)=1A1[y1(k)−y2(k)]y2(k)=1B2[e1(k−1)−e2(k−1)],e2(k)=1A2y2(k)y(k)=A0x(k)+y1(k)\begin{aligned} y_1(k) &= \tfrac{1}{B_1}[x(k-1) - e_1(k-1)], & e_1(k) &= \tfrac{1}{A_1}[y_1(k) - y_2(k)] \\ y_2(k) &= \tfrac{1}{B_2}[e_1(k-1) - e_2(k-1)], & e_2(k) &= \tfrac{1}{A_2}y_2(k) \\ y(k) &= A_0x(k) + y_1(k) \end{aligned}

Example: For b0=2b_0 = 2, b1=2.2b_1 = 2.2, b2=0.2b_2 = 0.2, a1=0.4a_1 = 0.4, a2=−0.12a_2 = -0.12: c1=1.4c_1 = 1.4, c2=0.44c_2 = 0.44, d=0.12d = 0.12, e=2.4e = 2.4. This gives A0=2A_0 = 2, B1=0.7143B_1 = 0.7143, A1=16.33A_1 = 16.33, B2=0.0357B_2 = 0.0357, A2=−20A_2 = -20.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Control System chapter 4 questions →