Beruflich Dokumente
Kultur Dokumente
Chapter 19
Fast Fourier Transform
X( f )
x(t )e
j 2ft
dt
N 1
X k xn e
j 2
k
n
N
for k 0, 1,, N 1
n0
ESIEE, Slide 2
X k e
j 2
k
n
N
for n 0, 1,, N 1
k 0
ESIEE, Slide 3
N 1
Discrete time
Periodic time
periodic spectra
discrete spectra
Copyright 2003 Texas Instruments. All rights reserved.
DFT Computation
N 1
2
N
n 0
We need:
N
128
1024
4096
ESIEE, Slide 4
N(N-1) complex +
N2 complex
+
16256
1047552
16773120
x
16384
1048576
16777216
Cooley-Tukey algorithm:
X k
ESIEE, Slide 5
N / 2 1
N / 2 1
n0
n0
-k2n
x
2
n
W
-k 2n 1
x
2
n
1
W
W WN
2
N
X k
N / 2 1
-kn
-k
x
2
n
W
N
N
n0
ESIEE, Slide 6
-kn
x
2
n
1
W
N
n0
WN
X k
N
2
WNk
N / 2 1
-kn
-k
x
2
n
W
N
N
n0
N / 2 1
-kn
x
2
n
1
W
N
n0
and
N / 2 1
N N / 2 1
n0
2
2
ESIEE, Slide 7
Butterfly
x(0)
x(2)
We need:
TFD N/2
x(N-2)
X(N/2-1)
W0
W1
x(1)
x(3)
X(N/2)
X(N/2+1)
TFD N/2
N/2(N/2+1) complex
x(N-1)
ESIEE, Slide 8
WN/2-1
X(N-1)
Recursion
2nd stage
1st stage
X(0)
x(0)
x(4)
W80
W80
x(2)
x(6)
X(1)
W80
W81
X(2)
X(3)
W80
x(1)
W80=1
x(5)
W80
W80
x(3)
x(7)
ESIEE, Slide 9
W81
W80
W81
W82
W83
X(4)
X(5)
X(6)
X(7)
Number of Operations
+
896
10240
49152
x
448
5120
24576
These counts can be compared with the ones for the DFT
ESIEE, Slide 10
index
address
000
000
x(0)
x(0)
x(0)
100
001
x(4)
x(2)
x(1)
010
010
x(2)
x(4)
x(2)
110
011
x(6)
x(6)
x(3)
001
100
x(1)
x(1)
x(4)
101
101
x(5)
x(3)
x(5)
011
111
110
111
x(3)
x(5)
x(6)
x(7)
x(7)
x(7)
ESIEE, Slide 11
ESIEE, Slide 12
Address[x(n+1)]
Address[x(n)]
000
RCP(000+100)=100
000
001
RCP(100+100)=010
100
010
RCP(010+100)=110
010
011
RCP(110+100)=001
110
100
RCP(001+100)=101
001
101
RCP(101+100)=011
101
110
111
RCP(011+100)=111
011
111
Algorithm Parameters 1 of 2
ESIEE, Slide 13
Node
Spacing
Butterflies
per group
Number of
groups
Twiddle
factor
ESIEE, Slide 14
1st stage
2nd stage
3rd stage
Last stage
N/2
N/2
N/2
N/4
N/8
Scaling
X k xn WN-kn
n0
X k 1
1
-kn
X k xn WN 1
n0 N
ESIEE, Slide 15
Quantization Noise
Quantization step is :
2 b
2 2 b r / 2
4 N
with r log 2 N
3
2
t
ESIEE, Slide 16
2
e
1
3N 2
X2
SQNR (dB) 10 log 2
t
6b 6r
N
SQNR(dB)
128
48
1024
30
4096
18
16 bits per word
ENOB
8
5
3
ENOB: effective number of bits, gives the effective resolution given a SNR. Based on the
assumption that 6dB of SNR equates to 1 bit of precision.
ESIEE, Slide 17
1 butterfly of
the last stage
X(0)
x(0)
x(4)
W80
W80
x(2)
x(6)
X(1)
W80
W81
X(2)
X(3)
W80
x(1)
x(5)
W80
ESIEE, Slide 18
W80
x(3)
x(7)
W81
W80
W81
W82
W83
X(4)
X(5)
X(6)
X(7)
Butterfly computation
Xn+1(l)
Xn(l)
Xn(k)
Xn+1(k)
Xn+1(l)
Xn(l)
ESIEE, Slide 19
X n1 k X n l W X n k
1/2
Xn(k)
X n1 l X n l W X n k
1/2 W
-
Xn+1(k)
1
1
N
2
Copyright 2003 Texas Instruments. All rights reserved.
2b
1 r
2
2 1 2
2
3
X2
SQNR (dB) 10 log 2
t
ESIEE, Slide 20
6b 3r 3
N
SQNR(dB)
128
66
1024
57
4096
51
16 bits per word
ENOB
11
9,5
8,5
More stages ?
End of algorithm
Compute butterfly
More butterflies ?
ESIEE, Slide 21
Use of audioFFT*
inBuffer
PCM3002
ADC
pipRx
Block
processing
pipTx
outBuffer
PCM3002
DAC
(*) this program is the same as \ti\examples\dsk5416\bios\audio except for some slight
modifications that will be emphazised when necessary
ESIEE, Slide 22
Audio Program
ESIEE, Slide 23
DSPLIB functions
ESIEE, Slide 24
Block Processing 1 of 3
Echo( )
ESIEE, Slide 25
Block Processing 2 of 3
ESIEE, Slide 26
ESIEE, Slide 27
Block Processing 3 of 3
ESIEE, Slide 28
ESIEE, Slide 29
ESIEE, Slide 30
Project options
ESIEE, Slide 31
ESIEE, Slide 32