Skip to main content

Direct form and lattice of FIR, 2+1.8z⁻¹…

Short answer

Direct form: y[n]=2x[n]+1.8x[n-1]-1.6x[n-2]+x[n-3]. Lattice: normalize to A(z)=1+0.9z^{-1}-0.8z^{-2}+0.5z^{-3}; reflection coefficients K1=-2.6, K2=-1.6667, K3=0.5. Cascade three stages, then multiply output by 2.

The system function of a filter is H(z) = 2 + 1.8z⁻¹ − 1.6z⁻² + z⁻³. Draw the Direct Form and Lattice Structure implementation of the above filter.

Direct form

H(z) = 2 + 1.8z⁻¹ − 1.6z⁻² + z⁻³, i.e. y[n] = 2x[n] + 1.8x[n−1] − 1.6x[n−2] + x[n−3].

x[n] ─┬──►[z⁻¹]──┬──►[z⁻¹]──┬──►[z⁻¹]──┐
      │          │          │          │
     ×b0        ×b1        ×b2        ×b3
      │          │          │          │
      └──►(+)◄───┘          │          │
           └───►(+)◄────────┘          │
                    └────►(+)◄─────────┘
                            │
                            ▼
                          y[n]

with b0 = 2, b1 = 1.8, b2 = -1.6, b3 = 1. Output: y[n] = b0x[n] + b1x[n−1] + b2x[n−2] + b3x[n−3]; 3 delays, 4 multipliers, 3 adders.

Lattice structure

The lattice needs a monic polynomial, so normalise by b₀ = 2: H(z) = 2 · A₃(z), with A₃(z) = 1 + 0.9z⁻¹ − 0.8z⁻² + 0.5z⁻³.

Method

The FIR lattice of order M uses the stage equations

f0(n) = g0(n) = x(n)
fm(n) = f(m−1)(n) + Km · g(m−1)(n−1)
gm(n) = Km · f(m−1)(n) + g(m−1)(n−1)     m = 1 … M
y(n)  = fM(n)

The reflection coefficient of the last stage is Km = am(m) (the last coefficient of the polynomial Am(z)). The lower-order polynomials come from the step-down recursion

a(m−1)(i) = [ am(i) − Km · am(m−i) ] / (1 − Km²),   i = 1 … m−1

Computation

A3(z) = 1 + 0.9z⁻¹ − 0.8z⁻² + 0.5z⁻³

  • A3: coefficients {1, 0.9, -0.8, 0.5}, so K3 = a3(3) = 0.5
  • A2: coefficients {1, 1.7333, -1.6667}, so K2 = a2(2) = -1.6667
  • A1: coefficients {1, -2.6}, so K1 = a1(1) = -2.6
StageKmSize
1-2.6magnitude above 1
2-1.6667magnitude above 1
30.5magnitude below 1

Lattice coefficients: K1 = -2.6, K2 = -1.6667, K3 = 0.5

Structure

One lattice stage (repeated for m = 1 … 3 with K1 … K3):

f(m-1)[n] ──────●────────────────────(+)──► f(m)[n]
                │         ┌───────────▲
                │ Km      │ Km
                └─────────┼───────────┐
                          │           │
                          │           ▼
g(m-1)[n] ─[z⁻¹] ─────────●──────────(+)──► g(m)[n]

Cascade (f and g pass together from stage to stage):

        +------+     +------+     +------+
x[n]-+->|      |-f1->|      |-f2->|      |-f3-> ×2 -> y[n]
     |  |  K1  |     |  K2  |     |  K3  |
     +->|      |-g1->|      |-g2->|      |
        +------+     +------+     +------+

(The upper path carries f and the lower path carries g; f0 = g0 = x[n].)

The filter is 2 times the monic polynomial above, so the lattice output is multiplied by 2: y[n] = 2 · f3[n].

Check: the lattice impulse response is {1, 0.9, −0.8, 0.5}; multiplied by 2 it gives {2, 1.8, −1.6, 1}. ✓ (|K1| and |K2| > 1, so some zeros lie outside the unit circle.)

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Signal Analysis and Processing chapter 4 questions →