C 00010001 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CTITLESAHILBT -- PERFORM HILBERT TRANSFORM 00020001 CA CA AUTHOR B. S. BOK 00030001 CA DESIGNER B. S. BOK 00040001 CA LANGUAGE FORTRAN 00050001 CA SYSTEM IBM 00060001 CA WRITTEN AUGUST, 1990 00070001 C REVISED 12-21-91 JJC - MODIFIED TO MEET EDP STANDARDS. CA 00090001 CA CALL SAHILBT(X, Y, NN, NU) CA 00110001 CA INPUT X = INPUT TRACE R4 00120001 CA INPUT NU = MAGNITUDE OF FFT (NN = 2**NU) I4 00130001 CA INPUT NN = FFT LENGTH I4 CA OUTPUT Y = HILBERT TRANSFORM OF X R4 00140001 CA CA THIS SUBROUTINE PERFORMS THE HILBERT TRANSFORM C C************************************************************** C * C SUBROUTINES AND FUNCTIONS CALLED FROM THIS ROUTINE * C * C MFORSP * C * C************************************************************** C SUBROUTINE SAHILBT(X,Y,NN,NU) C IMPLICIT INTEGER (A-Z) C DIMENSION X(NN),Y(NN) REAL X REAL Y C NH = NN / 2 NYQ1 = NH + 2 C DO 100 N = 1, NN Y(N) = 0. 100 CONTINUE CJJ CALL BBFFT ( X, Y, NN, NU, 0 ) CALL MFORSP(NU, X, Y, -1 ) DO 120 N = 2, NH X(N) = 2. * X(N) Y(N) = 2. * Y(N) 120 CONTINUE NH = NH + 2 DO 140 N = NYQ1, NN X(N) = 0. Y(N) = 0. 140 CONTINUE CJJ CALL BBFFT ( X, Y, NN, NU, 1 ) CALL MFORSP( NU, X, Y, 1 ) C RETURN END