Cooley Tukey An Algorithm For The Machine Calculation of Complex Fourier Series Math of Comp 1965
Cooley Tukey An Algorithm For The Machine Calculation of Complex Fourier Series Math of Comp 1965
Your use of the JSTOR archive indicates your acceptance of the Terms & Conditions of Use, available at .
http://www.jstor.org/page/info/about/policies/terms.jsp
.
JSTOR is a not-for-profit service that helps scholars, researchers, and students discover, use, and build upon a wide range of
content in a trusted digital archive. We use information technology and tools to increase productivity and facilitate new forms
of scholarship. For more information about JSTOR, please contact [email protected].
American Mathematical Society is collaborating with JSTOR to digitize, preserve and extend access to
Mathematics of Computation.
http://www.jstor.org
where the given Fourier coefficients A (k) are complex and W is the principal
Nth root of unity,
(2) W = e2TiIN
j -
jirl + jo , O= 0, 1, , r,
X - 1, Ji 0, 1, Xr2- 1,
(3)
k = kir2+ ko, ko = 0 1 ,**X r2 - 1, kl-O 1, *** r,-1
Then, one can write
(4) X(j1, jo) - E EA(k1, ko).Wjklr2WjkO.
kA ki
Received August 17, 1964. Research in part at Princeton University under the sponsorship
of the Army Research Office (Durham). The authors wish to thank Richard Garwin for his
essential role in communication and encouragement.
297
Since
(5) WjkTr2 = WJokir2
the innersum, over k1, dependsonly on jo and koand can be defined as a new array,
(6) Al(jo, ko) -E A(k1, ko).W1okir2.
There are N elements in the array AI, each requiringri operations,giving a total
of Nrl operationsto obtain A1. Similarly, it takes Nr2 operationsto calculate X
from Al. Therefore,this two-stepalgorithm,given by (6) and (7), requiresa total
of
(8) T = N(r, + r2)
operations.
It is easy to see how successiveapplicationsof the above procedure,startingwith
its applicationto (6), give an m-step algorithmrequiring
(9) T =N(ri+r2+ - +rm)
operations,where
(10) N = rlor2 .. rm.
so that
T
N log2 N
(14) j jm-1r2m-1 + + ji 2 + jo
k- kmI-,2m`l + *** + k .2 + ko,
where j, and k, are equal to 0 or 1 and are the contents of the respective bit positions
in the binary representation of j and k. All arrays will now be written as functions
of the bits of their indices. With this convention (I) is written
the innermost sum of (15), over km-,, depends only on jo, km_2,
2ko* **, and can
be written
(17) A,(jo, km-2, ... Iko)
, = EA(km-, ...X ko) .WJokmJ-I.2m
km-1
Proceeding-to the next innermost sum, over km-2, and so on, and using
(18) W1km l_.2m-1 = W(j -i21-'+.- .+jo)kmmj2m-l
for 1, 2, - m.
0, km-,-,), ko)
(20) Ail-(jo , i,-2,
4+. (-1
,
)Jl-ijiZ-2Al- (jo , ..., )j 2, 1, km-i-i * ko)
W(jj_3.21-3+...+,^o).2m-1) jl-1 = O. 1.
It can be seen in (20) that only the two storagelocationswith indiceshaving 0 and
1 in the 2" bit position are involved in the computation.Parallel computationis
permittedsince the operationdescribedby (20) can be carriedout with all values of
Jo, ...*, j1-2, and ko X km.. , simultaneously. In some applications* it is con-
venient to use (20) to expressAl in terms of Al,2 giving what is equivalentto an
algorithm with r = 4.
The last array calculatedgives the desiredFouriersums,
(22) X(jm1 X,* jo) - Am(joX jm-i)
in such an order that the index of an X must have its binary bitj put inireverse
orderto yield its index in the arrayAm,.
In some applications,where Fouriersums are to be evaluated twice, the above
procedurecould be programmedso that no bit-inversionis necessary.For example,
considerthe solutionof the differenceequation,
(23) aX(j + 1) + bX(j) + cX(j - 1) = F(j).
The present method could be first applied to calculate the Fourieramplitudesof
F(j) from the formula
The B(k) and A (k) arrays are in bit-invertedorder, but with an obvious modifi-
cation of (20), A (k) can be used to yield the solutionwith correctindexing.
A computerprogramfor the IBM 7094 has been written which calculatesthree-
dimensionalFouriersums by the above method.The computingtime taken for com-
puting three-dimensional2a X 2" X 2c arraysof data points was as follows:
* A multiple-processing circuit using this algorithm was designed by R. E. Miller and S.
Winograd of the IBM Watson Research Center. In this case r = 4 was found to be most practi-
cal.