home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / design3 / lowpass.bas < prev    next >
BASIC Source File  |  1979-12-31  |  6KB  |  171 lines

  1. 10 REM**** LOPASS FILTER PROGRAM WRITTEN BY M. CHOMET 2/10/80*
  2. 11 REM ** FOR USE WITH MICROSOFT BASIC ***
  3. 12 REM ** USING TABLES FROM EDN MAR. 15,1971 ***
  4. 15 INPUT"DO YOU WANT SCHEMATIC ? ";A$
  5. 16 IF A$="Y" OR A$="YES" THEN 2000
  6. 20 DIM F(10),C(10)
  7. 30 INPUT"SPECIFY 3 DB FREQUENCY IN HERTZ  ";F0
  8. 40 INPUT"SPECIFY SKIRT ATTENUATION AND FREQUENCY  ";D,F1
  9. 50 P=D/(8.6858*LOG(F1/F0))
  10. 60 P1=INT(P+.99)
  11. 70 P4=3.14153
  12. 80 R=10000
  13. 90 W=2*P4*F0
  14. 100 PRINT"NUMBER OF POLES NEEDED IS  ";P1
  15. 110 IF P1>10 THEN 1310
  16. 120 ON P1 GOTO 140,150,160,170,180,190,200,210,220,230
  17. 130 PRINT: PRINT
  18. 140 PRINT"AN ACTIVE FILTER IS NOT NEEDED IN THIS CASE.": END
  19. 150 PRINT"SINGLE OPAMP TWO POLE CASE": GOTO 240
  20. 160 PRINT"SINGLE OPAMP THREE POLE CASE": GOTO 330
  21. 170 PRINT"CASCADE 2 TWO POLE STAGES": GOTO 430
  22. 180 PRINT"CASCADE A THREE POLE WITH A TWO POLE STAGE": GOTO 510
  23. 190 PRINT"CASCADE 3 TWO POLE STAGES": GOTO 590
  24. 200 PRINT"CASCADE A THREE POLE STAGE WITH 2 TWO POLE STAGES": GOTO 720
  25. 210 PRINT"CASCADE 4 TWO POLE STAGES": GOTO 860
  26. 220 PRINT"CASCADE A 3 POLE STAGE WITH 3 TWO POLE STAGES": GOTO 1000
  27. 230 PRINT"CASCADE 5 TWO POLE STAGES": GOTO 1140
  28. 240 C1=1.41: C2=.707
  29. 250 Q=1/(W*R)
  30. 260 C1=C1*Q
  31. 270 C2=C2*Q
  32. 280 IF R=<10 THEN 1280
  33. 290 IF C2<1E-10 THEN R=R/2
  34. 300 IF C2<1E-10 THEN 240
  35. 310 PRINT"R= ";R,"C1= ";C1,"C2= ";C2
  36. 320 END
  37. 330 C1=1.39: C2=3.54: C3=.202
  38. 340 Q=1/(W*R)
  39. 350 C1=C1*Q
  40. 360 C2=C2*Q
  41. 370 C3=C3*Q
  42. 380 IF R=<10 THEN 1280
  43. 390 IF C3<1E-10 THEN R=R/2
  44. 400 IF C3<1E-10 THEN 330
  45. 410 PRINT"R= ";R,"C1= ";C1,"C2= ";C2,"C3= ";C3
  46. 420 END
  47. 430 C1=1.08: C2=.924: C3=2.61: C4=.383
  48. 440 Q=1/(W*R)
  49. 450 C1=C1*Q: C2=C2*Q: C3=C3*Q: C4=C4*Q
  50. 460 IF R=<10 THEN 1280
  51. 470 IF C4<1E-10 THEN R=R/2
  52. 480 IF C4<1E-10 THEN 430
  53. 490 PRINT"R= ";R,"C1= ";C1,"C2= ";C2,"C3= ";C3,"C4= ";C4
  54. 500 END
  55. 510 C1=1.09: C2=1.8: C3=.509: C4=3.24: C5=.309
  56. 520 Q=1/(W*R)
  57. 530 C1=C1*Q: C2=C2*Q: C3=C3*Q: C4=C4*Q: C5=C5*Q
  58. 540 IF R=<10 THEN 1280
  59. 550 IF C5<1E-10 THEN R=R/2
  60. 560 IF C5<1E-10 THEN 510
  61. 570 PRINT"R= ";R,"C1= ";C1,"C2= ";C2,"C3= ";C3,"C4= ";C4,"C5= ";C5
  62. 580 END
  63. 590 C(1)=1.41: C(2)=.707: C(3)=1.04: C(4)=.966: C(5)=3.86: C(6)=.259
  64. 600 Q=1/(W*R)
  65. 610 FOR I=1 TO 6
  66. 620 C(I)=C(I)*Q
  67. 630 NEXT I
  68. 640 IF R=<10 THEN 1280
  69. 650 IF C(6)<1E-10 THEN R=R/2
  70. 660 IF C(6)<1E-10 THEN 590
  71. 670 PRINT"R= ";R
  72. 680 FOR I=1 TO 6
  73. 690 PRINT"C ";I;" = ";C(I)
  74. 700 NEXT I
  75. 710 END
  76. 720 C(1)=1.38: C(2)=2.52: C(3)=.288: C(4)=1.11: C(5)=.9
  77. 730 C(6)=4.49: C(7)=.223
  78. 740 Q=1/(W*R)
  79. 750 FOR I=1 TO 7
  80. 760 C(I)=C(I)*Q
  81. 770 NEXT I
  82. 780 IF R=<10 THEN 1280
  83. 790 IF C(6)<1E-10 THEN R=R/2
  84. 800 IF C(6)<1E-10 THEN 720
  85. 810 PRINT"R= ";R
  86. 820 FOR I=1 TO 7
  87. 830 PRINT"C";I;" = ";C(I)
  88. 840 NEXT I
  89. 850 END
  90. 860 C(1)=1.18: C(2)=.846: C(3)=2.05: C(4)=.437
  91. 870 C(5)=.965: C(6)=1.04: C(7)=4.84: C(8)=.207
  92. 880 Q=1/(W*R)
  93. 890 FOR I=1 TO 8
  94. 900 C(I)=C(I)*Q
  95. 910 NEXT I
  96. 920 IF R=<10 THEN 1280
  97. 930 IF C(8)<1E-10 THEN R=R/2
  98. 940 IF C(8)<1E-10 THEN 590
  99. 950 PRINT"R= ";R
  100. 960 FOR I=1 TO 8
  101. 970 PRINT"C";I;" = ";C(I)
  102. 980 NEXT I
  103. 990 END
  104. 1000 C(1)=1.36: C(2)=1.88: C(3)=.39: C(4)=2: C(5)=.5
  105. 1010 C(6)=1.06: C(7)=.94: C(8)=5.76: C(9)=.174
  106. 1020 Q=1/(W*R)
  107. 1030 FOR I=1 TO 9
  108. 1040 C(I)=C(I)*Q
  109. 1050 NEXT I
  110. 1060 IF R=<10 THEN 1280
  111. 1070 IF C(9)<1E-10 THEN R=R/2
  112. 1080 IF C(9)<1E-10 THEN 1000
  113. 1090 PRINT"R= ";R
  114. 1100 FOR I=1 TO 9
  115. 1110 PRINT"C";I;" = ";C(I)
  116. 1120 NEXT I
  117. 1130 END
  118. 1140 C(1)=1.12: C(2)=.891: C(3)=1.42: C(4)=.706: C(5)=2.2
  119. 1150 C(6)=.454: C(7)=1.01: C(8)=.988: C(9)=6.39: C(10)=.156
  120. 1160 Q=1/(W*R)
  121. 1170 FOR I=1 TO 10
  122. 1180 C(I)=C(I)*Q
  123. 1190 NEXT I
  124. 1200 IF R=<10 THEN 1280
  125. 1210 IF C(10)<1E-10 THEN R=R/2
  126. 1220 IF C(10)<1E-10 THEN 1140
  127. 1230 PRINT"R= ";R
  128. 1240 FOR I=1 TO 10
  129. 1250 PRINT"C";I;" = ";C(I)
  130. 1260 NEXT I
  131. 1270 END
  132. 1280 PRINT"R= ";R;" THIS VALUE IS TOO LOW FOR PRACTICAL USE"
  133. 1290 PRINT"SUGGEST YOU EXAMINE REQUIREMENTS AND TRY AGAIN"
  134. 1300 GOTO 30
  135. 1310 PRINT"A FILTER FOR THE CONDITIONS REQUIRED NEEDS MORE THAN"
  136. 1320 PRINT"TEN (10) STAGES AND IS OUTSIDE THE PROGRAMMED CAPABILITY.": GOTO 1290
  137. 2000 PRINT"               +--------------|C1|-------+"
  138. 2005 PRINT"               !                         !"
  139. 2010 PRINT"       R       !   R            +-----+  !"
  140. 2020 PRINT"----/\/\/\/\---+---/\/\/\/\--+--!UNITY!  !"
  141. 2025 PRINT"                             !  !GAIN !--+------>"
  142. 2030 PRINT"                             !  ! AMP !"
  143. 2040 PRINT"                             !  +-----+"
  144. 2050 PRINT"                            ---"
  145. 2060 PRINT"                            C2"
  146. 2070 PRINT"                            ---"
  147. 2080 PRINT"                             !"
  148. 2090 PRINT"                             !"
  149. 2100 PRINT"                             \/"
  150. 2105 PRINT"   TYPICAL TWO POLE STAGE    "
  151. 2110 FOR X=1 TO 3000
  152. 2120 NEXT X
  153. 2130 PRINT: PRINT: PRINT
  154. 2140 PRINT"                       +-------|C2|----------+"
  155. 2150 PRINT"                       !                     !"
  156. 2160 PRINT"    R          R       !   R        +------+ !"
  157. 2170 PRINT"--/\/\/\--+--/\/\/\----+--/\/\/\--+-!UNITY ! !"
  158. 2180 PRINT"          !                       ! !GAIN  !-+----->"
  159. 2190 PRINT"        ----                     ---! AMP  !"
  160. 2200 PRINT"        C1                       C3 !      !"
  161. 2210 PRINT"        ----                     ---+------+"
  162. 2220 PRINT"         !                        !"
  163. 2230 PRINT"         !                        !"
  164. 2240 PRINT"         \/                       \/"
  165. 2245 PRINT"     TYPICAL THREE POLE STAGE  "
  166. 2246 PRINT
  167. 2250 GOTO 20
  168.   !"
  169. 2240 PRINT"         \/                            !                        !"
  170. 2230 PRINT"         !                        !"
  171. 2240 PRINT"         \/                       σσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσσ