http://library.lanl.gov/numerical/bookcpdf/c12-2.pdf FFT Fast Fourier Transform methods are described in the HP part of my url. It finds the frequency components of a repeated wave form given amplitudes at N=8 time intervals. Create a folder called FT in Var-Link. In MODE, select Degree\ Select Float 12 in MODE or computation will be only approaximate In Home create an equation 2+0.9*Sin(x)+0.8*Cos(x)+0.7*Sin(2*x)+0.6*Cos(2*x) ->z k0 = 2 k1 = 0.9 k2 = 0.8 k3 = 0.7 k4 = 0.6 Create this table tt time(approx) frequency(approx) x=Angle y=value 0 3.4 = m1 16 = n1 45 3.902 = m2 3.2-3.6*i = n2 90 2.3 = m3 2.4-2.8*i = n3 135 1.3707 = m4 0+0*i = n4 180 1.8 = m5 0+0*i = n5 225 1.4979 = m6 0+0*i = n6 270 0.5 = m7 2.4+2.8*i = n7 315 1.229 = m8 3.2+3.6*i = n8 { 3.4 , 3.902 , 2.3 , 1.3707 , 1.8 , 1.4979 , 0.5 , 1.229 } x->value z see value of m, store value as m1...m8 Select APPS EEPro F2 6:Fourier Transform 1:FFT Time Enter {m1,m2,m3,m4,m5,m6.m7.m8} See Time{3.4,3.902....1.229} Use full accuracy Select Freq F2 See {16,3.2-3.6*i...3.2+3.6*i} Yellow COPY See above Right arrow and F4 expands display DelVar x to see equation z unevaluated 16/8=2 =k0 3.6/4 =0.9 = k1 3.2/4=0.8 = k2 2.8/4 = k3 2.4/4= 0.6 = k4 8=number of samples 4=number of samples/2 Use n1 and final data n7,n8. If more frequencies are present x ,2*x,3*x, use only n6 n7 n8. Use 16,32, 64,... points for more frequencies. Hit ESC Choose 2:Inverse FFT Enter It finds the Time components of a repeated wave form given frequencies. Paste Frequency List {{16,.3.2....} Select time F2 See {3.4+0*i,3.902+0*i+....+1.229+0*i} on HOME Paste list of time values in HOME You can store values of time { delete 3.4 -> m1 (delete comma) (add :) 3.902 -> m2: ...m8 (delete }) ENTER Now plot curve and points Home post z See equation. darken with both up arrows and COPY APPS Select Data/Matrix Enter 3:New Type Data Folder ft Variable zz Enter Under C1 post 0 45. 90. ...315 Under C2 post m1 m2 m3 ... m8 see values HOME Yellow y1=PASTE Enter see equation .6*Cos(2.0000.... Go to Plot1 Enter Scatter Box x=c1 y=c2 Enter Yellow Window xmin=0 xmax = 360 xscl=1 ymin =.45 ymax = 4 yscl=1 xres =1 Yellow Graph See curve with selected points as boxes === seq(x.x,0,7) makes {0 1 2 3 4 5 6 7} Program to compute FFT @ is optional Make a folder labeled afft Create a program titled fft Program will be shown with only 4 digit accuracy in the input. Paste a list with full accuaracy. fft() Prgm ClrIO 0->n {}->zzz {}->s -0.25*Pi*i->u { 3.4 , 3.902 , 2.3 , 1.3707 , 1.8 , 1.4979 , 0.5 , 1.229 } -> g { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 } -> a While n<8 For t,0,7,1 @Disp "t",t @Disp "n",n @Pause @ClrIO mid(a,n+1,1) -> c @Disp "c",c t*c*u -> d @Disp "d",d e^(d) -> ps @Disp "ps",ps @Pause @ClrIO mid(g,t+1,1) -> q @Disp "q",q ps*q -> y @Disp "y",y @Pause @ClrIO augment(s,y) -> s @Disp "s",s @Pause @ClrIO EndFor @Disp "s",s sum(s) -> zz @Disp "zz",zz @Pause @ClrIO augment(zzz,{zz}) -> zzz @Disp "zzz",zzz {} -> s n+1->n EndWhile Disp "zzz",zzz EndProgram See { 16 3.2 - 3.6*i 2.4 - 2.8*i 0 + 0*i 0 + 0*i 0 + 0*i 2.4 + 2.8*i 3.2 + 3.6*i } Which is FFT data ================ Create a program named ifft Create a program titled fft Program will be shown with only 4 digit accuracy in the input. Paste a list with full accuaracy. fft() ifft() Prgm ClrIO 0->n {}->zzz {}->s +0.25*Pi*i->u { 16 3.2 - 3.6*i 2.4 - 2.8*i 0 + 0*i 0 + 0*i 0 + 0*i 2.4 + 2.8*i 3.2 + 3.6*i } -> g { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 } -> a While n<8 For t,0,7,1 @Disp "t",t @Disp "n",n @Pause @ClrIO mid(a,n+1,1) -> c @Disp "c",c t*c*u -> d @Disp "d",d e^(d) -> ps @Disp "ps",ps @Pause @ClrIO mid(g,t+1,1) -> q @Disp "q",q ps*q -> y @Disp "y",y @Pause @ClrIO augment(s,y) -> s @Disp "s",s @Pause @ClrIO EndFor @Disp "s",s sum(s) -> zz @Disp "zz",zz @Pause @ClrIO augment(zzz,{zz}) -> zzz @Disp "zzz",zzz {} -> s n+1->n EndWhile zzz/8 -> fin Disp "fin",fin EndPrgm See { 3.4 + 0*i, 3.902 + 0*i , 2.3 + 0*i , 1.3707 + 0*i , 1.8 + 0*i , 1.4979 + 0*i , 0.5 + 0*i , 1.229 + 0*i } This is time amplitude data