Discrete Fourier transform (general)
From Wikipedia, the free encyclopedia
It has been suggested that number-theoretic transform be merged into this article or section. (Discuss) |
This article is about the discrete Fourier transform (DFT) over any field (including finite fields). For specific information on the discrete Fourier transform over the complex numbers, see discrete Fourier transform.
Contents |
[edit] Definition
Let F be any field, let be an integer, and let α be a primitive nth root of unity.
The discrete Fourier transform maps an n-tuple of elements of F to another n-tuple of elements of F according to the following formula:
By convention, the tuple is said to be in the time domain and the index j is called time. The tuple is said to be in the frequency domain and the index k is called frequency. The tuple is also called the spectrum of . This terminology derives from the applications of Fourier transforms in signal processing.
[edit] Inverse
The inverse of the discrete Fourier transform is given as:
Proof: first, note that whenever β is an nth root of unity, then βn − 1 = 0. If moreover , then , and therefore
Substituting (1) into the right-hand-side of (2), we get
This is exactly equal to vj, because when (by (3) with β = αj' − j), and when j' = j.
[edit] Matrix formulation
Since the discrete Fourier transform is a linear operation, it can be described by matrix multiplication. In matrix notation, the discrete Fourier transform is expressed as follows:
The matrix for this transformation is called the DFT matrix.
Similarly, the matrix notation for the inverse Fourier transform is
[edit] Polynomial formulation[1]
Sometimes it is convenient to identify an n-tuple with a formal polynomial
By writing out the summation in the definition of the discrete Fourier transform (1), we obtain:
This means that fk is just the value of the polynomial pv(x) for x = αk, i.e.,
The Fourier transform can therefore be seen to relate the coefficients and the values of a polynomial: the coefficients are in the time-domain, and the values are in the frequency domain. Here, of course, it is important that the polynomial is evaluated at the nth roots of unity, which are exactly the powers of α.
Similarly, the definition of the inverse Fourier transform (2) can be written:
With
this means that
We can summarize this as follows: if the values of p(x) are the coefficients of q(x), then the values of q(x) are the coefficients of p(x), up to a scalar factor and reordering.
[edit] Special cases
[edit] Complex numbers
If is the field of complex numbers, then the nth roots of unity can be visualized as points on the unit circle of the complex plane (add a picture here!). In this case, one usually takes
which yields the usual formula for the complex discrete Fourier transform:
Over the complex numbers, it is often customary to normalize the formulas for the DFT and inverse DFT by using the scalar factor in both formulas, rather than 1 in the formula for the DFT and in the formula for the inverse DFT. With this normalization, the DFT matrix is then unitary. Note that does not make sense in an arbitrary field.
[edit] Finite fields
If F = GF(q) is a finite field, where q is a prime power, then the existence of a primitive nth root automatically implies that n divides q − 1 (because the multiplicative order of each element must divide the size of the multiplicative group of F, which is q − 1). This in particular ensures that is invertible, so that the notation in (2) makes sense.
An application of the discrete Fourier transform over GF(q) is the reduction of Reed-Solomon codes to BCH codes in coding theory.
[edit] Number-theoretic transform
The so-called number-theoretic transform (NNT) is obtained by further specializing to , the integers modulo a prime p.
[edit] Properties
Most of the important attributes of the complex DFT, including the inverse transform, the convolution theorem, and most fast Fourier transform (FFT) algorithms, depend only on the property that the kernel of the transform is a primitive root of unity. These properties also hold, with identical proofs, over arbitrary fields.
In particular, the applicability of O(nlogn) fast Fourier transform algorithms to compute the NTT, combined with the convolution theorem, mean that the number-theoretic transform gives an efficient way to compute exact convolutions of integer sequences. While the complex DFT can perform the same task, it is susceptible to round-off error in finite-precision floating point arithmetic; the NTT has no round-off because it deals purely with fixed-size integers that can be exactly represented.
[edit] See also
[edit] References
- ^ R. Lidl and G. Pilz. Applied Abstract Algebra, 2nd edition. Wiley, 1999, pp. 217-219.