OPEN "sunspot.dat" FOR INPUT AS #2 DIM y(3000) PRINT CHR$(12) REM GE Copeland REM Physics Department REM Old Dominion University REM Norfolk Va 23504 REM 4/2001 REM PRINT " FFT of sun spot numbers.... we read the data file" PRINT " and process it so WPLOT may plot the data, do an FFT, do the" PRINT "plot of data with fit and out put a table of the FFT coefficients." n = 1994 - 1749 j = 0 REM PRINT n FOR il = 1 TO n j = 12 * (il - 1) + 1 REM PRINT "il="; il; "j="; j INPUT #2, yr, y(j), y(j + 1), y(j + 2), y(j + 3), y(j + 4), y(j + 5), y(j + 6), y(j + 7), y(j + 8), y(j + 9), y(j + 10), y(j + 11) REM PRINT yr REM PRINT y(j); y(j + 1); y(j + 2); y(j + 3); y(j + 4); y(j + 5); y(j + 6); y(j + 7); y(j + 8); y(j + 9); y(j + 10); y(j + 11) NEXT il CLOSE #2 PRINT "End Year is "; yr jx = j + 11 PRINT "Final value of month index is "; jx REM for i = n * 12 - 5 TO jx REM PRINT i, y(i) REM NEXT i PRINT "Entire data set has "; jx; "months." ymax = -1000 ysum = 0 FOR i = 1 TO jx ysum = y(i) + ysum IF y(i) > ymax THEN ymax = y(i) ELSE END IF NEXT i yavg = ysum / jx PRINT "Max value ="; ymax PRINT "Average value = "; yavg FOR i = 1 TO 12 ik = 2 ^ i REM PRINT ik, jx NEXT i ikeep = 2048 PRINT " The data truncated to have "; ikeep; " months coverage ="; 2 ^ 11 ymax = -1000 ysum = 0 FOR i = 1 TO ikeep ysum = y(i) + ysum IF y(i) > ymax THEN ymax = y(i) ELSE END IF NEXT i yavg = ysum / jx PRINT "Max value ="; ymax PRINT "Average value = "; yavg OPEN "PLOT.PLT" FOR OUTPUT AS #2 PRINT #2, "CLRDATA" PRINT #2, "CLRPLOT" PRINT #2, "close" PRINT #2, PRINT #2, "TITLE The Fast Fourier Transform of Sun Spots Numbers" PRINT #2, "XLABEL 1749-1920" PRINT #2, "YLABEL Sunspot Numbers" PRINT #2, "XSTART 0" PRINT #2, "XEND "; ikeep PRINT #2, "XSTEP 1" PRINT #2, "XTICS 7" PRINT #2, "XSTEP 0.0825" PRINT #2, "YSTART 0!" PRINT #2, "YEND "; ymax PRINT #2, "YSTEP 0!" PRINT #2, "READY "; ikeep REM data goes here FOR i = 1 TO ikeep PRINT #2, y(i) NEXT i PRINT #2, "SCATTER" PRINT #2, "PLOT" PRINT #2, "* MESSAGE Please wait ..." PRINT #2, "FFT 1" PRINT #2, "FFTFUNFREQ 200!" PRINT #2, "XTICS 4" PRINT #2, "PLOTFFT" PRINT #2, "* MESSAGE Please wait ..." PRINT #2, "TITLE Trig fit using 200 FFT ampltitues" PRINT #2, "* LEGEND0 0.028 0.93 Note:_An_FFT_can_also_be_input_and_inverted." PRINT #2, "TITLE2 (An FFT can also be input and inverted)" PRINT #2, "FFTFREQ 200" PRINT #2, "XTICS 7" PRINT #2, "PLOT" PRINT #2, "OUTFFT" CLOSE #2 END