Professional Documents
Culture Documents
Fast Fourier Transform: Key Papers in Computer Science Seminar 2005 Dima Batenkov
Fast Fourier Transform: Key Papers in Computer Science Seminar 2005 Dima Batenkov
p.1/33
p.2/33
p.2/33
p.2/33
p.2/33
Fourier Analysis
p.3/33
Fourier Series
Fast Fourier Transform Overview
Fourier Analysis
Fourier Series
n
n
1
t + bn sin
t)
x (t) = a0 + ( an cos
2
L
L
n =1
n
1 L
t dt
x (t) cos
an =
L L
L
Z
1 L
n
t dt
bn =
x (t) sin
L L
L
p.4/33
Fourier Series
Fast Fourier Transform Overview
Fourier Analysis
Fourier Series
Continuous Fourier Transform
Discrete Fourier Transform
Useful properties 6
Applications
x (t) =
n =
1
cn =
2L
c n ei
Z L
n t
L
x ( t ) e i
n
L t
dt
p.4/33
Fourier Series
Fast Fourier Transform Overview
Fourier Analysis
x (t) =
Fourier Series
Continuous Fourier Transform
Discrete Fourier Transform
Useful properties 6
n =
1
cn =
2L
Applications
c n ei
Z L
n t
L
x ( t ) e i
n
L t
dt
p.4/33
Fourier Series
Fast Fourier Transform Overview
Fourier Analysis
x (t) =
Fourier Series
Continuous Fourier Transform
Discrete Fourier Transform
Useful properties 6
n =
1
cn =
2L
Applications
c n ei
Z L
n t
L
x ( t ) e i
n
L t
dt
p.4/33
Fourier Analysis
Fourier Series
Continuous Fourier Transform
Discrete Fourier Transform
Useful properties 6
F(f) =
Applications
F ( f )e2i f t d f
x (t)e2i f t dt
p.5/33
Fourier Analysis
Fourier Series
Continuous Fourier Transform
A (r ) =
N 1
k =0
X (k)Wrk
N
2i
where W N = e N and r = 0, 1, . . . , N 1
The inverse transform:
1
X ( j) =
N
N 1
k =0
jk
A(k)W N
p.6/33
Useful properties 6
Fast Fourier Transform Overview
Fourier Analysis
Fourier Series
Continuous Fourier Transform
Discrete Fourier Transform
k =0
Useful properties 6
0
WrNk Wrk
=
N
(
r
r
)
N
N
0
Applications
Linearity
(Cyclic) Convolution theorem
( x y)n =
N 1
k =0
x (k)y(n k)
F {( x y)} = F { X }F {Y }
Applications
Fast Fourier Transform Overview
Fourier Analysis
Fourier Series
Continuous Fourier Transform
Discrete Fourier Transform
Useful properties 6
Applications
p.8/33
p.9/33
Available methods
Fast Fourier Transform Overview
p.10/33
Goertzels algorithm 7
Fast Fourier Transform Overview
A( j) =
N 1
k =0
x (k) cos
2j
k
N
B( j) =
N 1
k =0
x (k) sin
2j
k
N
p.11/33
Goertzels algorithm 7
Fast Fourier Transform Overview
A( j) =
Goertzels algorithm 7
N 1
k =0
x (k) cos
2j
k
N
B( j) =
N 1
k =0
x (k) sin
2j
k
N
p.11/33
Goertzels algorithm 7
Fast Fourier Transform Overview
A( j) =
Goertzels algorithm 7
N 1
k =0
x (k) cos
2j
k
N
B( j) =
N 1
x (k) sin
k =0
2j
k
N
Then
2j
B( j) = u(1) sin
N
2j
A( j) = x (0) + cos
u (1) u (2)
N
p.11/33
Goertzels algorithm 7
Fast Fourier Transform Overview
Methods known by 1965
Available methods
Goertzels algorithm 7
p.11/33
p.12/33
Factorial experiments
Fast Fourier Transform Overview
Inspiration for the FFT
Factorial experiments
Goods paper 9
Goods results - summary
p.13/33
Factorial experiments
Fast Fourier Transform Overview
Inspiration for the FFT
Factorial experiments
Goods paper 9
Goods results - summary
Example of t = 2, n = 3 experiment
Say we have factors A, B, C which can be high or low. For
example, they can represent levels of 3 different drugs given
to patients
p.13/33
Factorial experiments
Fast Fourier Transform Overview
Inspiration for the FFT
Exp. Combination
Blood pressure
+
+
+
+
+
+
+
+
x1
x2
x3
x4
x5
x6
x7
x8
Factorial experiments
Goods paper 9
Goods results - summary
1
2
3
4
5
6
7
8
(1)
a
b
ab
c
ac
bc
abc
p.13/33
Factorial experiments
Fast Fourier Transform Overview
p.13/33
Factorial experiments
Fast Fourier Transform Overview
Inspiration for the FFT
Factorial experiments
Goods paper 9
Goods results - summary
1 1
1
1
1
1
1
1
1 1 1 1
1 1 1 1
1 1 1 1 1
1
1 1 1 1 1 1 1 1
A=
1 1
1
1 1 1 1 1
1 1 1 1 1 1 1 1
1
1
1
1
1
1 1
1 1 1 1 1 1
p.13/33
Factorial experiments
Fast Fourier Transform Overview
Inspiration for the FFT
Factorial experiments
Goods paper 9
Goods results - summary
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
B=
1 1 0
0
0
0
0
0
0
0
0
0
0 1 1 0
0
0
0
0 1 1 0
0
0
0
0
0
0
0 1 1
p.13/33
Goods paper 9
Fast Fourier Transform Overview
Inspiration for the FFT
Factorial experiments
Goods paper 9
Goods results - summary
p.14/33
Goods paper 9
Fast Fourier Transform Overview
Inspiration for the FFT
Factorial experiments
Goods paper 9
Goods results - summary
(i )
p.14/33
Goods paper 9
Fast Fourier Transform Overview
Inspiration for the FFT
Factorial experiments
Goods paper 9
Goods results - summary
(i )
p.14/33
Goods paper 9
Fast Fourier Transform Overview
Inspiration for the FFT
Goods observations
For 2n factorial experiment:
Factorial experiments
Goods paper 9
Goods results - summary
M=
1
1
1
1
p.14/33
Goods paper 9
Fast Fourier Transform Overview
Inspiration for the FFT
Goods observations
n-dimensional DFT, size N in each dimension
Factorial experiments
Goods paper 9
Goods results - summary
A ( s1 , . . . , s n ) =
( N 1,...,N 1)
(r1 ,...,rn )
r s
x (r)W N1 1 WrNn sn
can be represented as
A = [n] x, = {Wrs
N}
r, s = 0, . . . , N 1
p.14/33
Goods paper 9
Fast Fourier Transform Overview
Inspiration for the FFT
Goods observations
n-dimensional DFT, size N in each dimension
Factorial experiments
Goods paper 9
Goods results - summary
A ( s1 , . . . , s n ) =
( N 1,...,N 1)
(r1 ,...,rn )
r s
x (r)W N1 1 WrNn sn
can be represented as
A = [n] x, = {Wrs
N}
r, s = 0, . . . , N 1
(i) = {Wrs
Ni }
p.14/33
Goods paper 9
Fast Fourier Transform Overview
Inspiration for the FFT
Factorial experiments
r = N2 r1 + N1 r2
Goods paper 9
Goods results - summary
1
s
=
N
s
(
N
2
1
(Chinese Remainder Thm.)
2 )
s s1
mod N1
mod N1 ,
+ N1 s2 ( N11 )
s s2
mod N2
mod N2
N1 1 N2 1
r =0
r1 =0 r2 =0
x(r)WrsN =
N1 1 N2 1
r1 =0 r2 =0
x (r1 , r2 )Wrs
N1 N2
r s
Goods paper 9
Fast Fourier Transform Overview
Inspiration for the FFT
Factorial experiments
Goods paper 9
Goods results - summary
= P ( (1) (2) ) Q 1 x
= P(1) (2) Q1 x
p.14/33
Ni
Goods paper 9
Goods results - summary
Ni
n
Ni
n
Ni
n
instead of
!2
N instead of N 2
p.15/33
The article
Cooley-Tukey FFT
FFT properties
DIT signal flow
DIF signal flow
p.16/33
The article
James W.Cooley (1926-)
John Wilder Tukey
(1915-2000)
Cooley-Tukey FFT
FFT properties
DIT signal flow
DIF signal flow
p.17/33
The article
James W.Cooley (1926-)
John Wilder Tukey
(1915-2000)
Cooley-Tukey FFT
FFT properties
DIT signal flow
DIF signal flow
p.18/33
p.19/33
p.19/33
p.19/33
p.19/33
p.20/33
The article
James W.Cooley (1926-)
John Wilder Tukey
(1915-2000)
The story - meeting
The story - publication
What if...
Cooley-Tukey FFT
FFT properties
DIT signal flow
DIF signal flow
p.20/33
The article
James W.Cooley (1926-)
John Wilder Tukey
(1915-2000)
The story - meeting
p.20/33
The article
James W.Cooley (1926-)
John Wilder Tukey
(1915-2000)
The story - meeting
p.20/33
The article
James W.Cooley (1926-)
John Wilder Tukey
(1915-2000)
The story - meeting
p.20/33
The article
James W.Cooley (1926-)
John Wilder Tukey
(1915-2000)
The story - meeting
The article
James W.Cooley (1926-)
John Wilder Tukey
(1915-2000)
The story - meeting
What if...
Fast Fourier Transform Overview
The article
p.21/33
Cooley-Tukey FFT
jk
A( j) = kN=01 X (k)W N
N = N1 N2
p.22/33
Cooley-Tukey FFT
jk
A( j) = kN=01 X (k)W N N = N1 N2
Convert the 1-D indices into 2-D
j = j0 + j1 N1
k = k 0 + k1 N2
j0 = 0, . . . , N1 1
k0 = 0, . . . , N2 1
j1 = 0, . . . , N2 1
k 1 = 0, . . . , N1 1
p.22/33
Cooley-Tukey FFT
jk
A( j) = kN=01 X (k)W N N = N1 N2
Convert the 1-D indices into 2-D
j = j0 + j1 N1
k = k 0 + k1 N2
j0 = 0, . . . , N1 1
k0 = 0, . . . , N2 1
j1 = 0, . . . , N2 1
k 1 = 0, . . . , N1 1
p.22/33
Cooley-Tukey FFT
jk
A( j) = kN=01 X (k)W N N = N1 N2
Convert the 1-D indices into 2-D
j = j0 + j1 N1
k = k 0 + k1 N2
j0 = 0, . . . , N1 1
k0 = 0, . . . , N2 1
j1 = 0, . . . , N2 1
k 1 = 0, . . . , N1 1
N 1
k =0
jk
X (k)W N
p.22/33
Cooley-Tukey FFT
jk
A( j) = kN=01 X (k)W N N = N1 N2
Convert the 1-D indices into 2-D
j = j0 + j1 N1
j0 = 0, . . . , N1 1
k = k 0 + k1 N2
k0 = 0, . . . , N2 1
j1 = 0, . . . , N2 1
k 1 = 0, . . . , N1 1
N 1
k =0
jk
X (k)W N
N2 1 N1 1
k 0 =0 k 1 =0
( j + j N1 )(k 0 +k1 N2 )
p.22/33
Cooley-Tukey FFT
jk
A( j) = kN=01 X (k)W N N = N1 N2
Convert the 1-D indices into 2-D
j = j0 + j1 N1
j0 = 0, . . . , N1 1
k = k 0 + k1 N2
k0 = 0, . . . , N2 1
j1 = 0, . . . , N2 1
k 1 = 0, . . . , N1 1
N 1
k =0
jk
X (k)W N
N2 1 N1 1
k 0 =0 k 1 =0
N2 1
k 0 =0
( j + j N1 )(k 0 +k1 N2 )
j k
j k
W N0 0 W N1 2 0
N1 1
k 1 =0
j k
X (k1 , k 0 )W N0 1 1
p.22/33
Cooley-Tukey FFT
jk
A( j) = kN=01 X (k)W N N = N1 N2
Convert the 1-D indices into 2-D
j = j0 + j1 N1
j0 = 0, . . . , N1 1
k = k 0 + k1 N2
k0 = 0, . . . , N2 1
j1 = 0, . . . , N2 1
k 1 = 0, . . . , N1 1
N 1
k =0
jk
X (k)W N
N2 1 N1 1
k 0 =0 k 1 =0
N2 1
k 0 =0
( j + j N1 )(k 0 +k1 N2 )
j k
j k
W N0 0 W N1 2 0
N1 1
k 1 =0
j k
X (k1 , k 0 )W N0 1 1
N2 1
k 0 =0
j k
j k
W N0 0 X j0 (k0 )W N1 2 0
p.22/33
Cooley-Tukey FFT
p.22/33
Cooley-Tukey FFT
If N1 = N2 = = Nn = 2 (i.e. N = 2n ):
j = jn1 2n1 + + j0 ,
A( jn1 , . . . , j0 ) =
k0 =0
=
k0
X j0 (k n2 , . . . , k0 ) =
X j1 ,j0 (k n3 , . . . , k0 ) =
X jm1 ,...,j0 (k nm1, . . . , k0 ) =
jk
W N0
k n 1 = 0
k1
k = k n 1 2n 1 + + k 0
jk
X ( k n 1 , . . . , k 0 ) W N
jk 2
W N1
k n 1
jkn1 2n1
WN
X ( k n 1 , . . . , k 0 )
j k n 1
X (k n1 , . . . , k0 )W20
W40
k n 1
k n 2
k nm
j
j k n 2
W2m1
j k n 2
X j0 (k n2 , . . . , k0 )W21
k nm
p.22/33
Cooley-Tukey FFT
Finally, A( jn1 , . . . , j0 ) = X jn1 ,...,j0
Two important properties:
In-place: only two terms are involved in the calculation of every
intermediate pair X jm1 ,...,j0 (. . . ) jm1 = 0, 1:
Xj
(0, . . . )
m2 ,...,j0
Xj
(1, . . . )
m2 ,...,j0
So the values can be overwritten and no more additional storage be
used
Bit-reversal
It is convenient to store X j
(k nm1 , . . . , k 0 ) at index
m1 ,...,j0
j0 2n1 + + jm1 2nm + k nm1 2mn1 + + k 0
The result must be reversed
Cooley & Tukey didnt realize that the algorithm in fact builds large
DFTs from smaller ones with some multiplications along the way.
The terms
( j0 ++ jm2 2m2 )k nm
W 2m
FFT properties
Fast Fourier Transform Overview
The article
James W.Cooley (1926-)
John Wilder Tukey
(1915-2000)
p.24/33
p.24/33
p.24/33
p.25/33
p.25/33
p.25/33
p.26/33
p.27/33
Danielson-Lanczos
p.28/33
Danielson-Lanczos
p.28/33
Danielson-Lanczos
p.28/33
Danielson-Lanczos
p.28/33
Danielson-Lanczos
p.28/33
Danielson-Lanczos
N/21
k 1 =0
j0 k 1
X (2k 1 )W N/2
N2 = 2. Recall
j0 + N
j
+ WN 2 1
N/21
k 1 =0
j k
0 1
X (2k 1 + 1)W N/2
p.28/33
Danielson-Lanczos
N/21
k 1 =0
j0 k 1
X (2k 1 )W N/2
N2 = 2. Recall
j0 + N
j
+ WN 2 1
N/21
k 1 =0
j k
0 1
X (2k 1 + 1)W N/2
Danielson-Lanczos
N/21
k 1 =0
j0 k 1
X (2k 1 )W N/2
N2 = 2. Recall
j0 + N
j
+ WN 2 1
N/21
k 1 =0
j k
0 1
X (2k 1 + 1)W N/2
Gauss
Fast Fourier Transform Overview
Impact
p.30/33
Impact
Fast Fourier Transform Overview
Impact
Impact
Further developments
Concluding thoughts
Certainly a classic
Two special issues of IEEE trans. on Audio and
Electroacoustics devoted entirely to FFT 11
Arden House Workshop on FFT 11
Brought together people of very diverse specialities
someday radio tuners will operate with digital processing
units. I have heard this suggested with tongue in cheek,
but one can speculate. - J.W.Cooley
Many people discovered the DFT via the FFT
p.31/33
Further developments
Fast Fourier Transform Overview
Impact
Impact
Further developments
Concluding thoughts
Real-FFT (DCT...)
Parallel FFT
FFT for prime N
...
p.32/33
Concluding thoughts
Fast Fourier Transform Overview
Impact
Impact
Further developments
Concluding thoughts
p.33/33
Concluding thoughts
Fast Fourier Transform Overview
Impact
Impact
Further developments
Concluding thoughts
p.33/33
Concluding thoughts
Fast Fourier Transform Overview
Impact
Impact
Further developments
Concluding thoughts
p.33/33
Concluding thoughts
Fast Fourier Transform Overview
Impact
Impact
Further developments
Concluding thoughts
p.33/33
Concluding thoughts
Fast Fourier Transform Overview
Impact
Impact
Further developments
Concluding thoughts
p.33/33
Concluding thoughts
Fast Fourier Transform Overview
Impact
Impact
Further developments
Concluding thoughts
p.33/33
Concluding thoughts
Fast Fourier Transform Overview
Impact
Impact
Further developments
Concluding thoughts
p.33/33
References
1. J. W. Cooley and J. W. Tukey. An algorithm for the machine calculation of complex Fourier series.
Mathematics of Computation, 19:297301, 1965.
2. J. W. Cooley, P. A. Lewis, and P. D. Welch. History of the fast Fourier transform. In Proc. IEEE,
volume 55, pages 16751677, October 1967.
3. G. C. Danielson and C. Lanczos. Some improvements in practical Fourier analysis and their application to X-ray scattering from liquids. J. Franklin Institute, 233:365380 and 435452, 1942.
4. D.L.Banks. A conversation with I. J. Good. Statistical Science, 11(1):119, 1996.
5. W. M. Gentleman. An error analysis of Goertzels (Watts) method for computing Fourier coefficients. Comput. J., 12:160165, 1969.
6. W. M. Gentleman and G. Sande. Fast Fourier transformsfor fun and profit. In Fall Joint Computer
Conference, volume 29 of AFIPS Conference Proceedings, pages 563578. Spartan Books, Washington,
D.C., 1966.
7. G. Goertzel. An algorithm for the evaluation of finite trigonometric series. The American Mathematical Monthly, 65(1):3435, January 1958.
8. Herman H. Goldstine. A History of Numerical Analysis from the 16th through the 19th Century.
Springer-Verlag, New York, 1977. ISBN 0-387-90277-5.
9. I. J. Good. The interaction algorithm and practical Fourier analysis. Journal Roy. Stat. Soc., 20:
361372, 1958.
10.
M. T. Heideman, D. H. Johnson, and C. S. Burrus. Gauss and the history of the Fast Fourier
Transform. Archive for History of Exact Sciences, 34:265267, 1985.
11.
IEEE. Special issue on fast Fourier transform. IEEE Trans. on Audio and Electroacoustics, AU-17:
65186, 1969.
12.
Morgenstern. Note on a lower bound of the linear complexity of the fast Fourier transform. JACM:
Journal of the ACM, 20, 1973.
13.
Philip Rudnick. Note on the calculation of Fourier series (in Technical Notes and Short Papers).
j-MATH-COMPUT, 20(95):429430, July 1966. ISSN 0025-5718.
14.
C. E. Shannon. Communication in the presence of noise. Proceedings of the IRE, 37:1021, January
1949.
15.
F. Yates. The design and analysis of factorial experiments, volume 35 of Impr. Bur. Soil Sci. Tech. Comm.
1937.
33-1