CTITLESASINC -- GENERATE FREQUENCY DOMAIN INTREPOLATION COEFFICIENTS C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA AUTHOR JAMES SUN/BRUCE VERWEST CA DESIGNER JAMES SUN/BRUCE VERWEST CA LANGUAGE VS FORTRAN CA SYSTEM IBM / CRAY CA WRITTEN 07/01/87 C REVISED MM-DD-YY C REVISED 02-20-89 JJC FOR SPARC PRODUCTION. CA CA THIS SUBROUTINE SETS UP FREQUENCY DOMAIN INTERPOLATION COEFFICIENTS CA BASED ON A WINDOWED SINC FUNCTION. THE COEFFICIENTS ARE BASED ON CA AN LR LENGTH WINDOW. CA THE COEFFICIENTS ARE COMPUTED FOR EVERY 1/100 OF A SAMPLE INCREMENT CA AND STORED IN COEF. THE COMPLEX NORMALIZATION FACTOR FOR EACH CA COEFFICIENT IS STORED IN CNORM. CA CA SUBROUTINE SASINC(LR,COEF,CNORM,CSHIFT,IPR) CA CA LR - INPUT - INTERPOLATION FILTER LENGTH CA COEF - OUTPUT - INTERPOLATION FILTER COEFFICIENTS CA CNORM - OUTPUT - INTERPOLATION FILTER NORMALICATION CA CSHIFT- OUTPUT - TIME SHIFT FACTOR FOR DEMODULATION/MODULATION CA IPR - INPUT - SPARC LOGICAL PRINT UNIT CA SUBROUTINE SASINC(LR,COEF,CNORM,CSHIFT,IPR) C COMMON/CMPFKC/IF1,LNT,LW,LW2,IW1,ALPHA,SCALE,CMIN,VMUTE,AFFR,IKHHI COMPLEX CNORM(101),CC,CSHIFT(*) DIMENSION COEF(LR,101) DIMENSION AA(14),RW(12),FF(13),GG(12) DATA PI/3.1415926536/ DATA A,B/0.54,0.46/ C CALL ARSET(COEF, LR*101, 0.0) CALL ARSET(CNORM, 2*101, 0.0) LRD2 = LR/2 C COEF(LRD2,1) = 1.0 CNORM(1) = 1.0 C C TRIANGLE WINDOW + SINC C C DO 50 I=2,100 C DN = (I-1)/100. C PIDN = PI*DN C C = COS(PIDN) C S = SIN(PIDN) C CC = CMPLX(C,+S) C CNORM(I) = CC CC RC = (S/(LRD2+1)/PI) C RC = (S/LRD2/PI) C DO 40 J=1,LR C RM=J-LRD2 C DD = DN-RM CC COEF(J,I) = RC*((LRD2+1-ABS(DD))/DD) C COEF(J,I) = RC*((LRD2-ABS(DD))/DD) C 40 CONTINUE C 50 CONTINUE C C C HAMMING WINDOW + BAND LIMITED SINC C C DO 50 I=2,100 C DN = (I-1)/100. C PIDN = PI*DN*AFFR C C = COS(PIDN) C S = SIN(PIDN) C CC = CMPLX(C,+S) C CNORM(I) = CC C RC = 1.0/(PI*AFFR) C DO 40 J=1,LR C RM=J-LRD2 C DD = DN-RM C COEF(J,I) = RC*(A+B*COS(PI*DD/LR))*SIN(AFFR*PI*DD)/DD C 40 CONTINUE C 50 CONTINUE C C C OPTIMAL FILTER COEFFICIENTS FROM MCOFGN C DO 50 I=2,100 DN = (I-1)/100. PIDN = PI*DN*AFFR C = COS(PIDN) S = SIN(PIDN) CC = CMPLX(C,+S) CNORM(I) = CC 50 CONTINUE BW = AFFR CALL MCOFGN(LR,BW,RW,GG,FF,AA,COEF(1,2)) C COEF(LRD2+1,101) = 1.0 CNORM(101) = CNORM(51)**2 C C DEMODULATION FACTORS C DO 60 IW=1,LW N=IW-1 ARG = PI*AFFR*N 60 CSHIFT(IW) = CMPLX(COS(ARG),SIN(ARG)) CSHIFT(LW+1) = 0.0 CSHIFT(LW+2) = 0.0 CSHIFT(LW+3) = 0.0 CSHIFT(LW+4) = 0.0 C C WRITE (IPR,8112) AFFR C8112 FORMAT(' AFFR =',F8.4,/) C DO 100 I=1,101 C WRITE (IPR,8111) I,CNORM(I),(COEF(J,I),J=1,LR) C8111 FORMAT(' COEF =',I5,2F8.4,5X,12F6.3) C 100 CONTINUE C RETURN END