10: digital filter structures - imperial college · pdf file10: digital filter structures 10:...

125
10: Digital Filter Structures 10: Digital Filter Structures Direct Forms Transposition State Space + Precision Issues Coefficient Sensitivity Cascaded Biquads Pole-zero Pairing/Ordering Linear Phase Hardware Implementation Allpass Filters Lattice Stage + Example A(z) D(z) Allpass Lattice Lattice Filter Lattice Example Lattice Example Numerator Summary MATLAB routines DSP and Digital Filters (2017-10122) Structures: 10 – 1 / 19

Upload: hathien

Post on 12-Feb-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

10: Digital Filter Structures

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 1 / 19

Page 2: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Direct Forms

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 2 / 19

Filter: H(z) = B(z)A(z) with input x[n] and output y[n]

Page 3: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Direct Forms

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 2 / 19

Filter: H(z) = B(z)A(z) with input x[n] and output y[n]

y[n] =∑M

k=0 b[k]x[n− k]−∑N

k=1 a[k]y[n− k]

Page 4: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Direct Forms

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 2 / 19

Filter: H(z) = B(z)A(z) with input x[n] and output y[n]

y[n] =∑M

k=0 b[k]x[n− k]−∑N

k=1 a[k]y[n− k]

Direct forms use coefficients a[k] and b[k] directly

Page 5: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Direct Forms

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 2 / 19

Filter: H(z) = B(z)A(z) with input x[n] and output y[n]

y[n] =∑M

k=0 b[k]x[n− k]−∑N

k=1 a[k]y[n− k]

Direct forms use coefficients a[k] and b[k] directly

Direct Form 1:

Page 6: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Direct Forms

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 2 / 19

Filter: H(z) = B(z)A(z) with input x[n] and output y[n]

y[n] =∑M

k=0 b[k]x[n− k]−∑N

k=1 a[k]y[n− k]

Direct forms use coefficients a[k] and b[k] directly

Direct Form 1:• Direct implementation of difference equation

Page 7: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Direct Forms

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 2 / 19

Filter: H(z) = B(z)A(z) with input x[n] and output y[n]

y[n] =∑M

k=0 b[k]x[n− k]−∑N

k=1 a[k]y[n− k]

Direct forms use coefficients a[k] and b[k] directly

Direct Form 1:• Direct implementation of difference equation• Can view as B(z) followed by 1

A(z)

Page 8: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Direct Forms

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 2 / 19

Filter: H(z) = B(z)A(z) with input x[n] and output y[n]

y[n] =∑M

k=0 b[k]x[n− k]−∑N

k=1 a[k]y[n− k]

Direct forms use coefficients a[k] and b[k] directly

Direct Form 1:• Direct implementation of difference equation• Can view as B(z) followed by 1

A(z)

Direct Form II:

Page 9: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Direct Forms

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 2 / 19

Filter: H(z) = B(z)A(z) with input x[n] and output y[n]

y[n] =∑M

k=0 b[k]x[n− k]−∑N

k=1 a[k]y[n− k]

Direct forms use coefficients a[k] and b[k] directly

Direct Form 1:• Direct implementation of difference equation• Can view as B(z) followed by 1

A(z)

Direct Form II:• Implements 1

A(z) followed by B(z)

Page 10: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Direct Forms

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 2 / 19

Filter: H(z) = B(z)A(z) with input x[n] and output y[n]

y[n] =∑M

k=0 b[k]x[n− k]−∑N

k=1 a[k]y[n− k]

Direct forms use coefficients a[k] and b[k] directly

Direct Form 1:• Direct implementation of difference equation• Can view as B(z) followed by 1

A(z)

Direct Form II:• Implements 1

A(z) followed by B(z)• Saves on delays (= storage)

Page 11: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Transposition

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 3 / 19

Can convert any block diagram into an equivalent transposed form:

Page 12: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Transposition

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 3 / 19

Can convert any block diagram into an equivalent transposed form:• Reverse direction of each interconnection

Page 13: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Transposition

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 3 / 19

Can convert any block diagram into an equivalent transposed form:• Reverse direction of each interconnection• Reverse direction of each multiplier

Page 14: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Transposition

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 3 / 19

Can convert any block diagram into an equivalent transposed form:• Reverse direction of each interconnection• Reverse direction of each multiplier• Change junctions to adders and vice-versa

Page 15: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Transposition

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 3 / 19

Can convert any block diagram into an equivalent transposed form:• Reverse direction of each interconnection• Reverse direction of each multiplier• Change junctions to adders and vice-versa• Interchange the input and output signals

Page 16: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Transposition

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 3 / 19

Can convert any block diagram into an equivalent transposed form:• Reverse direction of each interconnection• Reverse direction of each multiplier• Change junctions to adders and vice-versa• Interchange the input and output signals

Example:Direct form II → Direct Form IIt

Page 17: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Transposition

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 3 / 19

Can convert any block diagram into an equivalent transposed form:• Reverse direction of each interconnection• Reverse direction of each multiplier• Change junctions to adders and vice-versa• Interchange the input and output signals

Example:Direct form II → Direct Form IIt

Page 18: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Transposition

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 3 / 19

Can convert any block diagram into an equivalent transposed form:• Reverse direction of each interconnection• Reverse direction of each multiplier• Change junctions to adders and vice-versa• Interchange the input and output signals

Example:Direct form II → Direct Form IItWould normally be drawn with input on the left

Page 19: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Transposition

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 3 / 19

Can convert any block diagram into an equivalent transposed form:• Reverse direction of each interconnection• Reverse direction of each multiplier• Change junctions to adders and vice-versa• Interchange the input and output signals

Example:Direct form II → Direct Form IItWould normally be drawn with input on the left

Note: A valid block diagram must never have any feedback loops that don’tgo through a delay (z−1 block).

Page 20: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

State Space +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 4 / 19

v[n] is a vector of delay element outputs

Can write: v[n+ 1] = Pv[n] + qx[n]y[n] = rTv[n] + sx[n]

Page 21: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

State Space +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 4 / 19

v[n] is a vector of delay element outputs

Can write: v[n+ 1] = Pv[n] + qx[n]y[n] = rTv[n] + sx[n]

Example: Direct Form IIt

P =

(

−a[1] 1−a[2] 0

)

Page 22: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

State Space +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 4 / 19

v[n] is a vector of delay element outputs

Can write: v[n+ 1] = Pv[n] + qx[n]y[n] = rTv[n] + sx[n]

Example: Direct Form IIt

P =

(

−a[1] 1−a[2] 0

)

q =

(

b[1]− b[0]a[1]b[2]− b[0]a[2]

)

Page 23: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

State Space +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 4 / 19

v[n] is a vector of delay element outputs

Can write: v[n+ 1] = Pv[n] + qx[n]y[n] = rTv[n] + sx[n]

Example: Direct Form IIt

P =

(

−a[1] 1−a[2] 0

)

q =

(

b[1]− b[0]a[1]b[2]− b[0]a[2]

)

rT =(

1 0)

Page 24: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

State Space +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 4 / 19

v[n] is a vector of delay element outputs

Can write: v[n+ 1] = Pv[n] + qx[n]y[n] = rTv[n] + sx[n]

Example: Direct Form IIt

P =

(

−a[1] 1−a[2] 0

)

q =

(

b[1]− b[0]a[1]b[2]− b[0]a[2]

)

rT =(

1 0)

s = b[0]

Page 25: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

State Space +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 4 / 19

v[n] is a vector of delay element outputs

Can write: v[n+ 1] = Pv[n] + qx[n]y[n] = rTv[n] + sx[n]

{

P,q, rT , s}

is the state-spacerepresentation of the filter structure.

Example: Direct Form IIt

P =

(

−a[1] 1−a[2] 0

)

q =

(

b[1]− b[0]a[1]b[2]− b[0]a[2]

)

rT =(

1 0)

s = b[0]

Page 26: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

State Space +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 4 / 19

v[n] is a vector of delay element outputs

Can write: v[n+ 1] = Pv[n] + qx[n]y[n] = rTv[n] + sx[n]

{

P,q, rT , s}

is the state-spacerepresentation of the filter structure.

The transfer function is given by:

H(z) = B(z)A(z) =

det(zI−P+qrT )det(zI−P) + s− 1

Example: Direct Form IIt

P =

(

−a[1] 1−a[2] 0

)

q =

(

b[1]− b[0]a[1]b[2]− b[0]a[2]

)

rT =(

1 0)

s = b[0]

Page 27: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

State Space +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 4 / 19

v[n] is a vector of delay element outputs

Can write: v[n+ 1] = Pv[n] + qx[n]y[n] = rTv[n] + sx[n]

{

P,q, rT , s}

is the state-spacerepresentation of the filter structure.

The transfer function is given by:

H(z) = B(z)A(z) =

det(zI−P+qrT )det(zI−P) + s− 1

Example: Direct Form IIt

P =

(

−a[1] 1−a[2] 0

)

q =

(

b[1]− b[0]a[1]b[2]− b[0]a[2]

)

rT =(

1 0)

s = b[0]

From which H(z) = b[0]z2+b[1]z+b[2]z2+a[1]z+a[2]

Page 28: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

State Space +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 4 / 19

v[n] is a vector of delay element outputs

Can write: v[n+ 1] = Pv[n] + qx[n]y[n] = rTv[n] + sx[n]

{

P,q, rT , s}

is the state-spacerepresentation of the filter structure.

The transfer function is given by:

H(z) = B(z)A(z) =

det(zI−P+qrT )det(zI−P) + s− 1

The transposed form has P → PT and q ↔ r ⇒ same H(z)

Example: Direct Form IIt

P =

(

−a[1] 1−a[2] 0

)

q =

(

b[1]− b[0]a[1]b[2]− b[0]a[2]

)

rT =(

1 0)

s = b[0]

From which H(z) = b[0]z2+b[1]z+b[2]z2+a[1]z+a[2]

Page 29: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Precision Issues

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 5 / 19

If all computations were exact, it would not make any difference which ofthe equivalent structures was used.

Page 30: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Precision Issues

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 5 / 19

If all computations were exact, it would not make any difference which ofthe equivalent structures was used. However ...

• Coefficient precision

Page 31: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Precision Issues

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 5 / 19

If all computations were exact, it would not make any difference which ofthe equivalent structures was used. However ...

• Coefficient precisionCoefficients are stored to finite precision and so are not exact.

Page 32: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Precision Issues

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 5 / 19

If all computations were exact, it would not make any difference which ofthe equivalent structures was used. However ...

• Coefficient precisionCoefficients are stored to finite precision and so are not exact.The filter actually implemented is therefore incorrect.

Page 33: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Precision Issues

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 5 / 19

If all computations were exact, it would not make any difference which ofthe equivalent structures was used. However ...

• Coefficient precisionCoefficients are stored to finite precision and so are not exact.The filter actually implemented is therefore incorrect.

• Arithmetic precisionArithmetic calculations are not exact.

Page 34: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Precision Issues

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 5 / 19

If all computations were exact, it would not make any difference which ofthe equivalent structures was used. However ...

• Coefficient precisionCoefficients are stored to finite precision and so are not exact.The filter actually implemented is therefore incorrect.

• Arithmetic precisionArithmetic calculations are not exact.◦ Worst case for arithmetic errors is when calculating the

difference between two similar values:

Page 35: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Precision Issues

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 5 / 19

If all computations were exact, it would not make any difference which ofthe equivalent structures was used. However ...

• Coefficient precisionCoefficients are stored to finite precision and so are not exact.The filter actually implemented is therefore incorrect.

• Arithmetic precisionArithmetic calculations are not exact.◦ Worst case for arithmetic errors is when calculating the

difference between two similar values:1.23456789− 1.23455678 = 0.00001111: 9 s.f. → 4 s.f.

Page 36: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Precision Issues

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 5 / 19

If all computations were exact, it would not make any difference which ofthe equivalent structures was used. However ...

• Coefficient precisionCoefficients are stored to finite precision and so are not exact.The filter actually implemented is therefore incorrect.

• Arithmetic precisionArithmetic calculations are not exact.◦ Worst case for arithmetic errors is when calculating the

difference between two similar values:1.23456789− 1.23455678 = 0.00001111: 9 s.f. → 4 s.f.

Arithmetic errors introduce noise that is then filtered by the transferfunction between the point of noise creation and the output.

Page 37: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Coefficient Sensitivity

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 6 / 19

The roots of high order polynomials can be very sensitive to small changesin coefficient values.

Page 38: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Coefficient Sensitivity

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 6 / 19

The roots of high order polynomials can be very sensitive to small changesin coefficient values.

Wilkinson’s polynomial: (famous example)

f(x) =∏20

n=1 (x− n) = x20 − 210x19 + 20615x18 − . . .

has roots well separated on the real axis.

Page 39: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Coefficient Sensitivity

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 6 / 19

The roots of high order polynomials can be very sensitive to small changesin coefficient values.

Wilkinson’s polynomial: (famous example)

f(x) =∏20

n=1 (x− n) = x20 − 210x19 + 20615x18 − . . .

has roots well separated on the real axis.

0 5 10 15 20 25

-5

0

5

Page 40: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Coefficient Sensitivity

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 6 / 19

The roots of high order polynomials can be very sensitive to small changesin coefficient values.

Wilkinson’s polynomial: (famous example)

f(x) =∏20

n=1 (x− n) = x20 − 210x19 + 20615x18 − . . .

has roots well separated on the real axis.

Multiplying the coefficient of x19 by 1.000001 moves the roots a lot.

0 5 10 15 20 25

-5

0

5

Page 41: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Coefficient Sensitivity

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 6 / 19

The roots of high order polynomials can be very sensitive to small changesin coefficient values.

Wilkinson’s polynomial: (famous example)

f(x) =∏20

n=1 (x− n) = x20 − 210x19 + 20615x18 − . . .

has roots well separated on the real axis.

Multiplying the coefficient of x19 by 1.000001 moves the roots a lot.

0 5 10 15 20 25

-5

0

5

0 5 10 15 20 25

-5

0

5

Page 42: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Coefficient Sensitivity

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 6 / 19

The roots of high order polynomials can be very sensitive to small changesin coefficient values.

Wilkinson’s polynomial: (famous example)

f(x) =∏20

n=1 (x− n) = x20 − 210x19 + 20615x18 − . . .

has roots well separated on the real axis.

Multiplying the coefficient of x19 by 1.000001 moves the roots a lot.

“Speaking for myself I regard it as the most traumatic experience inmy career as a numerical analyst”, James Wilkinson 1984

0 5 10 15 20 25

-5

0

5

0 5 10 15 20 25

-5

0

5

Page 43: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Coefficient Sensitivity

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 6 / 19

The roots of high order polynomials can be very sensitive to small changesin coefficient values.

Wilkinson’s polynomial: (famous example)

f(x) =∏20

n=1 (x− n) = x20 − 210x19 + 20615x18 − . . .

has roots well separated on the real axis.

Multiplying the coefficient of x19 by 1.000001 moves the roots a lot.

“Speaking for myself I regard it as the most traumatic experience inmy career as a numerical analyst”, James Wilkinson 1984

0 5 10 15 20 25

-5

0

5

0 5 10 15 20 25

-5

0

5

Moral: Avoid using direct form for filters orders over about 10.

Page 44: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Cascaded Biquads

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 7 / 19

Avoid high order polynomials by factorizing into quadratic terms:

B(z)A(z) = g

∏(1+bk,1z

−1+bk,2z−2)

∏(1+ak,1z−1+ak,2z−2)

Page 45: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Cascaded Biquads

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 7 / 19

Avoid high order polynomials by factorizing into quadratic terms:

B(z)A(z) = g

∏(1+bk,1z

−1+bk,2z−2)

∏(1+ak,1z−1+ak,2z−2)= g

∏Kk=1

1+bk,1z−1+bk,2z

−2

1+ak,1z−1+ak,2z−2

Page 46: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Cascaded Biquads

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 7 / 19

Avoid high order polynomials by factorizing into quadratic terms:

B(z)A(z) = g

∏(1+bk,1z

−1+bk,2z−2)

∏(1+ak,1z−1+ak,2z−2)= g

∏Kk=1

1+bk,1z−1+bk,2z

−2

1+ak,1z−1+ak,2z−2

where K = max(⌈

M2

,⌈

N2

⌉)

.

Page 47: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Cascaded Biquads

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 7 / 19

Avoid high order polynomials by factorizing into quadratic terms:

B(z)A(z) = g

∏(1+bk,1z

−1+bk,2z−2)

∏(1+ak,1z−1+ak,2z−2)= g

∏Kk=1

1+bk,1z−1+bk,2z

−2

1+ak,1z−1+ak,2z−2

where K = max(⌈

M2

,⌈

N2

⌉)

.

The term1+bk,1z

−1+bk,2z−2

1+ak,1z−1+ak,2z−2 is a biquad (bi-quadratic section).

Page 48: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Cascaded Biquads

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 7 / 19

Avoid high order polynomials by factorizing into quadratic terms:

B(z)A(z) = g

∏(1+bk,1z

−1+bk,2z−2)

∏(1+ak,1z−1+ak,2z−2)= g

∏Kk=1

1+bk,1z−1+bk,2z

−2

1+ak,1z−1+ak,2z−2

where K = max(⌈

M2

,⌈

N2

⌉)

.

The term1+bk,1z

−1+bk,2z−2

1+ak,1z−1+ak,2z−2 is a biquad (bi-quadratic section).

Direct Form II

Transposed

Page 49: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Cascaded Biquads

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 7 / 19

Avoid high order polynomials by factorizing into quadratic terms:

B(z)A(z) = g

∏(1+bk,1z

−1+bk,2z−2)

∏(1+ak,1z−1+ak,2z−2)= g

∏Kk=1

1+bk,1z−1+bk,2z

−2

1+ak,1z−1+ak,2z−2

where K = max(⌈

M2

,⌈

N2

⌉)

.

The term1+bk,1z

−1+bk,2z−2

1+ak,1z−1+ak,2z−2 is a biquad (bi-quadratic section).

We need to choose:(a) which poles to pair with which zeros in each biquad

Direct Form II

Transposed

Page 50: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Cascaded Biquads

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 7 / 19

Avoid high order polynomials by factorizing into quadratic terms:

B(z)A(z) = g

∏(1+bk,1z

−1+bk,2z−2)

∏(1+ak,1z−1+ak,2z−2)= g

∏Kk=1

1+bk,1z−1+bk,2z

−2

1+ak,1z−1+ak,2z−2

where K = max(⌈

M2

,⌈

N2

⌉)

.

The term1+bk,1z

−1+bk,2z−2

1+ak,1z−1+ak,2z−2 is a biquad (bi-quadratic section).

We need to choose:(a) which poles to pair with which zeros in each biquad(b) how to order the biquads

Direct Form II

Transposed

Page 51: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Pole-zero Pairing/Ordering

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 8 / 19

Example: Elliptic lowpass filter

-1 0 1

-1

-0.5

0

0.5

1

z

0 0.5 1 1.5 2 2.5 3-40

-20

0

20

ω

Gai

n (d

B)

Page 52: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Pole-zero Pairing/Ordering

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 8 / 19

Example: Elliptic lowpass filter

2 pole pairs and 2 zero pairs

-1 0 1

-1

-0.5

0

0.5

1

z

0 0.5 1 1.5 2 2.5 3-40

-20

0

20

ω

Gai

n (d

B)

Page 53: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Pole-zero Pairing/Ordering

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 8 / 19

Example: Elliptic lowpass filter

2 pole pairs and 2 zero pairsneed 2 biquads

-1 0 1

-1

-0.5

0

0.5

1

z

0 0.5 1 1.5 2 2.5 3-40

-20

0

20

ω

Gai

n (d

B)

Page 54: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Pole-zero Pairing/Ordering

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 8 / 19

Example: Elliptic lowpass filter

2 pole pairs and 2 zero pairsneed 2 biquads

Noise introduced in one biquad is amplifiedby all the subsequent ones:

-1 0 1

-1

-0.5

0

0.5

1

z

0 0.5 1 1.5 2 2.5 3-40

-20

0

20

ω

Gai

n (d

B)

Page 55: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Pole-zero Pairing/Ordering

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 8 / 19

Example: Elliptic lowpass filter

2 pole pairs and 2 zero pairsneed 2 biquads

Noise introduced in one biquad is amplifiedby all the subsequent ones:

-1 0 1

-1

-0.5

0

0.5

1

z

• Make the peak gain of each biquad as small as possible

0 0.5 1 1.5 2 2.5 3-40

-20

0

20

ω

Gai

n (d

B)

Page 56: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Pole-zero Pairing/Ordering

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 8 / 19

Example: Elliptic lowpass filter

2 pole pairs and 2 zero pairsneed 2 biquads

Noise introduced in one biquad is amplifiedby all the subsequent ones:

-1 0 1

-1

-0.5

0

0.5

1

z

• Make the peak gain of each biquad as small as possible◦ Pair poles with nearest zeros to get lowest peak gain

0 0.5 1 1.5 2 2.5 3-40

-20

0

20 Nearest

ω

Gai

n (d

B)

Page 57: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Pole-zero Pairing/Ordering

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 8 / 19

Example: Elliptic lowpass filter

2 pole pairs and 2 zero pairsneed 2 biquads

Noise introduced in one biquad is amplifiedby all the subsequent ones:

-1 0 1

-1

-0.5

0

0.5

1

z

• Make the peak gain of each biquad as small as possible◦ Pair poles with nearest zeros to get lowest peak gain

begin with the pole nearest the unit circle

0 0.5 1 1.5 2 2.5 3-40

-20

0

20 Nearest

ω

Gai

n (d

B)

Page 58: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Pole-zero Pairing/Ordering

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 8 / 19

Example: Elliptic lowpass filter

2 pole pairs and 2 zero pairsneed 2 biquads

Noise introduced in one biquad is amplifiedby all the subsequent ones:

-1 0 1

-1

-0.5

0

0.5

1

z

• Make the peak gain of each biquad as small as possible◦ Pair poles with nearest zeros to get lowest peak gain

begin with the pole nearest the unit circle◦ Pairing with farthest zeros gives higher peak biquad gain

0 0.5 1 1.5 2 2.5 3-40

-20

0

20 Nearest

ω

Gai

n (d

B)

0 0.5 1 1.5 2 2.5 3-40

-20

0

20 Farthest

ω

Gai

n (d

B)

Page 59: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Pole-zero Pairing/Ordering

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 8 / 19

Example: Elliptic lowpass filter

2 pole pairs and 2 zero pairsneed 2 biquads

Noise introduced in one biquad is amplifiedby all the subsequent ones:

-1 0 1

-1

-0.5

0

0.5

1

z

• Make the peak gain of each biquad as small as possible◦ Pair poles with nearest zeros to get lowest peak gain

begin with the pole nearest the unit circle◦ Pairing with farthest zeros gives higher peak biquad gain

• Poles near the unit circle have the highest peaks and introduce mostnoise so place them last in the chain

0 0.5 1 1.5 2 2.5 3-40

-20

0

20 Nearest

ω

Gai

n (d

B)

0 0.5 1 1.5 2 2.5 3-40

-20

0

20 Farthest

ω

Gai

n (d

B)

Page 60: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Linear Phase

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 9 / 19

Implementation can take advantage of any symmetry in the coefficients.

Page 61: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Linear Phase

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 9 / 19

Implementation can take advantage of any symmetry in the coefficients.

Linear phase filters are always FIR and have symmetric (or, more rarely,antisymmetric) coefficients.

Page 62: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Linear Phase

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 9 / 19

Implementation can take advantage of any symmetry in the coefficients.

Linear phase filters are always FIR and have symmetric (or, more rarely,antisymmetric) coefficients.

H(z) =∑M

m=0 h[m]z−m h[M −m] = h[m]

Page 63: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Linear Phase

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 9 / 19

Implementation can take advantage of any symmetry in the coefficients.

Linear phase filters are always FIR and have symmetric (or, more rarely,antisymmetric) coefficients.

H(z) =∑M

m=0 h[m]z−m h[M −m] = h[m]

= h[

M2

]

z−M2 +

∑M2 −1m=0 h[m]

(

z−m + zm−M)

[m even]

Page 64: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Linear Phase

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 9 / 19

Implementation can take advantage of any symmetry in the coefficients.

Linear phase filters are always FIR and have symmetric (or, more rarely,antisymmetric) coefficients.

H(z) =∑M

m=0 h[m]z−m h[M −m] = h[m]

= h[

M2

]

z−M2 +

∑M2 −1m=0 h[m]

(

z−m + zm−M)

[m even]

For M even, we only need M2 + 1 multiplies instead of M + 1.

We still need M additions and M delays.

M = 6:

Page 65: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Linear Phase

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 9 / 19

Implementation can take advantage of any symmetry in the coefficients.

Linear phase filters are always FIR and have symmetric (or, more rarely,antisymmetric) coefficients.

H(z) =∑M

m=0 h[m]z−m h[M −m] = h[m]

= h[

M2

]

z−M2 +

∑M2 −1m=0 h[m]

(

z−m + zm−M)

[m even]

For M even, we only need M2 + 1 multiplies instead of M + 1.

We still need M additions and M delays.

M = 6:

For M odd (no central coefficient), we only need M+12 multiplies.

Page 66: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Hardware Implementation

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 10 / 19

Software Implementation:All that matters is the total number of multiplies and adds

Page 67: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Hardware Implementation

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 10 / 19

Software Implementation:All that matters is the total number of multiplies and adds

Hardware Implementation:Delay elements (z−1) represent storage registersThe maximum clock speed is limited by the number of sequentialoperations between registers

Page 68: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Hardware Implementation

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 10 / 19

Software Implementation:All that matters is the total number of multiplies and adds

Hardware Implementation:Delay elements (z−1) represent storage registersThe maximum clock speed is limited by the number of sequentialoperations between registers

Example: Symmetric Linear Phase Filter

Direct form: Maximum sequential delay = 4a+m

a and m are the delays of adder and multiplier respectively

Page 69: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Hardware Implementation

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 10 / 19

Software Implementation:All that matters is the total number of multiplies and adds

Hardware Implementation:Delay elements (z−1) represent storage registersThe maximum clock speed is limited by the number of sequentialoperations between registers

Example: Symmetric Linear Phase Filter

Direct form: Maximum sequential delay = 4a+m

Transpose form: Maximum sequential delay = a+m ,

a and m are the delays of adder and multiplier respectively

Page 70: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Allpass Filters

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 11 / 19

Allpass filters have mirror image numerator and denominator coefficients:

b[n] = a[N − n]

Page 71: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Allpass Filters

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 11 / 19

Allpass filters have mirror image numerator and denominator coefficients:

b[n] = a[N − n] ⇔ B(z) = z−NA(z−1)

Page 72: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Allpass Filters

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 11 / 19

Allpass filters have mirror image numerator and denominator coefficients:

b[n] = a[N − n] ⇔ B(z) = z−NA(z−1)

⇒∣

∣H(ejω)∣

∣ ≡ 1∀ω

Page 73: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Allpass Filters

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 11 / 19

Allpass filters have mirror image numerator and denominator coefficients:

b[n] = a[N − n] ⇔ B(z) = z−NA(z−1)

⇒∣

∣H(ejω)∣

∣ ≡ 1∀ω

There are several efficient structures, e.g.

Page 74: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Allpass Filters

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 11 / 19

Allpass filters have mirror image numerator and denominator coefficients:

b[n] = a[N − n] ⇔ B(z) = z−NA(z−1)

⇒∣

∣H(ejω)∣

∣ ≡ 1∀ω

There are several efficient structures, e.g.

• First Order: H(z) = a[1]+z−1

1+a[1]z−1

Page 75: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Allpass Filters

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 11 / 19

Allpass filters have mirror image numerator and denominator coefficients:

b[n] = a[N − n] ⇔ B(z) = z−NA(z−1)

⇒∣

∣H(ejω)∣

∣ ≡ 1∀ω

There are several efficient structures, e.g.

• First Order: H(z) = a[1]+z−1

1+a[1]z−1

• Second Order: H(z) = a[2]+a[1]z−1+z−2

1+a[1]z−1+a[2]z−2

Page 76: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Allpass Filters

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 11 / 19

Allpass filters have mirror image numerator and denominator coefficients:

b[n] = a[N − n] ⇔ B(z) = z−NA(z−1)

⇒∣

∣H(ejω)∣

∣ ≡ 1∀ω

There are several efficient structures, e.g.

• First Order: H(z) = a[1]+z−1

1+a[1]z−1

• Second Order: H(z) = a[2]+a[1]z−1+z−2

1+a[1]z−1+a[2]z−2

Allpass filters have a gain magnitude of 1 even with coefficient errors.

Page 77: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Stage +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 12 / 19

Suppose G is allpass: G(z) = z−NA(z−1)A(z)

Page 78: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Stage +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 12 / 19

Suppose G is allpass: G(z) = z−NA(z−1)A(z)

V (z) = X(z)− kGz−1V (z)

Page 79: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Stage +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 12 / 19

Suppose G is allpass: G(z) = z−NA(z−1)A(z)

V (z) = X(z)− kGz−1V (z)

⇒ V (z) = 11+kGz−1X(z)

Page 80: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Stage +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 12 / 19

Suppose G is allpass: G(z) = z−NA(z−1)A(z)

V (z) = X(z)− kGz−1V (z)

⇒ V (z) = 11+kGz−1X(z)

Y (z) = kV (z) +Gz−1V (z)

Page 81: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Stage +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 12 / 19

Suppose G is allpass: G(z) = z−NA(z−1)A(z)

V (z) = X(z)− kGz−1V (z)

⇒ V (z) = 11+kGz−1X(z)

Y (z) = kV (z) +Gz−1V (z) = k+z−1G1+kGz−1X(z)

Page 82: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Stage +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 12 / 19

Suppose G is allpass: G(z) = z−NA(z−1)A(z)

V (z) = X(z)− kGz−1V (z)

⇒ V (z) = 11+kGz−1X(z)

Y (z) = kV (z) +Gz−1V (z) = k+z−1G1+kGz−1X(z)

Y (z)X(z) =

kA(z)+z−N−1A(z−1)A(z)+kz−N−1A(z−1)

Page 83: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Stage +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 12 / 19

Suppose G is allpass: G(z) = z−NA(z−1)A(z)

V (z) = X(z)− kGz−1V (z)

⇒ V (z) = 11+kGz−1X(z)

Y (z) = kV (z) +Gz−1V (z) = k+z−1G1+kGz−1X(z)

Y (z)X(z) =

kA(z)+z−N−1A(z−1)A(z)+kz−N−1A(z−1) ,

z−(N+1)D(z−1)D(z)

Page 84: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Stage +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 12 / 19

Suppose G is allpass: G(z) = z−NA(z−1)A(z)

V (z) = X(z)− kGz−1V (z)

⇒ V (z) = 11+kGz−1X(z)

Y (z) = kV (z) +Gz−1V (z) = k+z−1G1+kGz−1X(z)

Y (z)X(z) =

kA(z)+z−N−1A(z−1)A(z)+kz−N−1A(z−1) ,

z−(N+1)D(z−1)D(z)

Obtaining {d[n]} from {a[n]}:

d[n] =

1 n = 0

a[n] + ka[N + 1− n] 1 ≤ n ≤ N

k n = N + 1

Page 85: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Stage +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 12 / 19

Suppose G is allpass: G(z) = z−NA(z−1)A(z)

V (z) = X(z)− kGz−1V (z)

⇒ V (z) = 11+kGz−1X(z)

Y (z) = kV (z) +Gz−1V (z) = k+z−1G1+kGz−1X(z)

Y (z)X(z) =

kA(z)+z−N−1A(z−1)A(z)+kz−N−1A(z−1) ,

z−(N+1)D(z−1)D(z)

Obtaining {d[n]} from {a[n]}:

d[n] =

1 n = 0

a[n] + ka[N + 1− n] 1 ≤ n ≤ N

k n = N + 1

Obtaining {a[n]} from {d[n]}:

k = d[N + 1] a[n] = d[n]−kd[N+1−n]1−k2

Page 86: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Stage +

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 12 / 19

Suppose G is allpass: G(z) = z−NA(z−1)A(z)

V (z) = X(z)− kGz−1V (z)

⇒ V (z) = 11+kGz−1X(z)

Y (z) = kV (z) +Gz−1V (z) = k+z−1G1+kGz−1X(z)

Y (z)X(z) =

kA(z)+z−N−1A(z−1)A(z)+kz−N−1A(z−1) ,

z−(N+1)D(z−1)D(z)

Obtaining {d[n]} from {a[n]}:

d[n] =

1 n = 0

a[n] + ka[N + 1− n] 1 ≤ n ≤ N

k n = N + 1

Obtaining {a[n]} from {d[n]}:

k = d[N + 1] a[n] = d[n]−kd[N+1−n]1−k2

If G(z) is stable then Y (z)X(z) is stable if and only if |k| < 1 (see note)

Page 87: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Example A(z) ↔ D(z)

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 13 / 19

Suppose N = 3, k = 0.5 andA(z) = 1 + 4z−1 − 6z−2 + 10z−3

Page 88: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Example A(z) ↔ D(z)

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 13 / 19

Suppose N = 3, k = 0.5 andA(z) = 1 + 4z−1 − 6z−2 + 10z−3

A(z) → D(z)z0 z−1 z−2 z−3 z−4

A(z) 1 4 −6 10z−4A(z−1) 10 −6 4 1

D(z) = A(z) + kz−4A(z−1) 1 9 −9 12 0.5

Page 89: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Example A(z) ↔ D(z)

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 13 / 19

Suppose N = 3, k = 0.5 andA(z) = 1 + 4z−1 − 6z−2 + 10z−3

A(z) → D(z)z0 z−1 z−2 z−3 z−4

A(z) 1 4 −6 10z−4A(z−1) 10 −6 4 1

D(z) = A(z) + kz−4A(z−1) 1 9 −9 12 0.5

D(z) → A(z)z0 z−1 z−2 z−3 z−4

D(z) 1 9 −9 12 0.5k = d[N + 1] 0.5z−4D(z−1) 0.5 12 −9 9 1

D(z)− kz−4D(z−1) 0.75 3 −4.5 7.5 0

A(z) = D(z)−kz−4D(z−1)1−k2 1 4 −6 10 0

Page 90: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Allpass Lattice

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 14 / 19

We can implement any allpass filter H(z) = z−MA(z−1)A(z) as a lattice filter

with M stages:

Page 91: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Allpass Lattice

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 14 / 19

We can implement any allpass filter H(z) = z−MA(z−1)A(z) as a lattice filter

with M stages:

• Initialize AM (z) = A(z)

Page 92: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Allpass Lattice

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 14 / 19

We can implement any allpass filter H(z) = z−MA(z−1)A(z) as a lattice filter

with M stages:

• Initialize AM (z) = A(z)• Repeat for m = M : −1 : 1

Page 93: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Allpass Lattice

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 14 / 19

We can implement any allpass filter H(z) = z−MA(z−1)A(z) as a lattice filter

with M stages:

• Initialize AM (z) = A(z)• Repeat for m = M : −1 : 1

◦ k[m] = am[m]

Page 94: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Allpass Lattice

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 14 / 19

We can implement any allpass filter H(z) = z−MA(z−1)A(z) as a lattice filter

with M stages:

• Initialize AM (z) = A(z)• Repeat for m = M : −1 : 1

◦ k[m] = am[m]

◦ am−1[n] =am[n]−k[m]am[m−n]

1−k2[m] for 0 ≤ n ≤ m− 1

Page 95: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Allpass Lattice

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 14 / 19

We can implement any allpass filter H(z) = z−MA(z−1)A(z) as a lattice filter

with M stages:

• Initialize AM (z) = A(z)• Repeat for m = M : −1 : 1

◦ k[m] = am[m]

◦ am−1[n] =am[n]−k[m]am[m−n]

1−k2[m] for 0 ≤ n ≤ m− 1

equivalently Am−1(z) =Am(z)−k[m]z−mAm(z−1)

1−k2[m]

Page 96: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Allpass Lattice

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 14 / 19

We can implement any allpass filter H(z) = z−MA(z−1)A(z) as a lattice filter

with M stages:

• Initialize AM (z) = A(z)• Repeat for m = M : −1 : 1

◦ k[m] = am[m]

◦ am−1[n] =am[n]−k[m]am[m−n]

1−k2[m] for 0 ≤ n ≤ m− 1

equivalently Am−1(z) =Am(z)−k[m]z−mAm(z−1)

1−k2[m]

A(z) is stable iff |k[m]| < 1 for all m (good stability test)

Page 97: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Filter

DSP and Digital Filters (2017-10122) Structures: 10 – 15 / 19

Label outputs um[n] and vm[n] and define Hm(z) = Vm(z)Um(z) =

z−mAm(z−1)Am(z)

Page 98: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Filter

DSP and Digital Filters (2017-10122) Structures: 10 – 15 / 19

Label outputs um[n] and vm[n] and define Hm(z) = Vm(z)Um(z) =

z−mAm(z−1)Am(z)

From earlier slide (slide 12):

Um−1(z)Um(z) = 1

1+k[m]z−1Hm−1(z)

Page 99: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Filter

DSP and Digital Filters (2017-10122) Structures: 10 – 15 / 19

Label outputs um[n] and vm[n] and define Hm(z) = Vm(z)Um(z) =

z−mAm(z−1)Am(z)

From earlier slide (slide 12):

Um−1(z)Um(z) = 1

1+k[m]z−1Hm−1(z)= Am−1(z)

Am−1(z)+k[m]z−mAm−1(z−1)

Page 100: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Filter

DSP and Digital Filters (2017-10122) Structures: 10 – 15 / 19

Label outputs um[n] and vm[n] and define Hm(z) = Vm(z)Um(z) =

z−mAm(z−1)Am(z)

From earlier slide (slide 12):

Um−1(z)Um(z) = 1

1+k[m]z−1Hm−1(z)= Am−1(z)

Am−1(z)+k[m]z−mAm−1(z−1) =Am−1(z)Am(z)

Page 101: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Filter

DSP and Digital Filters (2017-10122) Structures: 10 – 15 / 19

Label outputs um[n] and vm[n] and define Hm(z) = Vm(z)Um(z) =

z−mAm(z−1)Am(z)

From earlier slide (slide 12):

Um−1(z)Um(z) = 1

1+k[m]z−1Hm−1(z)= Am−1(z)

Am−1(z)+k[m]z−mAm−1(z−1) =Am−1(z)Am(z)

Hence:

Um(z)X(z) = Am(z)

A(z)

Page 102: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Filter

DSP and Digital Filters (2017-10122) Structures: 10 – 15 / 19

Label outputs um[n] and vm[n] and define Hm(z) = Vm(z)Um(z) =

z−mAm(z−1)Am(z)

From earlier slide (slide 12):

Um−1(z)Um(z) = 1

1+k[m]z−1Hm−1(z)= Am−1(z)

Am−1(z)+k[m]z−mAm−1(z−1) =Am−1(z)Am(z)

Hence:

Um(z)X(z) = Am(z)

A(z) and Vm(z)X(z) = Um(z)

X(z) × Vm(z)Um(z)

Page 103: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Filter

DSP and Digital Filters (2017-10122) Structures: 10 – 15 / 19

Label outputs um[n] and vm[n] and define Hm(z) = Vm(z)Um(z) =

z−mAm(z−1)Am(z)

From earlier slide (slide 12):

Um−1(z)Um(z) = 1

1+k[m]z−1Hm−1(z)= Am−1(z)

Am−1(z)+k[m]z−mAm−1(z−1) =Am−1(z)Am(z)

Hence:

Um(z)X(z) = Am(z)

A(z) and Vm(z)X(z) = Um(z)

X(z) × Vm(z)Um(z) =

z−mAm(z−1)A(z)

Page 104: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Filter

DSP and Digital Filters (2017-10122) Structures: 10 – 15 / 19

Label outputs um[n] and vm[n] and define Hm(z) = Vm(z)Um(z) =

z−mAm(z−1)Am(z)

From earlier slide (slide 12):

Um−1(z)Um(z) = 1

1+k[m]z−1Hm−1(z)= Am−1(z)

Am−1(z)+k[m]z−mAm−1(z−1) =Am−1(z)Am(z)

Hence:

Um(z)X(z) = Am(z)

A(z) and Vm(z)X(z) = Um(z)

X(z) × Vm(z)Um(z) =

z−mAm(z−1)A(z)

The numerator of Vm(z)X(z) is of order m so you can create any numerator of order M by

summing appropriate multiples of Vm(z):

w[n] =∑M

m=0 cmvm[n]

Page 105: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Filter

DSP and Digital Filters (2017-10122) Structures: 10 – 15 / 19

Label outputs um[n] and vm[n] and define Hm(z) = Vm(z)Um(z) =

z−mAm(z−1)Am(z)

From earlier slide (slide 12):

Um−1(z)Um(z) = 1

1+k[m]z−1Hm−1(z)= Am−1(z)

Am−1(z)+k[m]z−mAm−1(z−1) =Am−1(z)Am(z)

Hence:

Um(z)X(z) = Am(z)

A(z) and Vm(z)X(z) = Um(z)

X(z) × Vm(z)Um(z) =

z−mAm(z−1)A(z)

The numerator of Vm(z)X(z) is of order m so you can create any numerator of order M by

summing appropriate multiples of Vm(z):

w[n] =∑M

m=0 cmvm[n] ⇒ W (z) =∑M

m=0 cmz−mAm(z−1)

A(z)

Page 106: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Example

DSP and Digital Filters (2017-10122) Structures: 10 – 16 / 19

A(z) = A3(z) = 1 + 0.2z−1 − 0.23z−2 + 0.2z−3

Page 107: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Example

DSP and Digital Filters (2017-10122) Structures: 10 – 16 / 19

A(z) = A3(z) = 1 + 0.2z−1 − 0.23z−2 + 0.2z−3

• k[3] = 0.2⇒a2[ ] =[1, 0.2, −0.23]−0.2[0.2, −0.23, 0.2]

1−0.22 = [1, 0.256, −0.281]

Page 108: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Example

DSP and Digital Filters (2017-10122) Structures: 10 – 16 / 19

A(z) = A3(z) = 1 + 0.2z−1 − 0.23z−2 + 0.2z−3

• k[3] = 0.2⇒a2[ ] =[1, 0.2, −0.23]−0.2[0.2, −0.23, 0.2]

1−0.22 = [1, 0.256, −0.281]

• k[2] = −0.281⇒a1[ ] =[1, 0.256]+0.281[−0.281, 0.256]

1−0.2812 = [1, 0.357]

Page 109: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Example

DSP and Digital Filters (2017-10122) Structures: 10 – 16 / 19

A(z) = A3(z) = 1 + 0.2z−1 − 0.23z−2 + 0.2z−3

• k[3] = 0.2⇒a2[ ] =[1, 0.2, −0.23]−0.2[0.2, −0.23, 0.2]

1−0.22 = [1, 0.256, −0.281]

• k[2] = −0.281⇒a1[ ] =[1, 0.256]+0.281[−0.281, 0.256]

1−0.2812 = [1, 0.357]

• k[1] = 0.357⇒a0[ ] = 1

Page 110: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Example

DSP and Digital Filters (2017-10122) Structures: 10 – 16 / 19

A(z) = A3(z) = 1 + 0.2z−1 − 0.23z−2 + 0.2z−3

• k[3] = 0.2⇒a2[ ] =[1, 0.2, −0.23]−0.2[0.2, −0.23, 0.2]

1−0.22 = [1, 0.256, −0.281]

• k[2] = −0.281⇒a1[ ] =[1, 0.256]+0.281[−0.281, 0.256]

1−0.2812 = [1, 0.357]

• k[1] = 0.357⇒a0[ ] = 1

V0(z)X(z) = 1

1+0.2z−1−0.23z−2+0.2z−3

Page 111: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Example

DSP and Digital Filters (2017-10122) Structures: 10 – 16 / 19

A(z) = A3(z) = 1 + 0.2z−1 − 0.23z−2 + 0.2z−3

• k[3] = 0.2⇒a2[ ] =[1, 0.2, −0.23]−0.2[0.2, −0.23, 0.2]

1−0.22 = [1, 0.256, −0.281]

• k[2] = −0.281⇒a1[ ] =[1, 0.256]+0.281[−0.281, 0.256]

1−0.2812 = [1, 0.357]

• k[1] = 0.357⇒a0[ ] = 1

V0(z)X(z) = 1

1+0.2z−1−0.23z−2+0.2z−3

V1(z)X(z) = 0.357+z−1

1+0.2z−1−0.23z−2+0.2z−3

Page 112: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Example

DSP and Digital Filters (2017-10122) Structures: 10 – 16 / 19

A(z) = A3(z) = 1 + 0.2z−1 − 0.23z−2 + 0.2z−3

• k[3] = 0.2⇒a2[ ] =[1, 0.2, −0.23]−0.2[0.2, −0.23, 0.2]

1−0.22 = [1, 0.256, −0.281]

• k[2] = −0.281⇒a1[ ] =[1, 0.256]+0.281[−0.281, 0.256]

1−0.2812 = [1, 0.357]

• k[1] = 0.357⇒a0[ ] = 1

V0(z)X(z) = 1

1+0.2z−1−0.23z−2+0.2z−3

V1(z)X(z) = 0.357+z−1

1+0.2z−1−0.23z−2+0.2z−3

V2(z)X(z) = −0.281+0.256z−1+z−2

1+0.2z−1−0.23z−2+0.2z−3

Page 113: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Example

DSP and Digital Filters (2017-10122) Structures: 10 – 16 / 19

A(z) = A3(z) = 1 + 0.2z−1 − 0.23z−2 + 0.2z−3

• k[3] = 0.2⇒a2[ ] =[1, 0.2, −0.23]−0.2[0.2, −0.23, 0.2]

1−0.22 = [1, 0.256, −0.281]

• k[2] = −0.281⇒a1[ ] =[1, 0.256]+0.281[−0.281, 0.256]

1−0.2812 = [1, 0.357]

• k[1] = 0.357⇒a0[ ] = 1

V0(z)X(z) = 1

1+0.2z−1−0.23z−2+0.2z−3

V1(z)X(z) = 0.357+z−1

1+0.2z−1−0.23z−2+0.2z−3

V2(z)X(z) = −0.281+0.256z−1+z−2

1+0.2z−1−0.23z−2+0.2z−3

V3(z)X(z) = 0.2−0.23z−1+0.2z−2+z−3

1+0.2z−1−0.23z−2+0.2z−3

Page 114: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Example

DSP and Digital Filters (2017-10122) Structures: 10 – 16 / 19

A(z) = A3(z) = 1 + 0.2z−1 − 0.23z−2 + 0.2z−3

• k[3] = 0.2⇒a2[ ] =[1, 0.2, −0.23]−0.2[0.2, −0.23, 0.2]

1−0.22 = [1, 0.256, −0.281]

• k[2] = −0.281⇒a1[ ] =[1, 0.256]+0.281[−0.281, 0.256]

1−0.2812 = [1, 0.357]

• k[1] = 0.357⇒a0[ ] = 1

V0(z)X(z) = 1

1+0.2z−1−0.23z−2+0.2z−3

V1(z)X(z) = 0.357+z−1

1+0.2z−1−0.23z−2+0.2z−3

V2(z)X(z) = −0.281+0.256z−1+z−2

1+0.2z−1−0.23z−2+0.2z−3

V3(z)X(z) = 0.2−0.23z−1+0.2z−2+z−3

1+0.2z−1−0.23z−2+0.2z−3

Add together multiples of Vm(z)X(z) to create an arbitrary B(z)

1+0.2z−1−0.23z−2+0.2z−3

Page 115: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Example Numerator

DSP and Digital Filters (2017-10122) Structures: 10 – 17 / 19

Form a new output signal as w[n] =∑M

m=0 cmvm[n]

Page 116: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Example Numerator

DSP and Digital Filters (2017-10122) Structures: 10 – 17 / 19

Form a new output signal as w[n] =∑M

m=0 cmvm[n]

W (z) =∑M

m=0 cmVm(z) =B(z)

1+0.2z−1−0.23z−2+0.2z−3X(z)

Page 117: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Example Numerator

DSP and Digital Filters (2017-10122) Structures: 10 – 17 / 19

Form a new output signal as w[n] =∑M

m=0 cmvm[n]

W (z) =∑M

m=0 cmVm(z) =B(z)

1+0.2z−1−0.23z−2+0.2z−3X(z)

V0(z)X(z) = 1

1+0.2z−1−0.23z−2+0.2z−3

V1(z)X(z) = 0.357+z−1

1+0.2z−1−0.23z−2+0.2z−3

V2(z)X(z) = −0.281+0.256z−1+z−2

1+0.2z−1−0.23z−2+0.2z−3

V3(z)X(z) = 0.2−0.23z−1+0.2z−2+z−3

1+0.2z−1−0.23z−2+0.2z−3

Page 118: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Example Numerator

DSP and Digital Filters (2017-10122) Structures: 10 – 17 / 19

Form a new output signal as w[n] =∑M

m=0 cmvm[n]

W (z) =∑M

m=0 cmVm(z) =B(z)

1+0.2z−1−0.23z−2+0.2z−3X(z)

V0(z)X(z) = 1

1+0.2z−1−0.23z−2+0.2z−3

V1(z)X(z) = 0.357+z−1

1+0.2z−1−0.23z−2+0.2z−3

V2(z)X(z) = −0.281+0.256z−1+z−2

1+0.2z−1−0.23z−2+0.2z−3

V3(z)X(z) = 0.2−0.23z−1+0.2z−2+z−3

1+0.2z−1−0.23z−2+0.2z−3

We have

b[0]b[1]b[2]b[3]

=

1 0.357 −0.281 0.20 1 0.256 −0.230 0 1 0.20 0 0 1

c0c1c2c3

Page 119: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Lattice Example Numerator

DSP and Digital Filters (2017-10122) Structures: 10 – 17 / 19

Form a new output signal as w[n] =∑M

m=0 cmvm[n]

W (z) =∑M

m=0 cmVm(z) =B(z)

1+0.2z−1−0.23z−2+0.2z−3X(z)

V0(z)X(z) = 1

1+0.2z−1−0.23z−2+0.2z−3

V1(z)X(z) = 0.357+z−1

1+0.2z−1−0.23z−2+0.2z−3

V2(z)X(z) = −0.281+0.256z−1+z−2

1+0.2z−1−0.23z−2+0.2z−3

V3(z)X(z) = 0.2−0.23z−1+0.2z−2+z−3

1+0.2z−1−0.23z−2+0.2z−3

We have

b[0]b[1]b[2]b[3]

=

1 0.357 −0.281 0.20 1 0.256 −0.230 0 1 0.20 0 0 1

c0c1c2c3

Hence choose cm as

c0c1c2c3

=

1 0.357 −0.281 0.20 1 0.256 −0.230 0 1 0.20 0 0 1

−1

b[0]b[1]b[2]b[3]

Page 120: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Summary

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 18 / 19

• Filter block diagrams◦ Direct forms◦ Transposition◦ State space representation

Page 121: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Summary

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 18 / 19

• Filter block diagrams◦ Direct forms◦ Transposition◦ State space representation

• Precision issues: coefficient error, arithmetic error◦ cascaded biquads

Page 122: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Summary

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 18 / 19

• Filter block diagrams◦ Direct forms◦ Transposition◦ State space representation

• Precision issues: coefficient error, arithmetic error◦ cascaded biquads

• Allpass filters◦ first and second order sections

Page 123: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Summary

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 18 / 19

• Filter block diagrams◦ Direct forms◦ Transposition◦ State space representation

• Precision issues: coefficient error, arithmetic error◦ cascaded biquads

• Allpass filters◦ first and second order sections

• Lattice filters◦ Arbitrary allpass response◦ Arbitrary IIR response by summing intermediate outputs

Page 124: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

Summary

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 18 / 19

• Filter block diagrams◦ Direct forms◦ Transposition◦ State space representation

• Precision issues: coefficient error, arithmetic error◦ cascaded biquads

• Allpass filters◦ first and second order sections

• Lattice filters◦ Arbitrary allpass response◦ Arbitrary IIR response by summing intermediate outputs

For further details see Mitra: 8.

Page 125: 10: Digital Filter Structures - Imperial College  · PDF file10: Digital Filter Structures 10: Digital Filter Structures ... • Pole-zero Pairing/Ordering

MATLAB routines

10: Digital Filter Structures

• Direct Forms

• Transposition

• State Space +

• Precision Issues

• Coefficient Sensitivity

• Cascaded Biquads

• Pole-zero Pairing/Ordering

• Linear Phase

• Hardware Implementation

• Allpass Filters

• Lattice Stage +

• ExampleA(z) ↔ D(z)

• Allpass Lattice

• Lattice Filter

• Lattice Example

• Lattice ExampleNumerator

• Summary

• MATLAB routines

DSP and Digital Filters (2017-10122) Structures: 10 – 19 / 19

residuez b(z−1)

a(z−1) →∑

krk

1−pkz−1

tf2sos,sos2tf b(z−1)

a(z−1) ↔∏

l

b0,l+b1,lz−1+b2,lz

−2

1+a1,lz−1+a2,lz−2

zp2sos,sos2zp {zm, pk, g} ↔∏

l

b0,l+b1,lz−1+b2,lz

−2

1+a∈1,lz−1+a2,lz−2

zp2ss,ss2zp {zm, pk, g} ↔

{

x′ = Ax+Bu

y = Cx+Du

tf2ss,ss2tf b(z−1)

a(z−1) ↔

{

x′ = Ax+Bu

y = Cx+Du

poly poly(A) = det (zI−A)