CTITLESAPDDN -- MINIMUM VARIANCE PREDICTION DECON (STATIONARY) 00010000 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR D. NYMAN 00020000 CA DESIGNER D. NYMAN 00030000 CA LANGUAGE S/370 FORTRAN H 00040000 CA SYSTEM IBM AND CRAY 00050000 CA WRITTEN 09/05/78 00060000 C REVISED 00070000 C REVISED 10/01/90 MAA TO IMPROVE VECTORIZATION: 00080000 C ADDED X1(=X) AS AN INPUT PARAMETER. 00090000 C ADDED TEMP VARIABLES T1,T2, AND T3. 00100000 C MODIFIED FOR CRAY USE. 00110000 C REVISED 04/01/91 ESN INITIALIZE F(1)=X(1) AND B(1)=0.0. 00120005 CA 00130000 CA 00140000 CA CALL SAPDDN (X, X1, NPTS, PRED, OPL, VAR, PCC, F, B) 00150000 CA 00160000 CA INPUT X = TRACE TIME WINDOW ARRAY R4 00170000 CA X1 = TRACE TIME WINDOW ARRAY R4 00180000 CA NPTS = NUMBER OF POINTS IN ARRAY X I4 00190000 CA PRED = PREDICTION DISTANCE IN POINTS I4 00200000 CA OPL = OPERATOR LENGTH IN POINTS I4 00210000 CA 00220000 CA OUTPUT X = DECONVOLVED TRACE WINDOW ARRAY R4 00230000 CA VAR = RELATIVE OUTPUT TRACE VARIANCE R4 00240000 CA PCC = PARTIAL CORRELATION COEFFICIENT ARRAY R8 00250000 CA 00260000 CA TEMP F = WORK ARRAY OF LENGTH NPTS R4 00270000 CA B = WORK ARRAY OF LENGTH NPTS R4 00280000 CA 00290000 CA 00300000 CA SAPDDN PERFORMS MINIMUM VARIANCE PREDICTION DECON ON THE TRACE 00310000 CA SEGMENT X. THE DECON OPERATOR CAN BE OBTAINED FROM THE PARTIAL 00320000 CA CORRELATION COEFFICIENTS WITH THE ROUTINE 'SAPDCF'. THIS VERSION 00330000 CA ASSUMES STATIONARY DATA. 00340000 CA 00350000 C=======================================================================00360000 C EJECT 00370000 C=======================================================================00380000 C 00390000 C THE MINIMUM VARIANCE PREDICTION DECON METHOD IMPLEMENTED HERE 00400000 C IS AN EXTENTION OF THE GRAM-SCHMIDT AUTO-REGRESSIVE ORTHO- 00410000 C NORMAL DECONVOLUTION FORMALISM DEVELOPED BY A. ALAM (ARCO R&D, 00420000 C PLANO, TEXAS). 00430000 C 00440000 C LOCAL VARIABLES AND CONSTANTS 00450000 C 00460000 C B = DELAYED BACKWARD PREDICTION ERROR (BETA) R4 00470000 C F = FORWARD PREDICTION ERROR (GAMMA) R4 00480000 C NP = NUMBER OF 'ACTIVE' POINTS IN X, F, B I4 00490000 C RB = RHO FOR VECTOR B I4 00500000 C RF = RHO FOR VECTOR F R4 00510000 C RX = RHO(X) R4 00520000 C SB = SQUARED NORM OF B R4 00530000 C SF = SQUARED NORM OF F R4 00540000 C SX = SQUARED NORM OF PREDICTION ERROR X R4 00550000 C SX0 = INPUT TRACE VARIANCE R4 00560000 C 00570000 C IN ORDER THAT A 'COMPLETE' DELAYED TIME SERIES BE PRESENT FOR 00580000 C PREDICTION DECON, PRED SAMPLE VALUES ARE APPENDED TO THE 00590000 C BEGINNING OF THE INPUT ARRAY X. FURTHERMORE, STATIONARITY 00600000 C IMPLIES THAT THE INNER PRODUCTS (AUTO-CORRELATIONS) ARE 00610000 C INDEPENDENT OF THE PARTICULAR DATA SEGMENT USED TO EVALUATE THEM. 00620000 C THEREFORE, AS THE 'FORWARD' AND 'BACKWARD' PREDICTION ERRORS ARE 00630000 C DELAYED WITH RESPECT TO ONE ANOTHER, THE NON-OVERLAPPING TERMS 00640000 C ARE DROPPED, REQUIRING AN ADDITIONAL OPL EXTRA LEADING INPUT 00650000 C SAMPLE VALUES. THE NUMBER ADDITIONAL OF VALUES IS PRED+OPL . 00660000 C 00670000 C 00680000 C=======================================================================00690000 C EJECT 00700000 C 00710000 SUBROUTINE SAPDDN (X, X1, NPTS, PRED, OPL, VAR, PCC, F, B) 00720000 C 00730000 DIMENSION X(1), X1(1), PCC(2,1), F(1), B(1) 00740000 DOUBLE PRECISION PCC 00750000 REAL T1, T2, T3 00760000 INTEGER PRED, OPL, PAD 00770000 C 00780000 C CHECK FOR ZERO VALUED DATA 00790000 C 00800000 SX0=0. 00810000 PAD=PRED-1 00820000 J=PRED+OPL+1 00830000 C 00840000 DO 10 I=J,NPTS 00850000 10 SX0=X(I)*X(I)+SX0 00860000 C 00870000 IF (SX0.EQ.0 .OR. OPL.LT.2) GO TO 60 00880000 C 00890000 C INITIALIZE VALUES 00900000 C 00910000 SF=0. 00920000 RFB=0. 00930000 RXB=0. 00940000 LSPT=NPTS-PAD 00950000 C 00960000 F(1) = X(1) 00970002 B(1) = 0.0 00980005 DO 20 I=2,LSPT 00990000 F(I)=X(I) 01000000 B(I)=F(I-1) 01010000 X(I)=X1(PAD+I) 01020000 RFB=F(I)*B(I)+RFB 01030000 RXB=X(I)*B(I)+RXB 01040000 20 SF=F(I)*F(I)+SF 01050000 C 01060000 SB=SF+B(2)*B(2)-F(LSPT)*F(LSPT) 01070000 NP=LSPT-1 01080000 N1=LSPT+1 01090000 C 01100000 C PERFORM PREDICTION DECON 01110000 C 01120000 DO 30 J=1,OPL 01130000 C 01140000 C AT EACH ITERATION ON J, THE FORWARD, BACKWARD, AND 01150000 C PREDICTION ERROR OF ORDER J ARE FOUND FROM THOSE 01160000 C QUANTITIES OF ORDER J-1. 01170000 C 01180000 IF (SF*SB.EQ.0) GO TO 60 01190000 RF=-RFB/SB 01200000 RB=-RFB/SF 01210000 PCC(1,J)=(RF+RB)*0.5 01220000 RX=-RXB/SB 01230000 PCC(2,J)=RX 01240000 RFB=0. 01250000 RXB=0. 01260000 SF=0. 01270000 SB=0. 01280000 NP=NP-1 01290000 C 01300000 DO 30 I=1,NP 01310000 L=N1-I 01320000 T1=F(L) 01330000 T2=B(L-1) 01340000 T3=F(L-1) 01350000 CMAA F(L)=F(L)+RF*B(L) 01360000 F(L)=T1+RF*B(L) 01370000 X(L)=X1(L)+RX*B(L) 01380000 CMAA B(L)=B(L-1)+RB*F(L-1) 01390000 B(L)=T2+RB*T3 01400000 SF=F(L)*F(L)+SF 01410000 SB=B(L)*B(L)+SB 01420000 RFB=F(L)*B(L)+RFB 01430000 30 RXB=X(L)*B(L)+RXB 01440000 C 01450000 C CALCULATE RELATIVE OUTPUT VARIANCE 01460000 C 01470000 SX=0. 01480000 C 01490000 DO 40 I=L,LSPT 01500000 40 SX=X(I)*X(I)+SX 01510000 01520000 C 01530000 VAR=SQRT(SX/SX0) 01540000 C 01550000 C NORMALIZE OUTPUT TRACE AND MOVE 01560000 C TO ITS ORIGINAL POSITION 01570000 C 01580000 DO 50 I=1,NP 01590000 J=N1-I 01600000 50 X(J+PAD)=X1(J)/VAR 01610000 C 01620000 GO TO 80 01630000 C 01640000 C TRACE SEGMENT IS ZERO 01650000 C 01660000 60 VAR=0. 01670000 C 01680000 DO 70 I=1,OPL 01690000 PCC(1,I)=0. 01700000 70 PCC(2,I)=0. 01710000 C 01720000 80 RETURN 01730000 C 01740000 END 01750000