9
EE 445S Real-Time Digital Signal Processing Lab Fall 2013 Lab 3 IIR Filters Chao Jia Debarati Kundu Andrew Mark

EE 445S Real-Time Digital Signal Processing Lab Fall 2013

  • Upload
    abram

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

EE 445S Real-Time Digital Signal Processing Lab Fall 2013. Lab 3 IIR Filters Chao Jia Debarati Kundu Andrew Mark. Outline. IIR Filters DF-I and Implementation IIR Filter DF-II and Implementation IIR Filter SOS and Implementation. 2. IIR Filters. IIR Filters can be represented as - PowerPoint PPT Presentation

Citation preview

Page 1: EE 445S Real-Time Digital  Signal Processing Lab Fall  2013

EE 445S Real-Time Digital Signal Processing Lab

Fall 2013

Lab 3IIR FiltersChao Jia

Debarati KunduAndrew Mark

Page 2: EE 445S Real-Time Digital  Signal Processing Lab Fall  2013

2

Outline IIR Filters DF-I and Implementation IIR Filter DF-II and Implementation IIR Filter SOS and Implementation

Page 3: EE 445S Real-Time Digital  Signal Processing Lab Fall  2013

3

IIR Filters IIR Filters can be represented as

Its time domain equivalent is

This is called “Direct Form” since the multiplier coefficients in the difference equation are precisely the coefficients of the transfer function.

M

=k

kk

N

=k

kk Y(z)zaX(z)zb=Y[z]

10

M

=kk

N

=kk k]y[nak]x[nb=y[n]

10

MM2

NN21

za++za+za

zb++zb+zb+b=

X[z]

Y[z]=H[z]

211

210

1

Page 4: EE 445S Real-Time Digital  Signal Processing Lab Fall  2013

4

IIR Filters DF-I Implementation

M

=kk

N

=kk k]y[nak]x[nb=y[n]

10

Compute y[n]

Update state variablesx [ n−N ]=x [ n−N+1 ]x [ n−N+1 ]=x [ n−N+ 2 ]. .. .x [ n−1 ]=x [ n ]y [ n−M ]=y [ n−M+1 ]y [ n−M+1 ]=y [ n−M+2 ]. .. .y [ n−1 ]=y [ n ]

Page 5: EE 445S Real-Time Digital  Signal Processing Lab Fall  2013

5

IIR Filters DF-II Implementation Compute v[n]

Compute y[n]

Update state variables

N

=kk k]v[nax[n]=v[n]

1

N

=kk0 k]v[nb+v[n]b=y[n]

1

v [ n−N ]=v [ n−N+1 ]v [ n−N+1 ]=v [ n−N+2 ]. .. .v [ n−1]=v [ n ]

Page 6: EE 445S Real-Time Digital  Signal Processing Lab Fall  2013

6

IIR Filters SOS Implementation

A cascade of second order sections (SOS). Each section is just a second order IIR

filter, also called as biquad.

Page 7: EE 445S Real-Time Digital  Signal Processing Lab Fall  2013

6 - 7

Discrete-Time IIR Biquad For poles at , where

is the pole radius (r < 1 for stability), with y = –2 a:

Real poles: • Q = ½

• h[n] = C0 an u[n] + C1 n a n u[n]

Poles on unit circle: • (oscillatory response)Example: To maintain stability (given a 16-bit fixed-point digital signal processor with 40-bit accumulators), Qmax ~ 40

Q=√(1+r2 )2− y2

2(1−r 2 ) where

12≤Q<∞

22+bar=

Filter design programs often use r as approximation of quality factor

Q

jrejba

Page 8: EE 445S Real-Time Digital  Signal Processing Lab Fall  2013

6 - 8

IIR Filter Implementation

Classical IIR filter designs• Filter of order n will have n/2 conjugate poles

if n is even or one real pole and (n-1)/2 conjugate poles if n is odd

• Response is very sensitive to perturbations in pole locations

Rule-of-thumb for implementing IIR filter• Decompose IIR filter into second-order

sections (biquads)• Cascade biquads from input to output in order

of ascending quality factors

Page 9: EE 445S Real-Time Digital  Signal Processing Lab Fall  2013

9

IIR Filters SOS Implementation The fdatool in Matlab automatically breaks the IIR

filter into biquads. Same coefficients are used as DF-I and DF-II.

For M biquads, you also get M+1 scaling factors. Typically scaleM+1 = 1

Implementation is like

Use either DF-I or DF-II to implement each biquad.

Each biquad has its own state variables. DO NOT MIX THE STATE VARIABLES OF BIQUADS.

Scale1 Biquad1 Scale2 Biquad2 … ScaleM BiquadM ScaleM+1