CTITLESAKCOF -- SPIKING & INTERPOLATION DECON OPERATOR COEFFS 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 04/19/78 00000050 C REVISED MO/DA/YR BY PROGRAMMER FOR REASON 00000060 C REVISED 00000070 CA 00000080 CA 00000090 CA CALL SAKCOF (PCC, NANT, NMEM, OP, D) 00000100 CA 00000110 CA INPUT PCC = PARTIAL CORRELATION COEFFICIENT ARRAY R8 00000120 CA NANT = NUMBER OF ANTICIPATORY COEFFICIENTS I4 00000130 CA NMEM = NUMBER OF MEMORY COEFFICIENTS I4 00000140 CA 00000150 CA OUTPUT OP = OPERATOR COEFFICIENT ARRAY R4 00000160 CA 00000170 CA D = TEMPORARY STORAGE ARRAY, AT LEAST OF R4 00000180 CA LENGTH NANT+NMEM+1 00000190 CA 00000200 CA 00000210 CA SAKCOF CALCULATES THE DECONVOLUTION OPERATOR COEFFICIENTS FROM 00000220 CA THE PARTIAL CORRELATION COEFFICIENTS IN ARRAY PCC. ARRAY PCC 00000230 CA IS GENERATED BY THE MINIMUM VARIANCE SPIKING AND INTERPOLATION 00000240 CA DECON SUBROUTINE 'SAKDCN' . 00000250 CA 00000260 CAEND 00000270 C=======================================================================00000280 C EJECT 00000290 C=======================================================================00000300 C 00000310 C THE OPERATOR COEFFICIENTS ARE CALCULATED RECURSIVELY FROM THE 00000320 C PARTIAL CORRELATION COEFFICIENTS (OR NORMALIZED VECTOR INNER 00000330 C PRODUCTS) FOUND DURING DECONVOLUTION IN SUBROUTINE 'SAKDCN'. 00000340 C FOR MORE DETAILS SEE THE REFERENCE IN SUBROUTINE 'SAKDCN'. 00000350 C 00000360 C THE ARRAY D CONTAINS THE FORWARD (AND BACKWARD, IN REVERSE 00000370 C ORDER) OPERATOR COEFFICIENTS CORRESPONDING TO THE 'FORWARD 00000380 C (BACKWARD) PREDICTION ERROR'. 00000390 C 00000400 C 00000410 C LOCAL VARIABLES AND CONSTANTS 00000420 C 00000430 C RD = RHO(DELTA) R8 00000440 C RE = RHO(EPSILON) R8 00000450 C RO = RHO R8 00000460 C SE = SQUARED NORM OF INTERPOLATION ERROR R8 00000470 C SFB = SQUARED NORM OF FORWARD/BACKWARD PREDICTION ERROR R8 00000480 C SIG = SIGMA R8 00000490 C 00000500 C=======================================================================00000510 C EJECT 00000520 C 00000530 SUBROUTINE SAKCOF (PCC, NANT, NMEM, OP, D) 00000540 C 00000550 IMPLICIT REAL*8 (A-H,O-Z) 00000560 DIMENSION PCC(1), OP(1), D(1) 00000570 REAL OP 00000580 C 00000590 C GENERATE THE SPIKING DECON COEFFICIENTS 00000600 C OF ORDER NANT (NMEM IF NANT = 0) 00000610 C 00000620 M=NMEM 00000630 IF (M.EQ.0) M=NANT 00000640 D(1)=-PCC(1) 00000650 SFB=1D0-D(1)*D(1) 00000660 IF (M.EQ.1) GO TO 25 00000670 C 00000680 DO 20 I=2,M 00000690 RO=PCC(I) 00000700 SFB=(1D0-RO*RO)*SFB 00000710 K=I/2 00000720 C 00000730 DO 10 J=1,K 00000740 L=I-J 00000750 Z=D(J)+RO*D(L) 00000760 D(L)=D(L)+RO*D(J) 00000770 10 D(J)=Z 00000780 C 00000790 20 D(I)=-RO 00000800 C 00000810 25 SE=SFB 00000820 C 00000830 IF (NMEM.EQ.0) GO TO 70 00000840 C 00000850 C SPIKING DECON OPERATOR OF ORDER (0,NMEM) 00000860 C 00000870 OP(1)=1. 00000880 DO 30 I=1,NMEM 00000890 30 OP(I+1)=-D(I) 00000900 C 00000910 IF (NANT.EQ.0) GO TO 90 00000920 C 00000930 C RECURSIVELY GENERATE INTERPOLATION DECON 00000940 C OPERATOR OF ORDER (NANT,NMEM) 00000950 C 00000960 DO 60 I=1,NANT 00000970 N=I+NMEM 00000980 RO=PCC(N) 00000990 K=N/2 00001000 C 00001010 C SPIKING DECON COEFFICIENTS OF ORDER NMEM + I 00001020 C 00001030 DO 40 J=1,K 00001040 L=N-J 00001050 Z=D(J)+RO*D(L) 00001060 D(L)=D(L)+RO*D(J) 00001070 40 D(J)=Z 00001080 D(N)=-RO 00001090 C 00001100 C CALCULATE COEFFICIENTS RE AND RD 00001110 C 00001120 SFB=(1D0-RO*RO)*SFB 00001130 SIG=D(I)*SE 00001140 A=SFB+SIG*SIG/SE 00001150 RD=-SIG/A 00001160 RE=SFB/A 00001170 C 00001180 C INTERPOLATION DECON OPERATOR OF ORDER (I,NMEM) 00001190 C 00001200 DO 50 J=1,N 00001210 K=N+1-J 00001220 50 OP(K+1)=RE*OP(K)-RD*D(K) 00001230 C 00001240 OP(1)=RD 00001250 60 SE=RE*SE 00001260 C 00001270 GO TO 90 00001280 C 00001290 C PURELY ANTICIPATORY OPERATOR 00001300 C 00001310 70 J=NANT+1 00001320 DO 80 I=1,NANT 00001330 80 OP(I)=-D(J-I) 00001340 OP(J)=1. 00001350 C 00001360 90 D(1)=DSQRT(SE) 00001370 C 00001380 RETURN 00001390 C 00001400 END 00001410