File: FIT4.FC of Tape: Various/ETH/fc1
(.FC,.FO Focal format converted to 'WRITE' listing) 

C-OS/8 FOCAL, 1972

01.01 C PROG  FIT4  /  TEST: SINC-ZERO-FIT (LAPLACE)
01.02 C 5.2.73
01.03 C 
01.04 C PERFORMANCE:
01.05 C GET DATA 
01.06 C FOURIER WHOLE RANGE (0-256); PICK PEAK FREQU NU
01.07 C FOURIER SMALL RANGE (NU-8 TO NU+8); STORE SIGNIF. VALUES = XF(I)
01.08 C FIT CRITERION IS QM =  SUM OVER XF(I) WITHOUT XF(S0)
01.09 C FIRST OPTIMIZE S0: CHOOSE APPROX. SIGMA AND FOURIER
01.10 C VARIATE SET OF XF UNTIL QM IS MINIMUM
01.11 C OPTIMIZE SIGMA: MODIFY DATA,FOURIER,CHECK QM
01.12 C
01.20 C 
01.50 S S1=0;S SS=1;D 13.9;D 5.3

02.01 C MULT DATA MIT EXP(SI*T)
02.05 D 13.8
02.10 S TI=SI*PI/256
02.20 F I=0,255;S Z=FCOM(I,FCOM(I+512)*FEXP(I*TI));S Z=FX(0,500)

03.01 C SMALL FOUR
03.05 A ?S0?;
03.10 S S1=S0-8;S SS=1/16;D 5.3
03.20 F I=1,7;S XF(I)=FCOM(256+DS+I*32)*FEXP(-SI*PI)

04.01 C QM
04.10 S A4=0;F I=1,7;S A4=A4+XF(I)
04.20 S QM=A4-XF(4)

05.01 C - FOUR
05.10 A ?S1?,?SF?;S X=(SF-S1)/16;I (X-FITR(X)-.5)5.14;S X=X+.5
05.14 S SS=FITR(X)/16;S S2=S1+SS*128;S SF=S1+SS*256
05.30 D 13.9;S Z=FOUR(S1,SS);S ZM=FX(1,760)

08.01 C OPTIMIZE S0
08.10 A ?DS?;D 3.2;D 4;T %8.04,QM,!;G 8.1

09.01 C OPTIMIZE SIGMA
09.10 A ?SI?;D 2;D 3.1;D 3.2;D 4
09.20 T %8.04,QM,!;G 9.1

11.10 F I=1,N;T %8.04 I,XF(I),!

13.01 C - DIS SWITCH
13.70 S Z=FDIS(A,FABS(FDIS(A)));S Z=FDIS(B,-FABS(FDIS(B)))
13.80 S A=4;S B=5;D 13.7
13.90 S A=5;S B=4;D 13.7

14.01 C STORE DATA IN FCOM(2)
14.10 F I=0,255;S Z=FCOM(512+I,FCOM(I))

20.10 S N1=N2*PI/256
20.20 S A=0;F II=0,255;S A=A+FCOM(II)*FCOS(II*N1)
20.30 S B=0;F II=0,255;S B=B-FCOM(II)*FSIN(II*N1)
20.40 S AF=FSQT(A^2+B^2)/128;
20.50 I (B)20.7,20.6;S PH=0;G 20.8
20.60 S PH=90*FSGN(A);R
20.70 S PH=180*FSGN(A)
20.80 S PH=PH+180*FATN(A/B)/PI