; TeX output 2018.09.29:1910! /pgfH{/pgfheight exch def 0.75 setlinewidth [] 0 setdash /pgfshade {pgfA} def /pgfdir { dup 0 moveto dup 5 index lineto } bind def} bind def! /pgfV{/pgfheight exch def 0.75 setlinewidth [] 0 setdash /pgfshade {pgfA} def /pgfdir { dup 0 exch moveto dup 5 index exch lineto } bind def} bind def! /pgfA{ /pgfdiff 8 index round cvi 8 index round cvi sub 2 mul 1 add def 2 index 6 index sub pgfdiff div 2 index 6 index sub pgfdiff div 2 index 6 index sub pgfdiff div pgfheight 9 index 9 index 9 index 14 index pgfdiff { 3 index 3 index 3 index setrgbcolor pgfdir stroke 4 -1 roll 7 index add 4 -1 roll 6 index add 4 -1 roll 5 index add 4 -1 roll .5 sub } repeat mark 15 1 roll cleartomark exch pop }bind def "! /pgfR1{ newpath dup dup dup 0 360 arc clip newpath dup /pgfendx exch def /pgfendy exch def 0.875 setlinewidth [] 0 setdash /pgfshade {pgfR} def /pgfstartx exch def /pgfstarty exch def /pgfdiffx pgfendx pgfstartx sub def /pgfdiffy pgfendy pgfstarty sub def dup /pgfdomb exch def }bind def ]! /pgfR2{ newpath 0.5 add pgfcircx pgfcircy 3 2 roll 0 360 arc setrgbcolor fill pop}bind def X! /pgfR{ /pgfdiff 8 index round cvi 8 index round cvi sub 4 mul 1 add def /pgfcircx pgfstartx 9 index pgfdiffx pgfdomb div mul add def /pgfcircy pgfstarty 9 index pgfdiffy pgfdomb div mul add def /pgfcircxe pgfstartx 8 index pgfdiffx pgfdomb div mul add def /pgfcircye pgfstarty 8 index pgfdiffy pgfdomb div mul add def /pgfxstep pgfcircxe pgfcircx sub pgfdiff div def /pgfystep pgfcircye pgfcircy sub pgfdiff div def 2 index 6 index sub pgfdiff div 2 index 6 index sub pgfdiff div 2 index 6 index sub pgfdiff div 8 index 8 index 8 index 13 index pgfdiff { 3 index 3 index 3 index setrgbcolor pgfcircx pgfcircy 2 index 0 360 arc closepath stroke 4 -1 roll 6 index add 4 -1 roll 5 index add 4 -1 roll 4 index add 4 -1 roll .25 sub /pgfcircx pgfcircx pgfxstep add def /pgfcircy pgfcircy pgfystep add def } repeat mark 14 1 roll cleartomark exch pop }bind defm! /pgfsc{}bind def/pgffc{}bind def/pgfstr{stroke}bind def/pgffill{fill}bind def/pgfeofill{eofill}bind def/pgfe{a dup 0 rlineto exch 0 exch rlineto neg 0 rlineto closepath}bind def/pgfw{setlinewidth}bind def/pgfs{save pgfpd 72 Resolution div 72 VResolution div neg scale magscale{1 DVImag div dup scale}if pgfx neg pgfy neg translate pgffoa .setopacityalpha}bind def/pgfr{pgfsd restore}bind def userdict begin/pgfo{pgfsd /pgfx currentpoint /pgfy exch def def @beginspecial}bind def /pgfc{newpath @endspecial pgfpd}bind def /pgfsd{globaldict /pgfdelta /delta where {pop delta} {0} ifelse put}bind def/pgfpd{/delta globaldict /pgfdelta get def}bind def /.setopacityalpha where {pop} {/.setopacityalpha{pop}def} ifelse /.pgfsetfillopacityalpha{/pgffoa exch def /pgffill{gsave pgffoa .setopacityalpha fill 1 .setopacityalpha newpath fill grestore newpath}bind def /pgfeofill{gsave pgffoa .setopacityalpha eofill 1 .setopacityalpha newpath eofill grestore newpath}bind def}bind def /.pgfsetstrokeopacityalpha{/pgfsoa exch def /pgfstr{gsave pgfsoa .setopacityalpha stroke grestore newpath}bind def}bind def /pgffoa 1 def /pgfsoa 1 def end papersize=8.5in,11in7٫color push gray 03{ ptmr7t1 color popWfdटcolor push gray 0Afd-t23{ ptmr7tNotesfponFFTImplementationinProcessigff.$"3{ ptmr7tBillٞLiu color popvठcolor push gray 0! /pgf1{gsave exec 1.0 pgfw 2.00002 0.0 moveto -6.00006 4.00005 lineto -3.00003 0.0 lineto -6.00006 -4.00005 lineto pgffill grestore} bind def! /pgf2{gsave exec 1.0 pgfw 0.8 pgfw [ ] 0.0 setdash 1 setlinecap 1 setlinejoin -3.00003 4.00005 moveto -2.75002 2.50002 0.0 0.24998 0.75 0.0 curveto 0.0 -0.24998 -2.75002 -2.50002 -3.00003 -4.00005 curveto pgfstr grestore} bind defm! /pgf3{gsave exec 1.0 pgfw [ ] 0.0 setdash 0.0 -5.00005 moveto 0.0 5.00005 lineto pgfstr grestore} bind def! /pgf4{gsave exec 1.0 pgfw [ ] 0.0 setdash -3.00003 -5.00005 moveto 0.0 -5.00005 lineto 0.0 5.00005 lineto -3.00003 5.00005 lineto pgfstr grestore} bind def! /pgf5{gsave exec 1.0 pgfw [ ] 0.0 setdash -2.00002 -5.00005 moveto 1.0 -3.00003 1.0 3.00003 -2.00002 5.00005 curveto pgfstr grestore} bind def! /pgf6{gsave exec 1.0 pgfw [ ] 0.0 setdash -4.50003 -5.00005 moveto 0.49998 0.0 lineto -4.50003 5.00005 lineto pgfstr grestore} bind def! /pgf7{gsave exec 1.0 pgfw -2.50002 0.0 translate [ ] 0.0 setdash 3.00003 0.0 moveto 3.00003 1.65689 1.65689 3.00003 0.0 3.00003 curveto -1.65689 3.00003 -3.00003 1.65689 -3.00003 0.0 curveto -3.00003 -1.65689 -1.65689 -3.00003 0.0 -3.00003 curveto 1.65689 -3.00003 3.00003 -1.65689 3.00003 0.0 curveto closepath gsave pgffc pgffill grestore gsave pgfsc pgfstr grestore newpath grestore} bind def! /pgf8{gsave exec 1.0 pgfw [ ] 0.0 setdash 1.0 0.0 moveto -5.00005 3.00003 lineto -11.00012 0.0 lineto -5.00005 -3.00003 lineto closepath gsave pgffc pgffill grestore gsave pgfsc pgfstr grestore newpath grestore} bind def 387ߌ8 ptmb7tT5B3{ ptmr7tHISdocumentbrie youtlinesthebackgroundandpro-5BceedstodescribetheimplementationofFFTalgorithm.Y3N88 ptmrc7tI.Background&d TheNF٠astOFourierTgransformandOitsinverseOarecommonlyused%4for%3transformingsignalsintopoint-valueformstobepointwise-multiplied-andthenconv٠ertedbacktopolynomialcoecientform.FFTHisusedonperiodicityandrootsofunity( b> cmmi10n^ 0ercmmi7th rootinthebelowequation)toenablecomputationalsaving.@:ϵ!n8K`y cmr10=eٓRcmr72@Li=n=e2@Lid=dn c =!nW(1);![ٴkn8=e2@Lik+B=n{8=e2@Li(kFmodn)=nW(2)Y0![ٴn=2፴nƲ=e@Li Ӳ= !", cmsy101W(3)OkII.ImplementBa/tion&d Theconclusiongoeshere.bjVAppendixA "]ProofoftheFirstZonklarEqua/tion Appendixonete٠xtgoeshere.bAppendixB Appendixtwgote٠xtgoeshere.color push gray 0 color popȍcolor push gray 0 color pop*;7 88 ptmrc7t7ߌ8 ptmb7t23{ ptmr7t"3{ ptmr7t3{ ptmr7t3{ ptmr7t !", cmsy10 b> cmmi10 0ercmmi7K`y cmr10ٓRcmr7a