C 00010001 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CTITLESABBAND -- COMPUTE THE PSEUDO-TRAPEZOIDAL AMPLITUDE 00020001 CA AUTHOR B. S. BOK 00030001 CA DESIGNER B. S. BOK 00040001 CA LANGUAGE FORTRAN 00050001 CA SYSTEM IBM / CRAY 00060001 CA WRITTEN AUGUST, 1990 00070001 C REVISED 12-21-91 JJC - MODIFIED TO MEET EDP STANDARDS. C 00080001 CA CALL SABBAND (FLC, FLP, FHP, FHC, HPDB, FNYQ, NN, AMP ) CA 00110001 CA INPUT FLC = LOW-CUT FREQUENCY (HZ) R4 00120001 CA INPUT FLP = LOW-PAS FREQUENCY (HZ) R4 00130001 CA INPUT FHP = HI-PASS FREQUENCY (HZ) R4 00140001 CA INPUT FLC = HI-CUT FREQUENCY (HZ) R4 00150001 CA INPUT HPDB = RATIO OF AMP AT FHP OVER AMP AT FLP (DB)R4 00160001 CA INPUT FNYQ = NYQUIST FREQUENCY (HZ) R4 00170001 CA INPUT NN = FFT LENGTH I4 00180001 CA OUTPUT AMP = COMPUTED AMP SPECTRUM WITH LENGTH NN R4 00200001 CA CA THIS ROUTINE IS TO COMPUTE THE PSEUDO-TRAPEZOIDAL AMPLITUDE 00210001 CA SPECTRUM CA 00220001 CA COMMENT: AMP WILL BE: CA (FLC,FLP)= STRAIGHT LINE IN NORMAL SCALE CA (FLP,FHP) = STRAIGHT LINE IN DB SCALE CA (FHP,FHC) = STRAIGHT LINE IN NORMAL SCALE CA C SUBROUTINE SABBAND (FLC, FLP, FHP, FHC, HPDB, FNYQ,NN,AMP,IA) C IMPLICIT INTEGER (A-Z) C************************************************************** C * C SUBROUTINES AND FUNCTIONS CALLED FROM THIS ROUTINE * C * C NO SUBROUTINES OR FUNCTIONS CALLED FROM THIS PROGRAM UNIT * C * C************************************************************** C DIMENSION AMP(NN,IA) C REAL DF REAL BAND REAL HOLD REAL HPAM REAL FLC REAL FLP REAL FHP REAL FHC REAL HPDB REAL FNYQ REAL AMP C NH = NN / 2 DF = FNYQ / NH HPAM = 10.0 ** (HPDB / 20.0 ) C DO 100 N = 1, NN AMP(N, 1) = 0.0 100 CONTINUE C C SPECTRUM BETWEEN FLC AND FLP C IF (FLP .GT. 0.0) THEN N1 = FLC / DF + 1.5 N2 = FLP / DF + 1.5 IF (N1 .GT. N2 .OR. N1 .LT. 0) N1 = N2 BAND = N2 - N1 + 1.0E-20 DO 120 N = N1, N2 AMP(N, 1) = (N - N1 ) / BAND 120 CONTINUE C C SPECTRUM BETWEEN FHP AND FHC (HIGH FREQUENCY CUT) C ENDIF IF (FHP .GT. 0.0 .AND. FHP .LT. FNYQ) THEN N1 = FHP / DF + 1.5 N2 = FHC / DF + 1.5 IF (N2 .LT. N1 .OR. N2 .GT. NH+1) N2 = NH + 1 BAND = N2 - N1 + 1.0E-20 DO 140 N = N1, N2 AMP(N, 1) = HPAM - (N - N1 ) * HPAM / BAND 140 CONTINUE C C SPECTRUM BETWEEN FLP AND FHP C ENDIF N1 = FLP / DF + 1.5 N2 = FHP / DF + 1.5 N2 = MAX0 ( N1, N2 ) BAND = N2 - N1 + 1.0E-20 DO 160 N = N1, N2 HOLD = 0.0 + (N - N1 ) * HPDB / BAND AMP(N, 1) = 10.0 ** (HOLD / 20.0 ) 160 CONTINUE C C SECOND HALF OF AMP C DO 180 N = 2, NH AMP(NN + 2 - N, 1) = AMP(N, 1) 180 CONTINUE C C RETURN END