Key shortcoming Fourier analysis: poor localization of frequencies

Example #1: sum of sinusoids

Continuous-time waveform

x1[t_] := Cos[2π 10t] + Cos[2π 25 t] + Cos[2π 50 t] + Cos[2π 100 t] ; gx1  ... PlotPoints100, PlotStyle {Blue}, ImageSize500] ; x1[t] // TraditionalForm

[Graphics:../HTMLFiles/index_151.gif]

cos(20 π t) + cos(50 π t) + cos(100 π t) + cos(200 π t)

Discrete Fourier Transform (DFT)

sampleRate = 1000 ;

signal = Table[x1[t], {t, 0, 1, 1/(sampleRate - 1)}] // N ;

fft = Fourier[signal] ; gf1 = ListPlot[FourierRearrange[Abs[fft], sampleRate], PlotStyle {Red}, PlotRange {{-125, 125}, All}, FrameTrue, ImageSize500] ;

[Graphics:../HTMLFiles/index_156.gif]

Example #2: time-varying sinusoid

Continuous-time waveform

u[t_] := UnitStep[t] ;

RowBox[{RowBox[{x2[t_], :=, RowBox[{(u[t] - u[t - .3]) Cos[2π 10t],  , +,  , (u[t - .3] - ... PlotPoints100, PlotStyle {Blue}, ImageSize500] ; x2[t] // TraditionalForm

[Graphics:../HTMLFiles/index_159.gif]

FormBox[RowBox[{RowBox[{cos(200 π t),  , RowBox[{(, RowBox[{RowBox[{θ, (, RowBox[{t, ... {(, RowBox[{θ(t), -, RowBox[{θ, (, RowBox[{t, -, 0.3}], )}]}], )}]}]}], TraditionalForm]

Fast Fourier Transform (FFT)

sampleRate = 1000 ;

signal = Table[x2[t], {t, 0, 1, 1/(sampleRate - 1)}] // N ;

fft = Fourier[signal] ; gf2 = ListPlot[FourierRearrange[Abs[fft], sampleRate], PlotStyle {Red}, PlotRange {{-125, 125}, All}, FrameTrue, ImageSize500] ;

[Graphics:../HTMLFiles/index_164.gif]

Display all

Show[GraphicsArray[{{gx1, gx2}, {gf1, gf2}}], ImageSize640] ;

[Graphics:../HTMLFiles/index_166.gif]


Created by Mathematica  (February 5, 2004)