home *** CD-ROM | disk | FTP | other *** search
- 100 GOSUB 1980
- 110 PI2=3.14159*2
- 120 P$= "######.## ####.## ###.## ####.##"
- 130 INPUT"HOW MANY SECTIONS";N
- 140 GOTO 1190
- 150 GOSUB 160
- 160 PRINT:INPUT"CUT-OFF FREQUENCY(HZ), VOLTAGE GAIN";F,A0
- 170 A=SQR(2)
- 180 INPUT"DAMPING FACTOR (CR FOR MAXIMALLY FLAT)";A
- 190 IF A=0 THEN A=SQR(2)
- 200 PRINT:PRINT"CUTOFF ","GAIN","DAMPING":PRINT F,A0,A
- 210 W0=PI2*F:H=ABS(A0)
- 220 INPUT"CAPACITOR (UFD)";C
- 230 C=C*.000001
- 240 K=C*W0
- 250 C5=C:R1=A/(2*H*K):C2=(4*K*(H+1))/(A*A*W0):R3=A/(2*K*(H+1)):R4=H*R1
- 260 PRINT"R1","C2","R3","R4","C5"
- 270 PRINT R1,C2*1000000!,R3,R4,C5*1000000!
- 280 PRINT
- 290 INPUT"CHANGE CAPACITOR";A$
- 300 IF LEFT$(A$,1)="Y" THEN 220
- 310 INPUT"ANOTHER RUN";A$
- 320 IF LEFT$(A$,1)="Y" THEN 160
- 330 INPUT"CHANGE VALUES";A$
- 340 IF LEFT$(A$,1)<>"Y" THEN 420
- 350 PRINT"R1=";R1;:INPUT R1
- 360 C2=C2*1000000!:PRINT "C2=";C2;:INPUT C2
- 370 C2=C2*.000001
- 380 PRINT"R3=";R3;:INPUT R3
- 390 PRINT"R4=";R4;:INPUT R4
- 400 C5=C5*1000000!:PRINT"C5=";C5;:INPUT C5
- 410 C5=C5*.000001
- 420 RETURN
- 430 W=PI2*I
- 440 V0=-1/(R1*R3):V1=1/(R3*R4)-C2*C5*(W^2)
- 450 V2=W*C5*(1/R1+1/R3+1/R4)
- 460 IF V1=0 THEN T1=PI2/4:GOTO 480
- 470 T1=ATN(V2/ABS(V1)):IF V1<0 THEN T1=PI2/2-T1
- 480 P1=SQR(V2^2+V1^2)
- 490 T0=PI2/2:P0=-V0
- 500 T=T0-T1:P=P0/P1
- 510 RETURN
- 520 INPUT"CENTER FREQUENCY,BANDWIDTH (IN HZ),VOLTAGE GAIN";F,B,A0
- 530 Q=F/B:W0=PI2*F
- 540 INPUT"CAPACITOR (MFD)";C
- 550 C=C*.000001
- 560 K=C*W0:A=1/Q:H=ABS(A0)/Q
- 570 C3=C:C4=C:R1=1/(H*K)
- 580 R2=1/(K*(2*Q-H)):R5=2*Q/K
- 590 PRINT"R1","R2","C3","C4","R5"
- 600 PRINT R1,R2,C3*1000000!,C4*1000000!,R5:PRINT
- 610 INPUT"CHANGE CAPACITOR";A$
- 620 IF LEFT$(A$,1)="Y" THEN 540
- 630 INPUT"ANOTHER RUN";A$
- 640 IF LEFT$(A$,1)="Y" THEN 520
- 650 INPUT"CHANGE VALUES";A$
- 660 IF LEFT$(A$,1)<>"Y" THEN 740
- 670 PRINT"R1=";R1;:INPUT R1
- 680 PRINT"R2=";R2;:INPUT R2
- 690 C3=C3*1000000!:PRINT"C3=";C3;:INPUT C3
- 700 C3=C3*.000001
- 710 C4=C4*1000000!:PRINT"C4=";C4;:INPUT C4
- 720 C4=C4*.000001
- 730 PRINT"R5=";R5;:INPUT R5
- 740 RETURN
- 750 W=PI2*I:V0=W*C3/R1
- 760 V1=(1/R1+1/R2)/R5-C3*C4*(W^2)
- 770 V2=W*(C3+C4)/R5
- 780 IF V1=0 THEN T1=PI2/4:GOTO 800
- 790 T1=ATN(V2/ABS(V1)):IF V1<0 THEN T1=PI2/2-T1
- 800 P1=SQR(V2^2+V1^2)
- 810 T0=3*PI2/4:P0=V0
- 820 P=P0/P1:T=T0-T1
- 830 RETURN
- 840 INPUT"CUT-OFF FREQUENCY(HZ),VOLTAGE GAIN";F,A0
- 850 W0=PI2*F:H=ABS(A0)
- 860 A=SQR(2)
- 870 INPUT"DAMPING FACTOR (<CR> FOR 'MAXIMALLY FLAT')";A
- 880 IF A=0 THEN A=SQR(2)
- 890 PRINT:PRINT"CUT-OFF","GAIN","DAMPING":PRINT F,A0,A
- 900 INPUT"CAPACITOR (MFD)";C
- 910 C=C*.000001
- 920 K=C*W0:C1=C:C3=C:C4=C/H
- 930 R2=A/(K*(2+1/H)):R5=H*(2+1/H)/(A*K)
- 940 PRINT:PRINT"C1","R2","C3","C4","R5"
- 950 PRINT C1*1000000!,R2,C3*1000000!,C4*1000000!,R5
- 960 INPUT"CHANGE CAPACITOR";A$
- 970 IF LEFT$(A$,1)="Y" THEN 900
- 980 INPUT"CHANGE PARAMETERS";A$
- 990 IF LEFT$(A$,1)="Y" THEN 840
- 1000 INPUT"CHANGE COMPONENT VALUES";A$
- 1010 IF LEFT$(A$,1)<>"Y" THEN 1100
- 1020 C1=C1*1000000!:PRINT"C1=";C1;:INPUT C1
- 1030 C1=C1*.000001
- 1040 PRINT"R2=";R2;:INPUT R2
- 1050 C3=C3*1000000!:PRINT"C3=";C3;:INPUT C3
- 1060 C3=C3*.000001
- 1070 C4=C4*1000000!:PRINT "C4=";C4;:INPUT C4
- 1080 C4=C4*.000001
- 1090 PRINT"R5=";R5;:INPUT R5
- 1100 RETURN
- 1110 W=PI2*I:V0=C1*C3*(W^2)
- 1120 V1=1/(R2*R5)-C3*C4*(W^2)
- 1130 V2=W*(C1+C3+C4)/R5
- 1140 IF V1=0 THEN T1=PI2/4:GOTO 1160
- 1150 T1=ATN(V2/ABS(V1)):IF V1<0 THEN T1=PI2/2-T1
- 1160 P1=SQR(V2^2+V1^2)
- 1170 P0=V0:T=-T1:P=P0/P1
- 1180 RETURN
- 1190 DIM X(N,5):DIM Z(N,5)
- 1200 FOR J=1 TO N
- 1210 PRINT"SECTION ";J;" TYPE(H,L,B)";:INPUT A$:A$=LEFT$(A$,1)
- 1220 IF A$="L" THEN X(J,0)=1
- 1230 IF A$="B" THEN X(J,0)=2
- 1240 IF A$="H" THEN X(J,0)=3
- 1250 ON X(J,0) GOSUB 160,520,840
- 1260 ON X(J,0) GOTO 1270,1290,1310
- 1270 X(J,1)=R1:X(J,2)=-C2:X(J,3)=R3:X(J,4)=R4
- 1280 X(J,5)=-C5:GOTO 1330
- 1290 X(J,1)=R1:X(J,2)=R2:X(J,3)=-C3
- 1300 X(J,4)=-C4:X(J,5)=R5:GOTO 1330
- 1310 X(J,1)=-C1:X(J,2)=R2:X(J,3)=-C3
- 1320 X(J,4)=-C4:X(J,5)=R5
- 1330 NEXT J
- 1340 GOTO 2580
- 1350 INPUT "START, STOP, STEP (IN HZ)";F,G,H
- 1360 INPUT " TELETYPE PRINTOUT ";P3$
- 1370 R$=LEFT$(P3$,1)
- 1380 IF R$="Y" THEN LPRINT " FILTER READOUT -":LPRINT:LPRINT
- 1390 PRINT"FREQUENCY","GAIN","GAIN(DB)","PHASE":PRINT
- 1400 FOR I=F TO G STEP H
- 1410 P3=1:T3=0
- 1420 FOR J=1 TO N
- 1430 ON X(J,0) GOTO 1440,1470,1500
- 1440 R1=X(J,1):C2=-X(J,2):R3=X(J,3):R4=X(J,4):C5=-X(J,5)
- 1450 GOSUB 430
- 1460 GOTO 1520
- 1470 R1=X(J,1):R2=X(J,2):C3=-X(J,3):C4=-X(J,4):R5=X(J,5)
- 1480 GOSUB 750
- 1490 GOTO 1520
- 1500 C1=-X(J,1):R2=X(J,2):C3=-X(J,3):C4=-X(J,4):R5=X(J,5)
- 1510 GOSUB 1110
- 1520 P3=P*P3:T3=T+T3
- 1530 NEXT J
- 1540 IF P3=0 THEN P2=-99 ELSE P2=(20*LOG(P3))/(LOG(10))
- 1550 T2=360*T3/PI2
- 1560 IF T2>360 THEN T2=T2-360:GOTO 1560
- 1570 PRINT USING P$;I,P3,P2,T2
- 1580 IF R$="Y" THEN LPRINT USING P$;I,P3,P2,T2
- 1590 NEXT I
- 1600 PRINT:INPUT"ANOTHER SCAN";A$:A$=LEFT$(A$,1)
- 1610 IF A$="Y" THEN 1350
- 1620 RETURN
- 1630 INPUT"CHANGE TO NEAREST RETMA VALUES";A$:A$=LEFT$(A$,1)
- 1640 IF A$<>"Y" THEN 1750
- 1650 FOR I=1 TO N
- 1660 FOR J=1 TO 5
- 1670 F=0
- 1680 IF X(I,J)<0 THEN F=1
- 1690 X1=ABS(X(I,J)):GOSUB 2180
- 1700 IF F=1 THEN X(I,J)=-Y:GOTO 1720
- 1710 X(I,J)=Y
- 1720 NEXT J
- 1730 NEXT I
- 1740 GOSUB 1760
- 1750 RETURN
- 1760 PRINT"NO. TYPE","ELEMENT VALUES":PRINT
- 1770 FOR I=1 TO N
- 1780 PRINT I;TAB(4);X(I,0);TAB(10);
- 1790 FOR J=1 TO 5
- 1800 IF X(I,J)>=0 THEN X=X(I,J):GOTO 1820
- 1810 X=-X(I,J)*1000000!
- 1820 PRINT X;
- 1830 NEXT J
- 1840 PRINT
- 1850 NEXT I
- 1860 RETURN
- 1870 LPRINT"NO. TYPE","ELEMENT VALUES":LPRINT
- 1880 FOR I=1 TO N
- 1890 LPRINT I;TAB(4);X(I,0);TAB(10);
- 1900 FOR J=1 TO 5
- 1910 IF X(I,J)>=0 THEN X=X(I,J):GOTO 1930
- 1920 X=-X(I,J)*1000000!
- 1930 LPRINT X;
- 1940 NEXT J
- 1950 LPRINT
- 1960 NEXT I
- 1970 LPRINT:LPRINT:RETURN
- 1980 PRINT"THIS PROGRAM IS TO DESIGN AND EVALUATE MULTIPLE-FEEDBACK"
- 1990 PRINT"ACTIVE FILTERS. SEE 'HANDBOOK OF OPERATIONAL AMPLIFIER ACTIVE"
- 2000 PRINT"RC NETWORKS' BURR-BROWN RESEARCH CORP. 1966."
- 2010 PRINT
- 2020 PRINT" (C)1982 - GOLDEN RULE SYSTEMS - ALL RIGHTS RESERVED"
- 2030 PRINT
- 2040 PRINT"THE NETWORK OF THE FORM:"
- 2050 PRINT" |------|---------------|"
- 2060 PRINT" | | |"
- 2070 PRINT" (4) (5) |"
- 2080 PRINT" | | |-----\ |"
- 2090 PRINT" INPUT O--(1)----|-(3)--|---| - \ |"
- 2100 PRINT" | | \ |"
- 2110 PRINT" (2) | >--|----O OUTPUT"
- 2120 PRINT" | |---| + /"
- 2130 PRINT" === | | /"
- 2140 PRINT" = = |----/"
- 2150 PRINT
- 2160 RETURN
- 2170 INPUT"VALUE";X1
- 2180 X=LOG(X1)/LOG(10)
- 2190 ON SGN(X)+2 GOTO 2200,2240,2250
- 2200 X=ABS(X):E=INT(X)+1
- 2210 X=X1*(10^E)
- 2220 GOSUB 2280
- 2230 Y=Y/(10^E):RETURN
- 2240 Y=X1:RETURN
- 2250 E=INT(X):X=X1/(10^E)
- 2260 GOSUB 2280
- 2270 Y=Y*(10^E):RETURN
- 2280 READ Y
- 2290 READ Y1
- 2300 IF X=Y THEN 2360
- 2310 IF Y1=10 THEN 2340
- 2320 IF X<Y1 THEN 2340
- 2330 Y=Y1:GOTO 2290
- 2340 Y2=X-Y:Y3=Y1-X:IF Y2<=Y3 THEN 2360
- 2350 Y=Y1
- 2360 RESTORE:RETURN
- 2370 DATA 1.0,1.1,1.2,1.3,1.5,1.6,1.8,2.0,2.2,2.4,2.7,3.0,3.3
- 2380 DATA 3.6,3.9,4.3,4.7,5.1,5.6,6.2,6.8,7.5,8.2,9.1,10
- 2390 INPUT"SECTION,ELEMENT TO BE CHANGED (ENTER 0,0 TO QUIT)";I,J
- 2400 IF I>N THEN 2390
- 2410 IF J>5 THEN 2390
- 2420 IF I<1 OR J<1 THEN 2470
- 2430 IF X(I,J)<0 THEN 2450
- 2440 PRINT X(I,J);:INPUT X(I,J):GOTO 2390
- 2450 X=-X(I,J)*1000000!:PRINT X;:INPUT X
- 2460 X(I,J)=-X*.000001:GOTO 2390
- 2470 RETURN
- 2480 FOR I=0 TO N
- 2490 FOR J=0 TO 5
- 2500 Z(I,J)=X(I,J)
- 2510 NEXT J,I
- 2520 RETURN
- 2530 FOR I=0 TO N
- 2540 FOR J=0 TO 5
- 2550 X(I,J)=Z(I,J)
- 2560 NEXT J,I
- 2570 RETURN
- 2580 GOSUB 2480
- 2590 GOSUB 1760
- 2600 INPUT"CHANGE VALUES";A$:A$=LEFT$(A$,1)
- 2610 IF A$<>"Y" THEN 2670
- 2620 INPUT"CHANGE ALL VALUES TO NEAREST RETMA VALUES";A$:A$=LEFT$(A$,1)
- 2630 IF A$<>"Y" THEN 2660
- 2640 GOSUB 1650
- 2650 GOTO 2670
- 2660 GOSUB 2390
- 2670 INPUT"PLOT RESPONSE";A$:A$=LEFT$(A$,1)
- 2680 IF A$="Y" THEN GOSUB 1350
- 2690 INPUT"CHANGE ANY MORE VALUES";A$:A$=LEFT$(A$,1)
- 2700 IF A$<>"Y" THEN 2780
- 2710 GOSUB 1760
- 2720 GOSUB 2390
- 2730 GOSUB 1760
- 2740 INPUT"PLOT RESPONSE";A$:A$=LEFT$(A$,1)
- 2750 IF A$="Y" THEN GOSUB 1350 ELSE GOTO 2780
- 2760 GOTO 2670
- 2770 PRINT
- 2780 PRINT:PRINT" *** FINAL VALUES *** ":PRINT
- 2790 GOSUB 1760
- 2800 PRINT:PRINT
- 2810 INPUT"VALUES TO PRINTER";Y$:Y$=LEFT$(Y$,1)
- 2820 IF Y$="Y" THEN GOSUB 1870
- 2830 END
- 2790 GOSUB 1760
- 2800 PRINT:PRINT
- 2810 INPUT"VALUES TO PRINTER";Y$:Y$=LEFT$(Y$,1)
- 2820 IF Y