Page 1
EECS 452 – Lecture 9
Today: Finite precision FIR/IIR filter designOverflow and roundoff errors
Announcements:Hw4 due on thursday.Oct 9 (Thu) lecture added to schedule:
Real time embedded DSPOct 10 (Fri): deadline for parts orders
References: Please see last slide.
Last one out should close the lab door!!!!
Please keep the lab clean and organized.
You see things; and you say, ”Why?” But I dream things that never were; and Isay, ”Why not?”
George Barnard Shaw
EECS 452 – Fall 2014 Lecture 9 – Page 1/55 Tue – 9/30/2014
Page 2
Effect of IIR coefficient quantization
−1.5 −1 −0.5 0 0.5 1 1.5
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Real Part
Imag
inar
y P
art
Pole/Zero Plot
Bandpass Elliptic: Zero
Bandpass Elliptic: Pole
H(z) =b0 + b1z
−1 + b2z−2
a0 + a1z−1 + a2z−2
I If quantize denominator coefficients poles might move closer to theunit circle.
I This can cause the filter to become unstable or quasi-stable.
I Unstable: quantized pole outside of unit circle.I Quasi-stable: quantized pole on the unit circle.
EECS 452 – Fall 2014 Lecture 9 – Page 2/55 Tue – 9/30/2014
Page 3
IIR coefficient quantization and limit cycles (Lyons)
H(z) =1
1− 1.3z−1 + 0.76z−2
I Adder rounds its output to nearest integer.
I Eternal oscillation occurs when y(−2) = 0, y(−1) = 8 andx[0] = x[1] = · · · 0.
EECS 452 – Fall 2014 Lecture 9 – Page 3/55 Tue – 9/30/2014
Page 4
Roundoff/overflow: FIR Direct and
Transpose FormsY =
b0X + b1(z−1X) + . . .+ bM (z−MX)
-1-1
0�2
-1��
Y =(b0X)+(b1X)z−1 + . . .+(bMX)z−M
ÄMñ
ÄN
ÄO
Äj
ÄjJN
ó
òJN
òJN
òJN
EECS 452 – Fall 2014 Lecture 9 – Page 4/55 Tue – 9/30/2014
Page 5
Controlling roundoff/overflow in FIR filtersy[n] = b0x[n] + b1x[n− 1] + · · ·+ bMx[n−M ]
I Roundoff errors and overflows may occur as the result of anymultiply, add and accumulate (MAC) operations.
I To minimize effect of roundoff error use 16 bit Q15 binary andchoose a design that minimizes dynamic range of coefficients.
I To limit overflow we will do the following:
I Scale the input values x[n] so that |x[n]| ≤ 1. Given N inputsamples x[0], x[1], . . . , x[N − 1]:
x[n]→ x[n]
max{|x[k]|}Nk=1
, n = 0, . . . , N − 1
.I Scale the FIR coefficients b0, . . . , bM so that |bk| ≤ 1 and|y[n]| ≤ 1. Assume FIR coefficients determined by fdatool
bi →bi∑M
k=0 |bk|, i = 0, . . . ,M
I This will ensure no overflow in FIR filter MACs.EECS 452 – Fall 2014 Lecture 9 – Page 5/55 Tue – 9/30/2014
Page 6
Roundoff/overflow: IIR Direct forms 1 and 2
Direct Form 1 (DF1)
H(z) = B(z)× 1A(z)
-1-1
0�
n,�
2
-1 n, ��
-1-1
�2
-1��
n,1n,�
n,
n,2d,�d,1d,2d,�
d,d,
Direct Form 2 (DF2)
H(z) = 1A(z)
×B(z)
-1-1
�2
-1��
d,�d,1d,2d,�
d,d,
-1-1
0�
n,�
2
-1 n, ��
n,1n,�
n,
n,2
EECS 452 – Fall 2014 Lecture 9 – Page 6/55 Tue – 9/30/2014
Page 7
IIR Canonical direct form 2
-1-1
�2
-1��
d,�d,1d,2d,�
d,d,
-1-1
0�
n,�
2
-1 n, ��
n,1n,�
n,
n,2
- ��
-1-1
0�
��2 2
�22
-1
a) Non-canonical Direct Form 2. b) DF2 in canonical form.
EECS 452 – Fall 2014 Lecture 9 – Page 7/55 Tue – 9/30/2014
Page 8
Overflow sensitivity of IIR filters.
Controlling roundoff and overflow in IIR filters is more complicatedthan in FIR
Some IIR design approaches are more sensitive than others.
There are many ways to design IIR filters:
I Butterworth — maximally flatI Chebyshev
I Type 1: equiripple in the passband, monotone in the stopband.I Type 2: monotone in the pass band, equiripple in the stopband.
I elliptic — equiripple in the passband and in the stopband.Optimal in the sense that for a given order it passes throughthe smallest possible transition band.
EECS 452 – Fall 2014 Lecture 9 – Page 8/55 Tue – 9/30/2014
Page 9
Properties of these filters
0 1000 2000 3000 4000 5000 6000 7000 8000−80−60−40−20
0
dB
frequency (Hz)
Butter
0 1000 2000 3000 4000 5000 6000 7000 8000−80−60−40−20
0
dB
frequency (Hz)
Cheby1
0 1000 2000 3000 4000 5000 6000 7000 8000−80−60−40−20
0
dB
frequency (Hz)
Cheby2
0 1000 2000 3000 4000 5000 6000 7000 8000−80−60−40−20
0
dB
frequency (Hz)
Elliptic
Butterworth. Maximally flat in thepass band. Monotonic roll off in thestop band.
Chebyshev type 1. Equiripple in thepass band. Monotonic roll off in thestop band.
Chebyshev type 2. Monotonic in thepass band. Equiripple in the stopband.
Elliptic. Equiripple both in the passand stop bands. Optimal transitionbetween pass and stop bands.
EECS 452 – Fall 2014 Lecture 9 – Page 9/55 Tue – 9/30/2014
Page 10
Pole and Zero Locations
Butterworth: 52 polesChebyshev 1: 16 polesChebyshev 2: 16 polesElliptic: 8 poles
−3 −2 −1 0 1
−1
0
1
Real Part
Imag
inar
y P
art
Butter
−1 0 1−1
−0.5
0
0.5
1
Real Part
Imag
inar
y P
art
Cheby1
−1 0 1−1
−0.5
0
0.5
1
Real Part
Imag
inar
y P
art
Cheby2
−1 0 1−1
−0.5
0
0.5
1
Real Part
Imag
inar
y P
art
Elliptic
EECS 452 – Fall 2014 Lecture 9 – Page 10/55 Tue – 9/30/2014
Page 11
Butterworth filter coefficient values
ButterNumerator coefficients (53)
0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.00000000000.0000000000 0.0000000000 0.0000000000 0.0000000001 0.00000000040.0000000016 0.0000000060 0.0000000206 0.0000000635 0.00000017680.0000004479 0.0000010359 0.0000021936 0.0000042653 0.00000763270.0000125939 0.0000191907 0.0000270414 0.0000352714 0.00004261960.0000477340 0.0000495699 0.0000477340 0.0000426196 0.00003527140.0000270414 0.0000191907 0.0000125939 0.0000076327 0.00000426530.0000021936 0.0000010359 0.0000004479 0.0000001768 0.00000006350.0000000206 0.0000000060 0.0000000016 0.0000000004 0.00000000010.0000000000 0.0000000000 0.0000000000 0.0000000000 0.00000000000.0000000000 0.0000000000 0.0000000000
Denominator coefficients (53)1.000000 -14.485235 108.892629 -560.590282 2207.916845
-7059.412172 19007.953411 -44181.160327 90234.032916 -164088.539461268398.869177 -398070.141447 538774.788242 -668949.194632 765208.835443
-809294.988642 793688.087323 -723548.120952 614376.363748 -486708.393544360206.142051 -249310.489583 161505.343889 -97980.476106 55687.060582-29655.011284 14796.263025 -6915.328167 3026.163865 -1239.130105
474.376094 -169.610425 56.564993 -17.568725 5.072718-1.358702 0.336753 -0.077009 0.016194 -0.0031190.000548 -0.000087 0.000013 -0.000002 0.000000
-0.000000 0.000000 -0.000000 0.000000 -0.0000000.000000 -0.000000 0.000000
EECS 452 – Fall 2014 Lecture 9 – Page 11/55 Tue – 9/30/2014
Page 12
Chebyshev 1 and 2 filter coefficient values
Cheby1Numerator coefficients (17)
0.0000000085 0.0000001356 0.0000010173 0.0000047474 0.00001542900.0000370296 0.0000678875 0.0000969822 0.0001091049 0.00009698220.0000678875 0.0000370296 0.0000154290 0.0000047474 0.00000101730.0000001356 0.0000000085
Denominator coefficients1.000000 -9.817865 48.302917 -156.772970 373.680906
-691.001892 1022.672308 -1233.283016 1223.105455 -1000.026974671.545993 -366.484942 159.400953 -53.461355 13.056916-2.078911 0.163038
Cheby2Numerator coefficients (17)
0.0094956544 0.0261944594 0.0770790872 0.1525062902 0.27171220080.4072371571 0.5434552757 0.6418315575 0.6787499757 0.64183155750.5434552757 0.4072371571 0.2717122008 0.1525062902 0.07707908720.0261944594 0.0094956544
Denominator coefficients1.000000 -1.777756 4.322853 -4.364343 5.779933
-3.561359 3.418699 -1.144368 1.056520 -0.0775440.205087 0.036841 0.030444 0.009021 0.0030020.000653 0.000090
EECS 452 – Fall 2014 Lecture 9 – Page 12/55 Tue – 9/30/2014
Page 13
Elliptic filter coefficient values
EllipticNumerator coefficients (9)
0.0090414378 0.0058832667 0.0246209031 0.0195809558 0.03169182450.0195809558 0.0246209031 0.0058832667 0.0090414378
Denominator coefficients (9)1.000000 -3.841248 8.219775 -11.387778 11.100736
-7.650511 3.645340 -1.096464 0.161832
EECS 452 – Fall 2014 Lecture 9 – Page 13/55 Tue – 9/30/2014
Page 14
Overflow IIR filter comparisons
The Butterworth realization has the most coefficients and they havelarge dynamic range. This isn’t going to implement well on a 16-bitprocessor or even on a 32 bit processor.
The Chebyshev coefficients probably are less a problem but therange in values is still large.
The Elliptic filter has the fewest coefficient values.
All of the filter realizations have some coefficient values significantlylarger than 1. Some sort of scaling procedure must be implemented.
EECS 452 – Fall 2014 Lecture 9 – Page 14/55 Tue – 9/30/2014
Page 15
Overflow and saturation in IIR filters
I Adder and MAC overflows cause very significant I/O distortion anderrors.
I Must protect against overflows at all IIR signal nodes: internaloverflows.
I Two ways to correct for overflow:
I Scaling the input down to an acceptable level.I Reorganizing IIR filter operations to minimize overflow at
every node.
I Design approaches
I Scaling: need find the right scale factor for no overflow.I Reorganizing filter realization: use most robust
implementations of transfer function (DF 1 vs DF 2).
I You will explore these approaches in Lab 5.
EECS 452 – Fall 2014 Lecture 9 – Page 15/55 Tue – 9/30/2014
Page 16
Scaling the input samples to avoid overflow
Consider a sequence of input values {x[n]} such that −1 < x[n] < 1for all n. The input values are to be divided by a scale factor S.Three values commonly used for S are:
S =
∞∑n=0
|h[n]| = ‖h‖1 = L1 norm of h
S =
( ∞∑n=0
h2[n]
)1/2
= ‖h‖2 = L2 norm of h
S = maxf|H(f)| = ‖H‖∞ = L∞ norm of H
h = {h[n]} is the filter impulse response
H(f) = Hz(ej2πf ) is transfer function over (digital) frequency
f ∈ [0, 1].
EECS 452 – Fall 2014 Lecture 9 – Page 16/55 Tue – 9/30/2014
Page 17
Which norm to use?
I The output of filter is y[k] =∑n h[n]x[k − n].
I If ‖y‖∞ = maxk |y[k]| ≤ 1 there will be no overflow.
1. Normalization of x[n] by ‖h‖1 guarantees there will be nooverflow.a
2. Normalization by ‖h‖2 does not give overflow guarantees.b
3. Normalization by ‖H‖∞ guarantees that no sinewave input willcause overflow. However, other types of inputs may still causeoverflow.
Nonetheless, due to its relative simplicity, we will only consider‖H‖∞ normalization here.
aThe well known modulus bound of functional analysis implies∣∣∑n h[n]x[k − n]
∣∣ ≤∑n |h[n]| |x[k − n]|bNormalization by
√M‖h‖2 does provide guarantees for M-th order FIR filters due
to another result of functional analysis: ‖h‖2 ≤ ‖h‖1 ≤√M‖h‖2.
EECS 452 – Fall 2014 Lecture 9 – Page 17/55 Tue – 9/30/2014
Page 18
Implementing TFs in factored form
Unfactored transfer functions, in a sense, implement the poles andzeros all at once. A small quantization error in a coefficient valuecan affect all aspects of the filter.
Implementing the poles and zeros individually may result in a morerobust implementation.
As we are only considering filters having real valued coefficients,any complex valued poles or zeros must appear in conjugate pairs.
This leads to idea of factoring transfer functions into the ratio ofthe product of quadratic factors.
EECS 452 – Fall 2014 Lecture 9 – Page 18/55 Tue – 9/30/2014
Page 19
Using biquad sections to implement a TFTo keep things simple we will assume that H(z) has an equal evennumber of poles and zeros. An IIR transfer function can be writtenin factored form as
H(z) =
N/2−1∏s=0
bs,0 + bs,1z−1 + bs,2z
−2
N/2−1∏r=0
1 + ar,1z−1 + ar,2z
−2
.
A biquadratic filter section can be used to implement a set of zerosand a set of poles.
H(z) =
N/2−1∏r=0
br,0 + br,1z−1 + br,2z
−2
1 + ar,1z−1 + ar,2z−2.
Design principle: pair up zeros and poles and order the resultingbiquad sections to obtain the best performance.
EECS 452 – Fall 2014 Lecture 9 – Page 19/55 Tue – 9/30/2014
Page 20
The DF1 and TDF1 biquad sections
b0
-a1b1
z-1
z-1
b0x
w1
v1
b2w2
v2
z-1
z-1
y
w3
v3
-a2w4
v4
z-1
z-1
(a)
-a2
x
v2
-a1
w2
w1
v1
z-1
z-1
(b)
b1
b2
w4
w3
v3
y
v4
(a) Direct form type 1 biquad section. (b) Transposed direct form 1biquad section. These are not canonical.
H(z) =b0 + b1z
−1 + b2z−2
1 + a1z−1 + a2z
−2
EECS 452 – Fall 2014 Lecture 9 – Page 20/55 Tue – 9/30/2014
Page 21
The DF2 and TDF2 biquad sections
-1-1
-1-1
0
2��
��2 22
0�2
22
�2��
(a) Direct form type 2 biquad section. (b) Transposed direct form 2biquad section.
H(z) =b0 + b1z
−1 + b2z−2
1 + a1z−1 + a2z
−2
The most commonly used biquad is direct form 2. We need to
analyze the transfer function magnitudes between input andinternal states in addition to between input and output.
EECS 452 – Fall 2014 Lecture 9 – Page 21/55 Tue – 9/30/2014
Page 22
TDF2 and DF2 biquad overflow concerns
-1-1 22
2�2�22
2�222�-1
-1 �2
������2
���2��
The filters to be designed for use in the lab will nominally haveinput to output passband gain of 1. This sets the overall transferfunction gain level. Of concern is whether or not this level will giverise to overflows internal to the filter.In order to check for this possibility in the above (TDF2) blockdiagram we are interested in the transfer functions from the input xto the values yi, wi1 and wi2 for each section i. These are thelocations at which overflows can occur.
EECS 452 – Fall 2014 Lecture 9 – Page 22/55 Tue – 9/30/2014
Page 23
Input-to-delay stage transfer functions: DF2
Input-to-v1 transfer function (in z-domain) is easily determined
V1 = X − a1z−1V1 − a2z−2V1 .
The transfer function between X and V1 is
V1X
=1
1 + a1z−1 + a2z−2.
The transfer function between X and W1 is then
W1
X=
z−1
1 + a1z−1 + a2z−2
and between X and W2
W2
X=
z−2
1 + a1z−1 + a2z−2.
EECS 452 – Fall 2014 Lecture 9 – Page 23/55 Tue – 9/30/2014
Page 24
Input-to-delay stage transfer functions: DF2
The section input-to-delay stage transfer functions:
HX→W1(z) =
W1(z)
X(z), HX→W2
(z) =W2(z)
X(z), HX→V1
(z) =V1(z)
X(z)
These are related by:
W2
X= z−1
W1
X= z−2
V1X
The magnitudes are the same on the unit circle z = ej2πf :
∣∣∣∣W2
X
∣∣∣∣ = |e−j2πf |∣∣∣∣W1
X
∣∣∣∣ = |z = e−j4πf |∣∣∣∣V1X
∣∣∣∣since |e−j2πf | = |e−j4πf | = 1.
EECS 452 – Fall 2014 Lecture 9 – Page 24/55 Tue – 9/30/2014
Page 25
DF2 biquad cascade
w31z
-1
z-1
b10x
b11
w11
-a11
-a12 b12
w12
z-1
z-1
b20
b21
w21
-a21
-a22 b22
w22
z-1
z-1
b30
b31-a31
-a32 b32
w32
z-1
z-1
b40 y
b41
w41
-a41
-a42 b42
w42
The above block diagram shows a cascade of four DF2 second orderbiquad sections. This can be used to implement an eighth orderlowpass filter.
EECS 452 – Fall 2014 Lecture 9 – Page 25/55 Tue – 9/30/2014
Page 26
The DF2 and TDF2 biquad sections (again)
-1-1
-1-1
0
2��
��2 22
0�2
22
�2��
(a) Direct form type 2 biquad section. (b) Transposed direct form 2biquad section.
H(z) =b0 + b1z
−1 + b2z−2
1 + a1z−1 + a2z
−2
The most commonly used biquad is direct form 2. We need to
analyze the transfer function magnitudes between input andinternal states in addition to between input and output.
EECS 452 – Fall 2014 Lecture 9 – Page 26/55 Tue – 9/30/2014
Page 27
Input-to-delay stage transfer functions: TDF2
For the TDF2 section the z-transformed equations are
Y = b0X + z−1V1,
V1 = b1X − a1Y + z−1V2,
V2 = b2X − a2Y.
Substituting the equation for Y into the equations for V1 and V2gives
V1 = b1X − a1b0X − a1z−1V1 + z−1V2,
V2 = b2X − a2b0X − a2z−1V1.[1 + a1z
−1 −z−1
a2z−1 1
][V1
V2
]=
[(b1 − a1b0)
(b2 − a2b0)
]X.
EECS 452 – Fall 2014 Lecture 9 – Page 27/55 Tue – 9/30/2014
Page 28
Solving for the TDF2 biquad TFs
The two-by-two matrix is easily inverted giving transfer functions,in non-matrix form,
V1X
=b1 − a1b0 + (b2 − a2b0)z−1
1 + a1z−1 + a2z−2,
V2X
=b2 − a2b0 + (a1b2 − a2b1)z−1
1 + a1z−1 + a2z−2.
W1
X= z−1
V1X
andW2
X= z−1
V2X.
EECS 452 – Fall 2014 Lecture 9 – Page 28/55 Tue – 9/30/2014
Page 29
TDF2 biquad cascade
-1-1 22
2�2�22
2�222�-1
-1 �2
�����2
���2�� -1
-1 32
3�3�32
3�323� -1
-1 42
4�4�42
4�424�
The above block diagram shows a cascade of four TDF2 secondorder biquad sections. This can be used to implement an eighthorder lowpass filter.
EECS 452 – Fall 2014 Lecture 9 – Page 29/55 Tue – 9/30/2014
Page 30
Multistage analysis of overflow proclivity
I We can now illustrate the analysis of overflow of DF2 and TDF2.
I Given: a quad factorization of the IIR filter
I Given: the input-to-stage transfer functions H found above
I The procedure is to evaluate maxf |H(f)| = ‖H ‖∞ for each stageand scale the input by the maximum over all the stages.
I This will result in:
I Guarantee of no-overflow for sinusoidal inputs.I For other inputs will need to experimentally validate.
I Note: the following matter a lot
I The matching of pole pairs and zero pairs for each biquadsection.
I The cascade order of the biquad sections.
I Pairing and cascade ordering are non trivial
I M ! possible ways of permuting the cascade order.
EECS 452 – Fall 2014 Lecture 9 – Page 30/55 Tue – 9/30/2014
Page 31
DF2 biquad cascade transfer functions
w31z
-1
z-1
b10x
b11
w11
-a11
-a12 b12
w12
z-1
z-1
b20
b21
w21
-a21
-a22 b22
w22
z-1
z-1
b30
b31-a31
-a32 b32
w32
z-1
z-1
b40 y
b41
w41
-a41
-a42 b42
w42
Write Hi = YiXi
, Hi1 = Wi1Xi
and Hi2 = Wi2Xi
. Because of our choice
of the L∞ norm we are interested in the magnitudes of the input todelay stage filter functions:
section 1 H11 H1
section 2 H1H21 H1H2
section 3 H1H2H31 H1H2H3
section 4 H1H2H3H41 H1H2H3H4
EECS 452 – Fall 2014 Lecture 9 – Page 31/55 Tue – 9/30/2014
Page 32
DF2 section delay output magnitudes are equal
Within a section the magnitudes of the section input to the delaystage outputs are equal.
If we evaluate the transfer function magnitude for one delay stagewe have the same result for the other delay stage output.
We don’t have to determine the input to delay stage output transferfunctions for both delay stages in a DF2 biquad. A work savings.
EECS 452 – Fall 2014 Lecture 9 – Page 32/55 Tue – 9/30/2014
Page 33
TDF2 biquad cascade transfer functions
-1-1 22
2�2�22
2�222�-1
-1 �2
�����2
���2�� -1
-1 32
3�3�32
3�323� -1
-1 42
4�4�42
4�424�
Write Hi = YiXi
, Hi1 = Wi1Xi
and Hi2 = Wi2Xi
. Because of our choice
of the L∞ norm we are interested in the magnitudes of the input todelay stage filter functions:
section 1 H11 H12 H1
section 2 H1H21 H1H22 H1H2
section 3 H1H2H31 H1H2H32 H1H2H3
section 4 H1H2H3H41 H1H2H3H42 H1H2H3H4
EECS 452 – Fall 2014 Lecture 9 – Page 33/55 Tue – 9/30/2014
Page 34
Overflow resistant IIR filter implementationGoal: implement IIR LPF filtera to meet given specifications.
Procedure: Use MATLAB for design and TI supplied IIR filterfunctions (DSPlib) for implementation.
What could possibly go wrong?
I TI supplied functions are mostly DF2. The DF2 has internalresonance peaks leading to gain exceeding one and resulting inoverflow for Q15 inputs and outputs.
I MATLAB design may give coefficient values that exceed one,leading to Q15 overflow.
First we deal with gain-induced overflow of internal states:
I Distributing the gain over biquad sections.
I Scaling the input x[n] to avoid internal overflow.
aWhile we will not discuss it here, overflow resistant implementation of other typesof IIR filters (BPF, BSF, etc) is similar.
EECS 452 – Fall 2014 Lecture 9 – Page 34/55 Tue – 9/30/2014
Page 35
Controlling gain-induced overflow1. Design IIR LPF filter using MATLAB and obtain poles and zeros of
TF Hz(z).
2. Construct biquad factorization: Hz(z) = H(1)z (z) . . . H
(M)z (z)
2.1 List the poles of Hz in order of decreasing distance to unitcircle (pole closest to unit circle is at bottom of list).
2.2 For last pole on list match it with the zero closest to it.2.3 Group this matched pair with the conjugate pair (h[k] is real
valued).2.4 Progress up the list and construct successive biquad sections.
3. Scale numerator coefficients: force each biquad to have unit gain at
DC(
b0+b1+b21+a1+a2
= 1)
. (Note: This does not guarantee internal gains
less than one).
4. Compute input-to-delay stage TF Hx→i(f) for all internal states i.
5. Scale input x[n] by replacing by x[n]/S whereS = maxi maxf |Hx→i(f)|.
6. Can we use Q15 for numerator and denominator coefficients ofbiquads?. (Below)
EECS 452 – Fall 2014 Lecture 9 – Page 35/55 Tue – 9/30/2014
Page 36
Pole - zero pairing example
−1 0 1−1
−0.5
0
0.5
1
Real Part
Imag
inar
y P
art
Elliptic
EECS 452 – Fall 2014 Lecture 9 – Page 36/55 Tue – 9/30/2014
Page 37
Pole - zero pairing example
−1 0 1−1
−0.5
0
0.5
1
Real Part
Ima
gin
ary
Pa
rt
Elliptic
EECS 452 – Fall 2014 Lecture 9 – Page 37/55 Tue – 9/30/2014
Page 38
Example of individual biquad TFs
The four plots show thetransfer functions of thebiquad sections for an eighthorder elliptic lowpass filter.
Going from the top down wehave
H1(f)H2(f)H3(f)H4(f)
The sections are ordered lowestQ to highest Q.
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
max: 1.000
frequency (Hz)
mag
nitu
de
elliptic individual section 1
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
1.5
max: 1.366
frequency (Hz)
mag
nitu
de
elliptic individual section 2
0 1000 2000 3000 4000 5000 6000 7000 80000
1
2
max: 2.109
frequency (Hz)
mag
nitu
de
elliptic individual section 3
0 1000 2000 3000 4000 5000 6000 7000 80000
2
4
max: 4.611
frequency (Hz)
mag
nitu
deelliptic individual section 4
EECS 452 – Fall 2014 Lecture 9 – Page 38/55 Tue – 9/30/2014
Page 39
Example of moving through a cascade
The four plots show thedevelopment of the transferfunction of an eighth orderelliptic lowpass filter as onemoves between sections goingfrom input to output.
Going from the top down wehave
H1(f)H1(f)H2(f)H1(f)H2(f)H3(f)
H1(f)H2(f)H3(f)H4(f) = H(f)
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
max: 1.000
frequency (Hz)
mag
nitu
de
elliptic partial cascade section 1
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
max: 1.000
frequency (Hz)
mag
nitu
de
elliptic partial cascade section 2
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
max: 1.001
frequency (Hz)
mag
nitu
de
elliptic partial cascade section 3
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
max: 1.012
frequency (Hz)
mag
nitu
de
elliptic partial cascade section 4
EECS 452 – Fall 2014 Lecture 9 – Page 39/55 Tue – 9/30/2014
Page 40
Example of moving through a cascade (dB)
The four plots show the develop-ment of the transfer function ofan eighth order elliptic lowpassfilter as one moves between sec-tions going from input to output.
Going from the top down we have
H1(f)H1(f)H2(f)H1(f)H2(f)H3(f)H1(f)H2(f)H3(f)H4(f) = H(f)
0 1000 2000 3000 4000 5000 6000 7000 8000−80−60−40−20
0
frequency (Hz)
mag
nitu
de (
dB)
elliptic partial cascade section 1
0 1000 2000 3000 4000 5000 6000 7000 8000−80−60−40−20
0
frequency (Hz)
mag
nitu
de (
dB)
elliptic partial cascade section 2
0 1000 2000 3000 4000 5000 6000 7000 8000−80−60−40−20
0
frequency (Hz)
mag
nitu
de (
dB)
elliptic partial cascade section 3
0 1000 2000 3000 4000 5000 6000 7000 8000−80−60−40−20
0
frequency (Hz)
mag
nitu
de (
dB)
elliptic partial cascade section 4
EECS 452 – Fall 2014 Lecture 9 – Page 40/55 Tue – 9/30/2014
Page 41
Expanded Passband — Moving Through Cascade (dB)
The four plots show the develop-ment of the transfer function ofan eighth order elliptic low passfilter as one moves between sec-tions going from input to output.
Going from the top down we have
H1(f)H1(f)H2(f)H1(f)H2(f)H3(f)H1(f)H2(f)H3(f)H4(f) = H(f)
0 1000 2000 3000 4000 5000 6000 7000 8000−1
0
1
frequency (Hz)
mag
nitu
de (
dB)
elliptic partial cascade section 1
0 1000 2000 3000 4000 5000 6000 7000 8000−1
0
1
frequency (Hz)
mag
nitu
de (
dB)
elliptic partial cascade section 2
0 1000 2000 3000 4000 5000 6000 7000 8000−1
0
1
frequency (Hz)
mag
nitu
de (
dB)
elliptic partial cascade section 3
0 1000 2000 3000 4000 5000 6000 7000 8000−1
0
1
frequency (Hz)
mag
nitu
de (
dB)
elliptic partial cascade section 4
EECS 452 – Fall 2014 Lecture 9 – Page 41/55 Tue – 9/30/2014
Page 42
Biquad input-to-delay stage TFs: DF2
|H11(f)|
|H21(f)|
|H31(f)|
|H41(f)|
0 1000 2000 3000 4000 5000 6000 7000 80000
2
4
max: 3.976
frequency (Hz)
mag
nitu
de
elliptic DF2 internal section 1
0 1000 2000 3000 4000 5000 6000 7000 80000
1
2
3
max: 3.186
frequency (Hz)
mag
nitu
de
elliptic DF2 internal section 2
0 1000 2000 3000 4000 5000 6000 7000 80000
2
4
6
max: 6.090
frequency (Hz)
mag
nitu
de
elliptic DF2 internal section 3
0 1000 2000 3000 4000 5000 6000 7000 80000
10
20
max: 21.332
frequency (Hz)
mag
nitu
de
elliptic DF2 internal section 4
EECS 452 – Fall 2014 Lecture 9 – Page 42/55 Tue – 9/30/2014
Page 43
Filter input-to-delay stage TFs: DF2
|H11(f)|
|H1(f)H21(f)|
|H1(f)H2(f)H31(f)|
|H1(f)H2(f)H3(f)H41(f)|
0 1000 2000 3000 4000 5000 6000 7000 80000
2
4
max: 3.976
frequency (Hz)
mag
nitu
de
elliptic DF2 internal partial cascade section 1
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
1.5
max: 1.681
frequency (Hz)
mag
nitu
de
elliptic DF2 internal partial cascade section 2
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
1.5
max: 1.506
frequency (Hz)
mag
nitu
de
elliptic DF2 internal partial cascade section 3
0 1000 2000 3000 4000 5000 6000 7000 80000
2
4
max: 4.286
frequency (Hz)
mag
nitu
de
elliptic DF2 internal partial cascade section 4
EECS 452 – Fall 2014 Lecture 9 – Page 43/55 Tue – 9/30/2014
Page 44
Filter input-to-delay stage TFs: DF2 - max gain
0 1000 2000 3000 4000 5000 6000 7000 80000
2
4
mag
nitu
de
frequency (Hz)
elliptic TF2 max of internal TF magnitudes
max: 4.286
By nominally scaling the input by 4 we can avoid overflow in thisrealization. If a 12-bit converter is being used and a 16-bit word size, thisis no great loss.
NB: this transfer function isn’t the one used in lab.
EECS 452 – Fall 2014 Lecture 9 – Page 44/55 Tue – 9/30/2014
Page 45
Biquad input-to-delay stage TFs: TDF2
|H11(f)|
|H12(f)|
|H21(f)|
|H22(f)|
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
max: 0.929
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal section 1/1
0 1000 2000 3000 4000 5000 6000 7000 80000
0.1
0.2
0.3
max: 0.286
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal section 1/2
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
max: 1.284
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal section 2/1
0 1000 2000 3000 4000 5000 6000 7000 80000
0.2
0.4
0.6
0.8
max: 0.769
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal section 2/2
EECS 452 – Fall 2014 Lecture 9 – Page 45/55 Tue – 9/30/2014
Page 46
Biquad input-to-delay stage TFs: TDF2 (ctd)
|H31(f)|
|H32(f)|
|H41(f)|
|H42(f)|
0 1000 2000 3000 4000 5000 6000 7000 80000
1
2
max: 2.057
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal section 3/1
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
1.5
max: 1.698
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal section 3/2
0 1000 2000 3000 4000 5000 6000 7000 80000
2
4
max: 4.590
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal section 4/1
0 1000 2000 3000 4000 5000 6000 7000 80000
2
4
max: 4.359
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal section 4/2
EECS 452 – Fall 2014 Lecture 9 – Page 46/55 Tue – 9/30/2014
Page 47
Filter input-to-delay stage TFs: TDF2
|H11(f)|
|H12(f)|
|H1(f)H21(f)|
|H1(f)H22(f)|
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
max: 0.929
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal cascaded section 1/1
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
max: 0.286
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal cascaded section 1/2
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
max: 0.722
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal cascaded section 2/1
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
max: 0.340
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal cascaded section 2/2
EECS 452 – Fall 2014 Lecture 9 – Page 47/55 Tue – 9/30/2014
Page 48
Filter input-to-delay stage TFs: TDF2 (ctd)
|H1(f)H2(f)H31(f)|
|H1(f)H2(f)H32(f)|
|H1(f)H2(f)H3(f)H41(f)|
|H1(f)H2(f)H3(f)H42(f)|
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
max: 0.525
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal cascaded section 3/1
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
max: 0.402
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal cascaded section 3/2
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
max: 0.924
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal cascaded section 4/1
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
max: 0.874
frequency (Hz)
mag
nitu
de
elliptic TDF2 internal cascaded section 4/2
EECS 452 – Fall 2014 Lecture 9 – Page 48/55 Tue – 9/30/2014
Page 49
Filter input-to-delay stage TFs: TDF2 - max gain
0 1000 2000 3000 4000 5000 6000 7000 80000
0.5
1
mag
nitu
de
frequency (Hz)
elliptic TDF2 max of internal TF magnitudesmax: 0.929
EECS 452 – Fall 2014 Lecture 9 – Page 49/55 Tue – 9/30/2014
Page 50
Implementing a biquad cascade
The implementation steps are:
I Factor the transfer function into pole and zero pairs.
I Choose a biquad architecture.
I Relate the biquad coefficients to the chosen architecturecoefficients.
I Order the poles and the zeros to control internal resonancelevels.
I Distribute the gain between the biquad sections.
I Program and get to work.
I Test.
EECS 452 – Fall 2014 Lecture 9 – Page 50/55 Tue – 9/30/2014
Page 51
Overflow issues for biquad coefficients
Consider the biquad
H(z) =b0 + b1z
−1 + b2z−2
1 + a1z−1 + a2z−2=b0z
2 + b1z + b2z2 + a1z + a2
.
The poles of H(z) are determined by z2 + a1z + a2. Assume acomplex valued pole pair, p1 = rejθ and p2 = re−jθ.
(z − p1)(z − p2) = z2 − 2r cos(θ)z + r2 = z2 + a1z + a2.
In order for the filter to be (conditionally) stable the biquad poleshave to be (on or) within the unit circle.
Because 0 ≤ r ≤ 1 we have that 0 ≤ a2 ≤ 1 and −2 < a1 ≤ 2.In addition, a2 ≥ a21/4.
EECS 452 – Fall 2014 Lecture 9 – Page 51/55 Tue – 9/30/2014
Page 52
Overflow issues for biquad coefficientsWe will be using Q15 numeric format values in the C5515 andDE2-70. The magnitude of the a1 value can be greater than 1 (butless than 2). We need to worry about this.
There also may be scaling concerns with the b coefficient values aswell. One needs to stay alert.
The b values have generally been well behaved. Occasionally thereare b1 values with magnitude greater than 1. Large b values can behandled by scaling all of the b coefficients. This affects only thegain through the system.
Scaling cannot be applied to the a values without changing theshape of the transfer function. (Recall a0 = 1 requirement).Alternatives:
1. Implement each multiply aix[n] as ((ai/2)x[n])2.
2. Use Q(14) representation.
EECS 452 – Fall 2014 Lecture 9 – Page 52/55 Tue – 9/30/2014
Page 53
Coefficient scaling possibilities
If we divide the a’s by k we need to multiply the sumby k.
Use Q14 data and Q14 coefficients?
Q14×Q14 gives Q28. To make Q28 into Q14 shift left2 then truncate. To make Q29 into Q14 need to leftshift 1 then truncate.
Use Q15 data and Q14 coefficients?
Q15×Q14 gives Q29. To make Q29 into Q15 shift left2 and truncate.
Use Q15 data and Q15 coefficients?
Q15×Q15 gives Q30.To make Q30 into Q15 shift left1 and truncate.
Need to remember to round before truncating.
òJN
òJN
ÄM óñ
ÄNïN
îN
J~NLâ
J~OLâ ÄOïO
îO
â
EECS 452 – Fall 2014 Lecture 9 – Page 53/55 Tue – 9/30/2014
Page 54
Summary of what we covered today
I Roundoff and overflow for FIR filters
I Roundoff and overflow for IIR filters
I Finite precision IIR FIR filter design strategies
EECS 452 – Fall 2014 Lecture 9 – Page 54/55 Tue – 9/30/2014
Page 55
References
”Understanding digital signal processing,” R. Lyons, 2006.
”Digital signal processing,” Proakis and Manolakis, 3rd Edition.
EECS 452 – Fall 2014 Lecture 9 – Page 55/55 Tue – 9/30/2014