chapter 9. computation of discrete fourier transform

Post on 19-Jan-2016

98 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

Chapter 9. Computation of Discrete Fourier Transform. 9.1 Introduction 9.2 Decimation-in-Time Factorization 9.3 Decimation-in-Frequency Factorization 9.4 Application of FFT 9.5 Fast Computation of DCT 9.6 Matrix Approach 9.7 Prime Factor Algorithm. BGL/SNU. 1. Introduction. BGL/SNU. - PowerPoint PPT Presentation

TRANSCRIPT

Chapter 9. Computation of Discrete Fourier Transform

9.1 Introduction

9.2 Decimation-in-Time Factorization

9.3 Decimation-in-Frequency Factorization

9.4 Application of FFT

9.5 Fast Computation of DCT

9.6 Matrix Approach

9.7 Prime Factor Algorithm

BGL/SNU

1. Introduction

1,,1,0,][1

][: IDFT

1,,1,0,][][: DFT

,thenNotation Use-

1,,1,0,][1

][: IDFT

1,,1,0,][][: DFT

1

0

1

0

2

1

0

2

1

0

2

NnWkXN

nx

NkWnxkX

eW

NnekXN

nx

NkenxkX

N

k

knN

N

n

knN

Nj

N

N

k

nN

jk

N

n

nN

jk

BGL/SNU

????knNW of meaning the s What'-

manner.circular in clockwise

origin the from counted

circleunit the on points N

the amongpoint kn the th

0NW

1NW

2NW

3NW

4NW

5NW

6NW

7NW

8NW

)(

(NOTE)

Pj

P

N

Nj

PPN

N

NN

NN

eeWW

WWW 22

1/

12

2/ ,1,1

BGL/SNU

?NW of view in DFT is What -

up. themsum then and

,,, torespect

1)-x(N,x(1),(0),multiply x)1(10 kN

Nk

NN WWW

08W

kW8kW 2

8

kW 38

kW 48

kW 58

kW 78

)0(x

)3(x)2(x

)4(x

)5(x

)6(x)7(x

)1(x

kW 68

BGL/SNU

)4(3,2,1,0,][][3

04

NkWnxkXn

kn

]3[ˆ

]2[ˆ

]1[ˆ

]0[ˆ

100

0011

100

0011

]3[

]2[

]1[

]0[

1010

0101

1010

0101

100

0011

100

0011

]3[

]2[

]1[

]0[

11W- 1

111- 1

1 W1

111 1

]3[

]2[

]1[

]0[

]3[

]2[

]1[

]0[

9630

6420

3210

0000

x

x

x

x

W

W

x

x

x

x

W

W

x

x

x

x

W

x

x

x

x

WWWW

WWWW

WWWW

WWWW

X

X

X

X

- Example of fast computation

BGL/SNU

]0[x

]1[x

]2[x

]3[x

]0[X

]1[X

]2[X

]3[X1

1

]3[x̂

]2[x̂

]1[x̂

]0[x̂

1

W

W

8

12 : additions of #

24 : tionsmultiplica of #

BGL/SNU

2. Decimation-in-Time Factorization

)(,.2/

12/

02/

)(,.2/

12/

02/

12/

0

)12(12/

0

2

,,

.

1

0

]12[]2[

]12[]2[

)2(1,,1,0,][][

kHDFTptN

N

r

rkN

kN

kGDFTptN

N

r

rkN

N

r

krN

N

r

rkN

oddnevenn

DFTptN

N

n

knN

WrxWWrx

WrxWrx

NNkWnxkX

BGL/SNU

8)( Neg]0[x]1[x

]7[x

]0[X]1[X

]7[X

DFT

pt.-N

]0[x]2[x]4[x

]0[X]1[X]2[X

DFT

pt.-2

N

]3[X]6[x

]0[G

]1[G]2[G

]3[G

]1[x]3[x]5[x

]4[X]5[X]6[X

DFT

pt.-2

N

]7[X]7[x

]0[H

]1[H]2[H

]3[H

0NW

1NW

3NW

2NW

4NW

5NW

6NW

7NW

BGL/SNU

graph flow Final

]0[x

]2[x

]4[x

]6[x

]1[x

]3[x

]5[x

]7[x

]0[X

]1[X

]2[X

]3[X

]4[X

]5[X

]6[X

]7[X

0NW

1NW

3NW

2NW

4NW

5NW

6NW

7NW

0NW

0NW

0NW

0NW

4NW

4NW

4NW

4NW

0NW

2NW

4NW

6NW

0NW

2NW

4NW

6NW

000

100

010

110

001

101

011

111

000

100

010

110

001

101

011

111

)( reversedbit )(natural

BGL/SNU

reversed.-bit : ordering datainput -

scompuation phase-in -

N/22 : additons

N/21 : tionsmultiplica

(complex) nscomputatio of # total

/butterflyy2/butterfl : additons

y1/butterfly2/butterfl : tionsmultiplica

(complex) nscomputatio # -

N/2/stage# : sbutterflie -

Nlogstages# : processing cascaded -

Remarks

2

NN

NN

2

2

log

log2

2

18W

58W

18W

1

1

BGL/SNU

Decimation-in-time FFT flow graphs

BGL/SNU

Decimation-in-time FFT flow graphs

BGL/SNU

Decimation-in-time FFT flow graphs

BGL/SNU

(Sande- Tuckey) FFT

nkN

k

N

n

N

n

nkN

kN

N

N

n

nkN

N

Nn

nkN

N

n

nkN

N

n

nkN

WN

nxnx

WN

nxWWnx

WnxWnx

NNkWnxkX

]}2

[)1(][{

]2

[][

][][

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

12

0

12

0

2

12

0

1

2

12

0

1

0

3. Decimation-in-frequency Factorization

BGL/SNU

12

0 2

12

0 2

]}2

[][{]12[

12

,...,1,0 ,]}2

[][{]2[

N

n

nN

nrN

N

n

nrN

WWN

nxnxrX

NrW

NnxnxrX

g(n)

h(n)

g[0]

g[1] g[2] g[3]

h[0] h[1] h[2] h[3]

X[0]

X[2] X[4] X[6]

X[1] X[3] X[5] X[7]

x[0] x[1] x[2] x[3]

x[4] x[5] x[6] x[7]

48

38

28

18

W 1

W 1

W 1

W 1

DFT2

ptN

DFT2

ptN

Final flow graph

X[0]

X[4]

X[2]

X[6]

X[1]

X[5]

X[3]

X[7]

x[0

]

x[1

]

x[2

]

x[3

]

x[4

]

x[5

]

x[6

]

x[7

]

3N

2N

1N

0N

W 1

W 1

W 1

W 1

2N

0N

2N

0N

W 1

W 1

W 1

W 1

0N

0N

0N

0N

W 1

W 1

W 1

W 1

BGL/SNU

-Remarks

)(log2

:

2:

log:

2

2

complexNN

N

N - # Stages

- # butterflies

- # computations

- inplace computations

- output data ordering : bit-reversed

-Question

The flow graph for D-I-F is obtained by reversing.

The direction of the flow graph for D-I-T. Why?

-Omit Sections 9.5-9.7BGL/SNU

(1) Spectrum Analysis

-

is the spectrum of x[n] , n=0,1,…,N-1

- Inverse transform can be done through the same mechanism

i) Take the complex conjugate of X[k]

ii) Pass it through the FFT process,

But with one shift right(/2) operation at each stage

iii) Finally, take the complex conjugate of the result

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

0

Nk WnxX N

n

nkN

]][2

1[][

1 x[n]

1

0

1

0

WkX WkXN

N

k

nkN

N

k

nkN

4. Applications of FFT

BGL/SNU

(2) Convolution ( Filtering )

- Operation reduction : NN

N 22 log

2

h[n]x[n] y[n]

N 2N N

x[n]

0 N-1 n

h[n]

0 N-1 n

y[n

0 2N-2 n

22,...,1,0

],[][

][][][1

0

Nn

knhkx

nhnxnyN

k

#computation(multi)?

1+2+…+N+N-1+…+1+0=N2

-Utilize FFT of 2N-point

~

h[n]

0 N-1 2N n

x[n]

0 N-1 2N n

y[n]

0 2N-2 2N n

R2N[n] 1 0 2N-1 n

~

~

],[][][

12,...,1,0

[n],]][~

][~[

][][~][12

02

2

kHkXkY

Nn

Rknhkx

nRnynyN

kN

N

2N-pt DFTs

BGL/SNU

2N-pt FFT

2N-pt FFT

2N-pt IFFT

x[n]

h[n]

X[k]

H[k]

Y[k] y[n]

NN

2log2

2 2

NN

2log2

2 22N

# operation (multi)

- operation reduction :

NNNNNN

5log322log2

23 22

NNN 5log3N 22

000,35 000,000,1 :21024N 10 BGL/SNU

],[][][

12,...,2,1,0

[n] ]][~

][~[

][][

][][][

1

02

1

0

kHkXkZ

Nn

Rknhkx

knhkx

nhnxnz

N

kN

N

k

(3) Correlation /Power Spectrum

2N-point DFTs

# Operation : NNN 5log3 N 22

- Power spectrum P[k] = X[k] X*[k]

BGL/SNU

$ Comparison of # computation

512 1024

1

106

102

103

104

105

10

0.45k1k

2k5k

35k16k

7.25k3.3k

16k

62.5k

250k1M

DirectComputation

FFT-basedConvolutionCorrelation

FFT

N

BGL/SNU

otherwise, 1

0k,2

1 ][

1,...,1,0, 2

)12(cos][][

2k][

1

0

ke

Nk N

knnxke

NX

N

k

1

0

1,...,1,0, 2

)12(cos][][n][

N

k

Nn N

knkXkex

5. Fast Computation of DCT

BGL/SNU

- Example: Lee’s Algorithm (1984, IEEE Trans , ASSP, Dec) 1D

x[0]

x[1]

x[2]

x[3]

x[4]

x[5]

x[6]

x[7]

X[0

]

X[4

]

X[2

]

X[6

]

X[1

]

X[5

]

X[3

]

X[7

]

1

1

1

1

5

7

3

1

c

c

c

c

1

1

1

1

3

1

3

1

b

b

b

b

1

1

1

1

1

1

1

1

a

a

a

a

3,1 ,

8cos2

1

4cos2

1 1 i

iba i

7,5,3,1,

16cos2

1

ii

ci

BGL/SNU

- Example: 2D DCT Algorithm (1991, N.I.Cho and S.U.Lee)

BGL/SNU

otherwise, 1

0k,2

1 ][u

1,...,1,0,

2

)12(cos

2

)12(cos],[][][

4n],[

1

0

1

02

k

Nnm

N

nj

N

mijixnumu

NmY

N

n

N

j

Separable Transform NxN 2D DCT = N 1-D DCT into row direction followed by N 1-D DCT into column direction. Totally 2N 1-D DCT (each N-point) are required.

Fast Algorithm reduces the number of 1-D DCTs into N.

By using the trigonometric properties, 2D DCT is decomposed into 1-D DCTs.

N

njmi

N

njmiN

nj

N

mi

2

)12()12(cos

2

)12()12(cos

2

12

)12(cos

2

)12(cos

Signal flow graph of 2-D DCT8x8 DCT 4x4 DCT

6. Matrix Approach

0001100101

01

01

22)2)(2(

012

012

0

),(3,2,1,0),(

),(3,2,1,0),(

,4for

)()(

nknknknnkknk

nnn

kkk

knNkn

WWW

nnxnnx

kkXkkX

N

nxnx

WW

· Decimation-in-time

1

0

1

0

)2(201001

0 1

00110),(),(n n

nkknk WWnnxkkX

),( 001 nkx

BGL/SNU

reversed!order -bit ;

),(),(

),(),(

),(),(

01102

1

0

)2(00101

1

0

2010001

0

001

1

10

kkXkkx

WnkxkkX

Wnnxnkx

n

nkk

n

nk

)1,1(

)0,1(

)1,0(

)0,0(

010

001

010

001

)1,1(

)0,1(

)1,0(

)0,0(

0

0

0

0

2

2

0

0

1

1

1

1

x

x

x

x

W

W

W

W

x

x

x

x

)1,1(

)0,1(

)1,0(

)0,0(

100

100

001

001

)1,1(

)0,1(

)1,0(

)0,0(

1

1

1

1

3

1

2

0

2

2

2

2

x

x

x

x

W

W

W

W

x

x

x

x

)3(

)2(

)1(

)0(

)1,1(

)0,1(

)1,0(

)0,0(

100

100

001

001

010

001

010

001

)1,1(

)0,1(

)1,0(

)0,0(

)1,1(

)1,0(

)0,1(

)0,0(

)3(

)2(

)1(

)0(

0

0

0

0

3

1

2

0

2

2

0

0

2

2

2

2

x

x

x

x

x

x

x

x

W

W

W

W

W

W

W

W

x

x

x

x

X

X

X

X

X

X

X

X

).()(where 0 nxnx BGL/SNU

· Decimation-in-frequency

1

0

1

0

2)2(01001

0 1

01001),(),(n n

nkknn WWnnxkkX

),( 001 nkx

reversed!order -bit ;

),(),(

),(),(

),(),(

01102

1

0

200101

1

0

)2(010001

0

01

1

001

kkXkkx

WnkxkkX

Wnnxnkx

n

nk

n

knn

)3(

)2(

)1(

)0(

00

00

1010

0101

00

1100

00

0011

)3(

)2(

)1(

)0(

32

10

20

20

x

x

x

x

WW

WW

WW

WW

X

X

X

X

BGL/SNU

· General expression for N=2 case

022

11

022

11

22

22

kkkk

nnnn

knkkknkknknnk

nk

n n n

WWWWW

WnnnxkkkX

ii

ii

00111

0122

011

0 1 1

)22(2)2(22

021

1

0

1

0

1

0021 ),,,(),,,(

knkknkn

n n n

WWWnnnx

kkkX

00122

011

0 1 1

)2(22021

1

0

1

0

1

0

021

),,,(

),,,(

),,,( 0201 nnkx

),,,,( 03102 nnkkx

),,,( 110 kkkx

)222(),,,,,,(

),,,,,,(with

0122

112

01,210

1

01

021,110

1

kkkkWnnnkkkx

nnnkkkx

ii

iin

iiin

i

iiii

i

i

,1,,1,0

,1,,1,0,

,1,,1,0

,1,,1,0,

prime)y necessaril(not

0

101

0

101

qk

pkkqkk

pn

qnnpnn

qpN

1

0

1

0

)(0101

0101

1 0

00110),(),(

),()(),,()(q

n

p

n

nkqknpk WWnnxkkX

kkXkXnnxnx

),( 001 nkx

1

0102

)(00101

1

001001

0

101

1

10

),(),(),(

),(),(

p

n

nkqk

q

n

npk

kkxWnkxkkX

Wnnxnkx

· Extension to general N (Cooley/Tuckey)

BGL/SNU

· # computations (complex)

NNNNN

pppNpppN

qpN

npNx

nqNx

2

2121

02

11

log)222(222if

)(if

)2( total

)1hen (except w )1(

)0hen (except w )1(

times)( times)(

BGL/SNU

7. Prime Factor Algorithm (Thomas/Good)(1) Basics from Number Theory Euler’s Phi function

.2)6(,4)5(,2)4(,2)3(,1)2(,1)1()(

)than smaller numbers prime relative (#

.1),gcd(with1)(

eg

n

nllnnl

Euler’s Theorem

6mod125,2)(,6,5)(

.mod1then,1),(If)(

)(

NaNNaeg

NaNa

Chinese Remainder Theorem (CRT)

.modby determined is and

,mod and}1,,1,0{

s.t. unique a is there},1,,1,0{Given

.,1),(,

)()(

11

21

1

NN

Na

N

Naaa

iNaaNa

aNa

kiNNNNNN

LN

LL

N

ii

ii

kiL

N

122141

231

1

21

1112

1221

)(12

)(21

21

9412mod3344

.4,3,12)(

.modwhere,mod

mod

)2( case) Special(

21

21

aaaaa

NNNeg

NNNNaNNa

NNaNaa

LNNN

NNN

NN

1a 2a

112582

710141

36900

3210

Second Integer Representation (SIR)

.modby determined is and

,mod and}1,,1,0{

s.t. unique a is there},1,,1,0{Given

.,1),(,

11

21

NN

Na

N

Naaa

iNaN

NaNa

aNa

kiNNNNNN

LL

i

Nii

ii

kiL

i

BGL/SNU

}11,,1,0{ a

1221

21

1221

21

34

.4,3,12)(

mod

case) (Special

aaa

NNNeg

NNaNaa

NNN

1a 2a

521182

110741

96300

3210

}11,,1,0{ a

BGL/SNU

(2) Prime Factor Algorithm

.1),(,where1,,1,0,)()(1

0

qpqpNNkWnxkXN

n

nkN

.1,,1,0

1,,1,0

mod

),(

1,,1,0

1,,1,0

mod

),(

1

0

11

01

01

1

0

01

01

pk

qk

Nkqqkppk

CRTviakkk

qn

pn

Nqnpnn

SIRviannn

pq

Set

Then

.100111

001

1

11

001

011

101

1

11

01

01 ))((

knp

knq

kqqnp

kppnq

kqqqnpq

kppqnpq

kqqpnpq

kpppnpq

kqqkppqnpnpq

nkN

WWWW

WWWW

WW

pq

pqpq

pq

BGL/SNU

Therefore

1

0

1

00101

0 1

1001),(),(p

n

q

n

knp

knq WWnnxkkX

),( 011 nkx

1

010201101

1

001011

0

10

1

01

),(),(),(

),(),(

p

n

knp

q

n

knq

kkxWnkxkkX

Wnnxnkx

Note that the only difference is in the “twiddle factor” .00nkNW

BGL/SNU

(3) Comparison Example

12-Point DFT (N=12, p=3, q=4) C/T : Cooley/Tuckey T/G : Thomas/Good

· Transform

2

0310101

3

0401001

2

012300101

3

0401001

0

10

1

01

0

0010

1

01

),(),(

),(),(

T/G

),(),(

),(),(

C/T

n

kn

n

kn

n

knkn

n

kn

WnkxkkX

Wnnxnkx

WWnkxkkX

Wnnxnkx

· Index Mappings

01

01

01

01

94

43T/G

4

3C/T

kkk

nnn

kkk

nnn

3,2,1,0

2,1,0

2,1,0

3,2,1,0

0

1

0

1

k

k

n

n

118522

107411

96300

32100n 1n

11733

10622

9511

8400

2100k 1k

521182

110741

96300

32100n 1n

11733

21062

5191

8400

2100k 1k

· Diagram

4pt DFT

)(nx )(nx ),( 01 nnx

0369

0369

(0,0)(1,0)(2,0)(3,0)

4pt DFT

47

101

147

10

(0,1)(1,1)(2,1)(3,1)

4pt DFT

81125

25811

(0,2)(1,2)(2,2)(3,2)

3pt DFT

),( 01 kkX )(kX )(kX

(0,0)(0,1)(0,2)

3pt DFT

(1,0)(1,1)(1,2)

3pt DFT

(2,0)(2,1)(2,2)

3pt DFT

(3,0)(3,1)(3,2)

0012

knW

612W

0 0

4 4

8 8

1 9

5 1

9 5

2 6

6 10

10 2

3 3

7 7

11 11

T/G C/T C/T C/T T/G

BGL/SNU

001 ),( nkx

(0,0)(0,1)

102 ),( kkx

(0,2)(0,3)

(1,0)(1,1)(1,2)(1,3)

(2,2)(2,3)

(2,0)(2,1)

412W

012W

212W

012W

212W

112W

312W

012W

012W

012W

012W

- Radix-2 algorithms: algorithms in textbook : 2N

- Radix-4 algorithms : RN 4

Radix-4 algorithm

14/

04/

314/

04/

2

14/

04/

14/

04/

34,24,14,4,

1

0

]34[]24[

]14[]4[

][][

N

r

mkN

kN

N

r

mkN

kN

N

r

mkN

kN

N

r

mkN

mnmnmnmn

N

n

knN

WmxWWmxW

WmxWWmx

WnxkX

BGL/JWL/SNU

- Radix-4 butterfly

)()()()(]4/3[

)()()()(]2/[

)()()()(]4/[

)()()()(][

)34()( ),24()(

),14()( ),4()(Let

33

22

10

33

22

10

33

22

10

33

22

10

32

10

kGjWkGWkGjWkGNkX

kGWkGWkGWkGNkX

kGjWkGWkGjWkGNkX

kGWkGWkGWkGkX

mxmgmxmg

mxmgmxmg

kN

kN

kN

kN

kN

kN

kN

kN

kN

kN

kN

kN

BGL/JWL/SNU

- Radix-4 butterfly

-j-1

j-11

-1j

-1-j

kNW

kNW 2

kNW 3

BGL/JWL/SNU

top related