home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / eepub10 / nrbnpas.asc < prev    next >
Text File  |  1986-10-15  |  13KB  |  317 lines

  1. 100 REM "NRBNPAS"
  2. 110 REM W.SABIN -1982; REVISED V.HEESEN -1986
  3. 120 KEY OFF :CLS :PI=4*ATN(1)
  4. 130 PRINT TAB(20);"**** DISHAL NARROW BANDPASS FILTERS ****"
  5. 140 PRINT :PRINT "THIS PROGRAM DESIGNS BANDPASS FILTERS OF 2 TO 10 RESONATORS."
  6. 150 REM *********************************
  7. 160 REM * USE K,Q VALUES (3 DB DOWN)    *
  8. 170 REM * FOR THE LOWPASS PROTOTYPE.    *
  9. 180 REM * RELATIVE BANDWIDTH=BW(3 DB)   *
  10. 190 REM * /FO. ADJUST BW(3DB) TO GET    *
  11. 200 REM * DESIRED PASSBAND.             *
  12. 210 REM * BW(BP)=BW(LP)                 *
  13. 220 REM* COUPLING IS SERIES/SHUNT      *
  14. 230 REM* C OR L. USE CAP               *
  15. 240 REM* DIVIDER, IND. DIVIDER, OR     *
  16. 250 REM* TOP L OR C FOR Z MATCH        *
  17. 260 REM* AT INPUT AND OUTPUT.          *
  18. 270 REM* SELECT FILTER INTERNAL Z      *
  19. 280 REM* AND COIL UNLOADED Q.          *
  20. 290 REM* MAX N=10. RESONATOR 1 IS      *
  21. 300 REM* ALWAYS LOADED WITH R.         *
  22. 310 REM*********************************
  23. 320 PRINT :BEEP :INPUT "NUMBER OF RESONATORS = ";N :IF N<2 OR N>10 THEN 140
  24. 330 PRINT :BEEP :INPUT"CENTER FREQUENCY (MHz)=";FO :FO=FO*10^6
  25. 340 OM=2*PI*FO
  26. 350 PRINT :BEEP :INPUT"3 DB BANDWIDTH   (MHz)=";BW :BW=BW*10^6
  27. 360 PRINT :PRINT"IF A VALUE IS INFINITE ENTER INF"
  28. 370 PRINT :BEEP :INPUT "UNLOADED COIL Q      =";QU$
  29. 380 IF QU$="INF" THEN QU=100000! :GOTO 400
  30. 390 QU=VAL(QU$)
  31. 400 W=BW/FO :QP=QU*W
  32. 410 PRINT :PRINT "NORMALIZED QP OF LOW PASS PROTOTYPE =";QP :PRINT
  33. 420 PRINT "BASED ON QP, DETERMINE THE LOWPASS PROTOTYPE (3 DB DOWN) K,Q VALUES";
  34. 430 PRINT "FROM REFERENCE TABLES."
  35. 440 PRINT :BEEP :PRINT"IS QP LARGE ENOUGH (Y/N) ?"
  36. 450 A$=INKEY$ :IF A$="" THEN 450 ELSE IF A$="N" THEN 290
  37. 460 PRINT"INPUT TERMINAL IS RESISTANCE LOADED."
  38. 470 PRINT :PRINT "NOTE: IF Q INFINITE ENTER INF"
  39. 480 BEEP :INPUT"Q(1)  = ";Q(1)
  40. 490 BEEP :PRINT"Q(";N;")="; :INPUT Q$
  41. 500 IF Q$="INF" THEN Q(N)=100000! :R2=1E+08 :GOTO 520
  42. 510 Q(N)=VAL(Q$)
  43. 520 PRINT
  44. 530 FOR I=1 TO N-1
  45. 540 BEEP :PRINT"K(";I;",";I+1;")=";
  46. 550 INPUT K(I)
  47. 560 NEXT I :PRINT
  48. 570 PRINT"LOADED, DENORMALIZED Q:"
  49. 580 Q(1)=Q(1)/W :PRINT "Q(1)=";Q(1),
  50. 590 IF Q(N)=100000! THEN PRINT "Q(";N;")= INF" :GOTO 610
  51. 600 Q(N)=Q(N)/W :PRINT "Q(";N;")=";INT(Q(N)*1000)/1000 :GOTO 640
  52. 610 IF QU >1.25*Q(1) THEN 640
  53. 620 PRINT:PRINT "COIL Q MUST BE AT LEAST "; 1.25*Q(1)
  54. 630 PRINT :PRINT "INCREASE COIL Q OR START OVER." :GOTO 370
  55. 640 PRINT :PRINT "*** INPUT RESONATOR SPECIFICATION MENU ***"
  56. 650 BEEP :INPUT "SPECIFY: L, C or R ";A$
  57. 660 IF A$<>"R" THEN 680
  58. 670 BEEP :INPUT "R (ohms)=";RF :C=Q(1)/(OM*RF) :L=RF/(OM*Q(1)) :GOTO 720
  59. 680 IF A$<>"L" THEN 700
  60. 690 BEEP :INPUT "L  (uh) =";L :L=L*10^-6 :C=1/(OM ^2*L) :RF=OM*L*Q(1) :GOTO 720
  61. 700 IF A$<>"C" THEN 650
  62. 710 BEEP :INPUT "C  (pf) =";C :C=C*10^-12 :L=1/(OM^2*C) :RF=OM*L*Q(1)
  63. 720 PRINT "L =";INT(L*10^6*1000)/1000;"uh"
  64. 730 PRINT "C =";INT(C*10^12*1000)/1000;"pf"
  65. 740 PRINT "R =";INT(RF*1000)/1000;"ohms"
  66. 750 PRINT :BEEP :PRINT "ARE L, C, and R SATISFACTORY (Y/N) ?"
  67. 760 A$=INKEY$ :IF A$="" THEN 760
  68. 770 IF A$="N" THEN 640
  69. 780 BEEP :PRINT "ARE UNLOADED COIL Q AND BW3 DB STILL SATISFACTORY ? (Y/N)"
  70. 790 A$=INKEY$ :IF A$="" THEN 790
  71. 800 IF A$="N" THEN 330
  72. 810 RL=OM*L*QU:PRINT:PRINT "COIL RESISTANCE=";INT(RL*100)/100;"ohms":PRINT
  73. 820 RR(1)=1/(1/(OM*L*Q(1))-1/(OM*L*QU)): PRINT "REQUIRED SOURCE RESISTANCE =";INT(RR(1)*100)/100;"ohms"
  74. 830 IF Q(N)>= QP/W THEN PRINT "REQUIRED LOAD RESISTANCE = INF": RR(N)=1E+08: GOTO 850
  75. 840 RR(N)=1/(1/(OM*L*Q(N))-1/(OM*L*QU)):PRINT "REQUIRED LOAD RESISTANCE=";RR(N)
  76. 850 PRINT:FOR I=1 TO N
  77. 860 IF I=N THEN 890
  78. 870 K(I)=K(I)*W
  79. 880 CT(I)=K(I)*C :PRINT "CT(";I;")=";INT(CT(I)*10^12*1000)/1000;"pf"
  80. 890 IF I=1 THEN 900 ELSE 910
  81. 900 C(1)=C-CT(1):PRINT "C(1)=";INT(C(1)*10^12*1000)/1000;"pf" :GOTO 940
  82. 910 IF I=N THEN 920 ELSE 930
  83. 920 C(N)=C-CT(N-1):PRINT "C(";N;")=";INT(C(N)*10^12*1000)/1000;"pf" :GOTO 940
  84. 930 C(I)=C-CT(I-1)-CT(I):PRINT "C(";I;")=";INT(C(I)*10^12*1000)/1000;"pf"
  85. 940 L(I)=L
  86. 950 NEXT I :PRINT
  87. 960 BEEP :INPUT "WIRING + AVERAGE TRIMMER C FOR EACH RESONATOR (pf) =";CS
  88. 970 CS=CS*10^-12
  89. 980 PRINT :FOR I=1 TO N
  90. 990 C(I)=C(I)-CS :PRINT "C(";I;")=";INT(C(I)*10^12*1000)/1000;"pf"
  91. 1000 NEXT :PRINT
  92. 1010 BEEP :PRINT "PRESS <SPACE> TO CONTINUE" :PRINT
  93. 1020 A$=INKEY$:IF A$="" THEN 1020
  94. 1030 PRINT "*** COUPLING MODIFICATIONS MENU ***":PRINT
  95. 1040 PRINT "ENTER:  1 for CAPACITOR PI to TEE"
  96. 1050 PRINT "        2 for L COUPLED C"
  97. 1060 PRINT "        3 for INDUCTOR TEE"
  98. 1070 PRINT "        4 for C COUPLED L"
  99. 1080 PRINT "        5 for M COUPLING"
  100. 1090 PRINT "        6 to CONTINUE"
  101. 1100 BEEP :INPUT X :PRINT
  102. 1110 ON X GOTO 1300,1380,1470,1570,1670,1120
  103. 1120 CLS :PRINT "*** DESIGN I/O IMPEDANCE TRANSFORMERS ***" :PRINT
  104. 1130 BEEP :PRINT "SELECT TYPE OF INPUT TRANSFORMER: ":PRINT :U=1
  105. 1140 PRINT
  106. 1150 PRINT "ENTER:  1 for C DIVIDER"
  107. 1160 PRINT "        2 for L DIVIDER"
  108. 1170 PRINT "        3 for LINK COUPLING"
  109. 1180 PRINT "        4 for TOP C"
  110. 1190 PRINT "        5 for TOP L"
  111. 1200 PRINT "        6 to CONTINUE"
  112. 1210 INPUT T :PRINT
  113. 1220 IF T=6 THEN 1260
  114. 1230 IF U=1 THEN BEEP :INPUT "SOURCE RESISTANCE =";R
  115. 1240 IF U=N THEN BEEP :INPUT "LOAD RESISTANCE =";R
  116. 1250 ON T GOSUB 1730,1850,1980,2180,2260,1260
  117. 1260 IF U=N THEN 2590
  118. 1270 IF Q(N)>=QP/W THEN PRINT "OUTPUT PORT IS OPEN CIRCUIT" :GOTO 2590
  119. 1280 PRINT :BEEP :PRINT "SELECT TYPE OF TRANSFORMER AT OUTPUT:" :PRINT :U=N
  120. 1290 GOTO 1140
  121. 1300 CLS :PRINT "*** CHANGE CAP PI TO CAP TEE ***"
  122. 1310 BEEP :PRINT :INPUT "FIRST NODE=";A
  123. 1320 PRINT "SECOND NODE=";A+1
  124. 1330 CD=C(A)*C(A+1)+C(A+1)*CT(A)+C(A)*CT(A)
  125. 1340 CA=CD/C(A+1) :PRINT "C(";A;")=";INT(CA*10^12*1000)/1000;"pf"
  126. 1350 CB=CD/C(A) :PRINT "C(";A+1;")=";INT(CB*10^12*1000)/1000;"pf"
  127. 1360 CC=CD/CT(A) :PRINT "BOTTOM COUPLING C =";INT(CC*10^12*1000)/1000;"pf"
  128. 1370 PRINT :GOTO 1030
  129. 1380 CLS :PRINT "*** CHANGE TOP C TO L COUPLED C ***"
  130. 1390 BEEP :PRINT:INPUT "FIRST NODE=";A
  131. 1400 PRINT "SECOND NODE=";A+1
  132. 1410 C(A)=C(A)+CT(A) :PRINT "C(";A;")=";INT(C(A)*10^12*1000)/1000;"pf"
  133. 1420 C(A+1)=C(A+1)+CT(A) :PRINT "C(";A+1;")=";INT(C(A+1)*10^12*1000)/1000;"pf"
  134. 1430 M=CT(A)*SQR(L(A)*L(A+1))/SQR(C(A)*C(A+1)) :PRINT "M =";M
  135. 1440 L(A)=L(A)-M :PRINT "L(";A;")=";INT(L(A)*10^6*1000)/1000;"uh"
  136. 1450 L(A+1)=L(A+1)-M :PRINT "L(";A+1;")=";INT(L(A+1)*10^6*1000)/1000;"uh"
  137. 1460 PRINT :GOTO 1030
  138. 1470 CLS :PRINT "*** CHANGE TOP C TO INDUCTOR TEE ***"
  139. 1480 BEEP :PRINT :INPUT "FIRST NODE=";A
  140. 1490 PRINT "SECOND NODE=";A+1
  141. 1500 C(A)=C(A)+CT(A) :PRINT "C(";A;")=";INT(C(A)*10^12*1000)/1000;"pf"
  142. 1510 C(A+1)=C(A+1)+CT(A) :PRINT "C(";A+1;")=";INT(C(A+1)*10^12*1000)/1000;"uh"
  143. 1520 M=K(A)*SQR(L(A)*L(A+1)) :PRINT "MUTUAL INDUCTANCE =";M
  144. 1530 IF X=5 THEN RETURN
  145. 1540 L(A)=L(A)-M :PRINT "L(";A;")=";INT(L(A)*10^6*1000)/1000;"uh"
  146. 1550 L(A+1)=L(A+1)-M :PRINT "L(";A+1;")=";INT(L(A+1)*10^6*1000)/1000;"uh"
  147. 1560 PRINT :GOTO 1030
  148. 1570 CLS :PRINT "*** CHANGE TOP C TO C COUPLED L ***"
  149. 1580 BEEP :PRINT :INPUT "FIRST NODE=";A
  150. 1590 PRINT "SECOND NODE=";A+1
  151. 1600 C(A)=C(A)+CT(A) :PRINT "C(";A;")=";INT(C(A)*10^12*1000)/1000;"pf"
  152. 1610 C(A+1)=C(A+1)+CT(A) :PRINT "C(";A+1;")=";INT(C(A+1)*10^12*1000)/1000;"pf"
  153. 1620 M=K(A)*SQR(L(A)*L(A+1)) :CM=1/(OM^2*M)
  154. 1630 PRINT "CM=";INT(CM*10^12*1000)/1000;"pf"
  155. 1640 L(A)=(L(A)+M) :PRINT "L(";A;")=";INT(L(A)*10^6*1000)/1000;"uh"
  156. 1650 L(A+1)=(L(A+1)+M) :PRINT "L(";A+1;")=";INT(L(A+1)*10^6*1000)/1000;"uh"
  157. 1660 PRINT :GOTO 1030
  158. 1670 CLS :PRINT "*** CHANGE TOP C TO M ***"
  159. 1680 GOSUB 1480
  160. 1690 PRINT "COEFF OF COUPLING=";K(A)
  161. 1700 PRINT "L(";A;")=";INT(L(A)*10^6*1000)/1000;"uh"
  162. 1710 PRINT "L(";A+1;")=";INT(L(A+1)*10^6*1000)/1000;"uh"
  163. 1720 PRINT: GOTO 1030
  164. 1730 CLS :PRINT "*** CAPACITIVE DIVIDER ***"
  165. 1740 CX=C(U)*SQR(RR(U)/R)/SQR(RR(U)/R-1)
  166. 1750 K=C(U)*RR(U)
  167. 1760 CC=CX^2/4-(1-OM^2*R*CX*K)/(OM*R)^2
  168. 1770 IF CC<=0 THEN PRINT "CANNOT MATCH !!!":GOTO 1130
  169. 1780 CY=-CX/2+SQR(CC)
  170. 1790 RI=(1+OM^2*R^2*(CY+CX)^2)/(OM^2*R*CX^2)
  171. 1800 IF ABS((RR(U)-RI)/RR(U))<.0001 THEN 1820
  172. 1810 CX=CX*RI/RR(U) :GOTO 1760
  173. 1820 PRINT :PRINT "C(";U;")=";INT(CX*10^12*1000)/1000;"pf"
  174. 1830 PRINT "BOTTOM CAP=";INT(CY*10^12*1000)/1000;"pf"
  175. 1840 PRINT :RETURN
  176. 1850 CLS :PRINT "*** INDUCTIVE DIVIDER ***"
  177. 1860 LY=L(U)*SQR(R/RR(U))
  178. 1870 K=RR(U)/L(U)
  179. 1880 LX=R*LY*(LY*K-R)/((OM*LY)^2+R^2)
  180. 1890 IF LX=LL THEN PRINT "CANNOT MATCH !!!":GOTO 1130
  181. 1900 RI=((OM*LX*LY)^2+R^2*(LX+LY)^2)/(R*LY^2)
  182. 1910 IF ABS ((RR(U)-RI)/RR(U))<.0001 THEN 1940
  183. 1920 LY=LY*SQR(RR(U)/RI)
  184. 1930 LL=LX :GOTO 1880
  185. 1940 PRINT :PRINT "BOTTOM COIL=";INT(LY*10^6*1000)/1000;"uh"
  186. 1950 L(U)=LX
  187. 1960 PRINT "VALUE OF TOP COIL L(";U;")=";INT(L(U)*10^6*1000)/1000;"uh"
  188. 1970 PRINT :RETURN
  189. 1980 CLS :PRINT "*** LINK COUPLING ***"
  190. 1990 PRINT :BEEP :INPUT "ESTIMATED COUPLING COEFFICIENT =";KK
  191. 2000 XX=0
  192. 2010 LY=L(U)*R/RR(U)/KK^2
  193. 2020 LX=L(U)*((OM*LY)^2*(1-KK^2)+R^2)/((OM*LY)^2*(1-KK^2)^2+R^2)
  194. 2030 RI=R*LX/KK^2/LY+OM^2*LX*LY/R*(1-KK^2)^2/KK^2
  195. 2040 RM=2*OM*LX*(1-KK^2)/KK^2
  196. 2050 IF RM>=.8*RR(U) THEN 2060 ELSE 2070
  197. 2060 PRINT "CHOSEN COUPLING COEFFICIENT, ";KK;" IS TOO SMALL !!!":GOTO 1990
  198. 2070 IF ABS ((RR(U)-RI)/RR(U))<=.0001 THEN 2090
  199. 2080 LY=LY*RI/RR(U) :GOTO 2020
  200. 2090 PRINT :PRINT "LX=";LX
  201. 2100 PRINT "LY=";LY
  202. 2110 PRINT :IF XX=0 THEN GOSUB 3220
  203. 2120 RZ=OM*LY/QL
  204. 2130 IF XX=0 THEN R=R+RZ:XX=1 :GOTO 2010
  205. 2140 PRINT "PRESS Y  TO RERUN WITH NEW VALUE OF COUPLING COEFFICIENT." :PRINT
  206. 2150 A$=INKEY$ :IF A$="" THEN 2150
  207. 2160 IF A$="Y" THEN 1990
  208. 2170 RETURN
  209. 2180 CLS :PRINT "*** TOP C COUPLING TRANSFORMER ***"
  210. 2190 CX=1/OM/SQR(R*(RR(U)-R))
  211. 2200 CO=CX/(1+(OM*CX*R)^2)
  212. 2210 C(U)=C(U)-CO
  213. 2220 PRINT :PRINT "TOP COUPLING C =";INT(CX*10^12*1000)/1000;"pf"
  214. 2230 PRINT "NEW C(";U;")=";INT(C(U)*10^12*1000)/1000;"pf"
  215. 2240 IF C(U)=<0 THEN PRINT "CANNOT MATCH !!!": C(U)=C(U)+CO :GOTO 1130
  216. 2250 RETURN
  217. 2260 CLS :PRINT "*** TOP L COUPLING TRANSFORMER ***"
  218. 2270 Z=0 :LX=1/OM*SQR(R*(OM*L*Q(U)-R))
  219. 2280 PRINT "APPROX. VALUE OF LX=";INT(LX*10^6*1000)/1000;"uh
  220. 2290 BEEP :INPUT "APPROX. Q OF LX=";QX$
  221. 2300 IF QX$="INF" THEN QX=100000! :GOTO 2320
  222. 2310 QX=VAL(QX$)
  223. 2320 RI=((R+OM*LX/QX)^2+(OM*LX)^2)/(R+OM*LX/QX)
  224. 2330 LO=RI*(R+OM*LX/QX)/(OM^2*LX)
  225. 2340 L(U)=1/(1/L-1/LO)
  226. 2350 IF Z=1 THEN GOTO 2420
  227. 2360 PRINT :PRINT "APPROX. VALUE OF L(";U;") (hy) =";L(U)
  228. 2370 IF L(U)=<0 THEN PRINT "CANNOT MATCH !!!" :GOTO 1140
  229. 2380 PRINT "Q OF L(";U;")=";
  230. 2390 BEEP :INPUT QL$
  231. 2400 IF QL$="INF" THEN QL=100000! :GOTO 2420
  232. 2410 QL=VAL(QL$)
  233. 2420 RY=QL*OM*L(U)
  234. 2430 IF L*Q(U)>.8*L(U)*QL THEN PRINT "Q CHOSEN IS TOO SMALL !!!": GOTO 2260
  235. 2440 QI=1/(OM*L)/(1/RY+1/RI)
  236. 2450 IF ABS((Q(U)-QI)/Q(U))<.0001 THEN 2480
  237. 2460 LX=LX*SQR(Q(U)/QI)
  238. 2470 Z=1 :GOTO 2320
  239. 2480 PRINT :PRINT"LX=";INT(LX*10^6*1000)/1000;"uh"
  240. 2490 PRINT "L(";U;")=";INT(L(U)*10^6*1000)/1000;"uh"
  241. 2500 PRINT "Q OF L(";U;")=";QL
  242. 2510 PRINT "TOTAL Q=";QI
  243. 2520 PRINT "LOAD RESISTANCE=";RI
  244. 2530 PRINT :BEEP :PRINT "DO YOU WANT TO REPEAT THIS STEP (Y/N)?"
  245. 2540 A$=INKEY$ :IF A$="" THEN 2540
  246. 2550 IF A$="Y" THEN PRINT :GOTO 2270
  247. 2560 RETURN
  248. 2570 PRINT :BEEP :PRINT "PRESS <SPACE> TO CONTINUE"
  249. 2580 A$=INKEY$ :IF A$="" THEN 2580
  250. 2590 PRINT :PRINT "*** COMPUTED INSERTION LOSSES ***"
  251. 2600 PRINT :PRINT "ENTER:  1  for PSEUDO-EXACT"
  252. 2610 BEEP :INPUT "        0  for ALL OTHERS";P
  253. 2620 PRINT :PRINT "PROTOTYPE Q=";QP
  254. 2630 Q(1)=Q(1)*W :Q(N)=Q(N)*W
  255. 2640 X(1)=Q(1)
  256. 2650 RS=1/(1-X(1)/QP)
  257. 2660 IF 2*INT(N/2)=N THEN RS=1/RS
  258. 2670 IF P=1 THEN RS=1
  259. 2680 PRINT "PROTOTYPE RS=";RS
  260. 2690 FOR I=1 TO N-1
  261. 2700 K(I)=K(I)/W
  262. 2710 X(I+1)=1/(K(I)^2*X(I))
  263. 2720 NEXT
  264. 2730 S=0
  265. 2740 FOR I=1 TO N
  266. 2750 S=S+X(I)
  267. 2760 NEXT
  268. 2770 LR=4.343001*S/QP
  269. 2780 PRINT "RESISTIVE LOSS (DB)=";INT(LR*100)/100
  270. 2790 IF Q(N)=>QP THEN PRINT "MISMATCH LOSS NOT DEFINED" :GOTO 2870
  271. 2800 R2=1/(X(N)/Q(N)-X(N)/QP)
  272. 2810 IF P=1 THEN R2=Q(N)/X(N)
  273. 2820 LM=4.343001*LOG((RS+R2)^2/(4*R2*RS))
  274. 2830 PRINT "PROTOTYPE RL=";R2;" OHMS"
  275. 2840 PRINT "MISMATCH LOSS (DB)=";INT(LM*1000)/1000
  276. 2850 LT=LR+LM
  277. 2860 PRINT "INSERTION LOSS (DB)=";INT(LT*1000)/1000
  278. 2870 PRINT :PRINT "*** LOWPASS PROTOTYPE VALUES ***"
  279. 2880 A=-1*(-1)^N
  280. 2890 FOR I=1 TO N
  281. 2900 PRINT "X(";I;")=";X(I);
  282. 2910 IF A=1 THEN PRINT TAB(20);"R(";I;")=";QP/X(I)
  283. 2920 IF A=-1 THEN PRINT TAB(20);"R(";I;")=";X(I)/QP
  284. 2930 A=-A
  285. 2940 NEXT I
  286. 2950 PRINT :BEEP :PRINT "PRESS <SPACE> TO CONTINUE" :PRINT
  287. 2960 A$=INKEY$:IF A$="" THEN 2960
  288. 2970 PRINT :PRINT "*** APPROXIMATE STOPBAND RESPONSE ***"
  289. 2980 BEEP :INPUT "ENTER:  1 FOR CHEBY or MIN-LOSS;  0 FOR OTHERS ";A
  290. 2990 X=1: FOR I=1 TO N: X=X*X(I):NEXT
  291. 3000 FOR I=20 TO 60 STEP 10
  292. 3010 U=I/(8.686001*N)-LOG(2*PI)-1/N*LOG(X)+1/N*LOG((RS+R2)/R2)
  293. 3020 F=EXP(U)
  294. 3030 BY=BW*2*PI*F*(1+.8499999*N/I*A)
  295. 3040 PRINT .1*INT(10*(I-LR)+.5);" DB BW=";INT(BY);" HZ"
  296. 3050 NEXT
  297. 3060 REM ***** UNLOADED OUTPUT RESISTANCE AT FO *****
  298. 3070 IF Q(N)<QP THEN 3210
  299. 3080 G(1)=1
  300. 3090 FOR I=2 TO N
  301. 3100 G(I)=(Q(1)*K(I-1))^2/G(I-1)+RF/RL
  302. 3110 NEXT
  303. 3120 RO=INT(RF/G(N))
  304. 3130 PRINT :PRINT "UNLOADED OUTPUT RESISTANCE AT F0=";RO
  305. 3140 BEEP :INPUT "DESIRED OUTPUT RESISTANCE=";RP
  306. 3150 IF RO=RP THEN 3210
  307. 3160 PRINT "C DIVIDER, C1 BOTTOM, C2 TOP"
  308. 3170 C1=C(N)*SQR(RO/RP)
  309. 3180 PRINT "C1=";INT(C1*10^12*1000)/1000;"pf"
  310. 3190 C2=C(N)*SQR(RO/RP)/(SQR(RO/RP)-1)
  311. 3200 PRINT "C2=";INT(C2*10^12*1000)/1000;"pf"
  312. 3210 PRINT :PRINT "COMPLETE" :END
  313. 3220 REM ***** LINK COIL SUBROUTINE *****
  314. 3230 BEEP :INPUT "Q OF LINK COIL=";QL$
  315. 3240 IF QL$="INF" THEN QL=100000! :RETURN
  316. 3250 QL=VAL(QL$) :RETURN
  317.