In mathematics, the discrete Fourier transform over a ring generalizes the discrete Fourier transform (DFT), of a function whose values are commonly complex numbers, over an arbitrary ring.
Let be any ring, let
n\geq1
\alpha\inR
(v0,\ldots,vn-1)
(f0,\ldots,fn-1)
By convention, the tuple
(v0,\ldots,vn-1)
(f0,\ldots,fn-1)
(f0,\ldots,fn-1)
(v0,\ldots,vn-1)
If is an integral domain (which includes fields), it is sufficient to choose
\alpha
\alphak\ne1
1\leqk<n
Another simple condition applies in the case where n is a power of two: may be replaced by
\alphan/2=-1
The inverse of the discrete Fourier transform is given as:
where
1/n
Since the discrete Fourier transform is a linear operator, it can be described by matrix multiplication. In matrix notation, the discrete Fourier transform is expressed as follows:
\begin{bmatrix}f0\\f1\\\vdots\\fn-1\end{bmatrix} =\begin{bmatrix} 1&1&1& … &1\\ 1&\alpha&\alpha2& … &\alphan-1\\ 1&\alpha2&\alpha4& … &\alpha2(n-1)\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ 1&\alphan-1&\alpha2(n-1)& … &\alpha(n-1)(n-1)\\ \end{bmatrix} \begin{bmatrix}v0\\v1\\\vdots\\vn-1\end{bmatrix}.
Similarly, the matrix notation for the inverse Fourier transform is
\begin{bmatrix}v0\\v1\\\vdots\\vn-1\end{bmatrix} =
1 | |
n |
\begin{bmatrix} 1&1&1& … &1\\ 1&\alpha-1&\alpha-2& … &\alpha-(n-1)\\ 1&\alpha-2&\alpha-4& … &\alpha-2(n-1)\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ 1&\alpha-(n-1)&\alpha-2(n-1)& … &\alpha-(n-1)(n-1)\end{bmatrix} \begin{bmatrix}f0\\f1\\\vdots\\fn-1\end{bmatrix}.
Sometimes it is convenient to identify an -tuple
(v0,\ldots,vn-1)
pv(x)=v0+v1x+
2 | |
v | |
2x |
+ … +vn-1xn-1.
By writing out the summation in the definition of the discrete Fourier transform, we obtain:
fk=v0+
k | |
v | |
1\alpha |
+
2k | |
v | |
2\alpha |
+ … +vn-1\alpha(n-1)k.
This means that
fk
pv(x)
x=\alphak
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 th roots of unity, which are exactly the powers of
\alpha
Similarly, the definition of the inverse Fourier transform can be written:
With
pf(x)=f0+f1x+
2 | |
f | |
2x |
+ … +fn-1xn-1,
this means that
vj=
1 | |
n |
-j | |
p | |
f(\alpha |
).
We can summarize this as follows: if the values of
pv(x)
pf(x)
pf(x)
pv(x)
If
F={C}
n
| ||||
\alpha=e |
,
which yields the usual formula for the complex discrete Fourier transform:
fk=
n-1 | |
\sum | |
j=0 |
vj
| |||||
e |
.
Over the complex numbers, it is often customary to normalize the formulas for the DFT and inverse DFT by using the scalar factor
1 | |
\sqrt{n |
1
1 | |
n |
\sqrt{n}
If
F=GF(q)
q-1
q-1
n=\underbrace{1+1+ … +1}n \rm
1 | |
n |
An application of the discrete Fourier transform over
GF(q)
Suppose
F=GF(p)
p\nmidn
n\nmidp-1
nth
F
n-1) | |
F[C | |
n]=F[x]/(x |
\congoplusiF[x]/(Pi(x))
Pi(x)
n-1=\prod | |
x | |
d|n |
\Phid(x)
\Phid(x)
F[x]
(p)
Z[\zeta]=Z[x]/(\Phid(x))
g
P1\ldotsPg
f
fg=\varphi(d)
f
pmodd
As above, we may extend the base field to
GF(q)
xn-1
xn-1=\prodk(x-\alphak)
n-1 | |
\sum | |
j=0 |
vjxj\inF[x]/(xn-1)
n-1 | |
\sum | |
j=0 |
vjxj\mod(x-\alphak)\equiv
n-1 | |
\sum | |
j=0 |
vj(\alphak)j
k
When
p|n
Fp
(xn-1)=(xm-1)
ps | |
n=mps
p\nmidm
xm-1
F[x]/(xn-1)\congoplusi
ps | |
F[x]/(P | |
i(x) |
)
Suppose
p\nmidn
nth
\alpha
A
Aij=\alphaij
0\lei,j<n
n-1 | |
\sum | |
j=0 |
\alpha(k-l)j=n\deltak,l
k=l
k\nel
\alphak-l
1-\alphan(k-l) | |
1-\alphak-l |
\alphan=1
k-l\ne0
First computing the square,
2) | |
(A | |
ik |
=
n-1 | |
\sum | |
j=0 |
\alphaj(i+k)=n\deltai,-k
A4=(A2)2
4) | |
(A | |
ik |
2\delta | |
=n | |
i,k |
A4=n2In
4 ⋅ ord(n2)
In order to align with the complex case and ensure the matrix is order 4 exactly, we can normalize the above DFT matrix
A
1 | |
\sqrt{n |
\sqrt{n}
Fq
xn-1
F | |
q2 |
\cong
2-n) | |
F | |
q[x]/(x |
U= | 1 |
\sqrt{n |
4=I | |
U | |
n |
Suppose
p\nmidn
Fq
q
F | |
q2 |
x\mapstoxq
Aij=\alphaij
A
* | |
A | |
ij |
=\alphaqji
*) | |
(AA | |
ik |
=
n-1 | |
\sum | |
j=0 |
\alphaj(i+qk)=n\deltai,-qk
by a similar geometric series argument as above. We may remove the
n
U=
1 | |
\sqrt{n |
*) | |
(UU | |
ik |
=\deltai,-qk
U
q\equiv-1(modn)
nth
n|q2-1
q2-1\equiv(q+1)(q-1)\equiv0(modn)
q
n|q-1
q\equiv1(modn)
For example, when
p=3,n=5
q2=34
q=9\equiv-1(mod5)
For a nonexample, when
p=3,n=8
F | |
32 |
q2=9
q\equiv3(mod8)
q+1\not\equiv0
q-1\not\equiv0
UU*
U
When
p\nmidn
nth
\alpha
Fq\cong
n-1) | |
F | |
p[x]/(x |
Fq
Fq'
a
Fq'
\{\pm1,\pma(q'-1)/4\}
The number-theoretic transform (NTT)[4] is obtained by specializing the discrete Fourier transform to
F={Z}/p
p-1
p=\xin+1
\omega
(p-1)
\alpha
\alpha=\omega\xi
e.g. for
p=5
\alpha=2
\begin{align}21&=2\pmod5\\22&=4\pmod5\\23&=3\pmod5\\24&=1\pmod5\end{align}
when
N=4
\begin{bmatrix} F(0)\\ F(1)\\ F(2)\\ F(3)\end{bmatrix} = \begin{bmatrix} 1&1&1&1\\ 1&2&4&3\\ 1&4&1&4\\ 1&3&4&2\end{bmatrix} \begin{bmatrix} f(0)\\ f(1)\\ f(2)\\ f(3)\end{bmatrix}
Z/m
The discrete weighted transform (DWT) is a variation on the discrete Fourier transform over arbitrary rings involving weighting the input before transforming it by multiplying elementwise by a weight vector, then weighting the result by another vector. The Irrational base discrete weighted transform is a special case of this.
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 principal root of unity. These properties also hold, with identical proofs, over arbitrary rings. In the case of fields, this analogy can be formalized by the field with one element, considering any field with a primitive nth root of unity as an algebra over the extension field
F | |
1n |
.
In particular, the applicability of
O(nlogn)
For the implementation of a "fast" algorithm (similar to how FFT computes the DFT), it is often desirable that the transform length is also highly composite, e.g., a power of two. However, there are specialized fast Fourier transform algorithms for finite fields, such as Wang and Zhu's algorithm,[6] that are efficient regardless of whether the transform length factors.