Sie sind auf Seite 1von 125

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)
10: Digital Filter Structures
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

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


Direct Forms

10: Digital Filter Structures B(z)


• Direct Forms Filter: H(z) = A(z) with input x[n] and output y[n]
• 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 – 2 / 19


Direct Forms

10: Digital Filter Structures B(z)


• Direct Forms Filter: H(z) = A(z) with input x[n] and output y[n]
• Transposition
• State Space + PM PN
• Precision Issues y[n] = k=0 b[k]x[n − k] − k=1 a[k]y[n − k]
• 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 – 2 / 19


Direct Forms

10: Digital Filter Structures B(z)


• Direct Forms Filter: H(z) = A(z) with input x[n] and output y[n]
• Transposition
• State Space + PM PN
• Precision Issues y[n] = k=0 b[k]x[n − k] − k=1 a[k]y[n − k]
• Coefficient Sensitivity
• Cascaded Biquads
Direct forms use coefficients a[k] and b[k] directly
• 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 – 2 / 19


Direct Forms

10: Digital Filter Structures B(z)


• Direct Forms Filter: H(z) = A(z) with input x[n] and output y[n]
• Transposition
• State Space + PM PN
• Precision Issues y[n] = k=0 b[k]x[n − k] − k=1 a[k]y[n − k]
• Coefficient Sensitivity
• Cascaded Biquads
Direct forms use coefficients a[k] and b[k] directly
• Pole-zero Pairing/Ordering
• Linear Phase
• Hardware Implementation Direct Form 1:
• 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 – 2 / 19


Direct Forms

10: Digital Filter Structures B(z)


• Direct Forms Filter: H(z) = A(z) with input x[n] and output y[n]
• Transposition
• State Space + PM PN
• Precision Issues y[n] = k=0 b[k]x[n − k] − k=1 a[k]y[n − k]
• Coefficient Sensitivity
• Cascaded Biquads
Direct forms use coefficients a[k] and b[k] directly
• Pole-zero Pairing/Ordering
• Linear Phase
• Hardware Implementation Direct Form 1:
• Allpass Filters
• Lattice Stage +
• Direct implementation of difference equation
• 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 – 2 / 19


Direct Forms

10: Digital Filter Structures B(z)


• Direct Forms Filter: H(z) = A(z) with input x[n] and output y[n]
• Transposition
• State Space + PM PN
• Precision Issues y[n] = k=0 b[k]x[n − k] − k=1 a[k]y[n − k]
• Coefficient Sensitivity
• Cascaded Biquads
Direct forms use coefficients a[k] and b[k] directly
• Pole-zero Pairing/Ordering
• Linear Phase
• Hardware Implementation Direct Form 1:
• Allpass Filters
• Lattice Stage +
• Direct implementation of difference equation
1
• Example
A(z) ↔ D(z)
• Can view as B(z) followed by A(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

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


Direct Forms

10: Digital Filter Structures B(z)


• Direct Forms Filter: H(z) = A(z) with input x[n] and output y[n]
• Transposition
• State Space + PM PN
• Precision Issues y[n] = k=0 b[k]x[n − k] − k=1 a[k]y[n − k]
• Coefficient Sensitivity
• Cascaded Biquads
Direct forms use coefficients a[k] and b[k] directly
• Pole-zero Pairing/Ordering
• Linear Phase
• Hardware Implementation Direct Form 1:
• Allpass Filters
• Lattice Stage +
• Direct implementation of difference equation
1
• Example
A(z) ↔ D(z)
• Can view as B(z) followed by A(z)
• Allpass Lattice
• Lattice Filter Direct Form II:
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

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


Direct Forms

10: Digital Filter Structures B(z)


• Direct Forms Filter: H(z) = A(z) with input x[n] and output y[n]
• Transposition
• State Space + PM PN
• Precision Issues y[n] = k=0 b[k]x[n − k] − k=1 a[k]y[n − k]
• Coefficient Sensitivity
• Cascaded Biquads
Direct forms use coefficients a[k] and b[k] directly
• Pole-zero Pairing/Ordering
• Linear Phase
• Hardware Implementation Direct Form 1:
• Allpass Filters
• Lattice Stage +
• Direct implementation of difference equation
1
• Example
A(z) ↔ D(z)
• Can view as B(z) followed by A(z)
• Allpass Lattice
• Lattice Filter Direct Form II:
1
• Lattice Example
• Lattice Example
• Implements A(z) followed by B(z)
Numerator
• Summary
• MATLAB routines

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


Direct Forms

10: Digital Filter Structures B(z)


• Direct Forms Filter: H(z) = A(z) with input x[n] and output y[n]
• Transposition
• State Space + PM PN
• Precision Issues y[n] = k=0 b[k]x[n − k] − k=1 a[k]y[n − k]
• Coefficient Sensitivity
• Cascaded Biquads
Direct forms use coefficients a[k] and b[k] directly
• Pole-zero Pairing/Ordering
• Linear Phase
• Hardware Implementation Direct Form 1:
• Allpass Filters
• Lattice Stage +
• Direct implementation of difference equation
1
• Example
A(z) ↔ D(z)
• Can view as B(z) followed by A(z)
• Allpass Lattice
• Lattice Filter Direct Form II:
1
• Lattice Example
• Lattice Example
• Implements A(z) followed by B(z)
Numerator
• Summary
• Saves on delays (= storage)
• MATLAB routines

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


Transposition

10: Digital Filter Structures


• Direct Forms
Can convert any block diagram into an equivalent transposed form:
• 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 – 3 / 19


Transposition

10: Digital Filter Structures


• Direct Forms
Can convert any block diagram into an equivalent transposed form:
• Transposition • Reverse direction of each interconnection
• 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 – 3 / 19


Transposition

10: Digital Filter Structures


• Direct Forms
Can convert any block diagram into an equivalent transposed form:
• Transposition • Reverse direction of each interconnection
• State Space +
• Precision Issues • Reverse direction of each multiplier
• 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 – 3 / 19


Transposition

10: Digital Filter Structures


• Direct Forms
Can convert any block diagram into an equivalent transposed form:
• Transposition • Reverse direction of each interconnection
• State Space +
• Precision Issues • Reverse direction of each multiplier
• Coefficient Sensitivity
• Cascaded Biquads
• Change junctions to adders and vice-versa
• 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 – 3 / 19


Transposition

10: Digital Filter Structures


• Direct Forms
Can convert any block diagram into an equivalent transposed form:
• Transposition • Reverse direction of each interconnection
• State Space +
• Precision Issues • Reverse direction of each multiplier
• Coefficient Sensitivity
• Cascaded Biquads
• Change junctions to adders and vice-versa
• Pole-zero Pairing/Ordering • Interchange the input and output signals
• 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 – 3 / 19


Transposition

10: Digital Filter Structures


• Direct Forms
Can convert any block diagram into an equivalent transposed form:
• Transposition • Reverse direction of each interconnection
• State Space +
• Precision Issues • Reverse direction of each multiplier
• Coefficient Sensitivity
• Cascaded Biquads
• Change junctions to adders and vice-versa
• Pole-zero Pairing/Ordering • Interchange the input and output signals
• Linear Phase
• Hardware Implementation
Example:
• Allpass Filters
• Lattice Stage + Direct form II → Direct Form IIt
• 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 – 3 / 19


Transposition

10: Digital Filter Structures


• Direct Forms
Can convert any block diagram into an equivalent transposed form:
• Transposition • Reverse direction of each interconnection
• State Space +
• Precision Issues • Reverse direction of each multiplier
• Coefficient Sensitivity
• Cascaded Biquads
• Change junctions to adders and vice-versa
• Pole-zero Pairing/Ordering • Interchange the input and output signals
• Linear Phase
• Hardware Implementation
Example:
• Allpass Filters
• Lattice Stage + Direct form II → Direct Form IIt
• 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 – 3 / 19


Transposition

10: Digital Filter Structures


• Direct Forms
Can convert any block diagram into an equivalent transposed form:
• Transposition • Reverse direction of each interconnection
• State Space +
• Precision Issues • Reverse direction of each multiplier
• Coefficient Sensitivity
• Cascaded Biquads
• Change junctions to adders and vice-versa
• Pole-zero Pairing/Ordering • Interchange the input and output signals
• Linear Phase
• Hardware Implementation
Example:
• Allpass Filters
• Lattice Stage + Direct form II → Direct Form IIt
• Example
A(z) ↔ D(z) Would normally be drawn with input on the left
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

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


Transposition

10: Digital Filter Structures


• Direct Forms
Can convert any block diagram into an equivalent transposed form:
• Transposition • Reverse direction of each interconnection
• State Space +
• Precision Issues • Reverse direction of each multiplier
• Coefficient Sensitivity
• Cascaded Biquads
• Change junctions to adders and vice-versa
• Pole-zero Pairing/Ordering • Interchange the input and output signals
• Linear Phase
• Hardware Implementation
Example:
• Allpass Filters
• Lattice Stage + Direct form II → Direct Form IIt
• Example
A(z) ↔ D(z) Would normally be drawn with input on the left
• Allpass Lattice
• Lattice Filter
• Lattice Example
Note: A valid block diagram must never have any feedback loops that don’t
• Lattice Example go through a delay (z −1 block).
Numerator
• Summary
• MATLAB routines

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


State Space +

10: Digital Filter Structures


• Direct Forms
v[n] is a vector of delay element outputs
• Transposition
• State Space + Can write: v[n + 1] = Pv[n] + qx[n]
• Precision Issues
• Coefficient Sensitivity y[n] = rT v[n] + sx[n]
• 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 – 4 / 19


State Space +

10: Digital Filter Structures


• Direct Forms
v[n] is a vector of delay element outputs
• Transposition
• State Space + Can write: v[n + 1] = Pv[n] + qx[n]
• Precision Issues
• Coefficient Sensitivity y[n] = rT v[n] + sx[n]
• 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 Example: Direct Form IIt
 
−a[1] 1
P=
−a[2] 0

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


State Space +

10: Digital Filter Structures


• Direct Forms
v[n] is a vector of delay element outputs
• Transposition
• State Space + Can write: v[n + 1] = Pv[n] + qx[n]
• Precision Issues
• Coefficient Sensitivity y[n] = rT v[n] + sx[n]
• 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 Example: Direct Form IIt
   
−a[1] 1 b[1] − b[0]a[1]
P= q=
−a[2] 0 b[2] − b[0]a[2]

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


State Space +

10: Digital Filter Structures


• Direct Forms
v[n] is a vector of delay element outputs
• Transposition
• State Space + Can write: v[n + 1] = Pv[n] + qx[n]
• Precision Issues
• Coefficient Sensitivity y[n] = rT v[n] + sx[n]
• 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 Example: Direct Form IIt
   
−a[1] 1 b[1] − b[0]a[1]
P= q=
−a[2] 0 b[2] − b[0]a[2]
rT =

1 0

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


State Space +

10: Digital Filter Structures


• Direct Forms
v[n] is a vector of delay element outputs
• Transposition
• State Space + Can write: v[n + 1] = Pv[n] + qx[n]
• Precision Issues
• Coefficient Sensitivity y[n] = rT v[n] + sx[n]
• 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 Example: Direct Form IIt
   
−a[1] 1 b[1] − b[0]a[1]
P= q=
−a[2] 0 b[2] − b[0]a[2]
rT =

1 0 s = b[0]

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


State Space +

10: Digital Filter Structures


• Direct Forms
v[n] is a vector of delay element outputs
• Transposition
• State Space + Can write: v[n + 1] = Pv[n] + qx[n]
• Precision Issues
• Coefficient Sensitivity y[n] = rT v[n] + sx[n]
• Cascaded Biquads
T

• Pole-zero Pairing/Ordering P, q, r , s is the state-space
• Linear Phase
• Hardware Implementation representation of the filter structure.
• Allpass Filters
• Lattice Stage +
• Example
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines Example: Direct Form IIt
   
−a[1] 1 b[1] − b[0]a[1]
P= q=
−a[2] 0 b[2] − b[0]a[2]
rT =

1 0 s = b[0]

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


State Space +

10: Digital Filter Structures


• Direct Forms
v[n] is a vector of delay element outputs
• Transposition
• State Space + Can write: v[n + 1] = Pv[n] + qx[n]
• Precision Issues
• Coefficient Sensitivity y[n] = rT v[n] + sx[n]
• Cascaded Biquads
T

• Pole-zero Pairing/Ordering P, q, r , s is the state-space
• Linear Phase
• Hardware Implementation representation of the filter structure.
• Allpass Filters
• Lattice Stage + The transfer function is given by:
• Example
A(z) ↔ D(z)
B(z) det(zI−P+qrT )
• Allpass Lattice
• Lattice Filter
H(z) = A(z) = det(zI−P) +s−1
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines Example: Direct Form IIt
   
−a[1] 1 b[1] − b[0]a[1]
P= q=
−a[2] 0 b[2] − b[0]a[2]
rT =

1 0 s = b[0]

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


State Space +

10: Digital Filter Structures


• Direct Forms
v[n] is a vector of delay element outputs
• Transposition
• State Space + Can write: v[n + 1] = Pv[n] + qx[n]
• Precision Issues
• Coefficient Sensitivity y[n] = rT v[n] + sx[n]
• Cascaded Biquads
T

• Pole-zero Pairing/Ordering P, q, r , s is the state-space
• Linear Phase
• Hardware Implementation representation of the filter structure.
• Allpass Filters
• Lattice Stage + The transfer function is given by:
• Example
A(z) ↔ D(z)
B(z) det(zI−P+qrT )
• Allpass Lattice
• Lattice Filter
H(z) = A(z) = det(zI−P) +s−1
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines Example: Direct Form IIt
   
−a[1] 1 b[1] − b[0]a[1]
P= q=
−a[2] 0 b[2] − b[0]a[2]
rT =

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

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


State Space +

10: Digital Filter Structures


• Direct Forms
v[n] is a vector of delay element outputs
• Transposition
• State Space + Can write: v[n + 1] = Pv[n] + qx[n]
• Precision Issues
• Coefficient Sensitivity y[n] = rT v[n] + sx[n]
• Cascaded Biquads
T

• Pole-zero Pairing/Ordering P, q, r , s is the state-space
• Linear Phase
• Hardware Implementation representation of the filter structure.
• Allpass Filters
• Lattice Stage + The transfer function is given by:
• Example
A(z) ↔ D(z)
B(z) det(zI−P+qrT )
• Allpass Lattice
• Lattice Filter
H(z) = A(z) = det(zI−P) +s−1
• Lattice Example T
• Lattice Example The transposed form has P → P and q ↔ r ⇒ same H(z)
Numerator
• Summary
• MATLAB routines Example: Direct Form IIt
   
−a[1] 1 b[1] − b[0]a[1]
P= q=
−a[2] 0 b[2] − b[0]a[2]
rT =

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

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


Precision Issues

10: Digital Filter Structures


• Direct Forms
If all computations were exact, it would not make any difference which of
• Transposition the equivalent structures was used.
• 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 – 5 / 19


Precision Issues

10: Digital Filter Structures


• Direct Forms
If all computations were exact, it would not make any difference which of
• Transposition the equivalent structures was used. However ...
• State Space +
• Precision Issues
• Coefficient Sensitivity
• Coefficient precision
• 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 – 5 / 19


Precision Issues

10: Digital Filter Structures


• Direct Forms
If all computations were exact, it would not make any difference which of
• Transposition the equivalent structures was used. However ...
• State Space +
• Precision Issues
• Coefficient Sensitivity
• Coefficient precision
• Cascaded Biquads Coefficients are stored to finite precision and so are not exact.
• 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 – 5 / 19


Precision Issues

10: Digital Filter Structures


• Direct Forms
If all computations were exact, it would not make any difference which of
• Transposition the equivalent structures was used. However ...
• State Space +
• Precision Issues
• Coefficient Sensitivity
• Coefficient precision
• Cascaded Biquads Coefficients are stored to finite precision and so are not exact.
• Pole-zero Pairing/Ordering
• Linear Phase The filter actually implemented is therefore incorrect.
• 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 – 5 / 19


Precision Issues

10: Digital Filter Structures


• Direct Forms
If all computations were exact, it would not make any difference which of
• Transposition the equivalent structures was used. However ...
• State Space +
• Precision Issues
• Coefficient Sensitivity
• Coefficient precision
• Cascaded Biquads Coefficients are stored to finite precision and so are not exact.
• Pole-zero Pairing/Ordering
• Linear Phase The filter actually implemented is therefore incorrect.
• Hardware Implementation
• Allpass Filters • Arithmetic precision
• Lattice Stage +
• Example Arithmetic calculations are not exact.
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

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


Precision Issues

10: Digital Filter Structures


• Direct Forms
If all computations were exact, it would not make any difference which of
• Transposition the equivalent structures was used. However ...
• State Space +
• Precision Issues
• Coefficient Sensitivity
• Coefficient precision
• Cascaded Biquads Coefficients are stored to finite precision and so are not exact.
• Pole-zero Pairing/Ordering
• Linear Phase The filter actually implemented is therefore incorrect.
• Hardware Implementation
• Allpass Filters • Arithmetic precision
• Lattice Stage +
• Example Arithmetic calculations are not exact.
A(z) ↔ D(z)
• Allpass Lattice ◦ Worst case for arithmetic errors is when calculating the
• Lattice Filter
• Lattice Example
difference between two similar values:
• Lattice Example
Numerator
• Summary
• MATLAB routines

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


Precision Issues

10: Digital Filter Structures


• Direct Forms
If all computations were exact, it would not make any difference which of
• Transposition the equivalent structures was used. However ...
• State Space +
• Precision Issues
• Coefficient Sensitivity
• Coefficient precision
• Cascaded Biquads Coefficients are stored to finite precision and so are not exact.
• Pole-zero Pairing/Ordering
• Linear Phase The filter actually implemented is therefore incorrect.
• Hardware Implementation
• Allpass Filters • Arithmetic precision
• Lattice Stage +
• Example Arithmetic calculations are not exact.
A(z) ↔ D(z)
• Allpass Lattice ◦ Worst case for arithmetic errors is when calculating the
• Lattice Filter
• Lattice Example
difference between two similar values:
• Lattice Example
Numerator
1.23456789 − 1.23455678 = 0.00001111: 9 s.f. → 4 s.f.
• Summary
• MATLAB routines

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


Precision Issues

10: Digital Filter Structures


• Direct Forms
If all computations were exact, it would not make any difference which of
• Transposition the equivalent structures was used. However ...
• State Space +
• Precision Issues
• Coefficient Sensitivity
• Coefficient precision
• Cascaded Biquads Coefficients are stored to finite precision and so are not exact.
• Pole-zero Pairing/Ordering
• Linear Phase The filter actually implemented is therefore incorrect.
• Hardware Implementation
• Allpass Filters • Arithmetic precision
• Lattice Stage +
• Example Arithmetic calculations are not exact.
A(z) ↔ D(z)
• Allpass Lattice ◦ Worst case for arithmetic errors is when calculating the
• Lattice Filter
• Lattice Example
difference between two similar values:
• Lattice Example
Numerator
1.23456789 − 1.23455678 = 0.00001111: 9 s.f. → 4 s.f.
• Summary Arithmetic errors introduce noise that is then filtered by the transfer
• MATLAB routines
function between the point of noise creation and the output.

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


Coefficient Sensitivity

10: Digital Filter Structures


• Direct Forms
The roots of high order polynomials can be very sensitive to small changes
• Transposition in coefficient values.
• 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 – 6 / 19


Coefficient Sensitivity

10: Digital Filter Structures


• Direct Forms
The roots of high order polynomials can be very sensitive to small changes
• Transposition in coefficient values.
• State Space +
• Precision Issues
• Coefficient Sensitivity
Wilkinson’s polynomial: (famous example)
• Cascaded Biquads Q20 20 19 18
• Pole-zero Pairing/Ordering f (x) = n=1 (x − n) = x − 210x + 20615x − ...
• Linear Phase
• Hardware Implementation
has roots well separated on the real axis.
• 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 – 6 / 19


Coefficient Sensitivity

10: Digital Filter Structures


• Direct Forms
The roots of high order polynomials can be very sensitive to small changes
• Transposition in coefficient values.
• State Space +
• Precision Issues
• Coefficient Sensitivity
Wilkinson’s polynomial: (famous example)
• Cascaded Biquads Q20 20 19 18
• Pole-zero Pairing/Ordering f (x) = n=1 (x − n) = x − 210x + 20615x − ...
• Linear Phase
• Hardware Implementation
has roots well separated on the real axis.
• Allpass Filters
• Lattice Stage +
• Example
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
5
• MATLAB routines

-5

0 5 10 15 20 25

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


Coefficient Sensitivity

10: Digital Filter Structures


• Direct Forms
The roots of high order polynomials can be very sensitive to small changes
• Transposition in coefficient values.
• State Space +
• Precision Issues
• Coefficient Sensitivity
Wilkinson’s polynomial: (famous example)
• Cascaded Biquads Q20 20 19 18
• Pole-zero Pairing/Ordering f (x) = n=1 (x − n) = x − 210x + 20615x − ...
• Linear Phase
• Hardware Implementation
has roots well separated on the real axis.
• Allpass Filters
• Lattice Stage +
• Example Multiplying the coefficient of x19 by 1.000001 moves the roots a lot.
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
5
• MATLAB routines

-5

0 5 10 15 20 25

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


Coefficient Sensitivity

10: Digital Filter Structures


• Direct Forms
The roots of high order polynomials can be very sensitive to small changes
• Transposition in coefficient values.
• State Space +
• Precision Issues
• Coefficient Sensitivity
Wilkinson’s polynomial: (famous example)
• Cascaded Biquads Q20 20 19 18
• Pole-zero Pairing/Ordering f (x) = n=1 (x − n) = x − 210x + 20615x − ...
• Linear Phase
• Hardware Implementation
has roots well separated on the real axis.
• Allpass Filters
• Lattice Stage +
• Example Multiplying the coefficient of x19 by 1.000001 moves the roots a lot.
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
5 5
• MATLAB routines

0 0

-5 -5

0 5 10 15 20 25 0 5 10 15 20 25

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


Coefficient Sensitivity

10: Digital Filter Structures


• Direct Forms
The roots of high order polynomials can be very sensitive to small changes
• Transposition in coefficient values.
• State Space +
• Precision Issues
• Coefficient Sensitivity
Wilkinson’s polynomial: (famous example)
• Cascaded Biquads Q20 20 19 18
• Pole-zero Pairing/Ordering f (x) = n=1 (x − n) = x − 210x + 20615x − ...
• Linear Phase
• Hardware Implementation
has roots well separated on the real axis.
• Allpass Filters
• Lattice Stage +
• Example Multiplying the coefficient of x19 by 1.000001 moves the roots a lot.
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
“Speaking for myself I regard it as the most traumatic experience in
• Lattice Example my career as a numerical analyst”, James Wilkinson 1984
• Lattice Example
Numerator
• Summary
5 5
• MATLAB routines

0 0

-5 -5

0 5 10 15 20 25 0 5 10 15 20 25

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


Coefficient Sensitivity

10: Digital Filter Structures


• Direct Forms
The roots of high order polynomials can be very sensitive to small changes
• Transposition in coefficient values.
• State Space +
• Precision Issues
• Coefficient Sensitivity
Wilkinson’s polynomial: (famous example)
• Cascaded Biquads Q20 20 19 18
• Pole-zero Pairing/Ordering f (x) = n=1 (x − n) = x − 210x + 20615x − ...
• Linear Phase
• Hardware Implementation
has roots well separated on the real axis.
• Allpass Filters
• Lattice Stage +
• Example Multiplying the coefficient of x19 by 1.000001 moves the roots a lot.
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
“Speaking for myself I regard it as the most traumatic experience in
• Lattice Example my career as a numerical analyst”, James Wilkinson 1984
• Lattice Example
Numerator
• Summary
5 5
• MATLAB routines

0 0

-5 -5

0 5 10 15 20 25 0 5 10 15 20 25

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

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


Cascaded Biquads

10: Digital Filter Structures


• Direct Forms
Avoid high order polynomials by factorizing into quadratic terms:
• Transposition
• State Space + Q
B(z) Q
(1+bk,1 z−1 +bk,2 z−2 )
• Precision Issues
• Coefficient Sensitivity A(z) = g (1+ak,1 z−1 +ak,2 z−2 )
• 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 – 7 / 19


Cascaded Biquads

10: Digital Filter Structures


• Direct Forms
Avoid high order polynomials by factorizing into quadratic terms:
• Transposition
• State Space + Q
B(z) Q
(1+bk,1 z−1 +bk,2 z−2 ) QK 1+bk,1 z −1 +bk,2 z −2
• Precision Issues
• Coefficient Sensitivity A(z) = g (1+ak,1 z−1 +ak,2 z−2 ) = g k=1 1+ak,1 z −1 +ak,2 z −2
• 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 – 7 / 19


Cascaded Biquads

10: Digital Filter Structures


• Direct Forms
Avoid high order polynomials by factorizing into quadratic terms:
• Transposition
• State Space + Q
B(z) Q
(1+bk,1 z−1 +bk,2 z−2 ) QK 1+bk,1 z −1 +bk,2 z −2
• Precision Issues
• Coefficient Sensitivity A(z) = g (1+ak,1 z−1 +ak,2 z−2 ) = g k=1 1+ak,1 z −1 +ak,2 z −2
• Cascaded Biquads
• Pole-zero Pairing/Ordering
 M   N 
• Linear Phase
• Hardware Implementation
where K = max 2 , 2 .
• 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 – 7 / 19


Cascaded Biquads

10: Digital Filter Structures


• Direct Forms
Avoid high order polynomials by factorizing into quadratic terms:
• Transposition
• State Space + Q
B(z) Q
(1+bk,1 z−1 +bk,2 z−2 ) QK 1+bk,1 z −1 +bk,2 z −2
• Precision Issues
• Coefficient Sensitivity A(z) = g (1+ak,1 z−1 +ak,2 z−2 ) = g k=1 1+ak,1 z −1 +ak,2 z −2
• Cascaded Biquads
• Pole-zero Pairing/Ordering
 M   N 
• Linear Phase
• Hardware Implementation
where K = max 2 , 2 .
• Allpass Filters
• Lattice Stage + 1+bk,1 z −1 +bk,2 z −2
• Example
The term 1+ak,1 z −1 +ak,2 z −2 is a biquad (bi-quadratic section).
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

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


Cascaded Biquads

10: Digital Filter Structures


• Direct Forms
Avoid high order polynomials by factorizing into quadratic terms:
• Transposition
• State Space + Q
B(z) Q
(1+bk,1 z−1 +bk,2 z−2 ) QK 1+bk,1 z −1 +bk,2 z −2
• Precision Issues
• Coefficient Sensitivity A(z) = g (1+ak,1 z−1 +ak,2 z−2 ) = g k=1 1+ak,1 z −1 +ak,2 z −2
• Cascaded Biquads
• Pole-zero Pairing/Ordering
 M   N 
• Linear Phase
• Hardware Implementation
where K = max 2 , 2 .
• Allpass Filters
• Lattice Stage + 1+bk,1 z −1 +bk,2 z −2
• Example
The term 1+ak,1 z −1 +ak,2 z −2 is a biquad (bi-quadratic section).
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

Direct Form II
Transposed

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


Cascaded Biquads

10: Digital Filter Structures


• Direct Forms
Avoid high order polynomials by factorizing into quadratic terms:
• Transposition
• State Space + Q
B(z) Q
(1+bk,1 z−1 +bk,2 z−2 ) QK 1+bk,1 z −1 +bk,2 z −2
• Precision Issues
• Coefficient Sensitivity A(z) = g (1+ak,1 z−1 +ak,2 z−2 ) = g k=1 1+ak,1 z −1 +ak,2 z −2
• Cascaded Biquads
• Pole-zero Pairing/Ordering
 M   N 
• Linear Phase
• Hardware Implementation
where K = max 2 , 2 .
• Allpass Filters
• Lattice Stage + 1+bk,1 z −1 +bk,2 z −2
• Example
The term 1+ak,1 z −1 +ak,2 z −2 is a biquad (bi-quadratic section).
A(z) ↔ D(z)
• Allpass Lattice We need to choose:
• Lattice Filter
• Lattice Example (a) which poles to pair with which zeros in each biquad
• Lattice Example
Numerator
• Summary
• MATLAB routines

Direct Form II
Transposed

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


Cascaded Biquads

10: Digital Filter Structures


• Direct Forms
Avoid high order polynomials by factorizing into quadratic terms:
• Transposition
• State Space + Q
B(z) Q
(1+bk,1 z−1 +bk,2 z−2 ) QK 1+bk,1 z −1 +bk,2 z −2
• Precision Issues
• Coefficient Sensitivity A(z) = g (1+ak,1 z−1 +ak,2 z−2 ) = g k=1 1+ak,1 z −1 +ak,2 z −2
• Cascaded Biquads
• Pole-zero Pairing/Ordering
 M   N 
• Linear Phase
• Hardware Implementation
where K = max 2 , 2 .
• Allpass Filters
• Lattice Stage + 1+bk,1 z −1 +bk,2 z −2
• Example
The term 1+ak,1 z −1 +ak,2 z −2 is a biquad (bi-quadratic section).
A(z) ↔ D(z)
• Allpass Lattice We need to choose:
• Lattice Filter
• Lattice Example (a) which poles to pair with which zeros in each biquad
• Lattice Example
Numerator (b) how to order the biquads
• Summary
• MATLAB routines

Direct Form II
Transposed

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


Pole-zero Pairing/Ordering

10: Digital Filter Structures


• Direct Forms
Example: Elliptic lowpass filter 1

• Transposition 0.5
• State Space +
0
• Precision Issues
• Coefficient Sensitivity -0.5
• Cascaded Biquads -1
• Pole-zero Pairing/Ordering -1 0 1
• Linear Phase z
• Hardware Implementation
• Allpass Filters
• Lattice Stage +
• Example
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

20
Gain (dB)

-20

-40
0 0.5 1 1.5 2 2.5 3
ω

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


Pole-zero Pairing/Ordering

10: Digital Filter Structures


• Direct Forms
Example: Elliptic lowpass filter 1

• Transposition 0.5
• State Space + 2 pole pairs and 2 zero pairs 0
• Precision Issues
• Coefficient Sensitivity -0.5
• Cascaded Biquads -1
• Pole-zero Pairing/Ordering -1 0 1
• Linear Phase z
• Hardware Implementation
• Allpass Filters
• Lattice Stage +
• Example
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

20
Gain (dB)

-20

-40
0 0.5 1 1.5 2 2.5 3
ω

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


Pole-zero Pairing/Ordering

10: Digital Filter Structures


• Direct Forms
Example: Elliptic lowpass filter 1

• Transposition 0.5
• State Space + 2 pole pairs and 2 zero pairs 0
• Precision Issues
• Coefficient Sensitivity
need 2 biquads -0.5
• Cascaded Biquads -1
• Pole-zero Pairing/Ordering -1 0 1
• Linear Phase z
• Hardware Implementation
• Allpass Filters
• Lattice Stage +
• Example
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

20
Gain (dB)

-20

-40
0 0.5 1 1.5 2 2.5 3
ω

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


Pole-zero Pairing/Ordering

10: Digital Filter Structures


• Direct Forms
Example: Elliptic lowpass filter 1

• Transposition 0.5
• State Space + 2 pole pairs and 2 zero pairs 0
• Precision Issues
• Coefficient Sensitivity
need 2 biquads -0.5
• Cascaded Biquads -1
• Pole-zero Pairing/Ordering Noise introduced in one biquad is amplified -1 0 1
• Linear Phase z
• Hardware Implementation
by all the subsequent ones:
• Allpass Filters
• Lattice Stage +
• Example
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

20
Gain (dB)

-20

-40
0 0.5 1 1.5 2 2.5 3
ω

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


Pole-zero Pairing/Ordering

10: Digital Filter Structures


• Direct Forms
Example: Elliptic lowpass filter 1

• Transposition 0.5
• State Space + 2 pole pairs and 2 zero pairs 0
• Precision Issues
• Coefficient Sensitivity
need 2 biquads -0.5
• Cascaded Biquads -1
• Pole-zero Pairing/Ordering Noise introduced in one biquad is amplified -1 0 1
• Linear Phase z
• Hardware Implementation
by all the subsequent ones:
• Allpass Filters
• Lattice Stage
• Example
+ • Make the peak gain of each biquad as small as possible
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

20
Gain (dB)

-20

-40
0 0.5 1 1.5 2 2.5 3
ω

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


Pole-zero Pairing/Ordering

10: Digital Filter Structures


• Direct Forms
Example: Elliptic lowpass filter 1

• Transposition 0.5
• State Space + 2 pole pairs and 2 zero pairs 0
• Precision Issues
• Coefficient Sensitivity
need 2 biquads -0.5
• Cascaded Biquads -1
• Pole-zero Pairing/Ordering Noise introduced in one biquad is amplified -1 0 1
• Linear Phase z
• Hardware Implementation
by all the subsequent ones:
• Allpass Filters
• Lattice Stage
• Example
+ • Make the peak gain of each biquad as small as possible
A(z) ↔ D(z) ◦ Pair poles with nearest zeros to get lowest peak gain
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

20 Nearest
Gain (dB)

-20

-40
0 0.5 1 1.5 2 2.5 3
ω

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


Pole-zero Pairing/Ordering

10: Digital Filter Structures


• Direct Forms
Example: Elliptic lowpass filter 1

• Transposition 0.5
• State Space + 2 pole pairs and 2 zero pairs 0
• Precision Issues
• Coefficient Sensitivity
need 2 biquads -0.5
• Cascaded Biquads -1
• Pole-zero Pairing/Ordering Noise introduced in one biquad is amplified -1 0 1
• Linear Phase z
• Hardware Implementation
by all the subsequent ones:
• Allpass Filters
• Lattice Stage
• Example
+ • Make the peak gain of each biquad as small as possible
A(z) ↔ D(z) ◦ Pair poles with nearest zeros to get lowest peak gain
• Allpass Lattice
• Lattice Filter begin with the pole nearest the unit circle
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

20 Nearest
Gain (dB)

-20

-40
0 0.5 1 1.5 2 2.5 3
ω

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


Pole-zero Pairing/Ordering

10: Digital Filter Structures


• Direct Forms
Example: Elliptic lowpass filter 1

• Transposition 0.5
• State Space + 2 pole pairs and 2 zero pairs 0
• Precision Issues
• Coefficient Sensitivity
need 2 biquads -0.5
• Cascaded Biquads -1
• Pole-zero Pairing/Ordering Noise introduced in one biquad is amplified -1 0 1
• Linear Phase z
• Hardware Implementation
by all the subsequent ones:
• Allpass Filters
• Lattice Stage
• Example
+ • Make the peak gain of each biquad as small as possible
A(z) ↔ D(z) ◦ Pair poles with nearest zeros to get lowest peak gain
• Allpass Lattice
• Lattice Filter begin with the pole nearest the unit circle
• Lattice Example
• Lattice Example
◦ Pairing with farthest zeros gives higher peak biquad gain
Numerator
• Summary
• MATLAB routines

20 Nearest 20 Farthest
Gain (dB)

Gain (dB)

0 0

-20 -20

-40 -40
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
ω ω

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


Pole-zero Pairing/Ordering

10: Digital Filter Structures


• Direct Forms
Example: Elliptic lowpass filter 1

• Transposition 0.5
• State Space + 2 pole pairs and 2 zero pairs 0
• Precision Issues
• Coefficient Sensitivity
need 2 biquads -0.5
• Cascaded Biquads -1
• Pole-zero Pairing/Ordering Noise introduced in one biquad is amplified -1 0 1
• Linear Phase z
• Hardware Implementation
by all the subsequent ones:
• Allpass Filters
• Lattice Stage
• Example
+ • Make the peak gain of each biquad as small as possible
A(z) ↔ D(z) ◦ Pair poles with nearest zeros to get lowest peak gain
• Allpass Lattice
• Lattice Filter begin with the pole nearest the unit circle
• Lattice Example
• Lattice Example
◦ Pairing with farthest zeros gives higher peak biquad gain
Numerator
• Summary • Poles near the unit circle have the highest peaks and introduce most
• MATLAB routines
noise so place them last in the chain
20 Nearest 20 Farthest
Gain (dB)

Gain (dB)

0 0

-20 -20

-40 -40
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
ω ω

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


Linear Phase

10: Digital Filter Structures


• Direct Forms
Implementation can take advantage of any symmetry in the coefficients.
• 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 – 9 / 19


Linear Phase

10: Digital Filter Structures


• Direct Forms
Implementation can take advantage of any symmetry in the coefficients.
• Transposition
• State Space + Linear phase filters are always FIR and have symmetric (or, more rarely,
• Precision Issues
• Coefficient Sensitivity
antisymmetric) coefficients.
• 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 – 9 / 19


Linear Phase

10: Digital Filter Structures


• Direct Forms
Implementation can take advantage of any symmetry in the coefficients.
• Transposition
• State Space + Linear phase filters are always FIR and have symmetric (or, more rarely,
• Precision Issues
• Coefficient Sensitivity
antisymmetric) coefficients.
• Cascaded Biquads PM −m
• Pole-zero Pairing/Ordering H(z) = m=0 h[m]z h[M − m] = h[m]
• 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 – 9 / 19


Linear Phase

10: Digital Filter Structures


• Direct Forms
Implementation can take advantage of any symmetry in the coefficients.
• Transposition
• State Space + Linear phase filters are always FIR and have symmetric (or, more rarely,
• Precision Issues
• Coefficient Sensitivity
antisymmetric) coefficients.
• Cascaded Biquads PM −m
• Pole-zero Pairing/Ordering H(z) = m=0 h[m]z h[M − m] = h[m]
• Linear Phase
• Hardware Implementation  M  − M P M2 −1 −m m−M

• Allpass Filters = h 2 z 2 + m=0 h[m] z +z [m even]
• 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 – 9 / 19


Linear Phase

10: Digital Filter Structures


• Direct Forms
Implementation can take advantage of any symmetry in the coefficients.
• Transposition
• State Space + Linear phase filters are always FIR and have symmetric (or, more rarely,
• Precision Issues
• Coefficient Sensitivity
antisymmetric) coefficients.
• Cascaded Biquads PM −m
• Pole-zero Pairing/Ordering H(z) = m=0 h[m]z h[M − m] = h[m]
• Linear Phase
• Hardware Implementation  M  − M P M2 −1 −m m−M

• Allpass Filters = h 2 z 2 + m=0 h[m] z +z [m even]
• Lattice Stage +

For M even, we only need M


• Example
A(z) ↔ D(z)
2 + 1 multiplies instead of M + 1.
• Allpass Lattice
• Lattice Filter
We still need M additions and M delays.
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

M = 6:

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


Linear Phase

10: Digital Filter Structures


• Direct Forms
Implementation can take advantage of any symmetry in the coefficients.
• Transposition
• State Space + Linear phase filters are always FIR and have symmetric (or, more rarely,
• Precision Issues
• Coefficient Sensitivity
antisymmetric) coefficients.
• Cascaded Biquads PM −m
• Pole-zero Pairing/Ordering H(z) = m=0 h[m]z h[M − m] = h[m]
• Linear Phase
• Hardware Implementation  M  − M P M2 −1 −m m−M

• Allpass Filters = h 2 z 2 + m=0 h[m] z +z [m even]
• Lattice Stage +

For M even, we only need M


• Example
A(z) ↔ D(z)
2 + 1 multiplies instead of M + 1.
• Allpass Lattice
• Lattice Filter
We still need M additions and M delays.
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

M = 6:

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

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


Hardware Implementation

10: Digital Filter Structures


• Direct Forms
Software Implementation:
• Transposition All that matters is the total number of multiplies and adds
• 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 – 10 / 19


Hardware Implementation

10: Digital Filter Structures


• Direct Forms
Software Implementation:
• Transposition All that matters is the total number of multiplies and adds
• State Space +
• Precision Issues
• Coefficient Sensitivity
Hardware Implementation:
• Cascaded Biquads Delay elements (z −1 ) represent storage registers
• Pole-zero Pairing/Ordering
• Linear Phase The maximum clock speed is limited by the number of sequential
• Hardware Implementation
operations between registers
• 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 – 10 / 19


Hardware Implementation

10: Digital Filter Structures


• Direct Forms
Software Implementation:
• Transposition All that matters is the total number of multiplies and adds
• State Space +
• Precision Issues
• Coefficient Sensitivity
Hardware Implementation:
• Cascaded Biquads Delay elements (z −1 ) represent storage registers
• Pole-zero Pairing/Ordering
• Linear Phase The maximum clock speed is limited by the number of sequential
• Hardware Implementation
operations between registers
• Allpass Filters
• Lattice Stage +
• Example Example: Symmetric Linear Phase Filter
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
Direct form: Maximum sequential delay = 4a + m
• Lattice Example
• Lattice Example
Numerator a and m are the delays of adder and multiplier respectively
• Summary
• MATLAB routines

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


Hardware Implementation

10: Digital Filter Structures


• Direct Forms
Software Implementation:
• Transposition All that matters is the total number of multiplies and adds
• State Space +
• Precision Issues
• Coefficient Sensitivity
Hardware Implementation:
• Cascaded Biquads Delay elements (z −1 ) represent storage registers
• Pole-zero Pairing/Ordering
• Linear Phase The maximum clock speed is limited by the number of sequential
• Hardware Implementation
operations between registers
• Allpass Filters
• Lattice Stage +
• Example Example: Symmetric Linear Phase Filter
A(z) ↔ D(z)
• Allpass Lattice
• Lattice Filter
Direct form: Maximum sequential delay = 4a + m
• Lattice Example Transpose form: Maximum sequential delay = a + m ,
• Lattice Example
Numerator a and m are the delays of adder and multiplier respectively
• Summary
• MATLAB routines

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


Allpass Filters

10: Digital Filter Structures


• Direct Forms
Allpass filters have mirror image numerator and denominator coefficients:
• Transposition
• State Space + b[n] = a[N − n]
• 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 – 11 / 19


Allpass Filters

10: Digital Filter Structures


• Direct Forms
Allpass filters have mirror image numerator and denominator coefficients:
• Transposition
• State Space + b[n] = a[N − n] ⇔ B(z) = z −N A(z −1 )
• 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 – 11 / 19


Allpass Filters

10: Digital Filter Structures


• Direct Forms
Allpass filters have mirror image numerator and denominator coefficients:
• Transposition
• State Space + b[n] = a[N − n] ⇔ B(z) = z −N A(z −1 )
• Precision Issues

• Coefficient Sensitivity
• Cascaded Biquads
⇒ H(e ) ≡ 1∀ω

• 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 – 11 / 19


Allpass Filters

10: Digital Filter Structures


• Direct Forms
Allpass filters have mirror image numerator and denominator coefficients:
• Transposition
• State Space + b[n] = a[N − n] ⇔ B(z) = z −N A(z −1 )
• Precision Issues

• Coefficient Sensitivity
• Cascaded Biquads
⇒ H(e ) ≡ 1∀ω

• Pole-zero Pairing/Ordering
• Linear Phase There are several efficient structures, e.g.
• 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 – 11 / 19


Allpass Filters

10: Digital Filter Structures


• Direct Forms
Allpass filters have mirror image numerator and denominator coefficients:
• Transposition
• State Space + b[n] = a[N − n] ⇔ B(z) = z −N A(z −1 )
• Precision Issues

• Coefficient Sensitivity
• Cascaded Biquads
⇒ H(e ) ≡ 1∀ω

• Pole-zero Pairing/Ordering
• Linear Phase There are several efficient structures, e.g.
• Hardware Implementation
a[1]+z −1
• Allpass Filters
• Lattice Stage +
• First Order: H(z) = 1+a[1]z −1
• 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 – 11 / 19


Allpass Filters

10: Digital Filter Structures


• Direct Forms
Allpass filters have mirror image numerator and denominator coefficients:
• Transposition
• State Space + b[n] = a[N − n] ⇔ B(z) = z −N A(z −1 )
• Precision Issues

• Coefficient Sensitivity
• Cascaded Biquads
⇒ H(e ) ≡ 1∀ω

• Pole-zero Pairing/Ordering
• Linear Phase There are several efficient structures, e.g.
• Hardware Implementation
a[1]+z −1
• Allpass Filters
• Lattice Stage +
• First Order: H(z) = 1+a[1]z −1
• Example
A(z) ↔ D(z)
a[2]+a[1]z −1 +z −2
• Allpass Lattice • Second Order: H(z) = 1+a[1]z −1 +a[2]z −2
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

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


Allpass Filters

10: Digital Filter Structures


• Direct Forms
Allpass filters have mirror image numerator and denominator coefficients:
• Transposition
• State Space + b[n] = a[N − n] ⇔ B(z) = z −N A(z −1 )
• Precision Issues

• Coefficient Sensitivity
• Cascaded Biquads
⇒ H(e ) ≡ 1∀ω

• Pole-zero Pairing/Ordering
• Linear Phase There are several efficient structures, e.g.
• Hardware Implementation
a[1]+z −1
• Allpass Filters
• Lattice Stage +
• First Order: H(z) = 1+a[1]z −1
• Example
A(z) ↔ D(z)
a[2]+a[1]z −1 +z −2
• Allpass Lattice • Second Order: H(z) = 1+a[1]z −1 +a[2]z −2
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

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

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


Lattice Stage +

10: Digital Filter Structures


z −N A(z −1 )
• Direct Forms Suppose G is allpass: G(z) = A(z)
• 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 – 12 / 19


Lattice Stage +

10: Digital Filter Structures


z −N A(z −1 )
• Direct Forms Suppose G is allpass: G(z) = A(z)
• Transposition
• State Space +
• Precision Issues V (z) = X(z) − kGz −1 V (z)
• 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 – 12 / 19


Lattice Stage +

10: Digital Filter Structures


z −N A(z −1 )
• Direct Forms Suppose G is allpass: G(z) = A(z)
• Transposition
• State Space +
• Precision Issues V (z) = X(z) − kGz −1 V (z)
• Coefficient Sensitivity
1
• Cascaded Biquads
• Pole-zero Pairing/Ordering
⇒ V (z) = 1+kGz −1 X(z)
• 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 – 12 / 19


Lattice Stage +

10: Digital Filter Structures


z −N A(z −1 )
• Direct Forms Suppose G is allpass: G(z) = A(z)
• Transposition
• State Space +
• Precision Issues V (z) = X(z) − kGz −1 V (z)
• Coefficient Sensitivity
1
• Cascaded Biquads
• Pole-zero Pairing/Ordering
⇒ V (z) = 1+kGz −1 X(z)
• Linear Phase
• Hardware Implementation
• Allpass Filters
Y (z) = kV (z) + Gz −1 V (z)
• 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 – 12 / 19


Lattice Stage +

10: Digital Filter Structures


z −N A(z −1 )
• Direct Forms Suppose G is allpass: G(z) = A(z)
• Transposition
• State Space +
• Precision Issues V (z) = X(z) − kGz −1 V (z)
• Coefficient Sensitivity
1
• Cascaded Biquads
• Pole-zero Pairing/Ordering
⇒ V (z) = 1+kGz −1 X(z)
• Linear Phase
−1 k+z −1 G
• Hardware Implementation
• Allpass Filters
Y (z) = kV (z) + Gz V (z) = 1+kGz −1 X(z)
• 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 – 12 / 19


Lattice Stage +

10: Digital Filter Structures


z −N A(z −1 )
• Direct Forms Suppose G is allpass: G(z) = A(z)
• Transposition
• State Space +
• Precision Issues V (z) = X(z) − kGz −1 V (z)
• Coefficient Sensitivity
1
• Cascaded Biquads
• Pole-zero Pairing/Ordering
⇒ V (z) = 1+kGz −1 X(z)
• Linear Phase
−1 k+z −1 G
• Hardware Implementation
• Allpass Filters
Y (z) = kV (z) + Gz V (z) = 1+kGz −1 X(z)
• Lattice Stage +
• Example Y (z) kA(z)+z −N −1 A(z −1 )
A(z) ↔ D(z)
X(z) = A(z)+kz −N −1 A(z −1 )
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

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


Lattice Stage +

10: Digital Filter Structures


z −N A(z −1 )
• Direct Forms Suppose G is allpass: G(z) = A(z)
• Transposition
• State Space +
• Precision Issues V (z) = X(z) − kGz −1 V (z)
• Coefficient Sensitivity
1
• Cascaded Biquads
• Pole-zero Pairing/Ordering
⇒ V (z) = 1+kGz −1 X(z)
• Linear Phase
−1 k+z −1 G
• Hardware Implementation
• Allpass Filters
Y (z) = kV (z) + Gz V (z) = 1+kGz −1 X(z)
• Lattice Stage +
• Example Y (z) kA(z)+z −N −1 A(z −1 ) z −(N +1) D(z −1 )
A(z) ↔ D(z)
X(z) = A(z)+kz −N −1 A(z −1 ) , D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

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


Lattice Stage +

10: Digital Filter Structures


z −N A(z −1 )
• Direct Forms Suppose G is allpass: G(z) = A(z)
• Transposition
• State Space +
• Precision Issues V (z) = X(z) − kGz −1 V (z)
• Coefficient Sensitivity
1
• Cascaded Biquads
• Pole-zero Pairing/Ordering
⇒ V (z) = 1+kGz −1 X(z)
• Linear Phase
−1 k+z −1 G
• Hardware Implementation
• Allpass Filters
Y (z) = kV (z) + Gz V (z) = 1+kGz −1 X(z)
• Lattice Stage +
• Example Y (z) kA(z)+z −N −1 A(z −1 ) z −(N +1) D(z −1 )
A(z) ↔ D(z)
X(z) = A(z)+kz −N −1 A(z −1 ) , D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example Obtaining {d[n]}
 from {a[n]}:
• Lattice Example
Numerator 1
 n=0
• Summary
• MATLAB routines d[n] = a[n] + ka[N + 1 − n] 1 ≤ n ≤ N

k n=N +1

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


Lattice Stage +

10: Digital Filter Structures


z −N A(z −1 )
• Direct Forms Suppose G is allpass: G(z) = A(z)
• Transposition
• State Space +
• Precision Issues V (z) = X(z) − kGz −1 V (z)
• Coefficient Sensitivity
1
• Cascaded Biquads
• Pole-zero Pairing/Ordering
⇒ V (z) = 1+kGz −1 X(z)
• Linear Phase
−1 k+z −1 G
• Hardware Implementation
• Allpass Filters
Y (z) = kV (z) + Gz V (z) = 1+kGz −1 X(z)
• Lattice Stage +
• Example Y (z) kA(z)+z −N −1 A(z −1 ) z −(N +1) D(z −1 )
A(z) ↔ D(z)
X(z) = A(z)+kz −N −1 A(z −1 ) , D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example Obtaining {d[n]}
 from {a[n]}:
• Lattice Example
Numerator 1
 n=0
• Summary
• MATLAB routines d[n] = a[n] + ka[N + 1 − n] 1 ≤ n ≤ N

k n=N +1

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


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

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


Lattice Stage +

10: Digital Filter Structures


z −N A(z −1 )
• Direct Forms Suppose G is allpass: G(z) = A(z)
• Transposition
• State Space +
• Precision Issues V (z) = X(z) − kGz −1 V (z)
• Coefficient Sensitivity
1
• Cascaded Biquads
• Pole-zero Pairing/Ordering
⇒ V (z) = 1+kGz −1 X(z)
• Linear Phase
−1 k+z −1 G
• Hardware Implementation
• Allpass Filters
Y (z) = kV (z) + Gz V (z) = 1+kGz −1 X(z)
• Lattice Stage +
• Example Y (z) kA(z)+z −N −1 A(z −1 ) z −(N +1) D(z −1 )
A(z) ↔ D(z)
X(z) = A(z)+kz −N −1 A(z −1 ) , D(z)
• Allpass Lattice
• Lattice Filter
• Lattice Example Obtaining {d[n]}
 from {a[n]}:
• Lattice Example
Numerator 1
 n=0
• Summary
• MATLAB routines d[n] = a[n] + ka[N + 1 − n] 1 ≤ n ≤ N

k n=N +1

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


d[n]−kd[N +1−n]
k = d[N + 1] a[n] = 1−k2
Y (z)
If G(z) is stable then X(z) is stable if and only if |k| < 1 (see note)

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


Example A(z) ↔ D(z)

10: Digital Filter Structures


• Direct Forms
Suppose N = 3, k = 0.5 and
• Transposition A(z) = 1 + 4z −1 − 6z −2 + 10z −3
• 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 – 13 / 19


Example A(z) ↔ D(z)

10: Digital Filter Structures


• Direct Forms
Suppose N = 3, k = 0.5 and
• Transposition A(z) = 1 + 4z −1 − 6z −2 + 10z −3
• State Space +
• Precision Issues
• Coefficient Sensitivity
• Cascaded Biquads
• Pole-zero Pairing/Ordering A(z) → D(z)
• Linear Phase
• Hardware Implementation z0 z −1 z −2 z −3 z −4
• Allpass Filters
• Lattice Stage + A(z) 1 4 −6 10
• Example
A(z) ↔ D(z) z −4 A(z −1 ) 10 −6 4 1
• Allpass Lattice
• Lattice Filter
D(z) = A(z) + kz −4 A(z −1 ) 1 9 −9 12 0.5
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

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


Example A(z) ↔ D(z)

10: Digital Filter Structures


• Direct Forms
Suppose N = 3, k = 0.5 and
• Transposition A(z) = 1 + 4z −1 − 6z −2 + 10z −3
• State Space +
• Precision Issues
• Coefficient Sensitivity
• Cascaded Biquads
• Pole-zero Pairing/Ordering A(z) → D(z)
• Linear Phase
• Hardware Implementation z0 z −1 z −2 z −3 z −4
• Allpass Filters
• Lattice Stage + A(z) 1 4 −6 10
• Example
A(z) ↔ D(z) z −4 A(z −1 ) 10 −6 4 1
• Allpass Lattice
• Lattice Filter
D(z) = A(z) + kz −4 A(z −1 ) 1 9 −9 12 0.5
• Lattice Example
• Lattice Example
Numerator
D(z) → A(z)
• Summary z0 z −1 z −2 z −3 z −4
• MATLAB routines
D(z) 1 9 −9 12 0.5
k = d[N + 1] 0.5
z −4 D(z −1 ) 0.5 12 −9 9 1
D(z) − kz −4 D(z −1 ) 0.75 3 −4.5 7.5 0
D(z)−kz −4 D(z −1 )
A(z) = 1−k2 1 4 −6 10 0

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


Allpass Lattice

10: Digital Filter Structures


z −M A(z −1 )
• Direct Forms We can implement any allpass filter H(z) = A(z) as a lattice filter
• Transposition
• State Space + with M stages:
• 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 – 14 / 19


Allpass Lattice

10: Digital Filter Structures


z −M A(z −1 )
• Direct Forms We can implement any allpass filter H(z) = A(z) as a lattice filter
• Transposition
• State Space + with M stages:
• Precision Issues
• Coefficient Sensitivity
• Cascaded Biquads
• Initialize AM (z) = A(z)
• 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 – 14 / 19


Allpass Lattice

10: Digital Filter Structures


z −M A(z −1 )
• Direct Forms We can implement any allpass filter H(z) = A(z) as a lattice filter
• Transposition
• State Space + with M stages:
• Precision Issues
• Coefficient Sensitivity
• Cascaded Biquads
• Initialize AM (z) = A(z)
• Pole-zero Pairing/Ordering • Repeat for m = M : −1 : 1
• 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 – 14 / 19


Allpass Lattice

10: Digital Filter Structures


z −M A(z −1 )
• Direct Forms We can implement any allpass filter H(z) = A(z) as a lattice filter
• Transposition
• State Space + with M stages:
• Precision Issues
• Coefficient Sensitivity
• Cascaded Biquads
• Initialize AM (z) = A(z)
• Pole-zero Pairing/Ordering • Repeat for m = M : −1 : 1
• Linear Phase
• Hardware Implementation
• Allpass Filters
◦ k[m] = am [m]
• 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 – 14 / 19


Allpass Lattice

10: Digital Filter Structures


z −M A(z −1 )
• Direct Forms We can implement any allpass filter H(z) = A(z) as a lattice filter
• Transposition
• State Space + with M stages:
• Precision Issues
• Coefficient Sensitivity
• Cascaded Biquads
• Initialize AM (z) = A(z)
• Pole-zero Pairing/Ordering • Repeat for m = M : −1 : 1
• Linear Phase
• Hardware Implementation
• Allpass Filters
◦ k[m] = am [m]
• Lattice Stage +
am [n]−k[m]am [m−n]
• Example
A(z) ↔ D(z)
◦ am−1 [n] = 1−k2 [m] for 0 ≤ n ≤ m − 1
• Allpass Lattice
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

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


Allpass Lattice

10: Digital Filter Structures


z −M A(z −1 )
• Direct Forms We can implement any allpass filter H(z) = A(z) as a lattice filter
• Transposition
• State Space + with M stages:
• Precision Issues
• Coefficient Sensitivity
• Cascaded Biquads
• Initialize AM (z) = A(z)
• Pole-zero Pairing/Ordering • Repeat for m = M : −1 : 1
• Linear Phase
• Hardware Implementation
• Allpass Filters
◦ k[m] = am [m]
• Lattice Stage +
am [n]−k[m]am [m−n]
• Example
A(z) ↔ D(z)
◦ am−1 [n] = 1−k2 [m] for 0 ≤ n ≤ m − 1
• Allpass Lattice
Am (z)−k[m]z −m Am (z −1 )
• Lattice Filter
• Lattice Example
equivalently Am−1 (z) = 1−k2 [m]
• Lattice Example
Numerator
• Summary
• MATLAB routines

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


Allpass Lattice

10: Digital Filter Structures


z −M A(z −1 )
• Direct Forms We can implement any allpass filter H(z) = A(z) as a lattice filter
• Transposition
• State Space + with M stages:
• Precision Issues
• Coefficient Sensitivity
• Cascaded Biquads
• Initialize AM (z) = A(z)
• Pole-zero Pairing/Ordering • Repeat for m = M : −1 : 1
• Linear Phase
• Hardware Implementation
• Allpass Filters
◦ k[m] = am [m]
• Lattice Stage +
am [n]−k[m]am [m−n]
• Example
A(z) ↔ D(z)
◦ am−1 [n] = 1−k2 [m] for 0 ≤ n ≤ m − 1
• Allpass Lattice
Am (z)−k[m]z −m Am (z −1 )
• Lattice Filter
• Lattice Example
equivalently Am−1 (z) = 1−k2 [m]
• Lattice Example
Numerator
• Summary
• MATLAB routines
A(z) is stable iff |k[m]| < 1 for all m (good stability test)

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


Lattice Filter

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

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


Lattice Filter

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

From earlier slide (slide 12):


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

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


Lattice Filter

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

From earlier slide (slide 12):


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

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


Lattice Filter

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

From earlier slide (slide 12):


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

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


Lattice Filter

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

From earlier slide (slide 12):


Um−1 (z) 1 Am−1 (z) Am−1 (z)
Um (z) = 1+k[m]z −1 H m−1 (z)
= Am−1 (z)+k[m]z −m Am−1 (z −1 ) = Am (z)
Hence:
Um (z) Am (z)
X(z) = A(z)

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


Lattice Filter

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

From earlier slide (slide 12):


Um−1 (z) 1 Am−1 (z) Am−1 (z)
Um (z) = 1+k[m]z −1 H m−1 (z)
= Am−1 (z)+k[m]z −m Am−1 (z −1 ) = Am (z)
Hence:
Um (z) Am (z) Vm (z) Um (z) Vm (z)
X(z) = A(z) and X(z) = X(z) × Um (z)

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


Lattice Filter

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

From earlier slide (slide 12):


Um−1 (z) 1 Am−1 (z) Am−1 (z)
Um (z) = 1+k[m]z −1 H m−1 (z)
= Am−1 (z)+k[m]z −m Am−1 (z −1 ) = Am (z)
Hence:
Um (z) Am (z) Vm (z) Um (z) Vm (z) z −m Am (z −1 )
X(z) = A(z) and X(z) = X(z) × Um (z) = A(z)

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


Lattice Filter

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

From earlier slide (slide 12):


Um−1 (z) 1 Am−1 (z) Am−1 (z)
Um (z) = 1+k[m]z −1 H m−1 (z)
= Am−1 (z)+k[m]z −m Am−1 (z −1 ) = Am (z)
Hence:
Um (z) Am (z) Vm (z) Um (z) Vm (z) z −m Am (z −1 )
X(z) = A(z) and X(z) = X(z) × Um (z) = A(z)

m V (z)
The numerator of X(z) is of order m so you can create any numerator of order M by
summing appropriate multiples of Vm (z):
PM
w[n] = m=0 cm vm [n]

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


Lattice Filter

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

From earlier slide (slide 12):


Um−1 (z) 1 Am−1 (z) Am−1 (z)
Um (z) = 1+k[m]z −1 H m−1 (z)
= Am−1 (z)+k[m]z −m Am−1 (z −1 ) = Am (z)
Hence:
Um (z) Am (z) Vm (z) Um (z) Vm (z) z −m Am (z −1 )
X(z) = A(z) and X(z) = X(z) × Um (z) = A(z)

m V (z)
The numerator of X(z) is of order m so you can create any numerator of order M by
summing appropriate multiples of Vm (z):
PM
PM cm z −m Am (z −1 )
w[n] = m=0 cm vm [n] ⇒ W (z) = m=0
A(z)

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


Lattice Example

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

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


Lattice Example

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


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

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


Lattice Example

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


[1, 0.2, −0.23]−0.2[0.2, −0.23, 0.2]
• k[3] = 0.2 ⇒a2 [ ] = 1−0.22 = [1, 0.256, −0.281]
[1, 0.256]+0.281[−0.281, 0.256]
• k[2] = −0.281 ⇒a1 [ ] = 1−0.2812 = [1, 0.357]

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


Lattice Example

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


[1, 0.2, −0.23]−0.2[0.2, −0.23, 0.2]
• k[3] = 0.2 ⇒a2 [ ] = 1−0.22 = [1, 0.256, −0.281]
[1, 0.256]+0.281[−0.281, 0.256]
• k[2] = −0.281 ⇒a1 [ ] = 1−0.2812 = [1, 0.357]
• k[1] = 0.357 ⇒a0 [ ] = 1

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


Lattice Example

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


[1, 0.2, −0.23]−0.2[0.2, −0.23, 0.2]
• k[3] = 0.2 ⇒a2 [ ] = 1−0.22 = [1, 0.256, −0.281]
[1, 0.256]+0.281[−0.281, 0.256]
• k[2] = −0.281 ⇒a1 [ ] = 1−0.2812 = [1, 0.357]
• k[1] = 0.357 ⇒a0 [ ] = 1
V0 (z) 1
X(z) = 1+0.2z −1 −0.23z −2 +0.2z −3

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


Lattice Example

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


[1, 0.2, −0.23]−0.2[0.2, −0.23, 0.2]
• k[3] = 0.2 ⇒a2 [ ] = 1−0.22 = [1, 0.256, −0.281]
[1, 0.256]+0.281[−0.281, 0.256]
• k[2] = −0.281 ⇒a1 [ ] = 1−0.2812 = [1, 0.357]
• k[1] = 0.357 ⇒a0 [ ] = 1
V0 (z) 1 V1 (z) 0.357+z −1
X(z) = 1+0.2z −0.23z −2 +0.2z −3
−1 X(z) = 1+0.2z −1 −0.23z −2 +0.2z −3

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


Lattice Example

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


[1, 0.2, −0.23]−0.2[0.2, −0.23, 0.2]
• k[3] = 0.2 ⇒a2 [ ] = 1−0.22 = [1, 0.256, −0.281]
[1, 0.256]+0.281[−0.281, 0.256]
• k[2] = −0.281 ⇒a1 [ ] = 1−0.2812 = [1, 0.357]
• k[1] = 0.357 ⇒a0 [ ] = 1
V0 (z) 1 V1 (z) 0.357+z −1
X(z) = 1+0.2z −0.23z −2 +0.2z −3
−1 X(z) = 1+0.2z −1 −0.23z −2 +0.2z −3

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

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


Lattice Example

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


[1, 0.2, −0.23]−0.2[0.2, −0.23, 0.2]
• k[3] = 0.2 ⇒a2 [ ] = 1−0.22 = [1, 0.256, −0.281]
[1, 0.256]+0.281[−0.281, 0.256]
• k[2] = −0.281 ⇒a1 [ ] = 1−0.2812 = [1, 0.357]
• k[1] = 0.357 ⇒a0 [ ] = 1
V0 (z) 1 V1 (z) 0.357+z −1
X(z) = 1+0.2z −0.23z −2 +0.2z −3
−1 X(z) = 1+0.2z −1 −0.23z −2 +0.2z −3

V2 (z) −0.281+0.256z −1 +z −2 V3 (z) 0.2−0.23z −1 +0.2z −2 +z −3


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

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


Lattice Example

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


[1, 0.2, −0.23]−0.2[0.2, −0.23, 0.2]
• k[3] = 0.2 ⇒a2 [ ] = 1−0.22 = [1, 0.256, −0.281]
[1, 0.256]+0.281[−0.281, 0.256]
• k[2] = −0.281 ⇒a1 [ ] = 1−0.2812 = [1, 0.357]
• k[1] = 0.357 ⇒a0 [ ] = 1
V0 (z) 1 V1 (z) 0.357+z −1
X(z) = 1+0.2z −0.23z −2 +0.2z −3
−1 X(z) = 1+0.2z −1 −0.23z −2 +0.2z −3

V2 (z) −0.281+0.256z −1 +z −2 V3 (z) 0.2−0.23z −1 +0.2z −2 +z −3


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

m V (z) B(z)
Add together multiples of X(z) to create an arbitrary 1+0.2z −1 −0.23z −2 +0.2z −3

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


Lattice Example Numerator

PM
Form a new output signal as w[n] = m=0 cm vm [n]

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


Lattice Example Numerator

PM
Form a new output signal as w[n] = m=0 cm vm [n]
PM
W (z) = m=0 cm Vm (z) =
B(z)
1+0.2z −0.23z −2 +0.2z −3 X(z)
−1

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


Lattice Example Numerator

PM
Form a new output signal as w[n] = m=0 cm vm [n]
PM
W (z) = m=0 cm Vm (z) =
B(z)
1+0.2z −0.23z −2 +0.2z −3 X(z)
−1

V0 (z) 1 V1 (z) 0.357+z −1


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

V2 (z) −0.281+0.256z −1 +z −2 V3 (z) 0.2−0.23z −1 +0.2z −2 +z −3


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

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


Lattice Example Numerator

PM
Form a new output signal as w[n] = m=0 cm vm [n]
PM
W (z) = m=0 cm Vm (z) =
B(z)
1+0.2z −0.23z −2 +0.2z −3 X(z)
−1

V0 (z) 1 V1 (z) 0.357+z −1


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

V2 (z) −0.281+0.256z −1 +z −2 V3 (z) 0.2−0.23z −1 +0.2z −2 +z −3


=
X(z) 1+0.2z −1 −0.23z −2 +0.2z −3 X(z) = 1+0.2z −1 −0.23z −2 +0.2z −3
    
b[0] 1 0.357 −0.281 0.2 c0
 b[1]   0 1 0.256 −0.23 
  c1 
 
We have =
 b[2]   0 0 1 0.2   c2 
b[3] 0 0 0 1 c3

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


Lattice Example Numerator

PM
Form a new output signal as w[n] = m=0 cm vm [n]
PM
W (z) = m=0 cm Vm (z) =
B(z)
1+0.2z −0.23z −2 +0.2z −3 X(z)
−1

V0 (z) 1 V1 (z) 0.357+z −1


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

V2 (z) −0.281+0.256z −1 +z −2 V3 (z) 0.2−0.23z −1 +0.2z −2 +z −3


=
X(z) 1+0.2z −1 −0.23z −2 +0.2z −3 X(z) = 1+0.2z −1 −0.23z −2 +0.2z −3
    
b[0] 1 0.357 −0.281 0.2 c0
 b[1]   0 1 0.256 −0.23 
  c1 
 
We have =
 b[2]   0 0 1 0.2   c2 
b[3] 0 0 0 1 c3
   −1  
c0 1 0.357 −0.281 0.2 b[0]
 c1   0 1 0.256 −0.23   b[1] 
 c2  = 
Hence choose cm as      
0 0 1 0.2   b[2] 
c3 0 0 0 1 b[3]

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


Summary

10: Digital Filter Structures


• Direct Forms
• Filter block diagrams
• Transposition ◦ Direct forms
• State Space +
• Precision Issues ◦ Transposition
• Coefficient Sensitivity ◦ State space representation
• 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 – 18 / 19


Summary

10: Digital Filter Structures


• Direct Forms
• Filter block diagrams
• Transposition ◦ Direct forms
• State Space +
• Precision Issues ◦ Transposition
• Coefficient Sensitivity ◦ State space representation
• Cascaded Biquads
• Pole-zero Pairing/Ordering
• Linear Phase • Precision issues: coefficient error, arithmetic error
• Hardware Implementation
• Allpass Filters
◦ cascaded biquads
• 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 – 18 / 19


Summary

10: Digital Filter Structures


• Direct Forms
• Filter block diagrams
• Transposition ◦ Direct forms
• State Space +
• Precision Issues ◦ Transposition
• Coefficient Sensitivity ◦ State space representation
• Cascaded Biquads
• Pole-zero Pairing/Ordering
• Linear Phase • Precision issues: coefficient error, arithmetic error
• Hardware Implementation
• Allpass Filters
◦ cascaded biquads
• Lattice Stage +
• Example • Allpass filters
A(z) ↔ D(z)
• Allpass Lattice ◦ first and second order sections
• Lattice Filter
• Lattice Example
• Lattice Example
Numerator
• Summary
• MATLAB routines

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


Summary

10: Digital Filter Structures


• Direct Forms
• Filter block diagrams
• Transposition ◦ Direct forms
• State Space +
• Precision Issues ◦ Transposition
• Coefficient Sensitivity ◦ State space representation
• Cascaded Biquads
• Pole-zero Pairing/Ordering
• Linear Phase • Precision issues: coefficient error, arithmetic error
• Hardware Implementation
• Allpass Filters
◦ cascaded biquads
• Lattice Stage +
• Example • Allpass filters
A(z) ↔ D(z)
• Allpass Lattice ◦ first and second order sections
• Lattice Filter
• Lattice Example
• Lattice Example
• Lattice filters
Numerator ◦ Arbitrary allpass response
• Summary
• MATLAB routines ◦ Arbitrary IIR response by summing intermediate outputs

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


Summary

10: Digital Filter Structures


• Direct Forms
• Filter block diagrams
• Transposition ◦ Direct forms
• State Space +
• Precision Issues ◦ Transposition
• Coefficient Sensitivity ◦ State space representation
• Cascaded Biquads
• Pole-zero Pairing/Ordering
• Linear Phase • Precision issues: coefficient error, arithmetic error
• Hardware Implementation
• Allpass Filters
◦ cascaded biquads
• Lattice Stage +
• Example • Allpass filters
A(z) ↔ D(z)
• Allpass Lattice ◦ first and second order sections
• Lattice Filter
• Lattice Example
• Lattice Example
• Lattice filters
Numerator ◦ Arbitrary allpass response
• Summary
• MATLAB routines ◦ Arbitrary IIR response by summing intermediate outputs

For further details see Mitra: 8.

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


MATLAB routines

10: Digital Filter Structures


b(z −1)
→ k 1−prkkz−1
P
• Direct Forms residuez a(z −1 )
• Transposition
b(z −1) Q b0,l +b1,l z−1 +b2,l z−2
• State Space
• Precision Issues
+
tf2sos,sos2tf a(z −1 ) ↔ l 1+a1,l z −1 +a2,l z −2
• Coefficient Sensitivity Q b0,l +b1,l z−1 +b2,l z−2
• Cascaded Biquads zp2sos,sos2zp {zm , pk , g} ↔ l 1+a∈1,l z −1 +a2,l z −2
• Pole-zero Pairing/Ordering (

• Linear Phase x = Ax + Bu
• Hardware Implementation zp2ss,ss2zp {zm , pk , g} ↔
• Allpass Filters y = Cx + Du
• Lattice Stage + (
• Example
A(z) ↔ D(z) b(z −1) x′ = Ax + Bu
tf2ss,ss2tf a(z −1 ) ↔
• Allpass Lattice
• Lattice Filter
y = Cx + Du
• Lattice Example
• Lattice Example
poly poly(A) = det (zI−A)
Numerator
• Summary
• MATLAB routines

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

Das könnte Ihnen auch gefallen