**TI85** FOURIER SERIES. V1.1 02/20/96| mFOURIERmkClLCD:Radian:Normal:Float:RectCÖ27dimL ANÖIf (AN(27)==0)ÖThenÖ0OF:0RFÖDisp "Fourier Series 1.1"ÖDisp "(c)1995 T. Wheeler"ÖDisp " "ÖDisp "To start, press NEW"ÖGoto MAIN2ÖEndÖÖÖLbl MAINÖDispGÖLbl MAIN2ÖÖMenu(1,"NEW",NEW,2,"EDIT",EDIT,3,"SPECT",SPECT,4,"VIEW",VIEW,5,"QUIT",QUIT)ÖLbl QUITÖClLCDÖDisp "-- BYE!"ÖStopÖÖÖLbl VIEWÖIf (AN(27)==0):Goto MAIN2ÖÖMenu(1,"ORIG",ORIG,2,"RECON",RECON,3,"BOTH",BOTH,4,"SPEC",SPECT,5,"MAIN",MAIN)ÖÖLbl ORIGÖFnOff ÖIf (0==OF)ÖThenÖClDrwÖFnOn 1ÖDispGÖStPic ORIG:1OFÖFnOff ÖGoto VIEWÖEndÖÖClDrwÖRcPic ORIGÖGoto VIEWÖÖLbl RECONÖFnOff ÖIf (0==RF)ÖThenÖClDrwÖFnOn 2ÖDispGÖStPic RECN:1RFÖFnOff ÖGoto VIEWÖEndÖClDrwÖRcPic RECNÖGoto VIEWÖÖÖÖLbl BOTHÖFnOff ÖIf (OF==0)ÖThenÖClDrwÖFnOn 1:DispGÖStPic ORIG:1OFÖEndÖIf (RF==0)ÖThenÖClDrwÖFnOff ÖFnOn 2:DispGÖStPic RECN:1RFÖEndÖÖFnOff ÖClDrwÖRcPic RECNÖRcPic ORIGÖDispGÖGoto VIEWÖÖÖLbl EDITÖIf (AN(27)==0):Goto MAIN2ÖClLCDÖDisp " EDIT MODE"ÖDisp " "ÖDisp "AFTER USING THE"ÖDisp "GRAPH/EQUATION"ÖDisp "EDITOR, PRESS [EXIT]"ÖDisp "[ENTER] TO RESUME"ÖDisp "PROGRAM."ÖMenu(1,"STOP",MAIN,2,"EDIT",EDIT2)ÖLbl EDIT2ÖClLCDÖDisp "PRESS [ENTER]"ÖDisp "TO RESUME FOURIER"ÖDisp "ANALYSIS..."Ö0CF:0OF:0RFÖDispGÖStopÖÖÖÖLbl NEWÖClLCDÖDisp " WARNING"ÖDisp " "ÖDisp "THIS WILL ERASE THE"ÖDisp "PREVIOUS PROBLEM'S"ÖDisp "DATA!"ÖMenu(1,"STOP",MAIN,2,"OK",NEW1)ÖLbl NEW1ÖÄ/4xScl:0A0Öy2=A0+sum seq(AN(J)*cos (J*x)+BN(J)*sin (J*x),J,1,N,1):FnOff Ö" "E:10N:"Ä"LL:"Ä"UL:0I:0HCFÖ27dimL AN:Fill(0,AN)Ö25dimL BN:Fill(0,BN)Ö1AN(27)ÖÄxMin:ÄxMaxÖ1xScl:1ySclÖ2yMin:2yMaxÖFnOn :AxesOnÖLbl NEW2Ö" "FÖClLCDÖLbl ADDÖClLCDÖDisp "HIGHEST HARMONIC="ÖDisp " "ÖOutpt(1,18,N)ÖDisp "LL:"ÖDisp "UL:"ÖDisp " F:"ÖOutpt(3,4,LL)ÖOutpt(4,4,UL)ÖOutpt(5,4,F)Ö0CFÖMenu(1,"L-LIM",LLM,2,"H-LIM",HHM,3,"FUNCT",FUNCT,4,"NEXT",NEXT,5,"DONE",CR2)ÖÖÖLbl HPLÖIf N<25Ö1+NN:0RFÖGoto HCMÖLbl HMIÖIf (N2)ÖN-1N:0RFÖLbl HCMÖClLCDÖDisp "HIGHEST HARMONIC="ÖOutpt(1,18,N)ÖGoto SPECTÖÖÖLbl CR2ÖIf (lngth F<2)ÖGoto CRUNCHÖ1CF:Goto NEXTÖLbl LLMÖClLCDÖInpST "LOWER LIMIT?",LLÖGoto ADDÖLbl HHMÖClLCDÖInpST "UPPER LIMIT?",ULÖGoto ADDÖLbl FUNCTÖClLCDÖInpST "FUNCT?",FÖIf (lngth F<2)ÖF+" "FÖGoto ADDÖLbl NEXTÖIf (I==0)ÖThenÖ"(x"L1:")*"L2ÖElseÖ"+(x"L1:")*"L2ÖEndÖ"(x<"L3:"("L4:")"L5ÖE+L1+LL+L2+L3+UL+L2+L4+F+L5EÖULLL:"Ä"UL:1IÖIf (CF==0)ÖGoto NEW2ÖLbl CRUNCHÖClLCDÖDisp "CONVERTING INTO"ÖDisp "EQUATION y1..."ÖStEq(E,y1)Ö0CFÖFnOff :FnOn 1ÖDispG:1OF:StPic ORIGÖGoto MAINÖÖÖLbl SPECTÖIf (AN(27)==0):Goto MAIN2ÖMenu(1,"CALC",CALC,2,"COEFF",ANBN,3,"HARM+",HPL,4,"HARM-",HMI,5,"MAIN",MAIN)ÖÖLbl CALCÖClLCDÖÖÖ27dimL ANÖ25dimL BNÖÖDisp "FINDING A0"ÖÖIf (CF==0)ÖThenÖFill(0,BN):Fill(0,AN):0HCFÖ1AN(27)ÖfnInt(y1,x,Ä,Ä)/(2Ä)A0ÖEndÖÖClLCDÖDisp "SINE COEFFICIENTS"ÖF=y1*sin (I*x)ÖFor(I,1,N)ÖIf (getKy0)ÖGoto SPECTÖIf (CF==0) or (I>HCF)ÖÖ"The following integration"Ö"is broken into halves. For"Ö"some unknown reason, the TI-85"Ö"produces an incorrect (zero) "Ö"result for the convolution of"Ö"f(x) and sine(x) where f(x) is"Ö"zero for x<0. The cosine"Ö"convolution seems unbothered."ÖÖ(fnInt(F,x,Ä,0) + fnInt(F,x,0,Ä))/ÄBN(I)ÖÖIf abs (BN(I))<19Ö0BN(I)Ömod(I-1,5)+3CÖOutpt(C,1,"B "):Outpt(C,2,I):Outpt(C,4,"="):Outpt(C,6,BN(I))ÖEndÖClLCDÖDisp "COSINE COEFFICIENTS"ÖF=y1*cos (I*x)ÖFor(I,1,N)ÖIf (getKy0)ÖGoto SPECTÖIf (CF==0) or (I>HCF)ÖfnInt(F,x,Ä,Ä)/ÄAN(I)ÖIf abs (AN(I))<19Ö0AN(I)Ömod(I-1,5)+3CÖOutpt(C,1,"A "):Outpt(C,2,I):Outpt(C,4,"="):Outpt(C,6,AN(I))ÖEndÖ1CFÖIf (I-1)>HCFÖ(I-1)HCFÖGoto SPECTÖÖLbl ANBNÖ0IÖLbl ANBN1ÖClLCDÖIf (I>0)ÖThenÖOutpt(1,1,"A ="):Outpt(2,1,"B ="):Outpt(2,2,I):Outpt(1,2,I):Outpt(1,6,AN(I)):Outpt(2,6,BN(I))ÖÖIf (BN(I)0)ÖThenÖ(BN(I)+AN(I))V:(180/Ä)*tan (AN(I)/BN(I))AÖElseÖ(BN(I)+AN(I))V:90*sign (AN(I)AÖEndÖÖIf (BN(I)<0)ÖA+180AÖÖOutpt(4,1,"V ="):Outpt(4,2,I):Outpt(4,6,V):Outpt(4,11,"  "):Outpt(4,14,A):Outpt(4,19," pK ")ÖOutpt(5,1," ="):Outpt(5,6,V/2):Outpt(5,18," RMS")ÖIf (V>0)ÖThenÖOutpt(6,1," ="):Outpt(6,6,20*log (V/2)):Outpt(6,18," dBV")ÖEndÖEndÖÖÖÖIf I==0ÖThenÖOutpt(1,1,"A0 ="):Outpt(1,6,A0)ÖEndÖÖMenu(1,"+",NHM,2,"-",PHM,4,"SPECT",SPECT,5,"MAIN",MAIN)ÖÖLbl NHMÖIf I0ÖI-1IÖGoto ANBN1ÖŠ7