Cyclotomic Fast Fourier Transform
   HOME

TheInfoList



OR:

The cyclotomic fast Fourier transform is a type of
fast Fourier transform A fast Fourier transform (FFT) is an algorithm that computes the discrete Fourier transform (DFT) of a sequence, or its inverse (IDFT). A Fourier transform converts a signal from its original domain (often time or space) to a representation in ...
algorithm over
finite field In mathematics, a finite field or Galois field (so-named in honor of Évariste Galois) is a field (mathematics), field that contains a finite number of Element (mathematics), elements. As with any field, a finite field is a Set (mathematics), s ...
s.S.V. Fedorenko and P.V. Trifonov, 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(2^m), 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.


Background

The
discrete Fourier transform In mathematics, the discrete Fourier transform (DFT) converts a finite sequence of equally-spaced Sampling (signal processing), samples of a function (mathematics), function into a same-length sequence of equally-spaced samples of the discre ...
over
finite field In mathematics, a finite field or Galois field (so-named in honor of Évariste Galois) is a field (mathematics), field that contains a finite number of Element (mathematics), elements. As with any field, a finite field is a Set (mathematics), s ...
s finds widespread application in the decoding of
error-correcting code In computing, telecommunication, information theory, and coding theory, forward error correction (FEC) or channel coding is a technique used for controlling errors in data transmission over unreliable or noisy communication channels. The centra ...
s such as BCH codes and Reed–Solomon codes. Generalized from the complex field, a discrete Fourier transform of a sequence \_^ over a finite field GF(''p''''m'') is defined as :F_j=\sum_^f_i\alpha^, 0\le j\le N-1, where \alpha is the ''N''-th primitive root of 1 in GF(''p''''m''). If we define the polynomial representation of \_^ as :f(x) = f_0+f_1x+f_2x^2+\cdots+f_x^=\sum_^f_ix^i, it is easy to see that F_j is simply f(\alpha^j). That is, the discrete Fourier transform of a sequence converts it to a polynomial evaluation problem. Written in matrix format, :\mathbf=\left beginF_0\\F_1\\ \vdots \\ F_\end\right \left begin \alpha^0&\alpha^0 &\cdots & \alpha^0\\ \alpha^0 & \alpha^1 &\cdots &\alpha^\\ \vdots &\vdots & \ddots & \vdots \\ \alpha^ & \alpha^ &\cdots & \alpha^ \end\right\left beginf_0\\f_1\\\vdots\\f_\end\right\mathcal\mathbf. Direct evaluation of DFT has an O(N^2) 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) = \sum_ l_i x^, l_i \in \mathrm(p^m). L(x) is called linearized because L(x_1+x_2) = L(x_1) + L(x_2), which comes from the fact that for elements x_1,x_2 \in \mathrm(p^m),(x_1+x_2)^p=x_1^p+x_2^p. Notice that p is invertible modulo N because N must divide the order p^m-1 of the multiplicative group of the field \mathrm(p^m). So, the elements \ can be partitioned into l+1 cyclotomic cosets modulo N: :\, :\, :\ldots, :\, where k_i=p^k_i \pmod. Therefore, the input to the Fourier transform can be rewritten as :f(x)=\sum_^l L_i(x^),\quad L_i(y) = \sum_^y^f_. In this way, the polynomial representation is decomposed into a sum of linear polynomials, and hence F_j is given by :F_j=f(\alpha^j)=\sum_^lL_i(\alpha^). Expanding \alpha^ \in \mathrm(p^) with the proper basis \, we have \alpha^ = \sum_^a_\beta_ where a_ \in \mathrm(p), and by the property of the linearized polynomial L_i(x), we have :F_j=\sum_^l\sum_^a_\left(\sum_^\beta_^f_\right) This equation can be rewritten in matrix form as \mathbf=\mathbf, where \mathbf is an N\times N matrix over GF(''p'') that contains the elements a_, \mathbf is a block diagonal matrix, and \mathbf is a permutation matrix regrouping the elements in \mathbf according to the cyclotomic coset index. Note that if the
normal basis In mathematics, specifically the algebraic theory of fields, a normal basis is a special kind of basis for Galois extensions of finite degree, characterised as forming a single orbit for the Galois group. The normal basis theorem states that any ...
\ is used to expand the field elements of \mathrm(p^), the i-th block of \mathbf is given by: :\mathbf_i= \begin \gamma_i^ &\gamma_i^ &\cdots &\gamma_i^\\ \gamma_i^ &\gamma_i^ &\cdots &\gamma_i^\\ \vdots & \vdots & \ddots & \vdots\\ \gamma_i^ &\gamma_i^ &\cdots &\gamma_i^\\ \end which is a circulant matrix. It is well known that a circulant matrix-vector product can be efficiently computed by
convolution In mathematics (in particular, functional analysis), convolution is a operation (mathematics), mathematical operation on two function (mathematics), functions f and g that produces a third function f*g, as the integral of the product of the two ...
s. Hence we successfully reduce the discrete Fourier transform into short convolutions.


Complexity

When applied to a characteristic-2 field GF(2''m''), the matrix \mathbf is just a binary matrix. Only addition is used when calculating the matrix-vector product of \mathrm and \mathrm. It has been shown that the multiplicative complexity of the cyclotomic algorithm is given by O(n(\log_2n)^), and the additive complexity is given by O(n^2/(\log_2 n)^).


References

{{reflist Discrete transforms FFT algorithms