In mathematics, the discrete-time Fourier transform (DTFT) is a form of Fourier analysis that is applicable to a sequence of discrete values.
The DTFT is often used to analyze samples of a continuous function. The term discrete-time refers to the fact that the transform operates on discrete data, often samples whose interval has units of time. From uniformly spaced samples it produces a function of frequency that is a periodic summation of the continuous Fourier transform of the original continuous function. Under certain theoretical conditions, described by the sampling theorem, the original continuous function can be recovered perfectly from the DTFT and thus from the original discrete samples. The DTFT itself is a continuous function of frequency, but discrete samples of it can be readily calculated via the discrete Fourier transform (DFT) (see), which is by far the most common method of modern Fourier analysis.
Both transforms are invertible. The inverse DTFT is the original sampled data sequence. The inverse DFT is a periodic summation of the original sequence. The fast Fourier transform (FFT) is an algorithm for computing one cycle of the DFT, and its inverse produces one cycle of the inverse DFT.
We begin with a common definition of the Fourier transform integral:
X(f)\triangleq
infty | |
\int | |
-infty |
x(t) ⋅ e-idt.
This reduces to a summation (see) when
x(t)
x(nT),
n.
dt
T,
X1/T(f)\triangleq
infty | |
\sum | |
n=-infty |
\underbrace{T ⋅ x(nT)}x[n] e-i,
which is a Fourier series in frequency, with periodicity
1/T.
1/T
X(f)
\omega,
2\pi,
The utility of the DTFT is rooted in the Poisson summation formula, which tells us that the periodic function represented by the Fourier series is a periodic summation of the Fourier transform:
The integer
k
1/T
fs
X1/T(f)
X(f)
fs
fs
k=0
[-fs/2,fs/2]
1/T
We also note that
e-i2\pi
\delta(t-nT).
The modulated Dirac comb function is a mathematical abstraction sometimes referred to as impulse sampling.
An operation that recovers the discrete data sequence from the DTFT function is called an inverse DTFT. For instance, the inverse continuous Fourier transform of both sides of produces the sequence in the form of a modulated Dirac comb function:
infty | |
\sum | |
n=-infty |
x[n] ⋅ \delta(t-nT)=l{F}-1\left\{X1/T(f)\right\} \triangleq
infty | |
\int | |
-infty |
X1/T(f) ⋅ eidf.
However, noting that
X1/T(f)
1/T.
n
x[n].
When the input data sequence
x[n]
N
N
X1/T(f)
1/(NT),
x[n]
(1/T)/(1/(NT))=N.
The DFT of one cycle of the
x[n]
X[k]\triangleq\underbrace{\sumNx[n] ⋅
| ||||||
e |
And
x[n]
x[n]=
1 | |
N |
\underbrace{\sumNX[k] ⋅
| ||||||
e |
\begin{align} X1/T(f)&\triangleq
infty | |
\sum | |
n=-infty |
x[n] ⋅ e-i\\ &=
infty | ||
\sum | \left[ | |
n=-infty |
1 | |
N |
N-1 | |
\sum | |
k=0 |
X[k] ⋅
| ||||||
e |
\right] ⋅ e-i\\ &=
1 | |
N |
N-1 | |
\sum | |
k=0 |
X[k]
infty | |
\underbrace{\left[\sum | |
n=-infty |
| ||||||
e |
⋅ e-i\right]}\operatorname{DTFT
| ||||||
\left(e |
\right)}\\ &=
1 | |
N |
N-1 | |
\sum | |
k=0 |
X[k] ⋅
1 | |
T |
infty | |
\sum | |
M=-infty |
\delta\left(f-\tfrac{k}{NT}-\tfrac{M}{T}\right) \end{align}
Due to the
N
k,
X1/T(f)=
1 | |
NT |
infty | |
\sum | |
k=-infty |
X[k] ⋅ \delta\left(f-
k | |
NT |
\right),
which satisfies the inverse transform requirement:
\begin{align} x[n]&=T
| ||||
\int | ||||
0 |
X1/T(f) ⋅ eidf\\ &=
1 | |
N |
infty | |
\sum | |
k=-infty |
X[k]
| ||||
\underbrace{\int | ||||
0 |
\delta\left(f-\tfrac{k}{NT}\right)eidf}zerofor\\ &=
1 | |
N |
N-1 | |
\sum | |
k=0 |
X[k]
| ||||
\int | ||||
0 |
\delta\left(f-\tfrac{k}{NT}\right)eidf\\ &=
1 | |
N |
N-1 | |
\sum | |
k=0 |
X[k] ⋅ ei{NT}nT}\\ &=
1 | |
N |
N-1 | |
\sum | |
k=0 |
X[k] ⋅ ei{N}n} \end{align}
When the DTFT is continuous, a common practice is to compute an arbitrary number of samples
(N)
X1/T
\begin{align} \underbrace{X1/T\left(
k | |
NT |
\right)} | |
Xk |
&=
infty | |
\sum | |
n=-infty |
x[n] ⋅
| ||||||
e |
k=0,...,N-1\\ &=\underbrace{\sumN
x | |
N |
[n] ⋅
| ||||||
e |
,}DFT \scriptstyle{(sumoveranyn-sequenceoflengthN)} \end{align}
where
x | |
N |
x | |
N |
infty | |
[n] \triangleq \sum | |
m=-infty |
x[n-mN].
The
x | |
N |
2 | |
|X | |
k| |
N
In order to evaluate one cycle of
x | |
N |
x[n]
L
x[n]
Case: Frequency decimation.
L=N ⋅ I,
I
A cycle of
x | |
N |
I
N.
Recall that decimation of sampled data in one domain (time or frequency) produces overlap (sometimes known as aliasing) in the other, and vice versa. Compared to an
L
x | |
N |
L,
I,
Case:
L=N+1
When a symmetric,
L
x
N
1/N,
1/L.
x | |
N |
,
N
1/N.
1/N
n=0
n=N
N
Case: Frequency interpolation.
L\leN
In this case, the DFT simplifies to a more familiar form:
Xk=
N-1 | |
\sum | |
n=0 |
x[n] ⋅
| ||||||
e |
.
In order to take advantage of a fast Fourier transform algorithm for computing the DFT, the summation is usually performed over all
N
N-L
L<N
Spectral leakage, which increases as
L
x[n]
x[n]=
| ||||||
e |
,
L=64.
Figures 2 and 3 are plots of the magnitude of two different sized DFTs, as indicated in their labels. In both cases, the dominant component is at the signal frequency:
f=1/8=0.125
L=64
The convolution theorem for sequences is:
x*y = \scriptstyle{\rmDTFT}-1\displaystyle\left[\scriptstyle{\rmDTFT}\displaystyle\{x\} ⋅ \scriptstyle{\rmDTFT}\displaystyle\{y\}\right].
x | |
N |
*y,
x | |
N |
\scriptstyle{\rmDTFT}\displaystyle
\{x | |
N |
\}
\scriptstyle{\rmDTFT}\displaystyle\{y\}
x | |
N |
*y = \scriptstyle{\rmDTFT}-1\displaystyle\left[\scriptstyle{\rmDTFT}\displaystyle
\{x | |
N |
\} ⋅ \scriptstyle{\rmDTFT}\displaystyle\{y\}\right] = \scriptstyle{\rmDFT}-1\displaystyle\left[\scriptstyle{\rmDFT}\displaystyle
\{x | |
N |
\} ⋅ \scriptstyle{\rmDFT}\displaystyle
\{y | |
N |
\}\right].
For and sequences whose non-zero duration is less than or equal to, a final simplification is:
x | |
N |
*y = \scriptstyle{\rmDFT}-1\displaystyle\left[\scriptstyle{\rmDFT}\displaystyle\{x\} ⋅ \scriptstyle{\rmDFT}\displaystyle\{y\}\right].
The significance of this result is explained at Circular convolution and Fast convolution algorithms.
When the real and imaginary parts of a complex function are decomposed into their even and odd parts, there are four components, denoted below by the subscripts RE, RO, IE, and IO. And there is a one-to-one mapping between the four components of a complex time function and the four components of its complex frequency transform:
\begin{align} Time domain & x &= &
x | |
RE |
&+ &
x | |
RO |
&+ i &
x | |
IE |
&+
&\underbrace{i x | |
IO |
From this, various relationships are apparent, for example:
(x | |
RE |
+x | |
RO |
)
XRE+i XIO.
(i x | |
IE |
+i x | |
IO |
)
XRO+i XIE,
(x | |
RE |
+i x | |
IO |
)
XRE+XRO,
(x | |
RO |
+i x | |
IE |
)
i XIE+i XIO,
X2\pi(\omega)
X2\pi(\omega)=\left.Xz(z)
\right| | |
z=ei |
=
i\omega | |
X | |
z(e |
),
where the
Xz
i\omega | |
\begin{align} X | |
z(e |
)&= X1/T\left(\tfrac{\omega}{2\piT}\right) =
infty | |
\sum | |
k=-infty |
X\left(\tfrac{\omega}{2\piT}-k/T\right)\\ &=
infty | |
\sum | |
k=-infty |
X\left(\tfrac{\omega-2\pik}{2\piT}\right). \end{align}
Note that when parameter changes, the terms of
X2\pi(\omega)
2\pi
Some common transform pairs are shown in the table below. The following notation applies:
\omega=2\pifT
f
T
\omega
X2\pi(\omega)
-infty<\omega<infty
Xo(\omega)
-\pi<\omega\le\pi
\delta(\omega)
\operatorname{sinc}(t)
\operatorname{rect}\left[{n\overL}\right]\triangleq\begin{cases} 1&|n|\leqL/2\\ 0&|n|>L/2 \end{cases}
\operatorname{tri}(t)
u[n]
\delta[n]
\deltan,0
Time domain x[''n''] | Frequency domain X2π(ω) | Remarks | Reference | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
\delta[n] | X2\pi(\omega)=1 | ||||||||||||||||||||||||||||||||||||||||||||||||||
\delta[n-M] | X2\pi(\omega)=e-i\omega | integer M | |||||||||||||||||||||||||||||||||||||||||||||||||
\delta[n-Mm] | X2\pi(\omega)=
e-i=
\delta\left(\omega-
\right) Xo(\omega)=
\delta\left(\omega-
\right) Xo(\omega)=
\delta\left(\omega-
\right) | integer M>0 | |||||||||||||||||||||||||||||||||||||||||||||||||
u[n] | X2\pi(\omega)=
+\pi
\delta(\omega-2\pik) Xo(\omega)=
+\pi ⋅ \delta(\omega)\ | The 1/(1-e-i) \omega=2\pik | |||||||||||||||||||||||||||||||||||||||||||||||||
anu[n] | X2\pi(\omega)=
| 0< | a | < 1 | |||||||||||||||||||||||||||||||||||||||||||||||
e-i | Xo(\omega)=2\pi ⋅ \delta(\omega+a), X2\pi(\omega)=2\pi
\delta(\omega+a-2\pik) | real number a | |||||||||||||||||||||||||||||||||||||||||||||||||
\cos(a ⋅ n) | Xo(\omega)=\pi\left[\delta\left(\omega-a\right)+\delta\left(\omega+a\right)\right], X2\pi(\omega) \triangleq
Xo(\omega-2\pik) | real number a -\pi<a<\pi | |||||||||||||||||||||||||||||||||||||||||||||||||
\sin(a ⋅ n) | Xo(\omega)=
\left[\delta\left(\omega-a\right)-\delta\left(\omega+a\right)\right] | real number a -\pi<a<\pi | |||||||||||||||||||||||||||||||||||||||||||||||||
\operatorname{rect}\left[{n-M\overN}\right]\equiv\operatorname{rect}\left[{n-M\overN-1}\right] | Xo(\omega)={\sin(N\omega/2)\over\sin(\omega/2)}e | integer M, N | |||||||||||||||||||||||||||||||||||||||||||||||||
\operatorname{sinc}(W(n+a)) | Xo(\omega)=
\operatorname{rect}\left({\omega\over2\piW}\right)eia\omega | real numbers W,a 0<W<1 | |||||||||||||||||||||||||||||||||||||||||||||||||
\operatorname{sinc}2(Wn) | Xo(\omega)=
\operatorname{tri}\left({\omega\over2\piW}\right) | real number W 0<W<0.5 | |||||||||||||||||||||||||||||||||||||||||||||||||
\begin{cases} 0&n=0\\
&elsewhere \end{cases} | Xo(\omega)=j\omega | it works as a differentiator filter | |||||||||||||||||||||||||||||||||||||||||||||||||
\left\{\cos[\piW(n+a)]-\operatorname{sinc}[W(n+a)]\right\} | Xo(\omega)=
⋅ \operatorname{rect}\left({\omega\over\piW}\right)ej | real numbers W,a 0<W<1 | |||||||||||||||||||||||||||||||||||||||||||||||||
&n=0\\
&otherwise \end{cases} | Xo(\omega)= | \omega | |||||||||||||||||||||||||||||||||||||||||||||||||
\begin{cases} 0;&neven\\
;&nodd \end{cases} | Xo(\omega)=\begin{cases} j&\omega<0\\ 0&\omega=0\\ -j&\omega>0 \end{cases} | Hilbert transform | |||||||||||||||||||||||||||||||||||||||||||||||||
⋅ \operatorname{sinc}\left[
n\right] ⋅ \operatorname{sinc}\left[
n\right] | Xo(\omega)= | real numbers A,B complex C |
This table shows some mathematical operations in the time domain and the corresponding effects in the frequency domain.
*
x[n]*
Property | Time domain | Frequency domain X2\pi(\omega) | Remarks | Reference | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Linearity | a ⋅ x[n]+b ⋅ y[n] | a ⋅ X2\pi(\omega)+b ⋅ Y2\pi(\omega) | complex numbers a,b | |||||||||||||||||
Time reversal / Frequency reversal | x[-n] | X2\pi(-\omega) | ||||||||||||||||||
Time conjugation | x[n]* | X2\pi(-\omega)* | ||||||||||||||||||
Time reversal & conjugation | x[-n]* | X2\pi(\omega)* | ||||||||||||||||||
Real part in time | \Re{(x[n])} |
(X2\pi(\omega)+
| ||||||||||||||||||
Imaginary part in time | \Im{(x[n])} |
(X2\pi(\omega)-
| ||||||||||||||||||
Real part in frequency |
(x[n]+x*[-n]) | \Re{(X2\pi(\omega))} | ||||||||||||||||||
Imaginary part in frequency |
(x[n]-x*[-n]) | \Im{(X2\pi(\omega))} | ||||||||||||||||||
Shift in time / Modulation in frequency | x[n-k] | X2\pi(\omega) ⋅ e-i\omega | integer | |||||||||||||||||
Shift in frequency / Modulation in time | x[n] ⋅ eian | X2\pi(\omega-a) | real number a | |||||||||||||||||
Decimation | x[nM] |
X2\pi\left(\tfrac{\omega-2\pim}{M}\right) | integer M | |||||||||||||||||
Time Expansion | \scriptstyle\begin{cases} x[n/M]&n=multipleofM\\ 0&otherwise \end{cases} | X2\pi(M\omega) | integer M | |||||||||||||||||
Derivative in frequency |
x[n] |
| ||||||||||||||||||
Integration in frequency | ||||||||||||||||||||
Differencing in time | x[n]-x[n-1] | \left(1-e-i\right)X2\pi(\omega) | ||||||||||||||||||
Summation in time |
x[m] |
X2\pi(\omega)+\piX(0)
\delta(\omega-2\pik) | ||||||||||||||||||
Convolution in time / Multiplication in frequency | x[n]*y[n] | X2\pi(\omega) ⋅ Y2\pi(\omega) | ||||||||||||||||||
Multiplication in time / Convolution in frequency | x[n] ⋅ y[n] |
X2\pi(\nu) ⋅ Y2\pi(\omega-\nu)d\nu | Periodic convolution | |||||||||||||||||
Cross correlation | \rhoxy[n]=x[-n]**y[n] | Rxy(\omega)=X2\pi(\omega)* ⋅ Y2\pi(\omega) | ||||||||||||||||||
Exy=
{x[n] ⋅ y[n]*} | Exy=
{X2\pi(\omega) ⋅ Y2\pi(\omega)*d\omega} |