home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l292 / 2.ddi / FFTDEMO.FOR < prev    next >
Encoding:
Text File  |  1990-02-20  |  1.5 KB  |  63 lines

  1.       PROGRAM FFTDEMO
  2.  
  3.       INCLUDE 'stdhdr.for'
  4.  
  5.       REAL fftr(0: maxv), ffti(0: maxv), ar(0: maxv)
  6.       REAL bi(0: maxv), xr(0: maxv), yi(0: maxv)
  7.       INTEGER nd, i
  8.  
  9.       ! {main program fft}
  10.       nd = 128
  11.       DO i = 0, nd - 1
  12.         xr(i) = COS(pi * i / 16) + COS(pi * i / 32)
  13.         yi(i) = 0
  14.         ar(i) = xr(i)
  15.         bi(i) = yi(i)
  16.       END DO
  17.  
  18.       CALL FFTCalc(xr, yi, nd)
  19.  
  20.  
  21.       DO i = 0, nd
  22.         fftr(i) = xr(i)
  23.         ffti(i) = yi(i)
  24.       END DO
  25.  
  26.       CALL FFTInvCalc(xr, yi, nd)
  27.  
  28.       WRITE(*,*) 'Index       Rawdata       FFT data   Inverse FFT data'
  29.       CALL DisplayData(ar, fftr, xr, nd)
  30.  
  31.       END
  32.  
  33.  
  34.       SUBROUTINE DisplayData (dat1, dat2, dat3, numdat)
  35.       INCLUDE 'stdhdr.for'
  36.  
  37.       REAL dat1(0:maxv),dat2(0:maxv),dat3(0:maxv)
  38.       INTEGER nextpage, numdat
  39.       INTEGER increment,strt,finish
  40.  
  41.       strt = 0
  42.       finish = 19
  43.       DO WHILE (nextpage .NE. 3)
  44.         DO i = strt, finish
  45.           WRITE (*,10)  i, dat1(i), dat2(i), dat3(i)
  46.         END DO
  47. 10      FORMAT (I3, 3(4X F12.2))
  48.         WRITE (*,*) 'prompt > '
  49.         WRITE (*,*) '1-Next page   2-Back page   3-Quit display '
  50.         READ *, nextpage
  51.  
  52.         IF (nextpage .EQ. 1) increment = 20
  53.         IF (nextpage .EQ. 2) increment = -20
  54.         strt = strt + increment
  55.         IF (strt .LT. 0 .OR. strt .GT. numdat - 19)  strt = 0
  56.         finish = finish + increment
  57.         IF (finish .LT. 19 .OR. finish .GT. numdat)  finish = 19
  58.       END DO
  59.  
  60.       END !SUBROUTINE
  61.  
  62.  
  63.