home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / MBUG / MBUG055.ARC / ATTEN.BAS < prev    next >
BASIC Source File  |  1979-12-31  |  3KB  |  68 lines

  1. 10    'ATTENUATOR DESIGN PROGRAM
  2. 12    'Written in MICROSOOFT BASIC 7/31/82 by
  3. 14    ' Trevor Marshall, SYSOP, Thousand Oaks Technical RBBS
  4. 16    '
  5. 20    'This program designs T, PI, or minimum loss attenuators
  6. 30    '    T        PI     Min Loss Z1>Z2      Z1<Z2
  7. 40    ' ---R1----R2--    -----R3-----     ----R1----      ----R1----
  8. 50    '       |           |        |              |         |
  9. 60    '      R3           R1       R2            R2         R2
  10. 70    '       |           |        |              |         |
  11. 80    ' -------------    ------------      ---------      ----------
  12. 90    '
  13. 100    INPUT "What attenuator do you want, TEE, PI or MINIMUM LOSS..";A$
  14. 110    PRINT:INPUT "What is the input impedance...";A
  15. 120    PRINT:INPUT "What is the output impedance..";B
  16. 130    IF LEFT$(A$,1)="M" OR LEFT$(A$,1)="m" THEN GOTO 3000
  17. 140    PRINT:INPUT "What is the required loss (in dB)...";X
  18. 150    GOSUB 6000
  19. 160    IF R2>X THEN GOTO 2600        'Loss too low
  20. 170    PRINT "Asymmetrical"
  21. 172    IF LEFT$(A$,1)="P" OR LEFT$(A$,1)="p" THEN GOTO 1000
  22. 180    PRINT "Tee Section" : PRINT
  23. 190    PRINT "--R1-----R2--"
  24. 200    PRINT "      |"
  25. 210    PRINT "      R3"
  26. 220    PRINT "      |"
  27. 230    PRINT "-------------" : PRINT : GOTO 2000
  28. 1000    PRINT "   PI Section" :PRINT
  29. 1010    PRINT "------R3------"
  30. 1020    PRINT " |          |"
  31. 1030    PRINT " R1         R2"
  32. 1040    PRINT " |          |"
  33. 1050    PRINT "--------------"
  34. 2000    PRINT "Source Impedance=";A;: PRINT ",Terminating Impedance=";B;
  35. 2010    PRINT "Loss (dB)=";X
  36. 2020    Y=10!^(X/10!) : IF LEFT$(A$,1)="P" OR LEFT$(A$,1)="p" THEN GOTO 2500
  37. 2040    R3=SQR(Y*A*B)*2!/(Y-1)
  38. 2060    PRINT "R1=";A*((Y+1!)/(Y-1!))-R3;
  39. 2080    PRINT ",R2=";B*((Y+1!)/(Y-1!))-R3;
  40. 2090    PRINT ",R3=";R3 : PRINT : PRINT : GOTO 10
  41. 2500    R3=((Y-1!)/2!)*SQR(A*B/Y)
  42. 2510    PRINT "R1=";1!/(((Y+1!)/(A*(Y-1!)))-1!/R3);
  43. 2520    PRINT ",R2=";1!/(((Y+1!)/(B*(Y-1!)))-1!/R3);
  44. 2530    PRINT ",R3=";R3 : PRINT : PRINT : GOTO 10
  45. 2600    PRINT "Specified loss is too low..adjusting to...."
  46. 3000    PRINT "MINIMUM LOSS PAD DESIGN" : PRINT
  47. 3010    IF A>B THEN GOTO 5000
  48. 3020    PRINT "Pad for Z2 > Z1" : PRINT
  49. 3030    PRINT "--------R1----"
  50. 3040    PRINT "    |"
  51. 3050    PRINT "    R2"
  52. 3060    PRINT "    |"
  53. 3070    PRINT "--------------" : PRINT
  54. 4000    PRINT "Source Impedance=";A;: PRINT ",Terminating Impedance=";B
  55. 4010    GOSUB 6000
  56. 4020    PRINT "R1=,";R0*SQR(1!-R1/R0);: PRINT ",R2=";R1/(SQR(1!-R1/R0))
  57. 4030    PRINT "Loss (dB)=";R2 : PRINT : PRINT : GOTO 10
  58. 5000    PRINT "Pad for Z1 > Z2" : PRINT
  59. 5010    PRINT "----R1--------"
  60. 5020    PRINT "         |"
  61. 5030    PRINT "         R2"
  62. 5040    PRINT "         |"
  63. 5050    PRINT "--------------"
  64. 5060    GOTO 4000
  65. 6000    R0=A : R1=B : IF B>A THEN R0=B : IF B>A THEN R1=A
  66. 6010    R2=10!*LOG((SQR(R0/R1)+SQR(R0/R1-1!))^2!)/2.30259 : RETURN
  67. 4000
  68. 6000    R0=