home *** CD-ROM | disk | FTP | other *** search
/ Explore the World of Soft…e: Engineering & Science / Explore_the_World_of_Software_Engineering_and_Science_HRS_Software_1998.iso / programs / electrnc / mcgarret.exe / SHK-15.BAS < prev    next >
BASIC Source File  |  1986-08-11  |  5KB  |  188 lines

  1. 10 DATA 1,140,180
  2. 20 DATA 50,50,0
  3. 30 DATA 3,0,0
  4. 40 DATA 1,10
  5. 50 READ A1,F1,F2,R1,R2,D,A2,N,L,F9
  6. 60 DEF FNC(R)=1/W/SQR(R*(Q*W*L-R))
  7. 70 DEF FND(R)=SQR(Q*W*L/R-1)/Q/W/W/L
  8. 80 DEF FNY(X)=.5*ATN(SQR(X-1))
  9. 90 DEF FNX(Y)=LOG(TAN(P/8+Y))
  10. 110 DEF FNZ(X)=2*ATN(EXP(X))-P/4
  11. 120 LET P=8*ATN(1)
  12. 125 DEF FNF(B)=F*SQR((B/2)^2+1)-B*F/2
  13. 130 LET G=10/LOG(10)
  14. 140 LET F=SQR(F1*F2)
  15. 145 LET B=(F2-F1)/F
  16. 147 LET B9=ABS(F9/F-F/F9)
  17. 150 LET V=2
  18. 155 IF D=3 THEN 190
  19. 160 LET V=EXP(D/G)
  20. 190 IF N>0 THEN 650
  21. 210 READ D9
  22. 215 LET V9=EXP(D9/G)
  23. 220 IF D=0 THEN 530
  24. 230 IF A2>0 THEN 380
  25. 250 LET Y3=FNY((V9-1)/(V-1))
  26. 270 LET X4=B9/B
  27. 280 LET Y4=FNY(X4*X4)
  28. 290 LET N=FNX(Y3)/FNX(Y4)
  29. 310 IF N<=9 THEN 350
  30. 330 LET N=9
  31. 340 PRINT"MORE THEN 9 POLES REQ'D FOR DESIRED ATTN"
  32. 350 IF INT(N)-N=0 THEN 750
  33. 360 LET N=INT(N+1)
  34. 370 GOTO 750
  35. 380 LET B3=B
  36. 390 FOR N=2 TO 9
  37. 395 GOSUB 410
  38. 400 GOTO 470
  39. 410 LET Y=FNY(1/(V-1))
  40. 420 LET X=FNX(Y)/N
  41. 430 LET B=B3*COS(FNZ(X))
  42. 435 IF A2=0 THEN 855
  43. 440 LET Y=FNY((B9/B)^2)
  44. 450 LET X=FNX(Y)*N
  45. 460 LET V9=1+(V-1)/(COS(FNZ(X)))^2
  46. 463 LET A9=G*LOG(V9)
  47. 467 RETURN
  48. 470 IF A9>D9 THEN 765
  49. 480 NEXT N
  50. 510 PRINT"MORE THEN 9 POLES REQD FOR DESIRED ATTN"
  51. 520 GOTO 765
  52. 530 LET X=B9/B
  53. 560 LET N=.5*LOG(V9-1)/LOG(X)
  54. 570 IF N>9 THEN 590
  55. 580 GOTO 620
  56. 590 LET N=9
  57. 610 PRINT"MORE THEN 9 POLES REQD FOR DESIRED ATTN"
  58. 620 IF INT(N)-N=0 THEN 650
  59. 630 LET N=INT(N+1)
  60. 650 IF D>0 THEN 710
  61. 660 LET A3=0
  62. 670 LET S=1
  63. 675 LET B3=B
  64. 680 LET A9=G*LOG(1+(B9/B)^(2*N))
  65. 690 GOTO 810
  66. 710 IF A2=0 THEN 750
  67. 720 LET B3=B
  68. 730 GOSUB 410
  69. 740 GOTO 765
  70. 750 GOSUB 440
  71. 765 LET A3=1
  72. 770 LET Y=FNY(V/(V-1))
  73. 780 LET X=FNX(Y)/N
  74. 790 LET S=TAN(FNZ(X))
  75. 810 LET P1=P/4/N
  76. 820 LET Q=2*SIN(P1)/B/S
  77. 830 IF R2>0 THEN 850
  78. 840 LET Q=Q/2
  79. 850 IF A2>0 THEN 859
  80. 851 LET B2=B
  81. 852 LET B3=1/B
  82. 853 GOSUB 410
  83. 855 LET B3=1/B
  84. 857 LET B=B2
  85. 859 PRINT "Q1=";Q;",Q1*BW3/F0=";Q*B3
  86. 860 FOR R=1 TO N-1
  87. 870 IF R2=0 THEN 910
  88. 880 LET A=B*B*(S*S+A3*(SIN(2*R*P1))^2)/SIN((2*R-1)*P1)/SIN((2*R+1)*P1)/4
  89. 890 GOTO 920
  90. 910 LET A=B*B*((COS(R*P1))^2)*(S*S+A3*(SIN(R*P1))^2)
  91. 915 LET A=A/SIN((2*R-1)*P1)/SIN((2*R+1)*P1)
  92. 920 LET K(R,R+1)=SQR(A)
  93. 930 PRINT "R=";R,"K(R,R+1)=";K(R,R+1),"K(R,R+1)*F0/BW3=";K(R,R+1)/B3
  94. 940 NEXT R
  95. 945 PRINT"BW3/FO=",B3*100"PERCENT.  25PCNT IS ABOUT THE LIMIT FOR ANY"
  96. 946 PRINT"KIND OF REASONABLE APPROX TO DESIRED RESPONSE"
  97. 950 LET W=P*F
  98. 960 IF R2=0 THEN 990
  99. 970 LET A4=R2
  100. 980 GOTO 1010
  101. 990 LET A4=R1
  102. 1010 LET A5=((1-K(1,2))*Q)^2+1
  103. 1020 IF A5>=R2/R1 THEN 1060
  104. 1040 PRINT"R2 TOO LARGE.USE HIGHER RIPPLE OR R2<",A5*R1
  105. 1050 GOTO 9999
  106. 1060 LET L2=A4/W/Q
  107. 1070 LET L3=A5*R1/W/Q
  108. 1080 PRINT"ALLOWABLE MIN MAXVALUES OF L ARE",L2;L3
  109. 1085 IF L<L2 THEN 1110
  110. 1090 IF L>L3 THEN 1110
  111. 1100 GOTO 1130
  112. 1110 LET L=(L2+L3)/2
  113. 1120 PRINT "THE PROGRAM CHOSE L=",L
  114. 1130 LET C=1/L/W/W
  115. 1140 FOR R=1 TO N-1
  116. 1150 LET C(R,R+1)=C*K(R,R+1)
  117. 1160 NEXT R
  118. 1170 FOR R=2 TO N-1
  119. 1180 LET T(R)=C-C(R-1,R)-C(R,R+1)
  120. 1185 IF T(R)<0 THEN 1545
  121. 1190 NEXT R
  122. 1210 LET C1=FNC(R1)
  123. 1220 LET T(1)=C-C(1,2)-FND(R1)
  124. 1225 IF T(1)<0 THEN 1555
  125. 1230 LET T(N)=C-C(N-1,N)
  126. 1235 IF T(N)<0 THEN 1575
  127. 1240 IF R2=0 THEN 1270
  128. 1250 LET C2=FNC(R2)
  129. 1260 LET T(N)=T(N)-FND(R2)
  130. 1265 IF T(N)<0 THEN 1565
  131. 1270 IF A1<>2 THEN 1320
  132. 1290 LET A6=1000
  133. 1310 GOTO 1330
  134. 1320 LET A6=1000000!
  135. 1330 PRINT
  136. 1335 PRINT
  137. 1340 IF D>0 THEN 1355
  138. 1345 PRINT N"POLE BUTTER FILT;F1,F2=3 DB FREQS"
  139. 1350 GOTO 1360
  140. 1355 PRINT N"POLE CHEBYFILT;DB RIPPLE=",D
  141. 1360 IF A1=1 THEN 1390
  142. 1365 IF A1=2 THEN 1380
  143. 1370 PRINT "UNITS-CPS,HY,MFD;F1,F2,F0=",F1;F2;F
  144. 1375 GOTO 1395
  145. 1380 PRINT"UNITS-KC,MHY,MFD; F1,F2,F0="F1;F2;F
  146. 1385 GOTO 1395
  147. 1390 PRINT"UNITS-MC,UHY,PF;  F1,F2,F0="F1;F2;F
  148. 1395 IF D=0 THEN 1450
  149. 1400 IF A2=3 THEN 1420
  150. 1405 LET Z=FNF(B3)
  151. 1410 PRINT"F1,F2= VALLEY FREQS; 3 DB FREQS="Z;Z+B3*F
  152. 1415 GOTO 1450
  153. 1420 LET Z=FNF(B)
  154. 1425 PRINT"F1,F2=3 DB FREQS; VALLEY FREQS="Z;Z+B*F
  155. 1450 PRINT A9"=DB AT F9 + F0^2/F9="F9;F*F/F9
  156. 1452 PRINT
  157. 1453 PRINT
  158. 1455 PRINT"**R1**",R1
  159. 1460 PRINT"*    *"
  160. 1465 PRINT"*    C",A6*C1
  161. 1470 PRINT"*    *"
  162. 1475 FOR R=1 TO N
  163. 1480 PRINT"***L**",L
  164. 1485 PRINT"***C**",A6*T(R)
  165. 1490 PRINT"*    *"
  166. 1495 IF R=N THEN 1505
  167. 1500 PRINT"*    C",A6*C(R,R+1)
  168. 1502 PRINT"*    *"
  169. 1505 NEXT R
  170. 1510 IF R2=0 THEN 1535
  171. 1515 PRINT"*    C",A6*C2
  172. 1520 PRINT"*    *"
  173. 1525 PRINT"**R2**",R2
  174. 1530 GOTO 9999
  175. 1535 PRINT"**R2**","1/0"
  176. 1540 GOTO 9999
  177. 1545 LET B4=(F2-F1)/F/(K(R-1,R)+K(R,R+1))
  178. 1550 GOTO 1580
  179. 1555 LET B4=(F2-F1)/F*(1-FND(R1)/C)/K(1,2)
  180. 1560 GOTO 1580
  181. 1565 LET B4=(F2-F1)/F*(1-FND(R2)/C)/K(N-1,N)
  182. 1570 GOTO 1580
  183. 1575 LET B4=(F2-F1)/F/K(N-1,N)
  184. 1580 LET Z=FNF(B4)
  185. 1585 PRINT"FOR POS SHUNT C, BW IS LESS THAN F1,F2="Z;Z+B4*F
  186. 1590 PRINT"WHICH IS STILL TOO LARGE (RESPONSE WIILL APPROX LP FILT"
  187. 9999 END
  188.