next up previous index
Next: E100 Polynomial Interpolation Up: CERNLIB Previous: D703 Real Fast

D704 Complex Fast Fourier Transform

Routine ID: D704
Author(s): H.-H. UmstätterLibrary: KERNLIB
Submitter: Submitted: 01.12.1981
Language: FortranRevised:

Subroutine CFFT computes the finite Fourier transform of a complex periodic sequence, whose period n must be a power of 2. The expressions which may be computed are either the forward transform Am = ∑ k=0n-1akexp( {-i 2πkmn}),(m=0,1,...,n-1),

or the unscaled inverse transform αk = ∑ m=0n-1Amexp( {i 2πmkn}),(k=0,1,...,n-1),

where ak and Am are complex numbers. If the Am in (2) have the values defined by (1), then akk/n, (k=0,1,...,n-1) . To ensure optimum use of storage, the same array is used for input and output, and all intermediate calculations are carried out in this array.

Structure:

SUBROUTINE subprogram
User Entry Names: CFFT

Usage:

    CALL CFFT(A,M)
A
( COMPLEX) Array of length not less than n.
M
( INTEGER) On entry, the absolute value of M determines the value of n through the relation n=2|M| . If M is negative, expression (1) is evaluated. If M is non-negative, expression (2) is evaluated. Unchanged on exit.
M<0:
On entry, A(k+1)=ak, (k=0,1,...,n-1) .
On exit, A(m+1)=Am, (m=0,1,...,n-1) , as defined by (1).
M≥0:
On entry, A(m+1)=Am, (m=0,1,...,n-1) .
On exit, A(k+1)=ak, (k=0,1,...,n-1) , as defined by (2).

Method:

The method is based on an algorithm of Cooley, Lewis and Welch (see References), with the following modifications which reduce the overhead time for small values of M: multiplications by exp(imπ)

are replaced by addition or subtraction, and terms of the form exp(i2π/m),(m=2,4,...,n) , are computed recursively using only square roots and divisions.

References:

  1. G. Dahlquist and Å. Björck, Numerical methods (Prentice-Hall, Englewood Cliffs, 1974) 416.
  2. L.R. Rabiner and B. Gold, Theory and application of digital signal processing (Prentice-Hall, Englewood Cliffs, 1975) 332.

Interpolation, Approximations, Linear Fitting

E100



next up previous index
Next: E100 Polynomial Interpolation Up: CERNLIB Previous: D703 Real Fast


Janne Saarela
Mon Apr 3 15:06:23 METDST 1995