home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / design3 / skymatch.bas < prev    next >
BASIC Source File  |  1987-01-22  |  4KB  |  98 lines

  1. 1000 CLS:PRINT'   Filename is SKYMATCH
  2. 1010 PRINT"Filemane SKYMATCH is an accronym";
  3. 1020 PRINT" for Stern's K stability factor"
  4. 1030 PRINT"Y parameter impedance MATCHing ";
  5. 1040 PRINT"procedure for r.f. transistors."
  6. 1050 PRINT"This is a BASIC version of a TI-";
  7. 1060 PRINT"59 program that appeared in the"
  8. 1070 PRINT"May/June 1984 issue of RF Design";
  9. 1080 PRINT". Refer to this article for check"
  10. 1090 PRINT"solutions and diagrams. Line 119";
  11. 1100 PRINT" in this pgm should be STO 19 & "
  12. 1110 PRINT"line 126 should be RCL 16. Data ";
  13. 1120 PRINT"is correct.  Rev 1.10 submitted"
  14. 1130 PRINT"by B.K. Erickson, May 26th, 1986"
  15. 1140 PRINT:PRINT"   Press ENTER to continue";
  16. 1150 INPUT Z$:CLS:DIM A(2,4)
  17. 1160 PRINT"If the transistor data you have"
  18. 1170 PRINT"  is in Polar S form. ENTER SP"
  19. 1180 PRINT"  is in Polar Y form, ENTER YP"
  20. 1190 PRINT"  is rectangular Y, then ENTER"
  21. 1200 INPUT Z$
  22. 1210 PRINT"Enter 4 values for X(11) & X(12)"
  23. 1220 INPUT A(1,1),A(1,2),A(1,3),A(1,4)
  24. 1230 PRINT"Enter 4 values for X(21) & X(22)"
  25. 1240 INPUT A(2,1),A(2,2),A(2,3),A(2,4)
  26. 1250 IF Z$="YP"OR Z$="SP"THEN GOSUB 1600
  27. 1260 PRINT"Want printout   Y/N":INPUT P$
  28. 1270 PRINT"Enter K min, K max, K step"
  29. 1280 INPUT L,M,N:FOR K=L TO M STEP N
  30. 1290 Z1=A(1,3)*A(2,1)-A(1,4)*A(2,2)
  31. 1300 Z2=A(1,3)*A(2,2)+A(1,4)*A(2,1)
  32. 1310 Z3=SQR(Z1*Z1+Z2*Z2):Z4=K*(Z1+Z3)/2
  33. 1320 GS=SQR(Z4*A(1,1)/A(2,3))-A(1,1)
  34. 1330 GL=SQR(Z4*A(2,3)/A(1,1))-A(2,3)
  35. 1340 PRINT:Z5=-A(2,4)'   Eval BS
  36. 1350 Z6=A(2,3)+GL:Z7=A(2,4)+Z5
  37. 1360 Z8=(Z2*Z6-Z1*Z7)/(Z6*Z6+Z7*Z7)
  38. 1370 BS=Z8-A(1,2):Z6=A(1,1)+GS:Z7=A(1,2)+BS
  39. 1380 Z8=1/(Z6*Z6+Z7*Z7)
  40. 1390 Z9=Z8*(Z2*Z6-Z1*Z7):BL=Z9-A(2,4)
  41. 1400 IF ABS((Z5-BL)/Z5)<.001 THEN 1420
  42. 1410 Z5=BL:GOTO 1350
  43. 1420 PRINT TAB(9);"REAL";TAB(23);"IMAG"
  44. 1430 PRINT"K";TAB(9);K:PRINT"YS";
  45. 1440 PRINT USING"#####.########";GS,BS
  46. 1450 PRINT"YL";:Z3=A(2,3)+GL:Z4=A(2,4)+BL
  47. 1460 PRINT USING"#####.########";GL,BL
  48. 1470 Z8=Z3*Z6-Z4*Z7:Z9=Z3*Z7+Z4*Z6
  49. 1480 Z8=Z8-Z1:Z9=Z9-Z2:PRINT"GT";
  50. 1490 Z5=1/(Z8*Z8+Z9*Z9)
  51. 1500 Z3=A(2,1)*A(2,1)+A(2,2)*A(2,2)
  52. 1510 Z4=10*LOG(4*Z3*Z5*GS*GL)/LOG(10)
  53. 1520 PRINT USING"#####.########";Z4;
  54. 1530 PRINT TAB(24);"DB":Z8=1/(GS*GS+BS*BS)
  55. 1540 PRINT"ZS";:Z9=1/(GL*GL+BL*BL)
  56. 1550 PRINT USING"#####.########";GS*Z8,-BS*Z8
  57. 1560 PRINT"ZL";
  58. 1570 PRINT USING"#####.########";GL*Z9,-BL*Z9
  59. 1580 IF P$="Y"THEN GOSUB 1850
  60. 1590 NEXT K:END
  61. 1600 FOR I=1 TO 2:FOR J=1 TO 2
  62. 1610 R=A(I,2*J-1):T=3.14159265#/180*A(I,2*J)
  63. 1620 A(I,2*J-1)=R*COS(T):A(I,2*J)=R*SIN(T)
  64. 1630 NEXT J:NEXT I:IF Z$="YP"THEN RETURN
  65. 1640 Q1=A(1,1)*A(2,3)+A(1,4)*A(2,2)
  66. 1650 Q1=Q1-A(1,2)*A(2,4)-A(1,3)*A(2,1)
  67. 1660 Q2=A(1,1)*A(2,4)+A(1,2)*A(2,3)
  68. 1670 Q2=Q2-A(1,3)*A(2,2)-A(1,4)*A(2,1)
  69. 1680 Q3=1-A(1,1)+A(2,3)-Q1
  70. 1690 Q4=A(2,4)-A(1,2)-Q2
  71. 1700 Q5=1+A(1,1)-A(2,3)-Q1
  72. 1710 Q6=A(1,2)-A(2,4)-Q2
  73. 1720 Q7=1+A(1,1)+A(2,3)+Q1
  74. 1730 Q8=A(1,2)+A(2,4)+Q2
  75. 1740 Q9=.02/(Q7*Q7+Q8*Q8)
  76. 1750 A(1,1)=Q9*(Q3*Q7+Q4*Q8)
  77. 1760 A(1,2)=Q9*(Q4*Q7-Q3*Q8)
  78. 1770 Q1=A(1,3):Q2=A(1,4)
  79. 1780 A(1,3)=-2*Q9*(Q1*Q7+Q2*Q8)
  80. 1790 A(1,4)=-2*Q9*(Q2*Q7-Q1*Q8)
  81. 1800 Q1=A(2,1):Q2=A(2,2)
  82. 1810 A(2,1)=-2*Q9*(Q1*Q7+Q2*Q8)
  83. 1820 A(2,2)=-2*Q9*(Q2*Q7-Q1*Q8)
  84. 1830 A(2,3)=Q9*(Q5*Q7+Q6*Q8)
  85. 1840 A(2,4)=Q9*(Q6*Q7-Q5*Q8):RETURN
  86. 1850 LPRINT"         REAL";"          IMAG"
  87. 1860 LPRINT"K";"        ";K:LPRINT"YS";
  88. 1870 LPRINT USING"#####.########";GS,BS
  89. 1880 LPRINT"YL";
  90. 1890 LPRINT USING"#####.########";GL,BL
  91. 1900 LPRINT"GT";
  92. 1910 LPRINT USING"#####.########";Z4;
  93. 1920 LPRINT"        DB":LPRINT"ZS";
  94. 1930 LPRINT USING"#####.########";GS*Z8,-BS*Z8
  95. 1940 LPRINT"ZL";
  96. 1950 LPRINT USING"#####.########";GL*Z9,-BL*Z9
  97. 1960 LPRINT:RETURN
  98.