CTITLE - COMPUTE INSTANTANEOUS AMPLITUDE OF TRACE C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CABS SAANSTB - COMPUTE INSTANTANEOUS AMPLITUDE OF TRACE C C SUBROUTINE SAANSTB(INTR,COMPL,NS) C C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1989. C C ALL RIGHTS RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, C REPRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT THE C PRIOR CONSENT OF ATLANTIC RICHFIELD COMPANY. C C CA DESIGNER C. J. SICKING CA AUTHOR C. J. SICKING CA LANGUAGE VS FORTRAN CA SYSTEM IBM CA WRITTEN 01-10-86 CA CA PURPOSE OF PROGRAM: CA CA THIS SUBROUTINE RECEIVES AS INPUT A REAL TRACE AND RETURNS THE CA INSTANTANEOUS AMPLITUDE OF THE TRACE C C*************************************************************** C * C SUBROUTINES AND FUNCTIONS CALLED FROM THIS ROUTINE * C * C ARSET CFFT * C * C*************************************************************** C CA CA ARGUMENTS: CA CA CA INTR INPUT/ REAL ARRAY CONTAINING THE TRACE FOR CA OUTPUT WHICH THE INSTANTANEOUS AMPLITUDE IS CA TO BE CALCULATED ON INPUT. ON OUTPUT CA IT WILL CONTAIN THE INSTANTANEOUS CA AMPLITUDE. CA CA COMPL OUTPUT REAL ARRAY USED FOR COMPLEX FFT CA COMPUTATIONS. CA CA NS INPUT INTEGER VARIABLE CONTAINING THE NUMBER CA OF SAMPLES IN THE INPUT TRACE. CA CA EJECT CAEND C*********************************************************************** C C LOCAL VARIABLES C C*********************************************************************** C C NN - THE NUMBER THAT IS A POWER OF TWO WHICH EXCEEDS THE C TRACE LENGTH I*4 C NN2 - COMPLEX ARRAY LENGTH NEEDED FOR THE FFT. THIS IS C 2 * NN. I*4 C C*********************************************************************** C SUBROUTINE SAANSTB(INTR,COMPL,NS) C IMPLICIT INTEGER (A-Z) C REAL INTR(*), COMPL(*) C C COMPUTE LENGTH OF FFT C NN = 1 100 CONTINUE NN = NN * 2 IF (NS .GT. NN) GO TO 100 NN2 = NN * 2 CALL ARSET ( COMPL, NN2, 0.0 ) C C MOVE THE INPUT TRACE TO THE COMPLEX ARRAY C DO 120 I = 1, NS COMPL(2 * I - 1) = INTR(I) 120 CONTINUE C C COMPUTE THE HILBERT TRANSFORM OF THE TRACE C C COMPUTE THE FFT C CALL CFFT ( COMPL, NN, 1 ) DO 140 I = 3, NN COMPL(I) = 2.0 * COMPL(I) 140 CONTINUE DO 160 I = NN + 2, NN2 COMPL(I) = 0.0 160 CONTINUE C C COMPUTE THE INVERSE FFT C CALL CFFT ( COMPL, NN, -1 ) C C COMPUTE THE INSTANTANEOUS AMPLITUDE AND RETURN C DO 180 I = 1, NS INTR(I) = SQRT ( COMPL(2 * I - 1) * COMPL(2 * I - 1) + COMPL(2 1 * I + 1) * COMPL(2 * I + 1) ) 180 CONTINUE C RETURN END