Download - Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

Transcript
Page 1: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 1

Discrete Fourier Transform• Discrete Fourier transform (DFT) pairs

knN

jknN

N

k

knN

N

n

knN

eW

NnWkXN

nx

NkWnxkX

π2

1

0

1

0

where

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

1,,1,0 ,][][

−−

=

=

=

−==

−==

K

K

• DFT/IDFT can be implemented by using the same hardware• It requires N2 complex multiplications and N(N-1) complex additions

N complex multiplicationsN-1 complex additions

Page 2: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 2

Decimation in Time

N+2(N/2)2 complex multiplications vs. N2 complex multiplication

twiddle factor

Page 4: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 4

Flow Graph of the DIT FFT

Page 6: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 6

8-point DIT DFT

Page 7: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 7

Remarks• It requires v=log2N stages• Each stage has N complex multiplications and N complex

additions• The number of complex multiplications (as well as additions)

is equal to N log2N• By symmetry property, we have (butterfly operation)

222 NN

jrN

NN

rN

NrN WeWWWW −=== −+ π

2 complex multiplications2 complex additions

1 complex multiplications2 complex additions

Page 8: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 8

8-point FFT

Normal orderBit-Reversed order

Page 9: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 9

In-Place Computation

Stage 1

X0[000]

X0[001]

X0[010]

X0[011]

X0[100]

X0[101]

X0[110]

X0[111]

X1[000]

X1[001]

X1[010]

X1[011]

X1[100]

X1[101]

X1[110]

X1[111]

X2[000]

X2[001]

X2[010]

X2[011]

X2[100]

X2[101]

X2[110]

X2[111]

Stage 3Stage 2

X3[000]

X3[001]

X3[010]

X3[011]

X3[100]

X3[101]

X3[110]

X3[111]

The same register array can be used in each stage

Page 10: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 10

8-point FFT

Normal order Bit-reversed orderThe original from given by Cooly& Tukey (DIT FFT)

Page 11: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 11

Normal-Order Sorting v.s. Bit-Reversed Sorting

Normal Order Bit-reversed Order

even

odd

top

bottom

Page 12: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 12

DFT v.s. Radix-2 FFT• DFT: N2 complex multiplications and N(N-1)

complex additions• Recall that each butterfly operation requires one

complex multiplication and two complex additions• FFT: (N/2) log2N multiplications and N log2N

complex additions

• In-place computations: the input and the output nodes for each butterfly operation are horizontally adjacent only one storage arrays will be required

Page 13: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 13

Alternative Form

Normal order Normal orderTwo complex storage arrays are necessary !!

Page 14: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 14

Alternative Form

X1[000]

X1[001]

X1[010]

X1[011]

X1[100]

X1[101]

X1[110]

X1[111]

X2[000]

X2[001]

X2[010]

X2[011]

X2[100]

X2[101]

X2[110]

X2[111]Stage 1

Parallel processing:4 BF units

X1[000]

X1[001]

X1[010]

X1[011]

X1[100]

X1[101]

X1[110]

X1[111]

X2[000]

X2[001]

X2[010]

X2[011]

X2[100]

X2[101]

X2[110]

X2[111]

Stage 1

Sequential processing:1 BF unit

The same register array can be used Two register arrays are required

Page 15: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 15

Alternative Form 2

The geometry of each stage is identicalBit-reversed order Normal order

Page 16: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 16

Decimation in Frequency (DIF)• Recall that the DFT is

• DIT FFT algorithm is based on the decomposition of the DFT computations by forming small subsequences in time domain index “n”: n=2ℓ or n=2ℓ+1

• One can consider dividing the output sequence X[k], in frequency domain, into smaller subsequences: k=2r or k=2r+1:

[ ] 10 ,][1

0

−≤≤= ∑−

=

NkWnxkXN

n

nkN

Substitution of variables

Page 17: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 17

DIF FFT Algorithm (1)

is just N/2-point DFT. Similarly,

Page 18: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 18

DIF FFT Algorithm (2)

v=log2N stages, each stage has N/2 butterfly operation.

(N/2)log2N complex multiplications, N complex additions

Page 19: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 19

Remarks• The basic butterfly operations for DIT FFT and DIF FFT

respectively are transposed-form pair.

• The I/O values of DIT FFT and DIF FFT are the same• Applying the transpose transform to each DIT FFT

algorithm, one obtains DIF FFT algorithm

DIF BF unitDIT BF unit

Page 20: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 20

Implementation Issues• Radix-2, Radix-4, Radix-8, Split-Radix,Radix-22, …, • I/O Indexing• In-place computation

– Bit-reversed sorting is necessary– Efficient use of memory– Random access (not sequential) of memory. An address

generator unit is required.– Good for cascade form: FFT followed by IFFT (or vice

versa)• E.g. fast convolution algorithm

• Twiddle factors– Look up table– CORDIC rotator

Page 21: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 21

Recall… Linear Convolution

Page 22: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 22

Fast Convolution with the FFT• Given two sequences x1 and x2 of length N1 and N2

respectively– Direct implementation requires N1N2 complex

multiplications• Consider using FFT to convolve two sequences:

– Pick N, a power of 2, such that N≥N1+N2-1– Zero-pad x1 and x2 to length N– Compute N-point FFTs of zero-padded x1 and x2, one

obtains X1 and X2– Multiply X1 and X2– Apply the IFFT to obtain the convolution sum of x1 and

x2– Computation complexity: 2(N/2) log2N + N + (N/2)log2N

Page 23: Discrete Fourier Transform - VLSI Signal Processing Lab, …twins.ee.nctu.edu.tw/courses/dsp_08/Chap9-FFT.pdf ·  · 2008-05-19Discrete Fourier Transform ... • By symmetry property,

[email protected] 23

Other Fast Algorithm for DFT• Goertzel Algorithm

– By reformulating DFT as a convolution– it is not restricted to computation of the DFT but any

desired set of samples of the Fourier transform of a sequence

• Winograd Algorithm– An efficient algorithm for computing short convolutions– The number of multiplication complexity is of order

O(N), however the number of addition complexity is significantly increased.

• Chirp Transform Algorithm