Cyclotomic fast Fourier transform explained

The cyclotomic fast Fourier transform is a type of fast Fourier transform algorithm over finite fields.[1] This algorithm first decomposes a DFT into several circular convolutions, and then derives the DFT results from the circular convolution results. When applied to a DFT over

GF(2m)

, 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]

Background

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

\{fi\}

N-1
0
over a finite field GF(pm) is defined as

Fj=\sum

N-1
i=0
ij
f
i\alpha

,0\lej\leN-1,

where

\alpha

is the N-th primitive root of 1 in GF(pm). If we define the polynomial representation of

\{fi\}

N-1
0
as

f(x)=f0+f1x+f

2+ … +f
N-1

xN-1

N-1
=\sum
0
i,
f
ix

it is easy to see that

Fj

is simply

f(\alphaj)

. That is, the discrete Fourier transform of a sequence converts it to a polynomial evaluation problem.

Written in matrix format,

F=\left[\begin{matrix}F0\\F1\\vdots\FN-1\end{matrix}\right]= \left[\begin{matrix} \alpha0&\alpha0&&\alpha0\\ \alpha0&\alpha1&&\alphaN-1\\ \vdots&\vdots&\ddots&\vdots\\ \alpha0&\alphaN-1&&\alpha(N-1)(N-1)\end{matrix}\right] \left[\begin{matrix}f0\\f1\\\vdots\\fN-1\end{matrix}\right]=l{F}f.

Direct evaluation of DFT has an

O(N2)

complexity. Fast Fourier transforms are just efficient algorithms evaluating the above matrix-vector product.

Algorithm

First, we define a linearized polynomial over GF(pm) as

L(x)=\sumili

pi
x

,li\inGF(pm).

L(x)

is called linearized because

L(x1+x2)=L(x1)+L(x2)

, which comes from the fact that for elements

x1,x2\inGF(pm),

(x1+x

p.
2

Notice that

p

is invertible modulo

N

because

N

must divide the order

pm-1

of the multiplicative group of the field

GF(pm)

. So, the elements

\{0,1,2,\ldots,N-1\}

can be partitioned into

l+1

cyclotomic cosets modulo

N

:

\{0\},

\{k1,pk1,

2k
p
1,

\ldots,

m1-1
p

k1\},

\ldots,

\{kl,pkl,

2k
p
l,

\ldots,

ml-1
p

kl\},

where
mi
k
i=p

ki\pmod{N}

. Therefore, the input to the Fourier transform can be rewritten as
l
f(x)=\sum
i=0
ki
L
i(x

),Li(y)=

mi-1
\sum
t=0
pt
y
f
tk
p
i\bmod{N
}.

In this way, the polynomial representation is decomposed into a sum of linear polynomials, and hence

Fj

is given by
jki
F
i(\alpha

)

. Expanding
jki
\alpha

\in

mi
GF(p

)

with the proper basis

\{\betai,0,\betai,1,\ldots,

\beta
i,mi-1

\}

, we have
jki
\alpha

=

mi-1
\sum
s=0

aijs\betai,s

where

aijs\inGF(p)

, and by the property of the linearized polynomial

Li(x)

, we have

Fj=\sum

mi-1
s=0

aijs

mi-1
\left(\sum
t=0
pt
\beta
i,s
f
ptki\bmod{N
}\right)

This equation can be rewritten in matrix form as

F=AL\Pif

, where

A

is an

N x N

matrix over GF(p) that contains the elements

aijs

,

L

is a block diagonal matrix, and

\Pi

is a permutation matrix regrouping the elements in

f

according to the cyclotomic coset index.
p0
\{\gamma
i

,

p1
\gamma
i

,,

mi-1
p
\gamma
i

\}

is used to expand the field elements of
mi
GF(p

)

, the i-th block of

L

is given by:

Li= \begin{bmatrix}

p0
\gamma
i
p1
&\gamma
i

&

mi-1
p
&\gamma
i

\\

p1
\gamma
i
p2
&\gamma
i

&

p0
&\gamma
i

\\ \vdots&\vdots&\ddots&\vdots\\

mi-1
p
\gamma
i
p0
&\gamma
i

&

mi-2
p
&\gamma
i

\\ \end{bmatrix}

which is a circulant matrix. It is well known that a circulant matrix-vector product can be efficiently computed by convolutions. Hence we successfully reduce the discrete Fourier transform into short convolutions.

Complexity

When applied to a characteristic-2 field GF(2m), the matrix

A

is just a binary matrix. Only addition is used when calculating the matrix-vector product of

A

and

L\Pif

. It has been shown that the multiplicative complexity of the cyclotomic algorithm is given by
log
23
2
O(n(log
2n)

)

, and the additive complexity is given by
2/(log
O(n
2
log
28
3
n)

)

.[2]

Notes and References

  1. S.V. Fedorenko and P.V. Trifonov, Fedorenko . S. V. . P. V.. . Trifonov . On Computing the Fast Fourier Transform over Finite Fields . Proceedings of International Workshop on Algebraic and Combinatorial Coding Theory . 108–111. 2003.
  2. Wu . Xuebin . Wang . Ying . Yan . Zhiyuan . On Algorithms and Complexities of Cyclotomic Fast Fourier Transforms Over Arbitrary Finite Fields. IEEE Transactions on Signal Processing. 60. 3. 2012. 1149–1158 . 10.1109/tsp.2011.2178844.