CTITLESAKLDR -- KLAUDER WAVELET CALCULATION 00000010 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR D. NYMAN 00000020 CA DESIGNER D. NYMAN 00000030 CA LANGUAGE S/370 FORTRAN H 00000040 CA WRITTEN 06/07/78 00000050 C REVISED 00000060 C 00000070 CA 00000080 CA 00000090 CA CALL SAKLDR (WO, PARM, NWO, SMPINT) 00000100 CA OUTPUT WO = ARRAY OF KLAUDER WAVELET VALUES. R4 00000110 CA INPUT PARM(1) = KLAUDER WAVELET LENGTH IN MS. I4 00000120 CA PARM(2) = LOW FREQUENCY CUTOFF IN HZ. 00000130 CA PARM(3) = HIGH FREQUENCY CUTOFF IN HZ. 00000140 CA PARM(4) = SWEEP LENGTH IN SEC. 00000150 CA PARM(5) = MAXIMUM LENGTH OF ARRAY WO 00000160 CA OUTPUT NWO = NUMBER OF VALUES IN WO. I4 00000170 CA INPUT SMPINT = SAMPLING INTERVAL IN MS. I4 00000180 CA 00000190 CA 00000200 CA THIS ROUTINE CALCULATES A KLAUDER WAVELET FOR THE PARAMETERS 00000210 CA GIVEN IN THE ARRAY PARM. 00000220 CA 00000230 C=======================================================================00000240 C EJECT 00000250 C=======================================================================00000260 C 00000270 C CONSTANTS AND VARIABLES -- LOCAL 00000280 C DTS = SAMPLING INTERVAL IN SEC. R4 00000290 C FL = LOW FREQUENCY CUTOFF IN HZ. R4 00000300 C FH = HIGH FREQUENCY CUTOFF IN HZ. R4 00000310 C LWH = CENTER (TIME = 0) INDEX. I4 00000320 C PI = VALUE OF PI. R4 00000330 C T = TIME IN SEC. R4 00000340 C TSW = SWEEP LENGTH IN SEC. R4 00000350 C WOX = DEFAULT CUTOFF AMPLITUDE R4 00000360 C 00000370 C=======================================================================00000380 C EJECT 00000390 C 00000400 SUBROUTINE SAKLDR (WO, PARM, NWO, SMPINT) 00000410 C 00000420 INTEGER PARM,SMPINT 00000430 DIMENSION WO(1),PARM(5) 00000440 DATA PI /3.14159265/, WOX / .05 / 00000450 C 00000460 C INITIALIZE PARAMETERS 00000470 C 00000480 FL=PARM(2) 00000490 FH=PARM(3) 00000500 TSW=PARM(4) 00000510 DTS=SMPINT*.001 00000520 PIK=PI*ABS(FH-FL)/TSW 00000530 IF (PARM(1).GT.0) GO TO 10 00000540 C 00000550 C CALCULATE DEFAULT LENGTH 00000560 C 00000570 T=2./(WOX*PIK*TSW) 00000580 PARM(1)=MIN0(INT(((INT(T*(FL+FH)*.5+1.0)*2-1)/(FL+FH) 00000590 * +DTS)*1000.),PARM(5)*SMPINT) 00000600 C 00000610 10 LWH=MAX0 ((PARM(1)/SMPINT+1)/2 , INT(.5/((FL+FH)*DTS))+1) 00000620 NWO=2*LWH-1 00000630 IF (LWH.LE.1) GO TO 30 00000640 W=PI*(FH+FL) 00000650 K=LWH-1 00000660 C 00000670 C CALCULATE WAVELET 00000680 C 00000690 DO 20 I=1,K 00000700 T=I*DTS 00000710 PIKT=PIK*T 00000720 WI=COS(W*T)*SIN(PIKT*(TSW-T))/(PIKT*TSW) 00000730 WO(LWH+I)=WI 00000740 20 WO(LWH-I)=WI 00000750 C 00000760 30 WO(LWH)=1. 00000770 C 00000780 RETURN 00000790 C 00000800 END 00000810