10 REM CCBPDES3.BAS
20 CLS
30 PRINT" THE PURPOSE OF THIS PROG IS TO DESIGN CAPACITIVE COUPLED BANDPASS FILTERS"
40 PRINT"PER GEFFE PAGE 42. THE LOPASS PROTOTYPE VALUES ARE OBTAINED FROM TABLES"
50 PRINT"THIS DESIGN IS USEFUL FOR NARROW BAND FILTERS, NOT WIDE BAND"
60 PRINT"THIS VERSION ALLOWS L TO BE INCREASED & C DECREASED BY A FACTOR YOU CHOOSE"
70 INPUT"ENTER THE FACTOR (16 IS DEFAULT)(1 IS NO CHANGE)";Z:IF Z=0 THEN Z=16
80 PI=3.14159 : P=1
90 DIM L(20,3),C(20,3),R(20,3),CC(20,9),A(11)
100 REM
110 CC(1,2)=1
120 PRINT"FOR EVEN NUMBER OF POLES, PUT THE INDUCTOR END FIRST"
130 PRINT:PRINT"IF YOU WANT A SERIES INDUCTOR IN AN EVEN NUMBER POLE FILTER ENTER (2)"
140 INPUT "OTHERWISE ENTER (1):",Y
144 IF Y=2 AND Z>1 THEN PRINT"YOU CANNOT IMPEDANCE SCALE WITH THE SERIES L":GOTO 70
150 INPUT"WHAT WILL YOU CALL THIS DESIGN";NME$
160 REM  FILTER DATA INPUT
170 FOR J=1 TO 9 STEP 2
180 PRINT"ELEMENT";J;" = ";:INPUT C(J,1):IF C(J,1)=0 THEN N=J-1:GOTO 210
190 PRINT"ELEMENT";J+1;" = ";:INPUT L(J+1,1):IF L(J+1,1)=0 THEN N=J:GOTO 210
200 NEXT J
210 IF INT(N/2)=N/2 THEN 230
220 ODD=1
230 PRINT:INPUT"WHAT IS THE BANDWIDTH OF THE FINAL FILTER (HZ)";BW
240 INPUT"WHAT IS THE CENTER FREQUENCY OF THE FINAL FILTER (HZ)";F0
250 INPUT"WHAT IS THE RESISTANCE LEVEL (SOURCE RESISTANCE) FOR THE FILTER";RI
254 INPUT"WHAT IS THE LOAD RESISTANCE ";RRL
260 INPUT"WHAT IS THE LOAD RESISTANCE OF THE PROTOTYPE (1 IS DEFAULT)";RL:
270 R=Z*RI : IF RL=0 THEN RL=1
280 PRINT
290 INPUT"WILL YOU INCLUDE THE INDUCTOR LOSSES";Y$
300 IF LEFT$(Y$,1)="N" OR LEFT$(Y$,1)="n" THEN 320
310 INPUT"INDUCTOR LOSS FACTOR, d=1/Q:";D
320 QC=F0/BW : REM TRY QC=BW
330 PRINT:PRINT"SCALED PROTOTYPE"
340 REM NOW SCALE TO W=1/QC (ie) MULTIPLY BY QC
350 FOR J=1 TO N STEP 2
360 A(J)=C(J,1)*QC*2*PI
370 IF L(J+1,1)=0 THEN 400
380 A(J+1)=L(J+1,1)*QC*2*PI
390 NEXT J
400 REM FOR J=1 TO N: A(J)=INT(1000*A(J)+.5)/10:PRINT"A";J;"=";A(J):NEXT J
410 REM NOW RESONATE ALL ELEMENTS (NOT CORRECTED FOR COUPLING CAPS)
420 PRINT:PRINT"INTERMEDIATE BANDPASS DESIGN"
430 IF ODD=1 THEN C(1,2)=A(1):L(1,2)=1/A(1):P=2:GOTO 460
440 IF ODD=0 AND Y=2 THEN L(1,2)=A(1):C(1,2)=1/A(1):P=2:GOTO 462
450 IF ODD=0 AND Y=1 THEN C(1,2)=A(1):L(1,2)=1/A(1):C(2,2)=A(2)+1/A(1):L(2,2)=1/A(2):P=3:GOTO 460
460 FOR J=P TO N:L(J,2)=L(1,2):C(J,2)=1/L(1,2):NEXT J:GOTO 470
462 FOR J=P TO N:L(J,2)=1/L(1,2):C(J,2)=L(1,2):NEXT J:REM VALUE OF L IS ARBITRARY!
465 REM FOR J=1 TO N:PRINT" L(";J;"=";L(J,2),"C(";J;")=";C(J,2):NEXT J:STOP
470 PRINT"L1 & C1 ARE DETERMINED BY THE PROGRAM, BUT YOU CAN CHOOSE THE OTHER"
480 IF Y=1 AND ODD=1 THEN 500
490 PRINT"(EXCEPT L2 WHICH IS ALSO DETERMINED BY THE PROGRAM)"
500 PRINT"INDUCTORS.  SOME CHOICES MAY RESULT IN NEGATIVE VALUES, IN WHICH CASE"
510 PRINT"THE PROGRAM WILL ADJUST FOR POSITIVE VALUES.  THE DEFAULT IS TO MAKE"
520 PRINT"ALL THE INDUCTORS THE SAME."
530 INPUT"CHOOSE THE DEFAULT (Y OR N)";Y$:IF LEFT$(Y$,1)="Y" OR LEFT$(Y$,1)="y" THEN 600
540 PRINT:PRINT"L1 PROTOTYPE = ";A(1)
550 PRINT:PRINT"GIVE FINAL VALUES OF INDUCTANCE"
560 FOR J=P-1 TO N:PRINT"VALUE FOR INDUCTOR#";J;"=";
570 INPUT L
580 L(J,2)=L*2*PI*F0/R : C(J,2)=1/L(J,2)
590 NEXT J
600 REM NOW COMPUTE THE COUPLING CAPS
610 IF P=3 THEN CC(1,2)=1 : PRINT CC(1,2)
620 PRINT"COUPLING CAPS":FOR J=P-1 TO N-1
630 CC(J,J+1)=(C(J,2)*C(J+1,2)/(A(J)*A(J+1)))^.5:PRINT CC(J,J+1)
640 NEXT J
650 REM NOW SUBTRACT THE COUPLING CAPS FROM THE TUNING CAPS:
660 C(1,2)=C(1,2)-CC(1,2)
670 FOR J=2 TO N
680 C(J,2)=C(J,2)-CC(J-1,J)-CC(J,J+1)
690 IF J=>P AND C(J,2)<0 THEN L(J,2)=L(J,2)/2:C(J,2)=1/L(J,2):GOTO 620
700 NEXT J
710 REM NOW SCALE FOR RESISTANCE AND FREQUENCY
720 FOR J=1 TO N
730 C(J,0)=C(J,2)/2/PI/F0/R
740 L(J,0)=L(J,2)*R/2/PI/F0
750 IF CC(J,J+1)=0 THEN 770
760 C(N+J,0)=CC(J,J+1)/2/PI/F0/R
770 NEXT J
780 LPRINT:LPRINT TAB(20); NME$:LPRINT DATE$
790 LPRINT"CENTER FREQUENCY = ";F0
800 LPRINT"BANDWIDTH = ";BW
810 LPRINT"THIS IS THE CIRCUIT:":LPRINT
820 IF Y=2 AND ODD=0 THEN 910
830 LPRINT"     -------C(N+1)--------C(N+2)--------C(N+3)-------ETC."
840 LPRINT"     |   |         |   |         |   |           |     |"
850 LPRINT"    L1B  C1                                     CN    LNB"
860 LPRINT"--IN-|   |         |   |         |   |           |     |-OUT--"
870 LPRINT"    L1A  |         C2  L2        C3  L3          |    LNA"
880 LPRINT"     |   |         |   |         |   |           |     |"
890 LPRINT"------------------------------------------------------GND"
900 GOTO 960
910 LPRINT"--RS--L1--------C(N+1)--------C(N+2)--------C(N+3)------ETC."
920 LPRINT"         |             |   |         |   |   "
930 LPRINT"        C1            C2  L2        C3  L3"
940 LPRINT"         |             |   |         |   |"
950 LPRINT"------------------------------------------------------GND"
960 LPRINT
970 IF Y=2 THEN LPRINT" USING EVEN POLE TRANSFORMATION WITH SERIES INDUCTOR"
980 IF Y=1 THEN LPRINT""
990 LPRINT"SOURCE RESISTANCE (RS) = ";R/Z" LOAD RESISTANCE (RL) = ";RRL
1000 IF ODD=1 THEN 1110
1010 IF Y=2 THEN LPRINT"SERIES INDUCTOR (L1)= ";L(1,0)
1020 IF Y=2 THEN LPRINT"SHUNT CAPACITOR (C1)= ";C(1,0):GOTO 1090
1030 LPRINT"YOU MUST TAP L(1) AT ";Z^.5/Z;" OF TURNS ABOVE GND."
1040 LPRINT"TAP L(N) AT ";Z^.5*RRL/RI/RL/Z" OF TURNS ABOVE GND.":P1=Z*RL*RI/RRL
1044 REM PRINT"P1= ";P1,"RL= ";RL,"RRL= ";RRL,"RI= ";RI:STOP
1050 LPRINT"FOR SPICE SIMULATION, THE L1A, L1B AND LNA, LNB VALUES ARE (K=1):"
1060 LPRINT"L1A= ";L(1,0)/Z;"  L1B= ";L(1,0)/Z*(1-2*Z^.5+Z)
1070 LPRINT"LNA= ";L(N,0)/P1;"  LNB= ";L(N,0)/P1*(1-2*P1^.5+P1)
1080 LPRINT"THE IMPEDANCE TRANSFORMATION FACTOR IS ";Z
1090 LPRINT"CIRCUIT VALUES:"
1100 IF Y=1 THEN LPRINT "C 1 = ";C(1,0),"L1 = ";L(1,0),"F0= ";1/2/PI/(C(1,0)*L(1,0))^.5
1110 FOR J=P-1 TO N
1120 LPRINT"C";J;" = ";C(J,0),
1130 IF L(J,0)=0 THEN 1150
1140 LPRINT"L";J;" = ";L(J,0),"F0= ";1/2/PI/(C(J,0)*L(J,0))^.5
1150 NEXT J
1160 LPRINT:LPRINT"COUPLING CAPS:"
1170 FOR J=N+1 TO N+N-1:LPRINT "C";J;" = ";C(J,0):NEXT J
1180 LPRINT"EQUIVALENT SERIES RESISTANCE FOR INDUCTOR LOSS"
1190 FOR J=1 TO N:LPRINT"RS";J;" = ";2*PI*F0*L(J,0)*D/QC:NEXT J
1200 LPRINT:LPRINT:LPRINT"PROTOTYPE VALUES:"
1210 FOR J=1 TO N STEP 2:LPRINT C(J,1):LPRINT L(J+1,1):NEXT J
1220 LPRINT CHR$(12)
1222 CHAIN "FILTMENU"
1230 REM CCBPDES3.BAS
1240 END


    Source: geocities.com/russlk/filters

               ( geocities.com/russlk)