Discrete-time Fourier transform

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Script error: No such module "Distinguish". Template:Short description Script error: No such module "Sidebar".

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. In simpler terms, when you take the DTFT of regularly-spaced samples of a continuous signal, you get repeating (and possibly overlapping) copies of the signal's frequency spectrum, spaced at intervals corresponding to the sampling frequency. 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 Template:Slink), which is by far the most common method of modern Fourier analysis.

Both transforms are invertible. The inverse DTFT reconstructs the original sampled data sequence, while the inverse DFT produces 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.

Relation to Fourier Transform

Let s(t) be a continuous function in the time domain. We begin with a common definition of the continuous Fourier transform, where f represents frequency in hertz and t represents time in seconds:

S(f)s(t)ei2πftdt.

We can reduce the integral into a summation by sampling s(t) at intervals of T seconds (see Template:Slink). Specifically, we can replace s(t) with a discrete sequence of its samples, s(nT), for integer values of n, and replace the differential element dt with the sampling period T. Thus, we obtain one formulation for the discrete-time Fourier transform (DTFT):

S1/T(f)n=Ts(nT)s[n] ei2πfTn.

This Fourier series (in frequency) is a continuous periodic function, whose periodicity is the sampling frequency 1/T. The subscript 1/T distinguishes it from the continuous Fourier transform S(f), and from the angular frequency form of the DTFT. The latter is obtained by defining an angular frequency variable, ω2πfT (which has normalized units of radians/sample), giving us a periodic function of angular frequency, with periodicity 2π:Template:Efn-la

Template:Equation box 1

File:Fourier transform, Fourier series, DTFT, DFT.svg
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 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 continuous Fourier transform:Template:Efn-laTemplate:Equation box 1 The components of the periodic summation are centered at integer values (denoted by k) of a normalized frequency (cycles per sample). Ordinary/physical frequency (cycles per second) is the product of k and the sample-rate, fs=1/T.   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.  Fig.1 depicts an example where 1/T is not large enough to prevent aliasing.

We also note that ei2πfTn is the Fourier transform of δ(tnT). Therefore, an alternative definition of DTFT is:Template:Efn-ua Template:Equation box 1

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

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

n=s[n]δ(tnT)=1{S1/T(f)} S1/T(f)ei2πftdf.

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

Template:Equation box 1

Periodic data

When the input data sequence s[n] is N-periodic, Template:EquationNote can be computationally reduced to a discrete Fourier transform (DFT), because:

  • All the available information is contained within N samples.
  • S1/T(f) converges to zero everywhere except at integer multiples of 1/(NT), known as harmonic frequencies. At those frequencies, the DTFT diverges at different frequency-dependent rates. And those rates are given by the DFT of one cycle of the s[n] sequence.
  • The DTFT is periodic, so the maximum number of unique harmonic amplitudes is (1/T)/(1/(NT))=N.

The DFT of one cycle of the s[n] sequence is:

S[k]Ns[n]ei2πkNnany n-sequence of length N,k𝐙.

And s[n] can be expressed in terms of the inverse transform, which is sometimes referred to as a Discrete Fourier series (DFS):[2]Template:Rp

s[n]=1NNS[k]ei2πkNnany k-sequence of length N,n𝐙.

With these definitions, we can demonstrate the relationship between the DTFT and the DFT:

S1/T(f)n=s[n]ei2πfnT=n=[1Nk=0N1S[k]ei2πkNn]ei2πfnT=1Nk=0N1S[k][n=ei2πkNnei2πfnT]DTFT(ei2πkNn)=1Nk=0N1S[k]1TM=δ(fkNTMT)      Template:Efn-laTemplate:Efn-ua

Due to the N-periodicity of both functions of k, this can be simplified to:

S1/T(f)=1NTk=S[k]δ(fkNT),

which satisfies the inverse transform requirement:

s[n]=T01TS1/T(f)ei2πfnTdf=1Nk=S[k]01Tδ(fkNT)ei2πfnTdfzero for k  [0,N1]=1Nk=0N1S[k]01Tδ(fkNT)ei2πfnTdf=1Nk=0N1S[k]ei2πkNTnT=1Nk=0N1S[k]ei2πkNn

Script error: No such module "anchor".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 S1/T: [2]Template:Rp [3]Template:Rp

S1/T(kNT)Sk=n=s[n]ei2πkNnk=0,,N1=NsN[n]ei2πkNn,DFT(sum over any n-sequence of length N)

where sN is a periodic summation:

sN[n]  m=s[nmN].     (see Discrete Fourier series)

The sN sequence is the inverse DFT. Thus, our sampling of the DTFT causes the inverse transform to become periodic. The array of |Sk|2 values is known as a periodogram, and the parameter N is called NFFT in the Matlab function of the same name.[4]

In order to evaluate one cycle of sN numerically, we require a finite-length s[n] sequence. For instance, a long sequence might be truncated by a window function of length L resulting in three cases worthy of special mention. For notational simplicity, consider the s[n] values below to represent the values modified by the window function.

Script error: No such module "anchor".Case: Frequency decimation. L=NI, for some integer I (typically 6 or 8)

A cycle of sN reduces to a summation of I segments of length N.  The DFT then goes by various names, such as:

  • polyphase DFT[9][10]
  • polyphase filter bank[12]
  • multiple block windowing and time-aliasing.[13]

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-length DFT, the sN summation/overlap causes decimation in frequency,[2]Template:Rp 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.[14][15]  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.

Script error: No such module "anchor".Case: L=N+1

When a symmetric, L-length window function (s) is truncated by 1 coefficient it is called periodic or DFT-even. That is a common practice, but the truncation affects the DTFT (spectral leakage) by a small amount. It is at least of academic interest to characterize that effect.  An N-length DFT of the truncated window produces frequency samples at intervals of 1/N, instead of 1/L.  The samples are real-valued,[16]Template:Rp  but their values do not exactly match the DTFT of the symmetric window. The periodic summation, sN, along with an N-length DFT, can also be used to sample the DTFT at intervals of 1/N.  Those samples are also real-valued and do exactly match the DTFT (example: File:Sampling the Discrete-time Fourier transform.svg). To use the full symmetric window for spectral analysis at the 1/N spacing, one would combine the n=0 and n=N data samples (by addition, because the symmetrical window weights them equally) and then apply the truncated symmetric window and the N-length DFT.

File:Zeropad.png
Fig 2. DFT of Template:Math for Template:Math and Template:Math
File:No-zeropad.png
Fig 3. DFT of Template:Math for Template:Math and Template:Math

Script error: No such module "anchor".Case: Frequency interpolation. LN

In this case, the DFT simplifies to a more familiar form:

Sk=n=0N1s[n]ei2πkNn.

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 NL 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 s[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:

s[n]=ei2π18n, and 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. Also visible in Fig 2 is the spectral leakage pattern of the L=64 rectangular window. The illusion in Fig 3 is a result of sampling the DTFT at just 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. A Hann window would produce a similar result, except the peak would be widened to 3 samples (see DFT-even Hann window).

Convolution

Script error: No such module "Labelled list hatnote". The convolution theorem for sequences is:

s*y = DTFT1[DTFT{s}DTFT{y}].[17]Template:RpTemplate:Efn-la

An important special case is the circular convolution of sequences Template:Mvar and Template:Mvar defined by sN*y, where sN is a periodic summation. The discrete-frequency nature of DTFT{sN} means that the product with the continuous function DTFT{y} is also discrete, which results in considerable simplification of the inverse transform:

sN*y = DTFT1[DTFT{sN}DTFT{y}] = DFT1[DFT{sN}DFT{yN}].[18][2]Template:Rp

For Template:Mvar and Template:Mvar sequences whose non-zero duration is less than or equal to Template:Mvar, a final simplification is:

sN*y = DFT1[DFT{s}DFT{y}].

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

Relationship to the Z-transform

S2π(ω) is a Fourier series that can also be expressed in terms of the bilateral Z-transform.  I.e.:

S2π(ω)=Sz(z)|z=eiω=Sz(eiω),

where the Sz notation distinguishes the Z-transform from the Fourier transform. Therefore, we can also express a portion of the Z-transform in terms of the Fourier transform:

Sz(eiω)= S1/T(ω2πT) = k=S(ω2πTk/T)=k=S(ω2πk2πT).

Note that when parameter Template:Mvar changes, the terms of S2π(ω) remain a constant separation 2π apart, and their width scales up or down. The terms of Template:Math remain a constant width and their separation Template:Math scales up or down.

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 ω).
  • S2π(ω) designates a function defined on <ω<.
  • So(ω) designates a function defined on π<ωπ, and zero elsewhere. Then: S2π(ω) k=So(ω2πk).
  • δ(ω) is the Dirac delta function
  • sinc(t) is the normalized sinc function
  • rect[nL]{1|n|L/20|n|>L/2
  • tri(t) is the triangle function
  • Template:Mvar is an integer representing the discrete-time domain (in samples)
  • u[n] is the discrete-time unit step function
  • δ[n] is the Kronecker delta δn,0
Time domain
s[n]
Frequency domain
S2π(ω)
Remarks Reference
δ[n] S2π(ω)=1 [17]Template:Rp
δ[nM] S2π(ω)=eiωM integer M
m=δ[nMm] S2π(ω)=m=eiωMm=2πMk=δ(ω2πkM)

So(ω)=2πMk=(M1)/2(M1)/2δ(ω2πkM)     odd M
So(ω)=2πMk=M/2+1M/2δ(ω2πkM)     even M

integer M>0
u[n] S2π(ω)=11eiω+πk=δ(ω2πk)

So(ω)=11eiω+πδ(ω)

The 1/(1eiω) term must be interpreted as a distribution in the sense of a Cauchy principal value around its poles at ω=2πk.
anu[n] S2π(ω)=11aeiω 0<|a|<1 [17]Template:Rp
eian So(ω)=2πδ(ω+a),     -π < a < π

S2π(ω)=2πk=δ(ω+a2πk)

real number a
cos(an) So(ω)=π[δ(ωa)+δ(ω+a)],

S2π(ω) k=So(ω2πk)

real number a with π<a<π
sin(an) So(ω)=πi[δ(ωa)δ(ω+a)] real number a with π<a<π
rect[nMN]rect[nMN1] So(ω)=sin(Nω/2)sin(ω/2)eiωM integer M, and odd integer N
sinc(W(n+a)) So(ω)=1Wrect(ω2πW)eiaω real numbers W,a with 0<W<1
sinc2(Wn) So(ω)=1Wtri(ω2πW) real number W, 0<W<0.5
{0n=0(1)nnelsewhere So(ω)=jω it works as a differentiator filter
1(n+a){cos[πW(n+a)]sinc[W(n+a)]} So(ω)=jωWrect(ωπW)ejaω real numbers W,a with 0<W<1
{π2n=0(1)n1πn2 otherwise So(ω)=|ω|
{0;n even2πn;n odd So(ω)={jω<00ω=0jω>0 Hilbert transform
C(A+B)2πsinc[AB2πn]sinc[A+B2πn] So(ω)=File: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
Template:Math
Frequency domain
S2π(ω)
Remarks Reference
Linearity as[n]+by[n] aS2π(ω)+bY2π(ω) complex numbers a,b [17]Template:Rp
Time reversal / Frequency reversal s[n] S2π(ω) [17]Template:Rp
Time conjugation s*[n] S2π*(ω) [17]Template:Rp
Time reversal & conjugation s*[n] S2π*(ω) [17]Template:Rp
Real part in time Re(s[n]) 12(S2π(ω)+S2π*(ω)) [17]Template:Rp
Imaginary part in time Im(s[n]) 12i(S2π(ω)S2π*(ω)) [17]Template:Rp
Real part in frequency 12(s[n]+s*[n]) Re(S2π(ω)) [17]Template:Rp
Imaginary part in frequency 12i(s[n]s*[n]) Im(S2π(ω)) [17]Template:Rp
Shift in time / Modulation in frequency s[nk] S2π(ω)eiωk integer Template:Mvar [17]Template:Rp
Shift in frequency / Modulation in time s[n]eian S2π(ωa) real number a [17]Template:Rp
Decimation s[nM] 1Mm=0M1S2π(ω2πmM)  Template:Efn-ua integer M
Time Expansion {s[n/M]n=multiple of M0otherwise S2π(Mω) integer M [2]Template:Rp
Derivative in frequency nis[n] dS2π(ω)dω [17]Template:Rp
Integration in frequency
Differencing in time s[n]s[n1] (1eiω)S2π(ω)
Summation in time m=ns[m] 1(1eiω)S2π(ω)+πS(0)k=δ(ω2πk)
Convolution in time / Multiplication in frequency s[n]*y[n] S2π(ω)Y2π(ω) [17]Template:Rp
Multiplication in time / Convolution in frequency s[n]y[n] 12πππS2π(ν)Y2π(ων)dν Periodic convolution [17]Template:Rp
Cross correlation ρsy[n]=s*[n]*y[n] Rsy(ω)=S2π*(ω)Y2π(ω)
Parseval's theorem Esy=n=s[n]y*[n] Esy=12πππS2π(ω)Y2π*(ω)dω [17]Template:Rp

See also

Notes

Template:Notelist-ua

Page citations

Template:Notelist-la

References

Template:Reflist Template:Refbegin

Further reading

  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".

Template:Refend

Template:DSP

  1. Cite error: Invalid <ref> tag; no text was provided for refs named Rao
  2. a b c d e Cite error: Invalid <ref> tag; no text was provided for refs named Oppenheim
  3. Cite error: Invalid <ref> tag; no text was provided for refs named Prandoni
  4. Cite error: Invalid <ref> tag; no text was provided for refs named Matlab
  5. Cite error: Invalid <ref> tag; no text was provided for refs named Gumas
  6. Cite error: Invalid <ref> tag; no text was provided for refs named Crochiere
  7. Cite error: Invalid <ref> tag; no text was provided for refs named Wang
  8. Cite error: Invalid <ref> tag; no text was provided for refs named Lyons
  9. a b Cite error: Invalid <ref> tag; no text was provided for refs named Lillington
  10. a b Cite error: Invalid <ref> tag; no text was provided for refs named Lillington2
  11. Cite error: Invalid <ref> tag; no text was provided for refs named Hochgürtel
  12. Cite error: Invalid <ref> tag; no text was provided for refs named Chennamangalam
  13. Cite error: Invalid <ref> tag; no text was provided for refs named Dahl
  14. Cite error: Invalid <ref> tag; no text was provided for refs named Lin
  15. Cite error: Invalid <ref> tag; no text was provided for refs named Harrisbook
  16. Cite error: Invalid <ref> tag; no text was provided for refs named Harris
  17. a b c d e f g h i j k l m n o p q Cite error: Invalid <ref> tag; no text was provided for refs named Proakis
  18. Cite error: Invalid <ref> tag; no text was provided for refs named Rabiner