home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 1
/
HamRadio.cdr
/
tech
/
ee8
/
skymatch.bas
< prev
next >
Wrap
BASIC Source File
|
1989-01-23
|
4KB
|
98 lines
1000 CLS:PRINT' Filename is SKYMATCH
1010 PRINT"Filemane SKYMATCH is an accronym";
1020 PRINT" for Stern's K stability factor"
1030 PRINT"Y parameter impedance MATCHing ";
1040 PRINT"procedure for r.f. transistors."
1050 PRINT"This is a BASIC version of a TI-";
1060 PRINT"59 program that appeared in the"
1070 PRINT"May/June 1984 issue of RF Design";
1080 PRINT". Refer to this article for check"
1090 PRINT"solutions and diagrams. Line 119";
1100 PRINT" in this pgm should be STO 19 & "
1110 PRINT"line 126 should be RCL 16. Data ";
1120 PRINT"is correct. Rev 1.10 submitted"
1130 PRINT"by B.K. Erickson, May 26th, 1986"
1140 PRINT:PRINT" Press ENTER to continue";
1150 INPUT Z$:CLS:DIM A(2,4)
1160 PRINT"If the transistor data you have"
1170 PRINT" is in Polar S form. ENTER SP"
1180 PRINT" is in Polar Y form, ENTER YP"
1190 PRINT" is rectangular Y, then ENTER"
1200 INPUT Z$
1210 PRINT"Enter 4 values for X(11) & X(12)"
1220 INPUT A(1,1),A(1,2),A(1,3),A(1,4)
1230 PRINT"Enter 4 values for X(21) & X(22)"
1240 INPUT A(2,1),A(2,2),A(2,3),A(2,4)
1250 IF Z$="YP"OR Z$="SP"THEN GOSUB 1600
1260 PRINT"Want printout Y/N":INPUT P$
1270 PRINT"Enter K min, K max, K step"
1280 INPUT L,M,N:FOR K=L TO M STEP N
1290 Z1=A(1,3)*A(2,1)-A(1,4)*A(2,2)
1300 Z2=A(1,3)*A(2,2)+A(1,4)*A(2,1)
1310 Z3=SQR(Z1*Z1+Z2*Z2):Z4=K*(Z1+Z3)/2
1320 GS=SQR(Z4*A(1,1)/A(2,3))-A(1,1)
1330 GL=SQR(Z4*A(2,3)/A(1,1))-A(2,3)
1340 PRINT:Z5=-A(2,4)' Eval BS
1350 Z6=A(2,3)+GL:Z7=A(2,4)+Z5
1360 Z8=(Z2*Z6-Z1*Z7)/(Z6*Z6+Z7*Z7)
1370 BS=Z8-A(1,2):Z6=A(1,1)+GS:Z7=A(1,2)+BS
1380 Z8=1/(Z6*Z6+Z7*Z7)
1390 Z9=Z8*(Z2*Z6-Z1*Z7):BL=Z9-A(2,4)
1400 IF ABS((Z5-BL)/Z5)<.001 THEN 1420
1410 Z5=BL:GOTO 1350
1420 PRINT TAB(9);"REAL";TAB(23);"IMAG"
1430 PRINT"K";TAB(9);K:PRINT"YS";
1440 PRINT USING"#####.########";GS,BS
1450 PRINT"YL";:Z3=A(2,3)+GL:Z4=A(2,4)+BL
1460 PRINT USING"#####.########";GL,BL
1470 Z8=Z3*Z6-Z4*Z7:Z9=Z3*Z7+Z4*Z6
1480 Z8=Z8-Z1:Z9=Z9-Z2:PRINT"GT";
1490 Z5=1/(Z8*Z8+Z9*Z9)
1500 Z3=A(2,1)*A(2,1)+A(2,2)*A(2,2)
1510 Z4=10*LOG(4*Z3*Z5*GS*GL)/LOG(10)
1520 PRINT USING"#####.########";Z4;
1530 PRINT TAB(24);"DB":Z8=1/(GS*GS+BS*BS)
1540 PRINT"ZS";:Z9=1/(GL*GL+BL*BL)
1550 PRINT USING"#####.########";GS*Z8,-BS*Z8
1560 PRINT"ZL";
1570 PRINT USING"#####.########";GL*Z9,-BL*Z9
1580 IF P$="Y"THEN GOSUB 1850
1590 NEXT K:END
1600 FOR I=1 TO 2:FOR J=1 TO 2
1610 R=A(I,2*J-1):T=3.14159265#/180*A(I,2*J)
1620 A(I,2*J-1)=R*COS(T):A(I,2*J)=R*SIN(T)
1630 NEXT J:NEXT I:IF Z$="YP"THEN RETURN
1640 Q1=A(1,1)*A(2,3)+A(1,4)*A(2,2)
1650 Q1=Q1-A(1,2)*A(2,4)-A(1,3)*A(2,1)
1660 Q2=A(1,1)*A(2,4)+A(1,2)*A(2,3)
1670 Q2=Q2-A(1,3)*A(2,2)-A(1,4)*A(2,1)
1680 Q3=1-A(1,1)+A(2,3)-Q1
1690 Q4=A(2,4)-A(1,2)-Q2
1700 Q5=1+A(1,1)-A(2,3)-Q1
1710 Q6=A(1,2)-A(2,4)-Q2
1720 Q7=1+A(1,1)+A(2,3)+Q1
1730 Q8=A(1,2)+A(2,4)+Q2
1740 Q9=.02/(Q7*Q7+Q8*Q8)
1750 A(1,1)=Q9*(Q3*Q7+Q4*Q8)
1760 A(1,2)=Q9*(Q4*Q7-Q3*Q8)
1770 Q1=A(1,3):Q2=A(1,4)
1780 A(1,3)=-2*Q9*(Q1*Q7+Q2*Q8)
1790 A(1,4)=-2*Q9*(Q2*Q7-Q1*Q8)
1800 Q1=A(2,1):Q2=A(2,2)
1810 A(2,1)=-2*Q9*(Q1*Q7+Q2*Q8)
1820 A(2,2)=-2*Q9*(Q2*Q7-Q1*Q8)
1830 A(2,3)=Q9*(Q5*Q7+Q6*Q8)
1840 A(2,4)=Q9*(Q6*Q7-Q5*Q8):RETURN
1850 LPRINT" REAL";" IMAG"
1860 LPRINT"K";" ";K:LPRINT"YS";
1870 LPRINT USING"#####.########";GS,BS
1880 LPRINT"YL";
1890 LPRINT USING"#####.########";GL,BL
1900 LPRINT"GT";
1910 LPRINT USING"#####.########";Z4;
1920 LPRINT" DB":LPRINT"ZS";
1930 LPRINT USING"#####.########";GS*Z8,-BS*Z8
1940 LPRINT"ZL";
1950 LPRINT USING"#####.########";GL*Z9,-BL*Z9
1960 LPRINT:RETURN