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)
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 |
Fj=\sum
N-1 | |
i=0 |
ij | |
f | |
i\alpha |
,0\lej\leN-1,
where
\alpha
\{fi\}
N-1 | |
0 |
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
f(\alphaj)
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)
First, we define a linearized polynomial over GF(pm) as
L(x)=\sumili
pi | |
x |
,li\inGF(pm).
L(x)
L(x1+x2)=L(x1)+L(x2)
x1,x2\inGF(pm),
(x1+x
p. | |
2 |
Notice that
p
N
N
pm-1
GF(pm)
\{0,1,2,\ldots,N-1\}
l+1
N
\{0\},
\{k1,pk1,
2k | |
p | |
1, |
\ldots,
m1-1 | |
p |
k1\},
\ldots,
\{kl,pkl,
2k | |
p | |
l, |
\ldots,
ml-1 | |
p |
kl\},
mi | |
k | |
i=p |
ki\pmod{N}
l | |
f(x)=\sum | |
i=0 |
ki | |
L | |
i(x |
), Li(y)=
mi-1 | |
\sum | |
t=0 |
pt | |
y |
f | |||||||
|
In this way, the polynomial representation is decomposed into a sum of linear polynomials, and hence
Fj
jki | |
F | |
i(\alpha |
)
jki | |
\alpha |
\in
mi | |
GF(p |
)
\{\betai,0,\betai,1,\ldots,
\beta | |
i,mi-1 |
\}
jki | |
\alpha |
=
mi-1 | |
\sum | |
s=0 |
aijs\betai,s
aijs\inGF(p)
Li(x)
Fj=\sum
mi-1 | |
s=0 |
aijs
mi-1 | |
\left(\sum | |
t=0 |
pt | |
\beta | |
i,s |
f | |
ptki\bmod{N |
This equation can be rewritten in matrix form as
F=AL\Pif
A
N x N
aijs
L
\Pi
f
p0 | |
\{\gamma | |
i |
,
p1 | |
\gamma | |
i |
, … ,
| |||||
\gamma | |||||
i |
\}
mi | |
GF(p |
)
L
Li= \begin{bmatrix}
p0 | |
\gamma | |
i |
p1 | |
&\gamma | |
i |
& …
| |||||
&\gamma | |||||
i |
\\
p1 | |
\gamma | |
i |
p2 | |
&\gamma | |
i |
& …
p0 | |
&\gamma | |
i |
\\ \vdots&\vdots&\ddots&\vdots\\
| |||||
\gamma | |||||
i |
p0 | |
&\gamma | |
i |
& …
| |||||
&\gamma | |||||
i |
\\ \end{bmatrix}
When applied to a characteristic-2 field GF(2m), the matrix
A
A
L\Pif
| ||||||||
O(n(log | ||||||||
2n) |
)
2/(log | |
O(n | |
2 |
| ||||||||
n) |
)