Next: 3. Traditional parallel implementation
Up: Parallel fast Fourier transforms
Previous: 1. Introduction
2. Fast Fourier transforms
For a full description of the FFT see, for example Ref. [5]. We consider a vector of length
with elements
where
. The elements of the discrete Fourier transform
(DFT) of this vector,
, may then be defined by
![\begin{displaymath}
X_k = \sum_{j=0}^{n-1} \omega_{n}^{k j} x_j
\end{displaymath}](img7.gif) |
(1) |
where
is one of the
roots of unity
. The definition in Eq. 1
is simply a premultiplication of the vector with elements
by a
matrix with elements
, and this
multiplication requires
operations.
Consider the following result, known as the Danielson-Lanczos
lemma [6], applied to Eq. 1 for even
:
in which we use the result
and
introduce the notation
and
to represent the even and odd elements
respectively. Equation 2 shows that a DFT of length
may be
rewritten as the combination of two DFTs of length
. This lemma
may be applied recursively, as long as the length of the DFT remains
even, so that if
is a power of 2, it may be applied until the
trivial DFT of a vector of length 1 is required. In this case, the DFT
requires only
operations, and this is the (radix-2)
FFT. The lemma may be generalised to apply when
contains factors
other than 2.
In three dimensions, the definition of the DFT is
![\begin{displaymath}
X_{k_x k_y k_z} = \sum_{j_x=0}^{n_x-1} \omega_{n_x}^{k_x j_x...
...y}
\sum_{j_z=0}^{n_z-1} \omega_{n_z}^{k_z j_z}
x_{j_x j_y j_z}
\end{displaymath}](img25.gif) |
(3) |
Equation 3 demonstrates that the three-dimensional DFT is the
product of 3 one-dimensional DFTs which all commute with each other
since they act indepedently.
Next: 3. Traditional parallel implementation
Up: Parallel fast Fourier transforms
Previous: 1. Introduction
Peter Haynes