Discrete Fourier transform: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>Welsh
m Link repair: Inverse Discrete Fourier Transform -> Inverse discrete Fourier transform - You can help!
en>Bob K
Line 1: Line 1:
{{Fourier transforms}}
Nice meet up with you, I am Leticia Kohan but absolutely call me anything such as. What me and my family love is bottle tops collecting terrifying would never give it up. Oregon is where me and my wife live plus i love day-after-day living what follows. His day job a auditing representative.<br><br>Check out my web site [http://www.ractiv.com/ technology]
 
[[File:From Continuous To Discrete Fourier Transform.gif|thumb|400px|Relationship between the (continuous) [[Fourier transform]] and the discrete Fourier transform. <u>Left column:</u> A continuous function (top) and its Fourier transform (bottom). <u>Center-left column:</u> [[Periodic summation]] of the original function (top).  Fourier transform (bottom) is zero except at discrete points.  The inverse transform is a sum of sinusoids called [[Fourier series]].  <u>Center-right column:</u> Original function is discretized (multiplied by a [[Dirac comb]]) (top).  Its Fourier transform (bottom) is a periodic summation ([[Discrete-time Fourier transform|DTFT]]) of the original transform. <u>Right column:</u> The DFT (bottom) computes discrete samples of the continuous DTFT.  The inverse DFT (top) is a periodic summation of the original samples.  The [[Fast Fourier transform|FFT]] algorithm computes one cycle of the DFT and its inverse is one cycle of the DFT inverse.]]
 
[[File:Variations of the Fourier transform.tif|thumb|400px|Illustration of using [[Dirac comb]] functions and the [[convolution theorem]] to model the effects of sampling and/or [[periodic summation]].  At lower left is a [[discrete-time Fourier transform|DTFT]], the spectral result of sampling s(t) at intervals of T.  The spectral sequences at (a) upper right and (b) lower right are respectively computed from (a) one cycle of the periodic summation of s(t) and (b) one cycle of the periodic summation of the s(nT) sequence.  The respective formulas are (a) the [[Fourier series]] <u>integral</u> and (b) the '''DFT''' <u>summation</u>.  Its similarities to the original transform, S(f), and its relative computational ease are often the motivation for computing a DFT sequence.]]
 
In [[mathematics]], the '''discrete Fourier transform''' ('''DFT''') converts a finite list of equally spaced [[Sampling (signal processing)|samples]] of a [[function (mathematics)|function]] into the list of [[coefficient]]s of a finite combination of [[complex number|complex]] [[Sine wave|sinusoid]]s, ordered by their [[frequency|frequencies]], that has those same sample values.  It can be said to convert the sampled function from its original domain (often [[time domain|time]] or position along a line) to the [[frequency domain]].
 
The input samples are [[complex number]]s (in practice, usually [[real number]]s), and the output coefficients are complex as well. The frequencies of the output sinusoids are integer multiples of a fundamental frequency, whose corresponding period is the length of the sampling interval. The combination of sinusoids obtained through the DFT is therefore [[periodic function|periodic]] with that same period. The DFT differs from the  [[discrete-time Fourier transform]] (DTFT) in that its input and output sequences are both finite; it is therefore said to be the Fourier analysis of finite-domain (or periodic) discrete-time functions.
 
The DFT is the most important [[discrete transform]], used to perform [[Fourier analysis]] in many practical applications.<ref>{{cite journal|last=Strang|first=Gilbert|title=Wavelets|journal=American Scientist|date=May–June 1994|volume=82|issue=3|page=253|url=http://www.jstor.org/stable/29775194|accessdate=8 October 2013|quote=This is the most important numerical algorithm of our lifetime...}}</ref>  In [[digital signal processing]], the function is any quantity or [[signal (information theory)|signal]] that varies over time, such as the pressure of a [[sound wave]], a [[radio]] signal, or daily [[temperature]] readings, sampled over a finite time interval (often defined by a [[window function]]). In [[image processing]], the samples can be the values of [[pixel]]s along a row or column of a [[raster image]]. The DFT is also used to efficiently solve [[partial differential equations]], and to perform other operations such as [[convolution]]s or multiplying large integers.
 
Since it deals with a finite amount of data, it can be implemented in [[computer]]s by [[numerical algorithm]]s or even dedicated [[digital circuit|hardware]]. These implementations usually employ efficient [[fast Fourier transform]] (FFT) algorithms;<ref name=colley>Cooley et al., 1969</ref> so much so that the terms "FFT" and "DFT" are often used interchangeably.  The terminology is further blurred by the (now rare) synonym [[finite Fourier transform]] for the DFT, which apparently predates the term "fast Fourier transform" but has the same [[initialism]].
 
==Definition==
The [[sequence]] of ''N'' [[complex number]]s <math>x_0, x_1, \ldots, x_{N-1}</math> is transformed into an ''N''-periodic sequence of complex numbers <math>X_0, X_1, \ldots, X_{N-1},\ldots</math> according to the DFT formula:
 
{{NumBlk|:|<math>X_k = \sum_{n=0}^{N-1} x_n \cdot e^{-i 2 \pi k n / N}.</math>|{{EquationRef|Eq.1}}}}
 
Notice that this new sequence <math>X_j</math> repeats after ''N'' terms, so <math>X_0=X_N, X_1=X_{N+1}</math> and so on.
 
In this context, it is common to define <math>\omega</math> to be the N<sup>th</sup> primitive [[root of unity]], <math>\omega = e^{-2 \pi i / N}</math>, to obtain the following form:
 
:<math>X_k = \sum_{n=0}^{N-1} x_n \cdot \omega^{k n}.</math>
 
 
The transform is sometimes denoted by the symbol <math>\mathcal{F}</math>, as in <math>\mathbf{X} = \mathcal{F} \left \{ \mathbf{x} \right \} </math> or <math>\mathcal{F} \left ( \mathbf{x} \right )</math> or <math>\mathcal{F} \mathbf{x}</math>.<ref group="note">As a [[linear transformation]] on a [[Dimension (vector space)|finite-dimensional vector space]], the DFT expression can also be written in terms of a [[DFT matrix]]; when scaled appropriately it becomes a [[unitary matrix]] and the ''X''<sub>''k''</sub> can thus be viewed as coefficients of ''x'' in an [[orthonormal basis]].</ref>
 
{{EquationNote|Eq.1}} can be interpreted or derived in various ways, for example:
*It completely describes the [[discrete-time Fourier transform]] (DTFT) of an N-periodic sequence, which comprises only discrete frequency components.  ([[Discrete-time Fourier transform#Periodic data]])
*It can also provide uniformly spaced samples of the continuous DTFT of a finite length sequence.  ([[Discrete-time Fourier transform#Sampling the DTFT|Sampling the DTFT]])
*It is the [[cross correlation]] of the ''input'' sequence, ''x<sub>n</sub>'', and a complex sinusoid at frequency ''k''/''N''. &nbsp;Thus it acts like a [[matched filter]] for that frequency.
*It is the discrete analogy of the formula for the coefficients of a [[Fourier series]]:
 
{{NumBlk|::|<math>x_n = \frac{1}{N} \sum_{k=0}^{N-1} X_k \cdot e^{i 2 \pi k n / N},</math>|{{EquationRef|Eq.2}}}}
 
:which is the inverse DFT ('''IDFT''').
 
Each <math>X_k</math> is a complex number that encodes both amplitude and phase of a sinusoidal component of function <math>x_n</math>. 
The sinusoid's [[frequency]] is ''k''/''N'' cycles per sample. &nbsp;Its amplitude and phase are:
 
:<math>|X_k|/N = \sqrt{\operatorname{Re}(X_k)^2 + \operatorname{Im}(X_k)^2}/N</math>
:<math>\arg(X_k) = \operatorname{atan2}\big( \operatorname{Im}(X_k), \operatorname{Re}(X_k) \big),</math>
 
where [[atan2]] is the two-argument form of the [[arctan]] function. The normalization factor multiplying the DFT and IDFT (here 1 and 1/''N'') and the signs of the exponents are merely [[sign convention|conventions]], and differ in some treatments. The only requirements of these conventions are that the DFT and IDFT have opposite-sign exponents and that the product of their normalization factors be 1/''N''. &nbsp;A normalization of <math>\scriptstyle \sqrt{1/N}</math> for both the DFT and IDFT, for instance, makes the transforms unitary.
 
In the following discussion the terms "sequence" and "vector" will be considered interchangeable.
 
==Properties==
 
===Completeness===
The discrete Fourier transform is an invertible, [[linear transformation]]
 
:<math>\mathcal{F}\colon\mathbb{C}^N \to \mathbb{C}^N</math>
 
with <math>\mathbb{C}</math> denoting the set of [[complex number]]s. In other words, for any ''N''&nbsp;>&nbsp;0, an ''N''-dimensional complex vector has a DFT and an IDFT which are in turn ''N''-dimensional complex vectors.
 
=== Orthogonality ===
The vectors <math>u_k=\left[ e^{ \frac{2\pi i}{N} kn} \;|\; n=0,1,\ldots,N-1 \right]^T</math>
form an [[orthogonal basis]] over the set of ''N''-dimensional complex vectors:
 
:<math>u^T_k u_{k'}^*
= \sum_{n=0}^{N-1} \left(e^{ \frac{2\pi i}{N} kn}\right) \left(e^{\frac{2\pi i}{N} (-k')n}\right)
= \sum_{n=0}^{N-1} e^{ \frac{2\pi i}{N} (k-k') n}
= N~\delta_{kk'}
</math>
 
where <math>~\delta_{kk'}</math> is the [[Kronecker delta]]. (In the last step, the summation is trivial if <math>k=k'</math>, where it is 1+1+⋅⋅⋅=''N'', and otherwise is a [[geometric series]] that can be explicitly summed to obtain zero.)  This orthogonality condition can be used to derive the formula for the IDFT from the definition of the DFT, and is equivalent to the unitarity property below.
 
=== The Plancherel theorem and Parseval's theorem ===
If ''X''<sub>''k''</sub> and ''Y''<sub>''k''</sub> are the DFTs of ''x''<sub>''n''</sub> and ''y''<sub>''n''</sub> respectively then the [[Plancherel theorem]] states:
 
:<math>\sum_{n=0}^{N-1} x_n y^*_n = \frac{1}{N} \sum_{k=0}^{N-1} X_k Y^*_k</math>
 
where the star denotes [[Complex conjugate|complex conjugation]].  [[Parseval's theorem]] is a special case of the Plancherel theorem and states:
 
:<math>\sum_{n=0}^{N-1} |x_n|^2 = \frac{1}{N} \sum_{k=0}^{N-1} |X_k|^2.</math>
 
These theorems are also equivalent to the unitary condition below.
 
===Periodicity===
 
If the expression that defines the DFT is evaluated for all integers ''k'' instead of just for <math>k = 0, \dots, N-1 </math>, then the resulting infinite sequence is a periodic extension of the DFT, periodic with period ''N''.
 
The periodicity can be shown directly from the definition:
 
: <math>X_{k+N} \ \stackrel{\mathrm{def}}{=} \ \sum_{n=0}^{N-1} x_n e^{-\frac{2\pi i}{N} (k+N) n} =
\sum_{n=0}^{N-1} x_n e^{-\frac{2\pi i}{N} k n}  \underbrace{e^{-2 \pi i n}}_{1} = \sum_{n=0}^{N-1} x_n e^{-\frac{2\pi i}{N} k n} = X_k. </math>
 
Similarly, it can be shown that the IDFT formula leads to a periodic extension.
 
===Shift theorem===
Multiplying <math>x_n</math> by a ''linear phase'' <math>e^{\frac{2\pi i}{N}n m}</math> for some integer ''m'' corresponds to a ''circular shift'' of the output <math>X_k</math>: <math>X_k</math> is replaced by <math>X_{k-m}</math>, where the subscript is interpreted [[modular arithmetic|modulo]] ''N'' (i.e., periodically).  Similarly, a circular shift of the input <math>x_n</math> corresponds to multiplying the output <math>X_k</math> by a linear phase. Mathematically, if <math>\{x_n\}</math> represents the vector '''x''' then
 
:if <math>\mathcal{F}(\{x_n\})_k=X_k</math>
 
:then <math>\mathcal{F}(\{ x_n\cdot e^{\frac{2\pi i}{N}n m} \})_k=X_{k-m}</math>
 
:and <math>\mathcal{F}(\{x_{n-m}\})_k=X_k\cdot e^{-\frac{2\pi i}{N}k m}</math>
 
===Circular convolution theorem and cross-correlation theorem===
 
The [[DTFT#Convolution|convolution theorem]] for the [[discrete-time Fourier transform]] indicates that a convolution of two infinite sequences can be obtained as the inverse transform of the product of the individual transforms.  An important simplification occurs when the sequences are of finite length, '''N'''.  In terms of the DFT and inverse DFT, it can be written as follows''':'''
 
:<math>
\mathcal{F}^{-1} \left \{ \mathbf{X\cdot Y} \right \}_n \ = \sum_{l=0}^{N-1}x_l \cdot (y_N)_{n-l} \ \ \stackrel{\mathrm{def}}{=} \ \ (\mathbf{x * y_N})_n\ ,
</math>
 
which is the convolution of the <math>\mathbf{x}</math> sequence with a <math>\mathbf{y}</math> sequence extended by [[periodic summation]]''':'''
 
:<math>(\mathbf{y_N})_n \ \stackrel{\mathrm{def}}{=} \ \sum_{p=-\infty}^{\infty} y_{(n-pN)} = y_{n (mod N)}. \,</math>
 
Similarly, the [[cross-correlation]] of &nbsp;<math>\mathbf{x}</math>&nbsp; and &nbsp;<math>\mathbf{y_N}</math>&nbsp; is given by''':'''
 
:<math>
\mathcal{F}^{-1} \left \{ \mathbf{X^* \cdot Y} \right \}_n
= \sum_{l=0}^{N-1}x_l^* \cdot (y_N)_{n+l} \ \ \stackrel{\mathrm{def}}{=} \ \ (\mathbf{x \star y_N})_n\ .
</math>
 
A direct evaluation of either summation (above) requires <math>\scriptstyle O(N^2)</math> operations for an output sequence of length N. &nbsp;An indirect method, using transforms, can take advantage of the <math>\scriptstyle O(N\log N)</math> efficiency of the [[fast Fourier transform]] (FFT) to achieve much better performance.  Furthermore, convolutions can be used to efficiently compute DFTs via [[Rader's FFT algorithm]] and [[Bluestein's FFT algorithm]].
 
Methods have also been developed to use '''[[circular convolution]]''' as part of an efficient process that achieves normal (non-circular) convolution with an <math>\mathbf{x}</math> or <math>\mathbf{y}</math> sequence potentially much longer than the practical transform size ('''N''').  Two such methods are called [[overlap-save method|overlap-save]] and [[overlap-add method|overlap-add]].<ref>T. G. Stockham, Jr., "[http://dl.acm.org/citation.cfm?id=1464209 High-speed convolution and correlation]," in 1966 ''Proc. AFIPS Spring Joint Computing Conf.'' Reprinted in Digital Signal Processing, L. R. Rabiner and C. M. Rader, editors, New York: IEEE Press, 1972.</ref>
 
=== Convolution theorem duality ===
 
It can also be shown that''':'''
 
:<math>
\mathcal{F} \left \{ \mathbf{x\cdot y} \right \}_k \ \stackrel{\mathrm{def}}{=}
\sum_{n=0}^{N-1} x_n \cdot y_n \cdot e^{-\frac{2\pi i}{N} k n}
</math>
::<math>=\frac{1}{N} (\mathbf{X * Y_N})_k, \,</math> &nbsp; which is the circular convolution of <math>\mathbf{X}</math> and <math>\mathbf{Y}</math>.
 
===Trigonometric interpolation polynomial===
The [[trigonometric interpolation polynomial]]
:<math>p(t) = \frac{1}{N} \left[ X_0 + X_1 e^{2\pi it} + \cdots + X_{N/2-1} e^{(N/2-1)2\pi it} + X_{N/2} \cos(Nt/2) + X_{N/2+1} e^{(-N/2+1)2\pi it} + \cdots + X_{N-1} e^{-2\pi it} \right]</math> for ''N'' [[Even and odd numbers|even]] ,
:<math>p(t) = \frac{1}{N} \left[ X_0 + X_1 e^{2\pi it} + \cdots + X_{\lfloor N/2 \rfloor} e^{\lfloor N/2 \rfloor 2\pi it} + X_{\lfloor N/2 \rfloor+1} e^{-\lfloor N/2 \rfloor 2\pi it} + \cdots + X_{N-1} e^{-2\pi it} \right]</math>  for ''N'' odd,
where the coefficients ''X''<sub>''k''</sub> are given by the DFT of ''x''<sub>''n''</sub> above, satisfies the interpolation property <math>p(2\pi n/N) = x_n</math> for <math>n=0,\ldots,N-1</math>.
 
For even ''N'', notice that the [[Nyquist frequency|Nyquist component]] <math>\frac{X_{N/2}}{N} \cos(Nt/2)</math> is handled specially.
 
This interpolation is ''not unique'': aliasing implies that one could add ''N'' to any of the complex-sinusoid frequencies (e.g. changing <math>e^{-it}</math> to <math>e^{i(N-1)t}</math> ) without changing the interpolation property, but giving ''different'' values in between the <math>x_n</math> points.  The choice above, however, is typical because it has two useful properties.  First, it consists of sinusoids whose frequencies have the smallest possible magnitudes: the interpolation is [[bandlimited]]. Second, if the  <math>x_n</math> are real numbers, then <math>p(t)</math> is real as well.
 
In contrast, the most obvious trigonometric interpolation polynomial is the one in which the frequencies range from 0 to <math>N-1</math> (instead of roughly <math>-N/2</math> to <math>+N/2</math> as above), similar to the inverse DFT formula. This interpolation does ''not'' minimize the slope, and is ''not'' generally real-valued for real <math>x_n</math>; its use is a common mistake.
 
=== The unitary DFT ===
Another way of looking at the DFT is to note that in the above discussion, the DFT can be expressed as a [[Vandermonde matrix]]:
 
:<math>\mathbf{F} =
\begin{bmatrix}
\omega_N^{0 \cdot 0}    & \omega_N^{0 \cdot 1}    & \ldots & \omega_N^{0 \cdot (N-1)}    \\
\omega_N^{1 \cdot 0}    & \omega_N^{1 \cdot 1}    & \ldots & \omega_N^{1 \cdot (N-1)}    \\
\vdots                  & \vdots                  & \ddots & \vdots                      \\
\omega_N^{(N-1) \cdot 0} & \omega_N^{(N-1) \cdot 1} & \ldots & \omega_N^{(N-1) \cdot (N-1)} \\
\end{bmatrix}
</math>
 
where
 
:<math>\omega_N = e^{-2 \pi i/N}\,</math>
 
is a primitive [[roots of unity|Nth root of unity]]. The inverse transform is then given by the inverse of the above matrix:
 
:<math>\mathbf{F}^{-1}=\frac{1}{N}\mathbf{F}^*</math>
 
With [[unitary operator|unitary]] normalization constants <math>1/\sqrt{N}</math>, the DFT becomes a [[unitary transformation]], defined by a unitary matrix:
 
:<math>\mathbf{U}=\mathbf{F}/\sqrt{N}</math>
:<math>\mathbf{U}^{-1}=\mathbf{U}^*</math>
:<math>|\det(\mathbf{U})|=1</math>
 
where ''det()''&nbsp; is the [[determinant]] function. The determinant is the product of the eigenvalues, which are always <math>\pm 1</math> or <math>\pm i</math> as described below.  In a real vector space, a unitary transformation can be thought of as simply a rigid rotation of the coordinate system, and all of the properties of a rigid rotation can be found in the unitary DFT.
 
The orthogonality of the DFT is now expressed as an [[orthonormal]]ity condition (which arises in many areas of mathematics as described in [[root of unity]]):
 
:<math>\sum_{m=0}^{N-1}U_{km}U_{mn}^*=\delta_{kn}</math>
 
If <math>\mathbf{X}</math> is defined as the unitary DFT of the vector <math>\mathbf{x}</math> then
 
:<math>X_k=\sum_{n=0}^{N-1} U_{kn}x_n</math>
 
and the [[Plancherel theorem]] is expressed as:
 
:<math>\sum_{n=0}^{N-1}x_n y_n^* = \sum_{k=0}^{N-1}X_k Y_k^*</math>
 
If we view the DFT as just a coordinate transformation which simply specifies the components of a vector in a new coordinate system, then the above is just the statement that the dot product of two vectors is preserved under a unitary DFT transformation. For the special case <math>\mathbf{x} = \mathbf{y}</math>, this implies that the length of a vector is preserved as well—this is just [[Parseval's theorem]]:
 
:<math>\sum_{n=0}^{N-1}|x_n|^2 = \sum_{k=0}^{N-1}|X_k|^2</math>
 
A consequence of the [[Discrete_Fourier_transform#Circular_convolution_theorem_and_cross-correlation_theorem|circular convolution theorem]] is that the DFT matrix <math>F</math> diagonalizes any [[circulant matrix]].
 
=== Expressing the inverse DFT in terms of the DFT ===
A useful property of the DFT is that the inverse DFT can be easily expressed in terms of the (forward) DFT, via several well-known "tricks".  (For example, in computations, it is often convenient to only implement a fast Fourier transform corresponding to one transform direction and then to get the other transform direction from the first.)
 
First, we can compute the inverse DFT by reversing the inputs (Duhamel ''et al.'', 1988):
 
:<math>\mathcal{F}^{-1}(\{x_n\}) = \mathcal{F}(\{x_{N - n}\}) / N</math>
 
(As usual, the subscripts are interpreted [[modular arithmetic|modulo]] ''N''; thus, for <math>n=0</math>, we have <math>x_{N-0}=x_0</math>.)
 
Second, one can also conjugate the inputs and outputs:
 
:<math>\mathcal{F}^{-1}(\mathbf{x}) = \mathcal{F}(\mathbf{x}^*)^* / N</math>
 
Third, a variant of this conjugation trick, which is sometimes preferable because it requires no modification of the data values, involves swapping real and imaginary parts (which can be done on a computer simply by modifying [[pointer (computer programming)|pointer]]s). Define swap(<math>x_n</math>) as <math>x_n</math> with its real and imaginary parts swapped—that is, if <math>x_n = a + b i</math> then swap(<math>x_n</math>) is <math>b + a i</math>.  Equivalently, swap(<math>x_n</math>) equals <math>i x_n^*</math>.  Then
 
:<math>\mathcal{F}^{-1}(\mathbf{x}) = \textrm{swap}(\mathcal{F}(\textrm{swap}(\mathbf{x}))) / N</math>
 
That is, the inverse transform is the same as the forward transform with the real and imaginary parts swapped for both input and output, up to a normalization (Duhamel ''et al.'', 1988).
 
The conjugation trick can also be used to define a new transform, closely related to the DFT, that is [[Involution (mathematics)|involutary]]—that is, which is its own inverse. In particular, <math>T(\mathbf{x}) = \mathcal{F}(\mathbf{x}^*) / \sqrt{N}</math> is clearly its own inverse: <math>T(T(\mathbf{x})) = \mathbf{x}</math>.  A closely related involutary transformation (by a factor of (1+''i'') /√2) is <math>H(\mathbf{x}) = \mathcal{F}((1+i) \mathbf{x}^*) / \sqrt{2N}</math>, since the <math>(1+i)</math> factors in <math>H(H(\mathbf{x}))</math> cancel the 2.  For real inputs <math>\mathbf{x}</math>, the real part of <math>H(\mathbf{x})</math> is none other than the [[discrete Hartley transform]], which is also involutary.
 
=== Eigenvalues and eigenvectors ===
 
The [[eigenvalue]]s of the DFT matrix are simple and well-known, whereas the [[eigenvector]]s are complicated, not unique, and are the subject of ongoing research.
 
Consider the unitary form <math>\mathbf{U}</math> defined above for the DFT of length ''N'', where
:<math>\mathbf{U}_{m,n} = \frac1{\sqrt{N}}\omega_N^{(m-1)(n-1)} = \frac1{\sqrt{N}}e^{-\frac{2\pi i}N (m-1)(n-1)}.</math>
This matrix satisfies the [[matrix polynomial]] equation:
:<math>\mathbf{U}^4 = \mathbf{I}.</math>
This can be seen from the inverse properties above: operating <math>\mathbf{U}</math> twice gives the original data in reverse order, so operating <math>\mathbf{U}</math> four times gives back the original data and is thus the [[identity matrix]].  This means that the eigenvalues <math>\lambda</math> satisfy the equation:
:<math>\lambda^4 = 1.</math>
Therefore, the eigenvalues of <math>\mathbf{U}</math> are the fourth [[roots of unity]]: <math>\lambda</math> is +1, −1, +''i'',  or −''i''.
 
Since there are only four distinct eigenvalues for this <math>N\times N</math> matrix, they have some [[algebraic multiplicity|multiplicity]].  The multiplicity gives the number of [[linearly independent]] eigenvectors corresponding to each eigenvalue.  (Note that there are ''N'' independent eigenvectors; a unitary matrix is never [[defective matrix|defective]].)
 
The problem of their multiplicity was solved by McClellan and Parks (1972), although it was later shown to have been equivalent to a problem solved by [[Carl Friedrich Gauss|Gauss]] (Dickinson and Steiglitz, 1982).  The multiplicity depends on the value of ''N'' [[modular arithmetic|modulo]] 4, and is given by the following table:
 
{| class="wikitable" style="margin:auto;"
|+ align="bottom" | Multiplicities of the eigenvalues λ of the unitary DFT matrix '''U''' as a function of the transform size ''N'' (in terms of an integer ''m'').
|-
! size ''N''
! λ = +1
! λ = −1
! λ = -''i''
! λ = +''i''
|-
|    4''m''  ||  ''m'' + 1  ||  ''m''  ||  ''m''  ||  ''m'' − 1
|-
|    4''m'' + 1  ||  ''m'' + 1  ||  ''m''  ||  ''m''  ||  ''m''
|-
|    4''m'' + 2  ||  ''m'' + 1  ||  ''m'' + 1  ||  ''m''  ||  ''m''
|-
|    4''m'' + 3  ||  ''m'' + 1  ||  ''m'' + 1  ||  ''m'' + 1  ||  ''m''
|}
 
Otherwise stated, the [[characteristic polynomial]] of <math>\mathbf{U}</math> is:
:<math>\det (\lambda I - \mathbf{U})=
(\lambda-1)^{\left\lfloor \tfrac {N+4}{4}\right\rfloor}
(\lambda+1)^{\left\lfloor \tfrac {N+2}{4}\right\rfloor}
(\lambda+i)^{\left\lfloor \tfrac {N+1}{4}\right\rfloor}
(\lambda-i)^{\left\lfloor \tfrac {N-1}{4}\right\rfloor}.</math>
 
No simple analytical formula for general eigenvectors is known.  Moreover, the eigenvectors are not unique because any linear combination of eigenvectors for the same eigenvalue is also an eigenvector for that eigenvalue.  Various researchers have proposed different choices of eigenvectors, selected to satisfy useful properties like [[orthogonality]] and to have "simple" forms (e.g., McClellan and Parks, 1972; Dickinson and Steiglitz, 1982; Grünbaum, 1982; Atakishiyev and Wolf, 1997; Candan ''et al.'', 2000; Hanna ''et al.'', 2004; Gurevich and Hadani, 2008).
 
A straightforward approach is to discretize the eigenfunction of the continuous [[Fourier transform]],
namely the [[Gaussian function]].
Since [[periodic summation]] of the function means discretizing its frequency spectrum
and discretization means periodic summation of the spectrum,
the discretized and periodically summed Gaussian function yields an eigenvector of the discrete transform:
*<math>F(m) = \sum_{k\in\mathbb{Z}} \exp\left(-\frac{\pi\cdot(m+N\cdot k)^2}{N}\right)</math>.
:A closed form expression for the series is not known, but it converges rapidly.
 
Two other simple closed-form analytical eigenvectors for special DFT period ''N'' were found (Kong, 2008):
 
For DFT period ''N'' = 2''L'' + 1 = 4''K'' +1, where ''K'' is an integer, the following is an eigenvector of DFT:
*<math>F(m)=\prod_{s=K+1}^L\left[\cos\left(\frac{2\pi}{N}m\right)- \cos\left(\frac{2\pi}{N}s\right)\right]</math>
 
For DFT period ''N'' = 2''L'' = 4''K'', where ''K'' is an integer, the following is an eigenvector of DFT:
*<math>F(m)=\sin\left(\frac{2\pi}{N}m\right)\prod_{s=K+1}^{L-1}\left[\cos\left(\frac{2\pi}{N}m\right)- \cos\left(\frac{2\pi}{N}s\right)\right]</math>
 
The choice of eigenvectors of the DFT matrix has become important in recent years in order to define a discrete analogue of the [[fractional Fourier transform]]—the DFT matrix can be taken to fractional powers by exponentiating the eigenvalues (e.g., Rubio and Santhanam, 2005).  For the [[continuous Fourier transform]], the natural orthogonal eigenfunctions are the [[Hermite function]]s, so various discrete analogues of these have been employed as the eigenvectors of the DFT, such as the [[Kravchuk polynomials]] (Atakishiyev and Wolf, 1997).  The "best" choice of eigenvectors to define a fractional discrete Fourier transform remains an open question, however.
 
=== Uncertainty principle ===
 
If the random variable <math>X_k</math> is constrained by:
 
:<math>\sum_{n=0}^{N-1}|X_n|^2=1</math>
 
then <math>P_n=|X_n|^2</math> may be considered to represent a discrete [[probability mass function]] of ''n'', with an associated probability mass function constructed from the transformed variable:
 
:<math>Q_m=N|x_m|^2</math>
 
For the case of continuous functions ''P(x)'' and ''Q(k)'', the [[Heisenberg uncertainty principle]] states that:
 
:<math>D_0(X)D_0(x)\ge\frac{1}{16\pi^2}</math>
 
where <math>D_0(X)</math> and <math>D_0(x)</math> are the variances of <math>|X|^2</math> and <math>|x|^2</math> respectively, with the equality attained in the case of a suitably normalized [[Gaussian distribution]]. Although the variances may be analogously defined for the DFT, an analogous uncertainty principle is not useful, because the uncertainty will not be shift-invariant. Nevertheless, a meaningful uncertainty principle has been introduced by Massar and Spindel.<ref>{{cite doi|10.1103/PhysRevLett.100.190401|noedit}}</ref>
 
However, the [[Hirschman uncertainty]] will have a useful analog for the case of the DFT.<ref name="DeBrunner">{{cite journal |last1=DeBrunner |first1=Victor |last2=Havlicek |first2=Joseph P. |last3=Przebinda |first3=Tomasz|last4=Özaydin |first4=Murad|year=2005 |title=Entropy-Based Uncertainty Measures for <math>L^2(\mathbb{R}^n),\ell^2(\mathbb{Z})</math>, and <math>\ell^2(\mathbb{Z}/N\mathbb{Z})</math> With a Hirschman Optimal Transform for <math>\ell^2(\mathbb{Z}/N\mathbb{Z})</math> |journal=IEEE Transactions on Signal Processing |volume=53 |issue=8 |page=2690 |publisher= |doi=  10.1109/TSP.2005.850329|url=http://redwood.berkeley.edu/w/images/9/95/2002-26.pdf |accessdate=2011-06-23 |bibcode = 2005ITSP...53.2690D }}</ref> The Hirschman uncertainty principle is expressed in terms of the [[Entropy (information theory)|Shannon entropy]] of the two probability functions. In the discrete case, the Shannon entropies are defined as:
 
:<math>H(X)=-\sum_{n=0}^{N-1} P_n\ln P_n</math>
and
:<math>H(x)=-\sum_{m=0}^{N-1} Q_m\ln Q_m</math>
 
and the Hirschman uncertainty principle becomes:<ref name="DeBrunner"/>
 
:<math>H(X)+H(x) \ge \ln(N)</math>
 
The equality is obtained for <math>P_n</math> equal to translations and modulations of a suitably normalized [[Kronecker comb]] of period ''A'' where ''A'' is any exact integer divisor of N. The probability mass function <math>Q_m</math> will then be proportional to a suitably translated [[Kronecker comb]] of period ''B=N/A''.<ref name="DeBrunner"/>
 
=== The real-input DFT ===
If <math>x_0, \ldots, x_{N-1}</math> are [[real number]]s, as they often are in practical applications, then the DFT obeys the symmetry:
 
:<math>X_{N-k} \equiv X_{-k} = X_k^*,</math>&nbsp; where <math>X^*\,</math> denotes [[Complex conjugate|complex conjugation]].
 
It follows that ''X''<sub>''0''</sub> and ''X''<sub>''N/2''</sub> are real-valued, and the remainder of the DFT is completely specified by just ''N/2-1'' complex numbers.
 
==Generalized DFT (shifted and non-linear phase)==
It is possible to shift the transform sampling in time and/or frequency domain by some real shifts ''a'' and ''b'', respectively. This is sometimes known as a '''generalized DFT''' (or '''GDFT'''), also called the '''shifted DFT''' or '''offset DFT''', and has analogous properties to the ordinary DFT:
 
:<math>X_k = \sum_{n=0}^{N-1} x_n e^{-\frac{2 \pi i}{N} (k+b) (n+a)} \quad \quad k = 0, \dots, N-1.</math>
 
Most often, shifts of <math>1/2</math> (half a sample) are used.
While the ordinary DFT corresponds to a periodic signal in both time and frequency domains, <math>a=1/2</math> produces a signal that is anti-periodic in frequency domain (<math>X_{k+N} = - X_k</math>) and vice-versa for <math>b=1/2</math>.
Thus, the specific case of <math>a = b = 1/2</math> is known as an ''odd-time odd-frequency'' discrete Fourier transform (or O<sup>2</sup> DFT).
Such shifted transforms are most often used for symmetric data, to represent different boundary symmetries, and for real-symmetric data they correspond to different forms of the discrete [[discrete cosine transform|cosine]] and [[discrete sine transform|sine]] transforms.
 
Another interesting choice is <math>a=b=-(N-1)/2</math>, which is called the '''centered DFT''' (or '''CDFT''').  The centered DFT has the useful property that, when ''N'' is a multiple of four, all four of its eigenvalues (see above) have equal multiplicities (Rubio and Santhanam, 2005)<ref>Santhanam, Balu; Santhanam, Thalanayar S. [http://thamakau.usc.edu/Proceedings/ICASSP%202007/pdfs/0301385.pdf "''Discrete Gauss-Hermite functions and eigenvectors of the centered discrete Fourier transform''"], Proceedings of the 32nd IEEE ''International Conference on Acoustics, Speech, and Signal Processing'' (ICASSP 2007, SPTM-P12.4), vol. III, pp. 1385-1388.</ref>
 
The term GDFT is also used for the non-linear phase extensions of DFT. Hence, GDFT method provides a generalization for constant amplitude orthogonal block transforms including linear and non-linear phase types. GDFT is a framework
to improve time and frequency domain properties of the traditional DFT, e.g. auto/cross-correlations, by the addition of the properly designed phase shaping function (non-linear, in general) to the original linear phase functions (Akansu and Agirman-Tosun, 2010).<ref>Akansu, Ali N.; Agirman-Tosun, Handan
[http://web.njit.edu/~akansu/PAPERS/AkansuIEEE-TSP2010.pdf "''Generalized Discrete Fourier Transform With Nonlinear Phase''"], IEEE ''Transactions on Signal Processing'', vol. 58, no. 9, pp. 4547-4556, Sept. 2010.</ref>   
 
The discrete Fourier transform can be viewed as a special case of the [[z-transform]], evaluated on the unit circle in the complex plane; more general z-transforms correspond to ''complex'' shifts ''a'' and ''b'' above.
 
==Multidimensional DFT==<!-- This section is linked from [[Fast Fourier transform]] -->
The ordinary DFT transforms a one-dimensional sequence or [[matrix (mathematics)|array]] <math>x_n</math> that is a function of exactly one discrete variable ''n''.  The multidimensional DFT of a multidimensional array <math>x_{n_1, n_2, \dots, n_d}</math> that is a function of ''d'' discrete variables <math>n_\ell = 0, 1, \dots, N_\ell-1</math> for <math>\ell</math> in <math>1, 2, \dots, d</math> is defined by:
 
:<math>X_{k_1, k_2, \dots, k_d} = \sum_{n_1=0}^{N_1-1} \left(\omega_{N_1}^{~k_1 n_1} \sum_{n_2=0}^{N_2-1} \left( \omega_{N_2}^{~k_2 n_2} \cdots \sum_{n_d=0}^{N_d-1} \omega_{N_d}^{~k_d n_d}\cdot x_{n_1, n_2, \dots, n_d} \right) \right) \, , </math>
 
where <math>\omega_{N_\ell} = \exp(-2\pi i/N_\ell)</math> as above and the ''d'' output indices run from <math>k_\ell = 0, 1, \dots, N_\ell-1</math>.  This is more compactly expressed in [[coordinate vector|vector]] notation, where we define <math>\mathbf{n} = (n_1, n_2, \dots, n_d)</math> and <math>\mathbf{k} = (k_1, k_2, \dots, k_d)</math> as ''d''-dimensional vectors of indices from 0 to <math>\mathbf{N} - 1</math>, which we define as <math>\mathbf{N} - 1 = (N_1 - 1, N_2 - 1, \dots, N_d - 1)</math>:
 
:<math>X_\mathbf{k} = \sum_{\mathbf{n}=0}^{\mathbf{N}-1} e^{-2\pi i \mathbf{k} \cdot (\mathbf{n} / \mathbf{N})} x_\mathbf{n} \, ,</math>
 
where the division <math>\mathbf{n} / \mathbf{N}</math> is defined as <math>\mathbf{n} / \mathbf{N} = (n_1/N_1, \dots, n_d/N_d)</math> to be performed element-wise, and the sum denotes the set of nested summations above.
 
The inverse of the multi-dimensional DFT is, analogous to the one-dimensional case, given by:
 
:<math>x_\mathbf{n} = \frac{1}{\prod_{\ell=1}^d N_\ell} \sum_{\mathbf{k}=0}^{\mathbf{N}-1} e^{2\pi i \mathbf{n} \cdot (\mathbf{k} / \mathbf{N})} X_\mathbf{k} \, .</math>
 
As the one-dimensional DFT expresses the input <math>x_n</math> as a superposition of sinusoids, the multidimensional DFT expresses the input as a superposition of [[plane wave]]s, or multidimensional sinusoids. The direction of oscillation in space is <math>\mathbf{k} / \mathbf{N}</math>. The amplitudes  are <math>X_\mathbf{k}</math>.  This decomposition is of great importance for everything from [[digital image processing]] (two-dimensional) to solving [[partial differential equations]]. The solution is broken up into plane waves.
 
The multidimensional DFT can be computed by the [[function composition|composition]] of a sequence of one-dimensional DFTs along each dimension.  In the two-dimensional case <math>x_{n_1,n_2}</math> the <math>N_1</math> independent DFTs of the rows (i.e., along <math>n_2</math>) are computed first to form a new array <math>y_{n_1,k_2}</math>. Then the <math>N_2</math> independent DFTs of ''y'' along the columns (along <math>n_1</math>) are computed to form the final result <math>X_{k_1,k_2}</math>.  Alternatively the columns can be computed first and then the rows. The order is immaterial because the nested summations above [[commutative operation|commute]].
 
An algorithm to compute a one-dimensional DFT is thus sufficient to efficiently compute a multidimensional DFT.  This approach is known as the ''row-column'' algorithm. There are also intrinsically [[Fast Fourier transform#Multidimensional FFTs|multidimensional FFT algorithms]].
 
=== The real-input multidimensional DFT ===
For input data <math>x_{n_1, n_2, \dots, n_d}</math> consisting of [[real numbers]], the DFT outputs have a conjugate symmetry similar to the one-dimensional case above:
 
:<math>X_{k_1, k_2, \dots, k_d} = X_{N_1 - k_1, N_2 - k_2, \dots, N_d - k_d}^* ,</math>
 
where the star again denotes complex conjugation and the <math>\ell</math>-th subscript is again interpreted modulo <math>N_\ell</math> (for <math>\ell = 1,2,\ldots,d</math>).
 
== Applications ==
The DFT has seen wide usage across a large number of fields; we only sketch a few examples below (see also the references at the end). All applications of the DFT depend crucially on the availability of a fast algorithm to compute discrete Fourier transforms and their inverses, a [[fast Fourier transform]].
 
=== Spectral analysis ===
When the DFT is used for [[Frequency spectrum#Spectrum analysis|spectral analysis]], the <math>\{x_n\}\,</math> sequence usually represents a finite set of uniformly spaced time-samples of some signal <math>x(t)\,</math>, where ''t'' represents time.  The conversion from continuous time to samples (discrete-time) changes the underlying [[continuous Fourier transform|Fourier transform]] of x(t) into a [[discrete-time Fourier transform]] (DTFT), which generally entails a type of distortion called [[aliasing]].  Choice of an appropriate sample-rate (see ''[[Nyquist rate]]'') is the key to minimizing that distortion.  Similarly, the conversion from a very long (or infinite) sequence to a manageable size entails a type of distortion called ''[[Spectral leakage|leakage]]'', which is manifested as a loss of detail (aka resolution) in the DTFT.  Choice of an appropriate sub-sequence length is the primary key to minimizing that effect.  When the available data (and time to process it) is more than the amount needed to attain the desired frequency resolution, a standard technique is to perform multiple DFTs, for example to create a [[spectrogram]].  If the desired result is a power spectrum and noise or randomness is present in the data, averaging the magnitude components of the multiple DFTs is a useful procedure to reduce the [[variance]] of the spectrum (also called a [[periodogram]] in this context); two examples of such techniques are the [[Welch method]] and the [[Bartlett method]]; the general subject of estimating the power spectrum of a noisy signal is called [[spectral estimation]].
 
A final source of distortion (or perhaps ''illusion'') is the DFT itself, because it is just a discrete sampling of the DTFT, which is a function of a continuous frequency domain.  That can be mitigated by increasing the resolution of the DFT.  That procedure is illustrated at [[Discrete-time Fourier transform#Sampling the DTFT|Sampling the DTFT]].
*The procedure is sometimes referred to as ''zero-padding'', which is a particular implementation used in conjunction with the [[fast Fourier transform]] (FFT) algorithm.  The inefficiency of performing multiplications and additions with zero-valued "samples" is more than offset by the inherent efficiency of the FFT.
*As already noted, leakage imposes a limit on the inherent resolution of the DTFT.  So there is a practical limit to the benefit that can be obtained from a fine-grained DFT.
 
=== Filter bank ===
See [[Filter bank#FFT filter banks|FFT filter banks]] and [[Discrete-time Fourier transform#Sampling the DTFT|Sampling the DTFT]].
 
===Data compression===
The field of digital signal processing relies heavily on operations in the frequency domain (i.e. on the Fourier transform). For example, several [[lossy]] image and sound compression methods employ the discrete Fourier transform: the signal is cut into short segments, each is transformed, and then the Fourier coefficients of high frequencies, which are assumed to be unnoticeable, are discarded. The decompressor computes the inverse transform based on this reduced number of Fourier coefficients. (Compression applications often use a specialized form of the DFT, the [[discrete cosine transform]] or sometimes the [[modified discrete cosine transform]].)
Some relatively recent compression algorithms, however, use [[wavelet transform]]s, which give a more uniform compromise between time and frequency domain than obtained by chopping data into segments and transforming each segment.  In the case of [[JPEG2000]], this avoids the spurious image features that appear when images are highly compressed with the original [[JPEG]].
 
===Partial differential equations===
Discrete Fourier transforms are often used to solve [[partial differential equations]], where again the DFT is used as an approximation for the [[Fourier series]] (which is recovered in the limit of infinite ''N''). The advantage of this approach is that it expands the signal in complex exponentials ''e''<sup>''inx''</sup>, which are eigenfunctions of differentiation: ''d''/''dx'' ''e''<sup>''inx''</sup> = ''in'' ''e''<sup>''inx''</sup>. Thus, in the Fourier representation, differentiation is simple—we just multiply by ''i n''.  (Note, however, that the choice of ''n'' is not unique due to aliasing; for the method to be convergent, a choice similar to that in the [[Discrete Fourier transform#Trigonometric interpolation polynomial|trigonometric interpolation]] section above should be used.) A [[linear differential equation]] with constant coefficients is transformed into an easily solvable algebraic equation. One then uses the inverse DFT to transform the result back into the ordinary spatial representation. Such an approach is called a [[spectral method]].
 
===Polynomial multiplication===
 
Suppose we wish to compute the polynomial product ''c''(''x'') = ''a''(''x'') · ''b''(''x'').  The ordinary product expression for the coefficients of ''c'' involves a linear (acyclic) convolution, where indices do not "wrap around."  This can be rewritten as a cyclic convolution by taking the coefficient vectors for ''a''(''x'') and ''b''(''x'') with constant term first, then appending zeros so that the resultant coefficient vectors '''a''' and '''b''' have dimension ''d''&nbsp;>&nbsp;deg(''a''(''x''))&nbsp;+&nbsp;deg(''b''(''x'')).  Then,
 
:<math>\mathbf{c} = \mathbf{a} * \mathbf{b}</math>
 
Where '''c''' is the vector of coefficients for ''c''(''x''), and the convolution operator <math>*\,</math> is defined so
 
:<math>c_n = \sum_{m=0}^{d-1}a_m b_{n-m\ \mathrm{mod}\ d} \qquad\qquad\qquad n=0,1\dots,d-1</math>
 
But convolution becomes multiplication under the DFT:
 
:<math>\mathcal{F}(\mathbf{c}) = \mathcal{F}(\mathbf{a})\mathcal{F}(\mathbf{b})</math>
 
Here the vector product is taken elementwise.  Thus the coefficients of the product polynomial ''c''(''x'') are just the terms 0, ..., deg(''a''(''x'')) + deg(''b''(''x'')) of the coefficient vector
 
:<math>\mathbf{c} = \mathcal{F}^{-1}(\mathcal{F}(\mathbf{a})\mathcal{F}(\mathbf{b})).</math>
 
With a [[fast Fourier transform]], the resulting algorithm takes O (''N''&nbsp;log&nbsp;''N'') arithmetic operations.  Due to its simplicity and speed, the [[Cooley–Tukey FFT algorithm]], which is limited to [[composite number|composite]] sizes, is often chosen for the transform operation.  In this case, ''d'' should be chosen as the smallest integer greater than the sum of the input polynomial degrees that is factorizable into small prime factors (e.g. 2, 3, and 5, depending upon the FFT implementation).
 
====Multiplication of large integers====
 
The fastest known [[multiplication algorithms|algorithms]] for the multiplication of very large [[integer]]s use the polynomial multiplication method outlined above.  Integers can be treated as the value of a polynomial evaluated specifically at the number base, with the coefficients of the polynomial corresponding to the digits in that base.  After polynomial multiplication, a relatively low-complexity carry-propagation step completes the multiplication.
 
==== Convolution ====
When data is [[Convolution|convolved]] with a function with wide support, such as for downsampling by a large sampling ratio, because of the [[Convolution theorem]] and the FFT algorithm, it may be faster to transform it, multiply pointwise by the transform of the filter and then reverse transform it.  Alternatively, a good filter is obtained by simply truncating the transformed data and re-transforming the shortened data set.
 
==Some discrete Fourier transform pairs==
 
{| class="wikitable" style="text-align: center;"
|+ '''Some DFT pairs'''
|-
! <math>x_n = \frac{1}{N}\sum_{k=0}^{N-1}X_k  e^{i 2 \pi kn/N} </math>
! <math>X_k = \sum_{n=0}^{N-1}x_n  e^{-i 2 \pi kn/N} </math>
! Note
|-
| <math>x_n e^{i 2 \pi n\ell/N} \,</math>
| <math>X_{k-\ell}\,</math>
| rowspan="2"| Shift theorem
|-
| <math>x_{n-\ell}\,</math>
| <math>X_k  e^{-i 2 \pi k\ell/N} \,</math>
|-
| <math>x_n \in \mathbb{R}</math>
| <math>X_k=X_{N-k}^*\,</math>
| Real DFT
|-
| <math>a^n\,</math>
| <math>\left\{ \begin{matrix}
                  N & \mbox{if } a = e^{i 2 \pi k/N} \\
                  \frac{1-a^N}{1-a \, e^{-i 2 \pi k/N} } & \mbox{otherwise}
                \end{matrix} \right. </math>
| from the [[geometric progression]] formula
|-
| <math>{N-1 \choose n}\,</math>
| <math>\left(1+e^{-i 2 \pi k/N} \right)^{N-1}\,</math>
| from the [[binomial theorem]]
|-
| <math>\left\{ \begin{matrix}
                        \frac{1}{W} & \mbox{if } 2n < W \mbox{ or } 2(N-n) < W \\
                        0 & \mbox{otherwise}
                      \end{matrix} \right. </math>
| <math>\left\{ \begin{matrix}
              1 & \mbox{if } k = 0 \\
              \frac{\sin\left(\frac{\pi W k}{N}\right)}
                  {W \sin\left(\frac{\pi k}{N}\right)} & \mbox{otherwise}
                      \end{matrix} \right. </math>
| <math>x_n</math> is a rectangular [[window function]] of ''W'' points centered on ''n''=0, where ''W'' is an [[odd integer]], and <math>X_k</math> is a [[sinc]]-like function (specifically, <math>X_k</math> is a [[Dirichlet kernel]])
|-
| <math>\sum_{j\in\mathbb{Z}} \exp\left(-\frac{\pi}{cN}\cdot(n+N\cdot j)^2\right)</math>
| <math>\sqrt{cN} \cdot \sum_{j\in\mathbb{Z}} \exp\left(-\frac{\pi c}{N}\cdot(k+N\cdot j)^2\right)</math>
| [[Discretization]] and [[periodic summation]] of the scaled [[Gaussian function]]s for <math>c>0</math>. Since either <math>c</math> or <math>\frac{1}{c}</math> is larger than one and thus warrants fast convergence of one of the two series, for large <math>c</math> you may choose to compute the frequency spectrum and convert to the time domain using the discrete Fourier transform.
|}
 
==Generalizations==
 
=== Representation theory ===
{{details|Representation theory of finite groups#Discrete Fourier transform}}
 
The DFT can be interpreted as the complex-valued [[representation theory]] of the finite [[cyclic group]]. In other words, a sequence of ''n'' complex numbers can be thought of as an element of ''n''-dimensional complex space '''C'''<sup>''n''</sup> or equivalently a function ''f'' from the finite cyclic group of order ''n'' to the complex numbers, '''Z'''<sub>''n''</sub> → '''C'''. So  ''f'' is a [[class function]] on the finite cyclic group, and thus can be expressed as a linear combination of the irreducible characters of this group, which are the roots of unity.
 
From this point of view, one may generalize the DFT to representation theory generally, or more narrowly to the [[representation theory of finite groups]].
 
More narrowly still, one may generalize the DFT by either changing the target (taking values in a field other than the complex numbers), or the domain (a group other than a finite cyclic group), as detailed in the sequel.
 
=== Other fields ===
{{Main|Discrete Fourier transform (general)|Number-theoretic transform}}
Many of the properties of the DFT only depend on the fact that <math>e^{-\frac{2 \pi i}{N}}</math> is a [[primitive root of unity]], sometimes denoted <math>\omega_N</math> or <math>W_N</math> (so that <math>\omega_N^N = 1</math>).  Such properties include the completeness, orthogonality, Plancherel/Parseval, periodicity, shift, convolution, and unitarity properties above, as well as many FFT algorithms. For this reason, the discrete Fourier transform can be defined by using roots of unity in [[field (mathematics)|fields]] other than the complex numbers, and such generalizations are commonly called ''number-theoretic transforms'' (NTTs) in the case of [[finite field]]s. For more information, see [[number-theoretic transform]] and [[discrete Fourier transform (general)]].
 
=== Other finite groups ===
{{Main|Fourier transform on finite groups}}
The standard DFT acts on a sequence ''x''<sub>0</sub>, ''x''<sub>1</sub>, …, ''x''<sub>''N''&minus;1</sub> of complex numbers, which can be viewed as a function {0, 1, …, ''N'' &minus; 1} → '''C'''. The multidimensional DFT acts on multidimensional sequences, which can be viewed as functions
:<math> \{0, 1, \ldots, N_1-1\} \times \cdots \times \{0, 1, \ldots, N_d-1\} \to \mathbb{C}. </math>
This suggests the generalization to [[Fourier transform on finite groups|Fourier transforms on arbitrary finite groups]], which act on functions ''G'' → '''C''' where ''G'' is a [[finite group]]. In this framework, the standard DFT is seen as the Fourier transform on a [[cyclic group]], while the multidimensional DFT is a Fourier transform on a direct sum of cyclic groups.
 
==Alternatives==
{{Main|Discrete wavelet transform}}
{{details|Discrete wavelet transform#Comparison with Fourier transform}} There are various alternatives to the DFT for various applications, prominent among which are [[wavelets]]. The analog of the DFT is the [[discrete wavelet transform]] (DWT). From the point of view of [[time–frequency analysis]], a key limitation of the Fourier transform is that it does not include ''location'' information, only ''frequency'' information, and thus has difficulty in representing transients. As wavelets have location as well as frequency, they are better able to represent location, at the expense of greater difficulty representing frequency. For details, see [[Discrete wavelet transform#Comparison with Fourier transform|comparison of the discrete wavelet transform with the discrete Fourier transform]].
 
==See also==
*[[Companion matrix]]
*[[DFT matrix]]
*[[Fast Fourier transform]]
*[[FFTPACK]]
*[[FFTW]]
*[[Generalizations of Pauli matrices]]
*[[List of Fourier-related transforms]]
* [[Multidimensional transform]]
 
==Notes==
{{reflist|group=note}}
 
==Citations==
{{Reflist}}
 
==References==
{{More footnotes|date=January 2009}}
* {{cite book
| last = Brigham | first = E. Oran
| title=The fast Fourier transform and its applications
| location = Englewood Cliffs, N.J.
| publisher = Prentice Hall
| year=1988
| isbn=0-13-307505-2
}}
* {{cite book
| author = [[Alan V. Oppenheim|Oppenheim, Alan V.]]; [[Ronald W. Schafer|Schafer, R. W.]]; and Buck, J. R.
| title = Discrete-time signal processing
| location = Upper Saddle River, N.J.
| publisher = Prentice Hall
| year = 1999
| isbn = 0-13-754920-2
}}
* {{cite book
| last = Smith | first = Steven W.
| url = http://www.dspguide.com/ch8/1.htm
| title = The Scientist and Engineer's Guide to Digital Signal Processing
| edition = Second
| location = San Diego, Calif.
| publisher = California Technical Publishing
| year=1999
| isbn=0-9660176-3-3
| chapter = Chapter 8: The Discrete Fourier Transform
}}
* {{cite book
| first = Thomas H. | last = Cormen | authorlink = Thomas H. Cormen
| coauthors = [[Charles E. Leiserson]], [[Ronald L. Rivest]], and [[Clifford Stein]]
| year = 2001
| title = [[Introduction to Algorithms]]
| edition = Second
| publisher = MIT Press and McGraw-Hill
| isbn = 0-262-03293-7
| chapter = Chapter 30: Polynomials and the FFT
| pages = 822–848
}} esp. section 30.2: The DFT and FFT, pp.&nbsp;830–838.
* {{cite journal
| author = P. Duhamel, B. Piron, and J. M. Etcheto
| title = On computing the inverse DFT
| journal = IEEE Trans. Acoust., Speech and Sig. Processing
| volume = 36 | issue = 2 | pages = 285–286 | year = 1988
| doi = 10.1109/29.1519
}}
* {{cite journal
| author = J. H. McClellan and T. W. Parks
| title = Eigenvalues and eigenvectors of the discrete Fourier transformation
| journal = IEEE Trans. Audio Electroacoust.
| volume = 20 | issue = 1 | pages = 66–74 | year = 1972
| doi = 10.1109/TAU.1972.1162342
}}
* {{cite journal
| author = Bradley W. Dickinson and Kenneth Steiglitz
| title = Eigenvectors and functions of the discrete Fourier transform
| journal = IEEE Trans. Acoust., Speech and Sig. Processing
| volume = 30 | issue = 1 | pages = 25–31 | year = 1982
| doi = 10.1109/TASSP.1982.1163843
}} (Note that this paper has an apparent typo in its table of the eigenvalue multiplicities: the +''i''/&minus;''i'' columns are interchanged.  The correct table can be found in McClellan and Parks, 1972, and is easily confirmed numerically.)
* {{cite journal
| author = F. A. Grünbaum
| title = The eigenvectors of the discrete Fourier transform
| journal = J. Math. Anal. Appl.
| volume = 88 | issue = 2 | pages = 355–363 | year = 1982
| doi = 10.1016/0022-247X(82)90199-8
}}
* {{cite journal
| author = Natig M. Atakishiyev and Kurt Bernardo Wolf
| title = Fractional Fourier-Kravchuk transform
| journal = J. Opt. Soc. Am. A
| volume = 14 | issue = 7 | pages = 1467–1477 | year = 1997
| doi = 10.1364/JOSAA.14.001467
|bibcode = 1997JOSAA..14.1467A }}
* {{cite journal
| author = C. Candan, M. A. Kutay and H. M.Ozaktas
| title = The discrete fractional Fourier transform
| journal = IEEE Trans. on Signal Processing
| volume = 48 | issue = 5 | pages = 1329–1337 | year = 2000
| doi = 10.1109/78.839980
|bibcode = 2000ITSP...48.1329C }}
* {{cite journal
| author = Magdy Tawfik Hanna, Nabila Philip Attalla Seif, and Waleed Abd El Maguid Ahmed
| title = Hermite-Gaussian-like eigenvectors of the discrete Fourier transform matrix based on the singular-value decomposition of its orthogonal projection matrices
| journal = IEEE Trans. Circ. Syst. I
| volume = 51 | issue = 11 | pages = 2245–2254 | year = 2004
| doi = 10.1109/TCSI.2004.836850
}}
*{{cite journal
| author=Shamgar Gurevich and Ronny Hadani
| title=On the diagonalization of the discrete Fourier transform
| id=preprint at
| journal=Applied and Computational Harmonic Analysis
| volume = 27 | issue = 1 | year=2009
| pages=87–99
| doi=10.1016/j.acha.2008.11.003
| arxiv=0808.3281
}}
*{{cite journal
| author=Shamgar Gurevich, Ronny Hadani, and Nir Sochen
| title=The finite harmonic oscillator and its applications to sequences, communication and radar
| id=preprint at
| journal= IEEE Transactions on Information Theory
| volume = 54 | issue = 9 | pages = 4239–4253 | year=2008
| doi=10.1109/TIT.2008.926440
| arxiv=0808.1495
}}
* {{cite journal
| author = Juan G. Vargas-Rubio and Balu Santhanam
| title = On the multiangle centered discrete fractional Fourier transform
| journal = IEEE Sig. Proc. Lett.
| volume = 12 | issue = 4 | pages = 273–276 | year = 2005
| doi = 10.1109/LSP.2005.843762
|bibcode = 2005ISPL...12..273V }}
* {{cite journal
| author = [[James Cooley|J. Cooley]], P. Lewis, and P. Welch
| title = The finite Fourier transform
| journal = IEEE Trans. Audio Electroacoustics
| volume = 17 | issue = 2 | pages = 77–85 | year = 1969
| doi = 10.1109/TAU.1969.1162036
}}
* {{cite journal
| author = F.N. Kong
| title = Analytic Expressions of Two Discrete Hermite-Gaussian Signals
| journal = IEEE Trans. Circuits and Systems –II: Express Briefs.
| volume = 55 | issue = 1 | pages = 56–60 | year = 2008
| doi = 10.1109/TCSII.2007.909865
}}
 
==External links==
*[http://www.nbtwiki.net/doku.php?id=tutorial:the_discrete_fourier_transformation_dft Matlab tutorial on the Discrete Fourier Transformation]
*[http://www.fourier-series.com/fourierseries2/DFT_tutorial.html Interactive flash tutorial on the DFT]
*[http://ccrma.stanford.edu/~jos/mdft/mdft.html Mathematics of the Discrete Fourier Transform by Julius O. Smith III]
*[http://www.fftw.org Fast implementation of the DFT - coded in C and under General Public License (GPL)]
*[http://www.dspdimension.com/admin/dft-a-pied/ The DFT “à Pied”: Mastering The Fourier Transform in One Day]
*[http://web.mit.edu/newsoffice/2009/explained-fourier.html Explained: The Discrete Fourier Transform]
*[http://noisemakessound.com/blofeld-wavetable-cooker/ wavetable Cooker] GPL application with graphical interface written in [[C (programming language)|C]], and implementing [[Discrete Fourier Transform|DFT]] [[Inverse discrete Fourier transform|IDFT]] to generate a wavetable set
 
{{DSP}}
 
{{DEFAULTSORT:Discrete Fourier Transform}}
[[Category:Fourier analysis]]
[[Category:Digital signal processing]]
[[Category:Numerical analysis]]
[[Category:Discrete transforms]]
[[Category:Unitary operators]]
 
[[cs:Fourierova transformace#Diskrétní Fourierova transformace]]
[[pt:Transformada de Fourier#Transformada discreta de Fourier]]
[[fi:Fourier'n muunnos#Diskreetti Fourier'n muunnos]]

Revision as of 15:00, 28 February 2014

Nice meet up with you, I am Leticia Kohan but absolutely call me anything such as. What me and my family love is bottle tops collecting terrifying would never give it up. Oregon is where me and my wife live plus i love day-after-day living what follows. His day job a auditing representative.

Check out my web site technology