EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter...

55
EECS 452 – Lecture 9 Today: Finite precision FIR/IIR filter design Overflow and roundoff errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture added to schedule: Real time embedded DSP Oct 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 I say, ”Why not?” George Barnard Shaw EECS 452 – Fall 2014 Lecture 9 – Page 1/55 Tue – 9/30/2014

Transcript of EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter...

Page 1: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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: EECS 452 { Lecture 9 ·  · 2014-09-30EECS 452 { Lecture 9 Today: Finite precision FIR/IIR lter design Over ow and roundo errors Announcements: Hw4 due on thursday. Oct 9 (Thu) lecture

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