The cyclotomic fast Fourier transform is a type of fast Fourier transform algorithm over finite fields.[1] This algorithm first decomposes a discrete Fourier transform into several circular convolutions. This then derives the discrete Fourier transform results from the circular convolution results. When applied to a discrete Fourier transform over
, this algorithm has a very low multiplicative complexity. In practice, since there usually exist efficient algorithms for circular convolutions with specific lengths, this algorithm is very efficient.[2]
The discrete Fourier transform over finite fields finds widespread application in the decoding of error-correcting codes such as BCH codes and Reed–Solomon codes. Generalized from the complex field, a discrete Fourier transform of a sequence
over a finite field
is defined as
where
is the N-th primitive root of 1 in
. If the polynomial representation of
can defined as
it is easy to see that
is simply
. That is, the discrete Fourier transform of a sequence converts it to a polynomial evaluation problem.
Written in matrix format,
Direct evaluation of the discrete Fourier transform has an
complexity. Fast Fourier transforms are just efficient algorithms evaluating the above matrix-vector product.
First, define a linearized polynomial over
as
Here
is called linearized, because
, which comes from the fact that for elements
and
.
Notice that
is invertible modulo
because
must divide the order
of the multiplicative group of the field
. So, the elements
can be partitioned into
cyclotomic cosets modulo
:
where
. Therefore, the input to the Fourier transform can be rewritten as
In this way, the polynomial representation is decomposed into a sum of linear polynomials. Hence,
is given by
.
Expanding
with the proper basis
yields
, where
. By the property of the linearized polynomial
, this yields
This equation can be rewritten in matrix form as
, where
is an
matrix over
that contains the elements
,
is a block diagonal matrix, and
is a permutation matrix regrouping the elements in
according to the cyclotomic coset index.
Note that if the normal basis
is used to expand the field elements of
, the i-th block of
is given by:
which is a circulant matrix. It is well known that a circulant matrix-vector product can be efficiently computed by convolutions. Hence, it is successful to reduce the discrete Fourier transform into short convolutions.
When applied to a characteristic-2 field
, the matrix
is just a binary matrix. Only addition is used when calculating the matrix-vector product of
and
. It has been shown that the multiplicative complexity of the cyclotomic algorithm is given by
, and the additive complexity is given by
.[2]