The DFT:
To evaluate a polynomial
of degree-bound n at
(that is, at
the n complex nth roots of unity).
'
Assume
that A is given in coefficient form: a = (a0, a1,
. . . , an-1). Let us define the results yk,
for k = 0, 1, . . . , n - 1, by
The vector y =
(y0, y1, . . . , yn-1)
is the Discrete Fourier Transform (DFT) of the
coefficient vector a = (a0, a1,
. . . , an-1). It can also be written as, y =DFTn(a).
The FFT:
By using a method known as the Fast
Fourier Transform (FFT), which takes advantage of the special
properties of the complex roots of unity, DFTn(a)
can be computed in time (n lg n), as opposed to the (n2) time of the straightforward method.
The FFT method
employs a divide-and-conquer strategy, using the even-index and odd-index
coefficients of A(x) separately to define the two new
degree-bound n/2 polynomials A[0](x)
and A[1](x):
A[1](x) = a1 + a3x
+ a5x2 + + an-1xn/2-1.
Note:
1. A[0] contains all the
even-index coefficients of A (the binary representation of the index
ends in 0) and
2. A[1] contains
all the odd-index coefficients (the binary representation of the index ends in
1).
It follows
that
so that the problem of evaluating A(x) at
1. evaluating
the degree-bound n/2 polynomials A[0](x)
and A[1](x) at the points
and then
2. Combining
the results according to equation 1.
By the halving
lemma, the polynomials A[0] and A[1] of
degree-bound n/2 are recursively evaluated at the n/2
complex (n/2)th roots of unity. These sub problems have exactly the same form as the
original problem, but are half the size. An n-element DFTn computation
can be successfully into two n/2-element DFTn/2
computations. This decomposition is the basis for the following recursive FFT
algorithm, which computes the DFT of an n-element vector a =
(a0, a1, . . . , an - 1),
where n is a power of 2.
No comments:
Post a Comment