**TI89**advcurlRfft ZprevmodexprwtempthetafreqaxisistepwpiwprwiwrmmaxtempitemprjjiimmxvaluenumsamplcounterdatamatxisigndummyprevmodeQdispdatacmplxfftswapdataenterdatinitlze MAIN ROUTINE*?#?H#zFrequency Domain Function-NdummydatamatxdummyfreqaxisdummydatamatxdummyfreqaxisxnumsampldummytFor dummy,1,numsampl/2-1 DRAW LINE GRAPH*?u#?P#z*?u# N*?P#?P#z*?P# N*?%#?P#z*?%# N LABEL Y AXIS)?0#?@#.5-N)?0#?'#.3-N)?0#?p#.1-NPtText "0",.01,ymin*.3)?0#?#z.1-N)?0#?3#z.3-N)?0#?P#z.5-N LABEL X AXIS*? #+?#(*z)@#dummyՏM*numsampldatamatxdummy?P#'?P#z& SET AXIS LIMITS]?P#zdummynumsampldummyfreqaxisՀnumsampldummytnumsamplfreqaxisOn-Grid- CREATE VALUES FOR DUMMY X FREQ AXISwtempdummynumsampldatamatxՀdummynumsampldatamatxdummydatamatxՀdummydatamatxwtempnumsampldummyt FFTSHIFT?P#counterdatamatxcounterdatamatxՏcounterdatamatxcounterdatamatxՏcounterdatamatxՀnumsamplcountertdispdataچ CALCULATE FFT MAGNITUDEwtempdispdata}istepmmaxwiwprwtempwpiwiwiwrwprwiwpiwrwrwrwtempiidatamatxtempiiidatamatxՀiidatamatxtempriidatamatxՀ iidatamatxtempijjdatamatxՀiidatamatxtemprjjdatamatxՀ wrjjdatamatxՏwijjdatamatxՏtempi wrjjdatamatxՏwijjdatamatxՏtempr iimmaxjj istepnumsamplmmiitmmaxmmtwiwrthetaEwpiz?P#thetaE?P#thetaEwpr$isignmmaxthetammaxistepmmaxnumsampl=mmaxcmplxfftچwtempwpiwprwiwrthetaistepmmaxcmplxfft} DANIEL-LANCZOS ROUTINEdjjmmjj7mmmmjjmmjjmmjjmm=numsamplmmtempiiidatamatxՀtempriidatamatxՀiidatamatxjjdatamatxՀiidatamatxjjdatamatxՀjjdatamatxtempijjdatamatxtempriijj;numsampliitjjswapdataچ Bin#010Bin#010,Bin#011Bin#110,etc. Bin#000Bin#000,Bin#001Bin#100, Now do the data sample swappingmmtempitempriijjswapdata}-y1چ CLEAR THE GRAPHING SCREEN*z?`#&'&FFT Calculating-N*z?`#&'&  -NQ*z?`#&'& Press ENTER to Continue-N*?#&'&Time Domain Function-N*z?@#&'& *z?@# N*z?#&'& *z?# N*?%#&'& *?%# N*?P#&'& *?P# N LABEL Y AXIS*z?#&'&?u#&'&?u# N*z?#&'&?P#&'&?P# N*z?#&'&?%#&'&?%# N*z?#&& N LABEL X AXISy1eFix 2-Display Digits-On-Grid- GRAPH OUT THE TIME FUNCTION* +.'&(*z)@#dummyՏM*numsampldatamatxdummy AUTOSCALE PLOTTING AXIScounterdatamatxՀxvaluey1counterdatamatxՀ&counter'&numsamplxvaluenumsamplcountertnumsampldatamatx STORE THE TIME SAMPLES IN A MATRIXnumsample.g. 16,64,2,etc.-SInput FFT Length 8,-z'e.g. 2-SInput Value for Tmax,-z&e.g. (-)2 -SInput Value for Tmin,-z SET VALUES FOR XMIN,XMAX,FFT LENGTHQPress Enter to Continue-zy1zy1(x) = -zTime Domain Input Function-zDefine -xpr $2dE$xdEy1چ TWO SINE WAVES Define y1(x)=when(x<,when(x<,0,-abs(x)),0) TRIANGLE WAVE Define y1(x)=when(x<,when(x<,0,1/(2*)),0) SQUARE WAVE EXAMPLES OF USER DEFINED FUNCTIONS1-xpr;xpr -XSinewave Signal Example-z(2*)),0) OR Press '1' For-zwhen(x<,when(x<,0,1/-zThe Equation: y1(x)=-zQe.g. A Square Wave Has-zDomain Function For y1(x),-zPROGRAM. Enter Time-zFFT SPECTRAL ANALYSIS-z ENTER USER DEFINED FUNCTIONAUTO-Independent-OFF-Graph <-> Table- INITIALIZE ALL THE GRAPHING STUFF **********enterdatچ etc.. data(5) = t3_real,data(6) = t3_imag data(3) = t2_real,data(4) = t2_imag, data(1) = t1_real,data(2) = t1_imag, i/p data stored asxprdummycounterenterdat}Approximate-Exact/Approx- 1 FOR FFT,-1 FOR INV FFTisigninitlzeچinitlze}xprwtempthetafreqaxisistepwpiwprwiwrmmaxtempitemprjjiimmxvaluenumsamplcounterdatamatxisigndummy}ALL- prevmode Cambridge Univ Press, 1996 From "Numerical Recipes In Basic" Compute 2^n Point Complex FFT܅{