Discrete-time Fourier transform

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

In mathematics, the discrete-time Fourier transform (DTFT) is a form of Fourier analysis that is applicable to the uniformly-spaced samples of a continuous function. The term discrete-time refers to the fact that the transform operates on discrete data (samples) whose interval often has units of time. From only the 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 Sampling the DTFT), 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.

Fourier transforms
Continuous Fourier transform
Fourier series
Discrete-time Fourier transform
Discrete Fourier transform
Fourier analysis
Related transforms

Definition

The discrete-time Fourier transform of a discrete set of real or complex numbers: x[n], for all integers n, is a Fourier series, which produces a periodic function of a frequency variable. When the frequency variable, ω, has normalized units of radians/sample, the periodicity is 2π, and the Fourier series is:

X_{2\pi}(\omega) = \sum_{n=-\infty}^{\infty} x[n] \,e^{-i \omega n}.

 

 

 

 

(Eq.1)

The utility of this frequency domain function is rooted in the Poisson summation formula. Let X(f) be the Fourier transform of any function, x(t), whose samples at some interval, T (seconds), are equal (or proportional to) the x[n] sequence, i.e. T\cdot x(nT)=x[n]. Then the periodic function represented by the Fourier series is a periodic summation of X(f). In terms of frequency \scriptstyle f in hertz (cycles/sec):


X_{1/T}(f) = X_{2\pi}(2\pi f T)\ \stackrel{\mathrm{def}}{=} 
\sum_{n=-\infty}^{\infty} \underbrace{T\cdot x(nT)}_{x[n]}\ e^{-i 2\pi f T n}\;
\stackrel{\mathrm{Poisson\;f.}}{=} \;
 \sum_{k=-\infty}^{\infty} X\left(f - k/T\right).

 

 

 

 

(Eq.2)

Fig 1. Depiction of a Fourier transform (upper left) and its periodic summation (DTFT) in the lower left corner. The lower right corner depicts samples of the DTFT that are computed by a discrete Fourier transform (DFT).

The integer k has units of cycles/sample, and 1/T is the sample-rate, fs (samples/sec). So X1/T(f) comprises exact copies of X(f) that are shifted by multiples of fs hertz and combined by addition.  For sufficiently large fs the k=0 term can be observed in the region [−fs/2, fs/2] with little or no distortion (aliasing) from the other terms. In Fig.1, the extremities of the distribution in the upper left corner are masked by aliasing in the periodic summation (lower left).

We also note that  e^{-i 2\pi f T n}  is the Fourier transform of  \scriptstyle \delta(t-nT).  Therefore, an alternative definition of DTFT is:[note 1]

X_{1/T}(f) = \mathcal{F}\left \{\sum_{n=-\infty}^{\infty} x[n] \cdot \delta(t-nT)\right \}

 

 

 

 

(Eq.3)

The modulated Dirac comb function is a mathematical abstraction sometimes referred to as impulse sampling.[1]

Periodic data

When the input data sequence x[n] is N-periodic, Eq.2 can be computationally reduced to a discrete Fourier transform (DFT), because:

  • All the available information is contained within N samples.
  • \scriptstyle X_{1/T}(f)  converges to zero everywhere except integer multiples of  \scriptstyle \frac{1}{NT},  known as harmonic frequencies.
  • The DTFT is periodic, so the maximum number of unique harmonic amplitudes is  \scriptstyle \frac{1}{T}/\frac{1}{NT} = N.

The kernel  \scriptstyle x[n]\cdot e^{-i 2\pi f T n}  is N-periodic at the harmonic frequencies, \scriptstyle f = \frac{k}{NT}.   So  \scriptstyle X_{1/T}(\frac{k}{NT})  is an infinite summation of repetitious values, which does not converge for one or more values of k.  But because of periodicity, we can reduce the limits of summation to any sequence of length N, without losing any information. The result is just a DFT. In order to interpret the DFT, it is helpful to expand the comb function, from Eq.3, which is now NT-periodic, into a Fourier series:

\sum_{n=-\infty}^{\infty} x[n] \cdot \delta(t-nT) = \underbrace{\sum_{k=-\infty}^{\infty} X[k]\cdot e^{i 2 \pi \frac{k}{NT}t}}_{\text{Fourier series}} \quad\stackrel{\mathcal{F}}{\Longleftrightarrow}\quad \underbrace{\sum_{k=-\infty}^{\infty} X[k]\ \cdot\  \delta\left(f-\frac{k}{NT}\right)}_{\text{DTFT of a periodic sequence}},

which also shows that periodicity in the time domain causes the DTFT to become discontinuous and that it diverges at the harmonic frequencies. But the Fourier series coefficients that modulate the comb are finite, and the standard integral formula conveniently reduces to a DFT:

\begin{align}
X[k] \ &\stackrel{\text{def}}{=}\ \frac{1}{NT} \int_{NT} \left[\sum_{n=-\infty}^\infty x[n]\cdot \delta(t-nT)\right] e^{-i 2 \pi \frac{k}{NT}t} \, dt \quad 
\scriptstyle{\text{(integral over any interval of length }NT)} \\
&= \frac{1}{NT} \sum_{n=-\infty}^{\infty} x[n]\cdot \int_{NT} \delta(t-nT)\cdot e^{-i 2 \pi \frac{k}{NT}t} dt \\
&= \frac{1}{NT} \underbrace{\sum_{N} x[n]\cdot e^{-i 2 \pi \frac{k}{N}n}}_{DFT} \quad \scriptstyle {\text{(sum over any }n\text{-sequence of length }N)} \\
&= \frac{1}{N} \underbrace{\sum_{N} x(nT)\cdot e^{-i 2 \pi \frac{k}{N}n}}_{DFT},
\end{align}

which is an N-periodic sequence (in k) that completely describes the DTFT.

Inverse transform

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 Eq.3 produces the sequence in the form of a modulated Dirac comb function:

\sum_{n=-\infty}^{\infty} x[n]\cdot \delta(t-n T) = \mathcal{F}^{-1}\left \{X_{1/T}(f)\right\} \ \stackrel{\mathrm{def}}{=} \int_{-\infty}^\infty X_{1/T}(f)\cdot e^{i 2 \pi f t} df.

However, noting that X1/T(f) is periodic, all the necessary information is contained within any interval of length 1/T. In both Eq.1 and Eq.2, the summations over n are a Fourier series, with coefficients x[n]. The standard formulas for the Fourier coefficients are also the inverse transforms:

\begin{align}
x[n] &= T \int_{\frac{1}{T}} X_{1/T}(f)\cdot e^{i 2 \pi f nT} df \quad \scriptstyle{\text{(integral over any interval of length }1/T\textrm{)}} \\
\displaystyle &= \frac{1}{2 \pi}\int_{2\pi} X_{2\pi}(\omega)\cdot e^{i \omega n} d\omega \quad \scriptstyle{\text{(integral over any interval of length }2\pi\textrm{)}}
\end{align}

Sampling the DTFT

When the DTFT is continuous, a common practice is to compute an arbitrary number of samples (N) of one cycle of the periodic function X1/T:

\begin{align}
\underbrace{X_{1/T}\left(\frac{k}{NT}\right)}_{X_k} &= \sum_{n=-\infty}^\infty x[n]\cdot e^{-i 2\pi \frac{kn}{N}} \quad \quad k = 0, \dots, N-1 \\
&= \underbrace{\sum_{N} x_N[n]\cdot e^{-i 2\pi \frac{kn}{N}},}_{DFT}\quad \scriptstyle{\text{(sum over any }n\text{-sequence of length }N)}
\end{align}

where xN is a periodic summation:

x_N[n]\ \stackrel{\text{def}}{=}\ \sum_{m=-\infty}^{\infty} x[n-mN].

The xN sequence is the inverse DFT. Thus, our sampling of the DTFT causes the inverse transform to become periodic.

In order to evaluate one cycle of xN numerically, we require a finite-length x[n] sequence. For instance, a long sequence might be truncated by a window function of length L resulting in two cases worthy of special mention: LN and L = IN, for some integer I (typically 6 or 8). For notational simplicity, consider the x[n] values below to represent the modified values.

When L = IN a cycle of xN reduces to a summation of I blocks of length N. This goes by various names, such as "multi-block windowing" and "window presum-DFT". [2] [3] A good way to understand/motivate the technique is to recall that decimation of sampled data in one domain (time or frequency) produces aliasing in the other, and vice versa. The xN summation is mathematically equivalent to aliasing, leading to decimation in frequency, leaving only DTFT samples least affected by spectral leakage. That is usually a priority when implementing an FFT filter-bank (channelizer). With a conventional window function of length L, scalloping loss would be unacceptable. So multi-block windows are created using FIR filter design tools. Their frequency profile is flat at the highest point and falls off quickly at the midpoint between the remaining DTFT samples. The larger the value of parameter I the better the potential performance. We note that the same results can be obtained by computing and decimating an L-length DFT, but that is not computationally efficient.

When LN the DFT is usually written in this more familiar form:

X_k = \sum_{n=0}^{N-1} x[n]\cdot e^{-i 2\pi \frac{kn}{N}}.

In order to take advantage of a fast Fourier transform algorithm for computing the DFT, the summation is usually performed over all N terms, even though N-L of them are zeros. Therefore, the case L < N is often referred to as "zero-padding".

Spectral leakage, which increases as L decreases, is detrimental to certain important performance metrics, such as resolution of multiple frequency components and the amount of noise measured by each DTFT sample. But those things don't always matter, for instance when the x[n] sequence is a noiseless sinusoid (or a constant), shaped by a window function. Then it is a common practice to use zero-padding to graphically display and compare the detailed leakage patterns of window functions. To illustrate that for a rectangular window, consider the sequence:

x[n] = e^{i 2\pi \frac{1}{8} n},\quad and L=64.

The two figures below 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. Also visible on the right is the spectral leakage pattern of the L = 64 rectangular window. The illusion on the left is a result of sampling the DTFT at all of its zero-crossings. Rather than the DTFT of a finite-length sequence, it gives the impression of an infinitely long sinusoidal sequence. Contributing factors to the illusion are the use of a rectangular window, and the choice of a frequency (1/8 = 8/64) with exactly 8 (an integer) cycles per 64 samples.

DFT for L = 64 and N = 64
DFT for L = 64 and N = 256

Convolution

The convolution theorem for sequences is:

x * y\ =\ \scriptstyle \text{DTFT}^{-1} \displaystyle \left[\scriptstyle \text{DTFT} \displaystyle \{x\}\cdot \scriptstyle \text{DTFT} \displaystyle \{y\}\right].

An important special case is the circular convolution of sequences x and y defined by xN * y where xN is a periodic summation.  The discrete-frequency nature of DTFT{xN} "selects" only discrete values from the continuous function DTFT{y}, which results in considerable simplification of the inverse transform. As shown at Convolution theorem#Functions of a discrete variable... sequences:

x_N * y\ =\ \scriptstyle \text{DTFT}^{-1} \displaystyle \left[\scriptstyle \text{DTFT} \displaystyle \{x_N\}\cdot \scriptstyle \text{DTFT} \displaystyle \{y\}\right]\ =\ \scriptstyle \text{DFT}^{-1} \displaystyle \left[\scriptstyle \text{DFT} \displaystyle \{x_N\}\cdot \scriptstyle \text{DFT} \displaystyle \{y_N\}\right].

For x and y sequences whose non-zero duration is less than or equal to N, a final simplification is:

x_N * y\ =\ \scriptstyle \text{DFT}^{-1} \displaystyle  \left[\scriptstyle \text{DFT} \displaystyle \{x\}\cdot \scriptstyle \text{DFT} \displaystyle \{y\}\right].

The significance of this result is expounded at Circular convolution and Fast convolution algorithms.

Relationship to the Z-transform

The bilateral Z-transform is defined by:

X(z) = \sum_{n=-\infty}^{\infty} x[n] \,z^{-n},    where z is a complex variable.

On the unit circle, z is constrained to values of the form e^{i \omega}.  Then one cycle of  X(e^{i \omega}), 0 \le \omega \le 2\pi  is equivalent to one period of the DTFT. What varies with sample-rate is the width of a signal's spectral distribution. When the width exceeds 2π, because of a sub-Nyquist rate, the distribution fills the circle, and aliasing occurs. With a DTFT in units of hertz (Eq.2), it's not the bandwidth that changes, but the periodicity of the aliases.

Alternative notation

The notation, X(e^{i \omega}), is also often used to denote a normalized DTFT (Eq.1), which has several desirable features:

  1. highlights the periodicity property, and
  2. helps distinguish between the DTFT and the underlying Fourier transform of x(t); that is, X(f) (or X(ω)), and
  3. emphasizes the relationship of the DTFT to the Z-transform.

However, its relevance is obscured when the DTFT is expressed as its equivalent periodic summation. So the notation X(ω) is also commonly used, as in the table below.

Table of discrete-time Fourier transforms

Some common transform pairs are shown in the table below. The following notation applies:

  • ω = 2πfT is a real number representing continuous angular frequency (in radians per sample). (f is in cycles/sec, and T is in sec/sample.) In all cases in the table, the DTFT is 2π-periodic (in ω).
  • X(ω) designates a function defined on −∞ < ω < ∞.
  • X(ω) designates a function defined on −π < ω ≤ π, and zero elsewhere. Then:
X_{2\pi}(\omega)\ \stackrel{\mathrm{def}}{=} \sum_{k=-\infty}^{\infty} X(\omega - 2\pi k).
Time domain
x[n]
Frequency domain
X(ω)
Remarks
\delta[n] X_{2\pi}(\omega) = 1
\delta[n-M] X_{2\pi}(\omega) = e^{-i\omega M} integer M
\sum_{m = -\infty}^{\infty} \delta[n - M m] \! X_{2\pi}(\omega) = \sum_{m = -\infty}^{\infty} e^{-i \omega M m} = \frac{2\pi}{M}\sum_{k = -\infty}^{\infty} \delta \left( \omega - \frac{2\pi k}{M} \right) \,

X(\omega) = \frac{2\pi}{M}\sum_{k = -(M-1)/2}^{(M-1)/2} \delta \left(\omega - \frac{2\pi k}{M} \right) \,     odd M
X(\omega) = \frac{2\pi}{M}\sum_{k = -M/2+1}^{M/2} \delta \left(\omega - \frac{2\pi k}{M} \right) \,     even M

integer M > 0
u[n] X_{2\pi}(\omega) = \frac{1}{1-e^{-i \omega}} + \pi \sum_{k=-\infty}^{\infty} \delta (\omega - 2\pi k)\!

X(\omega) = \frac{1}{1-e^{-i \omega}} + \pi \cdot \delta (\omega)\!

The 1/(1-e^{-i \omega}) term must be interpreted as a distribution in the sense of a Cauchy principal value around its poles at ω = 2πk.
a^n u[n] X_{2\pi}(\omega) = \frac{1}{1-a e^{-i \omega}}\! 0 < |a| < 1
e^{-i a n} X(\omega) = 2\pi\cdot \delta (\omega +a),     -π ≤ a < π

X_{2\pi}(\omega) = 2\pi \sum_{k=-\infty}^{\infty} \delta (\omega +a -2\pi k)

real number a
\cos(a n) X(\omega) = \pi [\delta (\omega +a)+\delta (\omega -a)],     -π < a < π

X_{2\pi}(\omega) = \pi \sum_{k=-\infty}^{\infty} \left[ \delta (\omega - a - 2\pi k) + \delta (\omega + a + 2\pi k) \right]

real number a
\sin(a n) X_{2\pi}(\omega) = \frac{\pi}{i} \sum_{k=-\infty}^{\infty} \left[ \delta (\omega - a - 2\pi k) - \delta ( \omega + a + 2\pi k) \right] real number a
\operatorname{rect} \left[ { n - M/2 \over M  } \right] X(\omega) = { \sin[ \omega (M+1) / 2 ] \over \sin( \omega / 2 ) } \,  e^{ -\frac{i \omega M}{2} } \! integer M
\operatorname{sinc}(a+n) X(\omega) = e^{ia\omega} real number a
W\cdot \operatorname{sinc}^2(W n)\, X(\omega) = \operatorname{tri} \left( { \omega \over 2\pi W } \right) real number W
0 < W ≤ 0.5
W\cdot \operatorname{sinc} ( W n) X(\omega) = \operatorname{rect} \left( { \omega \over 2\pi W } \right) real numbers W
0 < W ≤ 1
 \begin{cases}
0 & n=0 \\
\frac{(-1)^n}{n} & \mbox{elsewhere}
\end{cases} X(\omega) = j \omega it works as a differentiator filter
\frac{W}{(n + a)} \left\{ \cos [ \pi W (n+a)] - \operatorname{sinc} [ W (n+a)] \right\} X(\omega) = j \omega \cdot \operatorname{rect} \left( { \omega \over \pi W } \right) e^{j a \omega} real numbers W, a
0 < W ≤ 1
\begin{cases}
\frac{\pi}{2}  & n = 0 \\
\frac{(-1)^n - 1}{\pi n^2} & \mbox{ otherwise}
\end{cases} X(\omega) = |\omega|
\begin{cases}
0; & n \text{ even} \\
\frac{2}{\pi n} ; & n \text{ odd}
\end{cases} X(\omega) = \begin{cases}
j & \omega < 0 \\
0 & \omega = 0 \\
-j & \omega > 0
\end{cases} Hilbert transform
\frac{C (A + B)}{2 \pi} \cdot \operatorname{sinc} \left[ \frac{A - B}{2\pi} n \right] \cdot \operatorname{sinc} \left[ \frac{A + B}{2\pi} n \right] X(\omega) = Trapezoid signal.svg real numbers A, B
complex C

Properties

This table shows some mathematical operations in the time domain and the corresponding effects in the frequency domain.

Property Time domain x[n] Frequency domain X(eiω) Remarks
Linearity ax[n] + by[n] aX(eiω) + bY(eiω)
Shift in time x[nk] X(eiω)eiωk integer k
Shift in frequency (modulation) x[n]e^{ian} \! X(e^{i (\omega-a)}) \! real number a
time scaling x[n/k] \! X(e^{i (k\omega)}) \!
Time reversal x[−n] X(eiω)
Time conjugation x[n]* X(eiω)*
Time reversal & conjugation x[−n]* X(eiω)*
Derivative in frequency \frac{n}{i} x[n] \! \frac{d X(e^{i \omega})}{d \omega} \!
Integral in frequency \frac{i}{n} x[n] \! \int_{-\pi}^{\omega} X(e^{i \vartheta}) d \vartheta \!
Convolve in time x[n] * y[n] \! X(e^{i \omega}) \cdot Y(e^{i \omega}) \!
Multiply in time x[n] \cdot y[n] \! \frac{1}{2\pi}\int_{-\pi}^{\pi}{X(e^{i \vartheta}) \cdot Y(e^{i (\omega-\vartheta)}) d\vartheta} \! Periodic convolution
Cross correlation \rho_{xy} [n] = x[-n]^* * y[n] \! R_{xy} (\omega) = X(e^{i \omega})^* \cdot Y(e^{i \omega}) \!
Parseval's theorem E = \sum_{n=-\infty}^{\infty} {x[n] \cdot y^*[n]} \! E = \frac{1}{2\pi}\int_{-\pi}^{\pi}{X(e^{i \omega}) \cdot Y^*(e^{i \omega}) d\omega} \!

See also

Notes

  1. In fact Eq.2 is often justified as follows:
    \begin{align}
\mathcal{F}\left \{\sum_{n=-\infty}^{\infty} T\cdot x(nT) \cdot \delta(t-nT)\right \} &=\mathcal{F}\left \{x(t)\cdot T \sum_{n=-\infty}^{\infty} \delta(t-nT)\right \}\\
&= X(f) * \mathcal{F}\left \{T \sum_{n=-\infty}^{\infty} \delta(t-nT)\right \} \\
&= X(f) * \sum_{k=-\infty}^{\infty} \delta \left(f - \frac{k}{T}\right) \\
&= \sum_{k=-\infty}^{\infty} X\left(f - \frac{k}{T}\right).
\end{align}

Citations

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.

References

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.