Discrete Fourier Transform in Excel Tutorial
Discrete Fourier Transform in Excel Tutorial
DiscreteFourierTransform
Thisisthefirsttutorialinourongoingseriesontimeseriesspectralanalysis.Inthisentry,wewillclosely
examinethediscreteFouriertransform(akaDFT)anditsinverse,aswellasdatafilteringusingDFT
outputs.TheDFTisbasicallyamathematicaltransformationandmaybeabitdry,butwehopethatthis
tutorialwillleaveyouwithadeeperunderstandingandintuitionthroughtheuseofNumXLfunctions
andwizards.
Infutureentries,wewilldedicatemoretimefordiscretedatafilters,theirconstruction,andoffcourse,
application.
Background
Youhaveprobablyoccasionallytransformedyourdatatostabilizethevariance(e.g.logtransform)orto
improvethevaluesdistributioninthesampledata.
1 2
1 2
{ , ..., }
log(x )
{ , ..., }
t T
t t
t T
x x x x
y
y y y y
=
=
=
Inmathematics,thediscreteFouriertransform(DFT)convertsafinitelistofequallyspacedsamplesofa
functionintoalistofcoefficientsofafinitecombinationofcomplexsinusoids,orderedbytheir
frequencies,whichhavethosesamesamplevalues.DFTconvertsthesampledfunctionfromitsoriginal
domain(oftentimeorpositionalongaline)tothefrequencydomain.
Insum,theFouriertransformhasthefollowingproperties:
1. Thetransformeddataisnolongerinthetimedomain.
2. Thetransformationoperatesonthewholedataset.Itisnotapointbypointtransformationas
wehaveseenwithearliertransformationsinthetimedomain.
1 2
1 2
1 2
1
1 2 1 2
{ , ..., }
({ , ..., })
{ , ..., }
{ , ..., } ({ , ..., })
T
T
K
T K
x x x x
Y F x x x
Y y x x
x x x F y x x
=
=
=
=
3. Thetransformeddataiscomplex(notrealvalued).
WhatistheDFT?
Inplainwords,thediscreteFouriertransformdecomposestheinputtimeseriesintoasetofcosine
functions.
DiscreteFourierTransformTutorial 2 SpiderFinancialCorp,2013
1
1
cos( )
N
m k k
k
x A k m
N
| e
=
= +
So,youcanthinkofthekthoutputoftheDFTasthe
k k
A | .The
k
A isreferredtoastheamplitude,
andthe
k
| asthephase(inradians).
Theinputtimeseriescannowbeexpressedeitherasatimesequenceofvalues,orasafrequency
sequenceof [ ]
k k
A | pairs.Knowingthesetof [ ]
k k
A | ,wecanrecovertheexactinputtimeseries.
Whatis e?
eisthefundamentalortheprincipalradianfrequency.ITisexpressedasfollows:
2
T
t
e =
Where:
- T isthenumberofobservationsintheequallyspacedinputtimeseries.
WhatisN?
Thenumberof [ ]
k k
A | pairsweneedtohave,sowecanrecovertheoriginalinputtimeserieswitha
floorvalueof
2
T
.
Notethatthezerofrequencycomponent(i.e.k=0)isalwaysrealvalue,andinthecaseofevensized
timeseries,thelastfrequencycomponentisalsorealvalue,whichbringsthetotalnumberofvalues
(amplitudeandphase)toT.Thereisnogainorlossofinformationorstoragerequirementbecauseof
thistransform.
Finally,notethat
k k T k T k
k k k T k T
A A
A A
| |
| |
+ +
=
=
Inessence,onlythevaluesofthefirst
2
T
frequencycomponentsareneeded,whereastherestcanbe
easilyimpliedfromthem.Furthermore,theDFTvaluesareperiodicwithacyclelengthof T
.
DiscreteFourierTransformTutorial 3 SpiderFinancialCorp,2013
Whydecomposetimeseriesdataintoaseriesofcosinefunctions?
Considerthefollowingtimeseries
1 2 25
( , ,..., ) x x x :
Now,letscomputethetimeseriesusingasubsetofthefrequencysequence:
Case1:Usingazerofrequencycomponent:
(0)
m o
x A =
Usingthezerofrequency,wegetthelongrunaverageofthetimeseries.
DiscreteFourierTransformTutorial 4 SpiderFinancialCorp,2013
Case2:Usingfirstfrequencycomponent(k=1)
(0)
(1) (0)
1 1 1 1
cos( ) cos( )
m o
m o m
x A
x A A m x A m | e | e
=
= + + = + +
Notethatthegraphontherightisessentiallythesameastheoneontheleft,butwith
(1)
m
x plottedusing
therighthandsideaxisscale.
Case2:Usingfirstandsecondfrequencycomponents(k=2)
(0)
(1) (0)
1 1 1 1
(2) (1)
2 2
cos( ) cos( )
cos( 2 )
m o
m o m
m m
x A
x A A m x A m
x x A m
| e | e
| e
=
= + + = + +
= + +
Note,
(2)
m
x isclosertotheoriginaltimeseriesthan
(1)
m
x duetotheaddedcosinefunction,but
(1)
m
x is
smoother.
DiscreteFourierTransformTutorial 5 SpiderFinancialCorp,2013
Inessence,theprocessofrecoveringtheoriginaltimeseriesfromthesubsetissimilartotimeseries
smoothing,butwithoutthedrawbackofthelageffect.
Case3:Usingthefirst8frequencycomponents(k=8)
(0)
(1) (0)
1 1 1 1
(2) (1)
2 2
(3) (2)
3 3
(8) (7)
8 8
cos( ) cos( )
cos( 2 )
cos( 3 )
....
cos( 8 )
m o
m o m
m m
m m
m m
x A
x A A m x A m
x x A m
x x A m
x x A m
| e | e
| e
| e
| e
=
= + + = + +
= + +
= + +
= + +
Insum,bydecomposingtheinputtimeseriesintocosinefunctions,wecanseparatethecomponent(s)
attributedtonoise(highfrequency),uncoverperiodicity,andfindalongrunvaluefortheprocess.
DiscreteFourierTransformTutorial 6 SpiderFinancialCorp,2013
Process
First,letsorganizeourinputdata.Wecanstartbyplacingthevaluesofthesampledatainaseparate
column.
NowwearereadytoconstructourDFToutputtable.First,selecttheemptycellinyourworksheet
whereyouwishtheoutputtabletobegenerated,thenlocateandclickontheFouriericoninthe
NumXLtab(ortoolbar).
TheDFTWizardpopsup.
Selectthecellsrangeforthevaluesoftheinputvariable.
DiscreteFourierTransformTutorial 7 SpiderFinancialCorp,2013
Notes:
1. Bydefault,thetablecellsrangeissettothecurrentselectedcellinyourworksheet.
Finally,onceweselecttheinputdata(X)cellsrange,theOptionsandMissingValuestabsbecome
available(enabled).
Next,selecttheOptionstab:
Initially,thetabissettothefollowingvalues:
- FrequencyComponentOutputischecked.Leavethisoptionchecked.
o TheAmplitudeandPhaseoptionsarechecked.Leavethoseoptionscheckedaswell.
o Thenumberofcomponentscorrespondstothesizeoftheoutputtable.Setthisvalueto
five(5)togeneratethefirstfivefrequencycomponents.
- Ontherightside,InputVariableOutputisunchecked.Checkthisoptiontogeneratebackthe
inputtimeseriesusingasubsetofthefrequencycomponents.
o UnderNo.ofComponents,setthisvalueto4.Youcanchangethisvaluelateronin
theoutputtable.
Now,clickontheMissingValuestab.
DiscreteFourierTransformTutorial 8 SpiderFinancialCorp,2013
Inthistab,youcanselectanapproachtohandlemissingvaluesinthedataset(Xs).Bydefault,DFT
wizarddoesnotallowanymissingvalueintheanalysis.
Thistreatmentisagoodapproachforouranalysis,soletsleaveitunchanged.
Now,clickOKtogeneratetheoutputtables.
DiscreteFourierTransformTutorial 9 SpiderFinancialCorp,2013
Inthefirsttable(ontheleft),itdisplaystheamplitudeandphase(inradians)fordifferentfrequency
components(i.e.cosinefunctions).Notethatcomponentzerohaszerophase.
Inthesecondtable,itcarriesontheinverseFouriertransformusingasubsetofthefrequencies.
Ifyouwishtochangethenumberofcomponents,simplyeditthenumberinthecelltable,andthe
valuesundertheFittedtitlewillberecalculated.
Conclusion
Inthistutorial,wepresentedtheinterpretationofthediscreteFouriertransform(DFT)anditsinverse
(IDFT),aswellastheprocesstocarryouttherelatedcalculationinExcelusingNumXLsaddinfunctions.
Wheredowegofromhere?
UsingDFT,weconstructedananalyticalformularepresentationfortheinputtimeseries.
Onedirectapplicationthatwecanthinkofistocomputevaluesforthenewintermediateobservation,
ortoalterthesamplingfrequency(i.e.upsample)andintroduceanewtimeseries.
Butwhataboutmissingvalues?Whatifwedonthaveafixedsamplingrate?DifferenttypesofFourier
transformsareavailable(e.g.nonuniformtimediscreteFouriertransform(NUTDFT))tohandleun
equallyspacedinputtimeseries,whichgenerateafinitediscretesetoffrequencies.Thiswillproveto
beusefulforimputingintermediatemissingvaluesusingthedynamicsofthewholedataset,ratherthan
adjacentobservations,asisthecaseininterpolationorGaussianbridgemethods.
DiscreteFourierTransformTutorial 10 SpiderFinancialCorp,2013
Thetimeseriesspectrumcontainsasignificantamountofinformation,whichwebarelyscratchedinthis
tutorial.Inournextentry,wewilllookatthediscretefilter(operator)definitioninbothtimeand
frequencydomain,anditsapplicationtoourtimeseriesanalysis/modeling.