27
1/27 11.10.1 Uniform DFT Filter Banks

11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

Embed Size (px)

Citation preview

Page 1: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

1/27

11.10.1 Uniform DFT Filter Banks

Page 2: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

2/27

Uniform DFT Filter BanksWe’ll look at 5 versions of DFT-based filter banks – all but the last two have serious limitations and aren’t practical. But… they give a nice transition to the last two versions – which ARE useful and practical methods.

Version #1 Undecimated Rect. Window Sliding DFT(Not in P&M) (Filter Size = # Channels)Version #2 Decimated Rect. Window Sliding DFT

(Not in P&M) (Filter Size = # Channels)Version #3 Decimated Non-Rect Window Sliding DFT

(Not in P&M) (Filter Size = # Channels)Version #4 Decimated Arbitrary Window Sliding DFT(Not in P&M) (Filter Size Arbitrary)

Version #5 Decimated Polyphase Filter DFT(11.10.1) (Filter Size Arbitrary)

Only Versions 4 & 5 are Practical Methods

Page 3: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

3/27

Setting for Versions 1, 2, & 3 We will illustrate with a four channel case:

4 ChannelFilterBank

x[n]u0[n]

u1[n]

u2[n]

u3[n]

2πππ/2 3π/2 θ

ππ/2 θ-π/2-π

|H1(θ) | |H2(θ) ||H0(θ) | |H3(θ) |

|H0(θ) | |H1(θ) | |H2(θ) ||H3(θ) |

Equivalent To…

Page 4: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

4/27

Version #1: Sliding DFT Filter Bankn = 0 1

x[n]

2 3 4 5 6 7 8 9

u0[n] u1[n] u2[n] u3[n]

4 pt. CDFT

CDFT’s

SignalBlocks

u3[1]

u2[2]

M=4 Example

CDFT = Conjugate

DFT

Time

Frequency

Page 5: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

5/27

M=4 Example

D

D

D

CDFT

u0[n]

u1[n]

u2[n]

u3[n]

x[n] x[n]

x[n – 1]

x[n – 2]

x[n – 3]

u0[n]

u1[n]

u2[n]

u3[n]

Sequence of DFT’s

Different View of Version #1

Fix n, ThenCompute

M-pt. CDFT

Math View

1,...,1,0][][1

0−=−= ∑

=MmWinxnu

M

i

imMm

Note: Conjugate DFT Form

Page 6: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

6/27

Math Shows this DOES give Filter Bank

10][ where]}[*{

][][1

0

−≤≤==

−= ∑−

=

MnWngngx

Winxnu

nmMmm

M

i

imMm

Output of this structure is:

Thus, the mth output signal is the linear convolution ofthe input signal with the impulse response gm[n].

Q: What is the mth filter’s Transfer Function?

1

1

0

)(1)(1

)(

−−

−−

=

−=

= ∑

mM

MmM

M

n

nnmM

zm

zWzW

zWzG

aaaa

NNN

Nn

n−−

=∑−

= 1

212

1

1Use Geom. Sum Result

Page 7: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

7/27

Math Shows … (con.t)Q: What is the mth filter’s Frequency Response?

)1)(/2(5.0

)/2(

)/2(

f

)]/2(5.0sin[)]/2(5.0sin[

11

)()(

−−−

−−

−−=

−−

=

−=

=

MMmj

Mmj

MmjMez

zmm

eMm

MmMe

e

zGGj

πθ

πθ

πθ

πθπθ

θθ

• Looks sort of like sinc function: Dirichlet Kernel• Centered at θ = 2πm/M rad/sample

Note: The window determines the shape of the frequency response.The rectangular window used here makes a poor filter!!!

Page 8: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

8/27

Frequency Response of Version #1 Filterbank

M=12 Example

Region of Interest–π ≤ θ ≤ π

-3 -2 -1 0 1 2 30

5

10

15

θ/π

-3 -2 -1 0 1 2 30

5

10

15

θ/π

|G0(θ)|

|Gm(θ)|

m = 0

m = 1m = –1m = 0

Only shows 3 of the 12 channels in

this example

Poor Passband

Poor Stopband

Page 9: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

9/27

Synthesis Bank for Version #1 Filterbank

D

D

D

CDFT

u0[n]

u1[n]

u2[n]

u3[n]

x[n] x[n]

x[n – 1]

x[n – 2]

x[n – 3]

D

DCIDFT

v0[n]

v1[n]

v2[n]

v3[n]

+

D

+

+

Analysis Synthesis

y[n]

CIDFT: Includes 1/M term (not in book!)

Page 10: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

10/27

u0[n]

u1[n]

u2[n]

u3[n]

Sequence of DFT’s

x[0]

x[1]

x[2]

x[3]

x[1]

x[2]

x[3]

x[4]

x[2]

x[3]

x[4]

x[5]

x[3]

x[4]

x[5]

x[6]

x[4]

x[5]

x[6]

x[7]

CIDFT

x[5]

x[6]

x[7]

x[8]

x[6]

x[7]

x[8]

x[9]

Mx[3]Mx[4]Mx[5] Mx[6] …

After Delays, Sum Up to Get Output…

Synthesis Bank for Version #1 (cont.)

Page 11: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

11/27

Problems with Version #1 Filter BankTotal sample rate out of analysis bank is M times input– This is redundant and is detrimental in applications like

data compression– Fixed by decimating (Version #2 – #5)

Frequency Response is Very Poor– DTFT of Rectangular Window– Thus, stopband attenuation is very bad and passband

falls off– Fixed by using non-rectangular window (Versions #3 –

#5)Filters MUST have same length as number of channels– Fixed in Versions #4 & #5

• Use DSP trick in Version #4• Use Polyphase Structure in Version #5

Page 12: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

12/27

Version #2: Decimate OutputQ: Can we decimate each channel’s output and still be able to get back the original signal after synthesis?A: Yes… overlapping of the DFT windows is excessive!!!

n = 0 1 2 3 4 5 6 7 8 9x[n]

u0[n] u1[n] u2[n] u3[n]

CDFT

• Can Decimate• Decimation Factor

Equals # Channels

SignalBlocks

Time

Frequency

Page 13: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

13/27

Different View of Version #2u0[n]

u1[n]

u2[n]

u3[n]

x[n] v0[n]

v1[n]

v2[n]

v3[n]y[n]

Analysis Synthesis

D

D

D

CDFT

↓M

↓M

↓M

↓M

D

DCIDFT+

D+

+

↑M

↑M

↑M

↑M

0 1 2 3 4 5 6 7 8 9 10 11 12 13

3 4 5 6 7 8 9 10 11 12 13 14 15 16

2 3 4 5 6 7 8 9 10 11 12 13 14 15

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Delayed and Decimated Versions of Input Signal(Only indices shown)

Blocks Into

CDFT

Page 14: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

14/27

Different View of Version #2 (cont.)u0[n]

u1[n]

u2[n]

u3[n]

x[n] v0[n]

v1[n]

v2[n]

v3[n]y[n]

Analysis Synthesis

D

D

D

CDFT

↓M

↓M

↓M

↓M

D

DCIDFT+

D+

+

↑M

↑M

↑M

↑M

0 0 0 0 4 0 0 0 8 0 0 0 12 0 0 0 16

0 0 0 3 0 0 0 7 0 0 0 11 0 0 0 15 0

0 0 2 0 0 0 6 0 0 0 10 0 0 0 14 0 0

0 1 0 0 0 5 0 0 0 9 0 0 0 13 0 0 0

Up-shifted and Delayed Versions of CIDFT Output(Only indices shown)

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Page 15: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

15/27

Version #3: Non-Rectangular Window

• Window w[n] must be non-zero over block

• Otherwise, ICDFT will give back a zero signal value and can’t reconstruct

• After ICDFT, undo window by dividing by window values

n = 0 1 2 3 4 5 6 7 8 9x[n]

u0[n] u1[n] u2[n] u3[n]

CDFT

CDFT

Time

Frequency

Must HaveWindow Length

||# of Channels

||Decimation Factor

Page 16: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

16/27

Different View of Version #3

u0[n]

u1[n]

u2[n]

u3[n]

x[n] v0[n]

v1[n]

v2[n]

v3[n]y[n]

Analysis Synthesis

D

D

D

CDFT

↓M

↓M

↓M

↓M

D

DCIDFT

+

D+

+

↑M

↑M

↑M

↑M

1/w0w0

w1

w2

w3

1/w1

1/w2

1/w3

Window Values Can’t Be Zero!!!!

Page 17: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

17/27

Ver. #4: Arbitrary Size Wind., Sliding DFT• Version #3 Has Severe Limitation:

– Window size is set by number of channels desired– May force a short window (filter) size – But… long filters are often needed to get desired frequency response

• To see how to remove this limitation, back to the Math View:

1,...,1,0][][1

0−=−= ∑

=MmWinxnu

M

i

imMm

Recall Math View of Version #1 M-Pt. DFT

1,...,1,0][][][ /21

0−=−= ∑

=MmeiwinMxnu Mmij

M

im

π

Math View of Version #3 M-Pt. DFT

Window Length = M (# Channels)Dec. Factor = M (Non-Overlapped Blocks)

Page 18: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

18/27

D ≤ M < L

D = Dec. Factor M = # Channels L = Window Length

1,...,1,0][][][ /21

0−=−= −

=∑ MmeiwinDxnu MmijL

im

π

Math View of Version #4 NOT a DFT!!(L-pt sum but..

M Freq. Pts)

Version #4 (cont.)

n = 0 1 2 3 4 5 6 7 8 9x[n]

u0[n] u1[n] u2[n] u3[n]

DFTDFT

Page 19: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

19/27

i

i

w[i]x[nD – i]

e –j2πmi/M L Points

×

Σ

For each m = 0, 1, …, M–1Complex Sinusoid w/ Frequency of 2πm/M

Do for Eachm = 0, 1, …, M–1To Get The Channels

If it is NOT a DFT, What IS it??!!

One Windowed Signal Block

For Each n Value

OK, … But How To Compute This Efficiently ??!!

Page 20: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

20/27

n

n

xw[n]

e –j2πnk/MM Points

L Points

Same Inside Each M-Point Block!!!

+

++

Σ

This IS an M-pt. DFT… of the Sum of Blocks!!

Analogy: Arithmetic Distributiona×d + b×d + c×d = (a + b + c)×d

Here is How To Compute This Non-DFT Efficiently !! A DSP TRICK!!!!

Must have L = kM

w/ k Integer

Page 21: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

21/27

Version #4: Summary • Design of Filter Bank

– Assume that # of Channels, M, has been specifiedUsually pick M as power of two to allow use of FFT

– Choose Window Shape and Window Length, L, to give desired passband and stopband characteristics

To enable good filter, pick L > M; also pick L as (integer)×M– Choose Decimation Factor, D, as large as possible (D ≤ M) without

generating excessive inter-band aliasing

• Algorithm Implementation– Apply L-pt window to current signal block– Break windowed L-pt block into M-pt sub-blocks– Add all the M-pt sub-blocks together to get a single M-pt block– Compute the M-pt DFT (using FFT algorithm)

Each DFT coefficient is the current output of a channel – Move the L-pt window ahead D points

Called “Overlap & Add DFT-Based Filter Bank”

For Synthesis: Crochiere & Rabiner, Multirate Digital Signal Processing, Prentice Hall, 1983.

See copied pages posted

on Blackboard

Page 22: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

22/27

Ver. #5: Arb. Size Wind., Polyphase, DFT

][}*{

1,...,1,0,][][][

)(

][

/20

1

0

ngx

MmeiginMxnu

Mm

ig

MmijL

im

m

=

=

=

−=−=Δ

∑ π

Recall Math View of Version #4

Minor Changesw[n] → g0[n]

D → M

View: Each channel of FB consists of filter gm[n] that is a frequency-shifted version of a prototype lowpass filter g0[n]. (All the uniform FBs we’ve looked at can be viewed this way.)

In the Frequency & Z Domains this is:

)()(

)/2()(][][

z0

z

f0

f/20

mMm

mW

Mmnjm

WzGzG

MmGGengngmn

M

−=↔

−=↔= πθθπ

Frequency Shift

Page 23: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

23/27

Ver. #5: DevelopmentApproach: 1. Write the prototype LPF in its polyphase terms

2. Modulate result to get the channel filters3. Use result to write pre-decimation channel output 4. Write post-decimation channel output

∑−

=

−=1

0

zz0 )()(

M

i

Mi

i zPzzG

Step #1

∑−

=

= =

−−−

=

=

=

1

0

z

1

0 1

z

z0

z

)(

)()(

)()(

M

i

Mi

iimM

M

i

mMM

Mi

imM

mMm

zPzW

WzPzW

zWGzG

Step #2

∑−

=

−=1

0

identity decimationapply

input asview

zzz )()()(M

i

iMi

imMm zXzzPWzU

Step #3

Filter then Dec

{ } { }∑−

=↓

−↓ =

1

0)(

zz)(

z )()()(M

iM

ii

imMMm zXzzPWzU

Step #4

Dec then Filter

U

)()()( zzz zXzGzU mm =

Page 24: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

24/27

Ver. #5: Interpret { }∑−

=↓

−=1

0)(

zzz )()()(M

iM

ii

imMm zXzzPWzU

Delay by i

Decimate by M

Filter w/ ith Polyphase Filter

M-pt CDFT over Polyphase Branches

u0[n]

u1[n]

u2[n]

u3[n]

x[n]

D

D

D

CDFT

↓M

↓M

↓M

↓M

)(z0 zP

)(z1 zP

)(z2 zP

)(z3 zP

Page 25: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

25/27

Ver. #5: Synthesisv0[n]

v1[n]

v2[n]

v3[n]

y[n]

D

DCIDFT

+

D+

+

↑M

↑M

↑M

↑M

)(z0 zQ

)(z1 zQ

)(z2 zQ

)(z3 zQ

u0[n]

u1[n]

u2[n]

u3[n]

x[n]

D

D

D

CDFT

↓M

↓M

↓M

↓M

)(z0 zP

)(z1 zP

)(z2 zP

)(z3 zP

Cancel Each OtherLike Pi(z) connects to Qi(z)

{ }{ }∑−

=

−−−↑↓

−=1

0

)1()(

zz)(

zz )()()()(M

i

iMMiiM

i zzQzPzXzzY

Page 26: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

26/27

Ver. #5: Synthesis – Does it Work?

{ }{ }∑−

=

−−−↑↓

−=1

0

)1()(

zz)(

zz )()()()(M

i

iMMiiM

i zzQzPzXzzY

Here’s where we were on the last slide:

∑ ∑−

=

−−−

−−

=

−−

⎪⎭

⎪⎬⎫

⎪⎩

⎪⎨⎧

⎥⎥⎦

⎢⎢⎣

⎡=

1

0

)1(

)(

zz/1z1

0

/1z )()()()(1)(M

i

iM

Mii

mM

MM

m

imM

M zzQzPWzXWzM

zY

Use Z-Domain result for ↓M operation:

Use Z-Domain result for ↑M operation:

on"constructiPerfect Re" gives This)( get this to...

1

0

][Want

1

0

zzz)1(

1

0

)1(zzz1

0

z

z

)()(1)(

)()()()(1)(

zXcz

M

m

mcz

M

i

Mi

Mi

imM

mM

M

M

i

iMMi

Mi

mM

M

m

imM

l

l

zQzPWM

zWXz

zzQzPzWXzWM

zY

=

=

=

=

−−−

=

−−−−−

=

−−

∑ ∑

∑ ∑

⎥⎥⎦

⎢⎢⎣

⎡=

⎥⎥⎦

⎢⎢⎣

⎡=

δ

Requirement for Perfect

Reconstruction

Page 27: 11.10.1 Uniform DFT Filter Banks - Binghamton University personal page/EE521_files/IV-08...2/27 Uniform DFT Filter Banks We’ll look at 5 versions of DFT-based filter banks – all

27/27

Ver. #5: Perfect Recon Criteria

][)()(1

)()( of IDFT

1

0

zz

zz

mczzQzPWM

l

zQzP

M

i

Mi

Mi

imM

Mi

Mi

δ−−

==∑

Look at what we saw on the last slide:

10,)()( zz −≤≤= − MiczzQzP lMi

Mi

Taking DFT of each side gives an Equivalent PR Criteria:

• General Filter Designs to Meet This are HARD!!! (We Won’t Cover It)– Special Cases:

Version #2 is…. Pi(z) = Qi(z) = 1, 0 ≤ i ≤ M–1Version #3 is…. Pi(z) = w[i] & Qi(z) = 1/ w[i], 0 ≤ i ≤ M–1