100 REM BUTTER.BAS 105 CLS:PRINT"THIS PROGRAM COMPUTES THE CAPACITANCE VALUES FOR LOW PASS," 110 PRINT"OR THE RESISTANCE VALUES FOR HIGH PASS, ACTIVE BUTTERWORTH" 120 PRINT"FILTERS. YOU MUST CHOOSE: THE RESISTANCE VALUE FOR THE LOW PASS," 130 PRINT"OR THE CAPACITANCE VALUE FOR THE HIGH PASS FILTERS AND; THE NUMBER" 140 PRINT"OF POLES BETWEEN 2 AND 10." 150 PRINT"EVEN ORDERED FILTERS MUST BE MADE WITH TWO POLE SECTIONS." 160 PRINT"ODD ORDERED FILTERS WILL HAVE A SINGLE 3 POLE SECTION. THE" 170 PRINT"3 POLE VALUES ARE ALWAYS THE LAST 3." 180 REM 190 REM WRITTEN BY RUSSELL KINCAID, JUNE 1968, REVISED AUG 2000,JAN 2001 200 REM 204 LET P1=6.28318 210 PRINT:INPUT"HIGH PASS (1 ) OR LOW PASS (2)";Y1 240 PRINT"GIVE THE VALUES FOR THESE PARAMETERS:" 242 INPUT"NUMBER OF POLES:";N 243 INPUT"CUTOFF FREQ IN HZ:";W 244 IF Y1=2 THEN 280 245 INPUT"CAPACITANCE IN FARADS:";R1 250 GOTO 300 280 INPUT"OHMS RESISTANCE:";R1 300 DATA 1.4142,1,.7654,1.8478,.6180,1.6180,.5176,1.4142,1.9319,.4450 310 DATA 1.2470,1.8019,.3902,1.1111,1.1663,1.9616,.3473,1,1.5321,1.8794 320 DATA .3129,.9080,1.4142,1.7820,1.9754 330 FOR N1=2 TO N : 340 LET B6=INT(N1-1)/2+.5 350 FOR K1=1 TO B6 360 READ A(N1,K1) 370 REM IF N1=N THEN 410 380 IF K1=B6 THEN 395 390 NEXT K1 395 IF N1=N THEN 410 400 NEXT N1 410 LET B6=INT((N-1)/2+.5) 420 FOR K=1 TO B6 430 LET A=A(N,K) 440 LET B=2*K-1 450 LET D=2*K 460 LET C(B)=2/A 470 LET C(D)=A/2 480 IF 2*K=N THEN 510 490 IF K=N/2-.5 THEN 690 500 NEXT K 510 IF Y1=1 THEN 570 520 PRINT 530 PRINT"CAPACITANCE IN FARADS" 540 PRINT 550 REM 560 GOTO 600 570 PRINT 580 PRINT"RESISTANCE IN OHMS" 590 PRINT 600 FOR T=1 TO N 620 IF Y1=1 THEN 660 630 PRINT"C(";T;")= ";C(T)/(P1*R1*W) 640 GOTO 670 660 PRINT" R (";T;")= ";1/(C(T)*P1*R1*W) 670 IF T=N THEN 1100 680 NEXT T 690 LET Q=N-1 700 LET U=N-2 710 REM THIS PROGRAM SOLVES FOR THE ROOTS OF A CUBIC EQUATION 720 LET A2=-(A+1) 730 LET A1=3*(A+1)/2 740 LET A0=-3 750 LET J=1 760 DEF FNF(X)=X^3+A2*X^2+A1*X+A0 770 LET A4=10^10 780 IF FNF(A4)>0 THEN 810 790 LET A5=-1 800 GOTO 820 810 LET A5=+1 820 LET A3=-(10^10) 830 IF A5*FNF(A3)<0 THEN 860 840 PRINT"AT LEAST ONE REAL ROOT IS >10^10 OR <-10^10. TOUGH LUCK." 850 GOTO 1100 860 LET A9=A6 870 LET A6=(A4+A3)/2 880 IF A6=A9 THEN 960 890 LET J=1 900 IF ABS (FNF(A6))<1/(10^20) THEN 990 910 IF A5*FNF(A6)>0 THEN 940 920 LET A3=A6 930 GOTO 860 940 LET A4=A6 950 GOTO 860 960 IF J>100 THEN 990 970 LET J=J+1 980 GOTO 910 990 LET A9=(A2+A6)^2/4-A1-A2*A6-A6*A6 1000 IF A9<0 THEN 1060 1010 LET A7=-(A2+A6)/2+SQR(A9) 1020 LET A8=-(A2+A6)/2-SQR(A9) 1030 PRINT" C2= ;A6;" OR ";A7 1040 PRINT"THE RESIDUAL FIRST ROOT ERROR IS: ";FNF(A6) 1050 STOP 1060 LET C(U)=A6 1070 LET C(N)=(A+1-A6)/3 1080 LET C(Q)=1/(A6*C(N)) 1090 GOTO 510 1100 INPUT"DO YOU WANT A HARDCOPY ";Y$ 1105 IF LEFT$(Y$,1)="N" OR LEFT$(Y$,1)="n" THEN 3000 1110 IF Y1=1 THEN 1170 1120 LPRINT 1130 LPRINT"CAPACITANCE IN FARADS" 1140 LPRINT 1150 REM 1160 GOTO 2000 1170 LPRINT 1180 LPRINT"RESISTANCE IN OHMS" 1190 LPRINT 2000 FOR T=1 TO N 2020 IF Y1=1 THEN 2060 2030 LPRINT"C(";T;")= ";C(T)/(P1*R1*W) 2040 GOTO 2070 2060 LPRINT" R (";T;")= ";1/(C(T)*P1*R1*W) 2070 IF T=N THEN 2090 2080 NEXT T 2090 LPRINT"THIS IS THE SCHEMATIC, ELIMINATE THE 3 POLE SECTION " 2092 LPRINT"FOR EVEN NUMBERS OF POLES. " 2094 IF Y1=2 THEN 2200 2100 LPRINT :LPRINT"C=";R1 :LPRINT 2110 LPRINT" ------------------ -----------------" 2120 LPRINT" | | | |" 2130 LPRINT" R1 | R(n-1) |" 2140 LPRINT" | | | |" 2150 LPRINT"IN--C-- --C-- --AMP(+1)-- - * * * --C-- --C-- --C-- --AMP(+1)-- OUT" 2160 LPRINT" | | |" 2170 LPRINT" R2 R(n-2) Rn" 2180 LPRINT" | | |" 2190 LPRINT" GND GND GND" 2192 LPRINT" n/2 TWO POLE SECTIONS THREE POLE SECTION" 2194 GOTO 2300 2200 LPRINT:LPRINT"R=";R1:LPRINT 2210 LPRINT" ------------------ -----------------" 2220 LPRINT" | | | |" 2230 LPRINT" C1 | C(n-1) |" 2240 LPRINT" | | | |" 2250 LPRINT"IN--R-- --R-- --AMP(+1)-- - * * * --R-- --R-- --R-- --AMP(+1)-- OUT" 2260 LPRINT" | | |" 2270 LPRINT" C2 C(n-2) Cn" 2280 LPRINT" | | |" 2290 LPRINT" GND GND GND" 2292 LPRINT" n/2 TWO POLE SECTIONS THREE POLE SECTION" 2300 LPRINT CHR$(12) 2400 CHAIN"FILTMENU" 2995 REM BUTTER.BAS 3000 END