home *** CD-ROM | disk | FTP | other *** search
Wrap
10 REM ********************************************* 20 REM * * 30 REM * RF DESIGN AID PROGRAM * 40 REM * * 50 REM * C. 1984 S. REIN * 60 REM * * 70 REM ********************************************* 80 DIM A(5,2),B(5,2),A1(10),A2(10),A3(10),A6(10),A7(10),C1(10),N(10) 90 DIM R(10),B8(10),B9(10),P3(10),P4(10),P5(10),P6(10),P7(10),P8(10) 95 CLS 100 PRINT "RF DESIGN AID PROGRAM" 110 PRINT "S. REIN 1/19/84" 120 REM****PRINT MENU**** 130 PRINT "ENTER DESIRED SELECTION:" 140 PRINT "1) INPUT MATCH WITH CONSTANT GAIN CIRCLES" 150 PRINT "2) INPUT MATCH WITH CONSTANT NOISE FIGURE CIRCLES" 160 PRINT "3) OUTPUT MATCH WITH CONSTANT GAIN CIRCLES" 170 PRINT "4) OUTPUT MATCH WITH CONSTANT OUTPUT POWER CONTOURS" 180 PRINT "5) OUPUT REFLECTION COEFFICIENT GIVEN SOURCE REFLECTION COEFFICIENT" 200 PRINT "6) INPUT REFLECTION COEFFICIENT GIVEN LOAD REFLECTION COEFFICIENT" 220 PRINT "7) EXIT PROGRAM" 240 INPUT S 250 ON S GOTO 260,1600,260,1960,260,260,2850 256 GOTO 260 260 PRINT "ENTER S11, S21, S12, AND S22" 270 A$(1)="S11":A$(2)="S21":A$(3)="S12":A$(4)="S22" 280 FOR K=1 TO 4 290 PRINT A$(K) 300 INPUT "MAGNITUDE";A(K,1) 310 INPUT "ANGLE";A(K,2) 320 M=A(K,1) 330 A=A(K,2)/57.2958 340 GOSUB 2940 350 B(K,1)=R 360 B(K,2)=I 365 NEXT K 366 ON S GOTO 370,1600,370,1960,2420,2420,130,2850 370 REM**********CONSTANT GAIN CIRCLE COMPUTATION********** 380 D1=B(1,1)*B(4,1)-B(1,2)*B(4,2)-(B(2,1)*B(3,1)-B(2,2)*B(3,2)) 390 D2=B(1,2)*B(4,1)+B(1,1)*B(4,2)-(B(2,2)*B(3,1)+B(2,1)*B(3,2)) 400 R=D1 410 I=D2 420 GOSUB 2870 430 D3=M 440 D4=A 450 B1=1+A(1,1)^2-A(4,1)^2-D3^2 460 B2=1+A(4,1)^2-A(1,1)^2-D3^2 470 C1=B(1,1)-(D1*B(4,1)+D2*B(4,2)) 480 C3=B(1,2)-(D2*B(4,1)-D1*B(4,2)) 490 C2=B(4,1)-(D1*B(1,1)+D2*B(1,2)) 500 C4=B(4,2)-(D2*B(1,1)-D1*B(1,2)) 510 R=C1 520 I=C3 530 GOSUB 2870 540 C5=M 550 C7=A 560 R=C2 570 I=C4 580 GOSUB 2870 590 C6=M 600 C8=A 610 K1=(1+D3^2-A(1,1)^2-A(4,1)^2)/(2*A(2,1)*A(3,1)) 620 IF K1<=1 THEN 770 630 G1=C1*(B1-SGN(B1)*SQR(B1^2-4*C5^2))/(2*C5^2) 640 G3=-(C3*(B1-SGN(B1)*SQR(B1^2-4*C5^2))/(2*C5^2)) 650 G2=C2*(B2-SGN(B2)*SQR(B2^2-4*C6^2))/(2*C6^2) 660 G4=-(C4*(B2-SGN(B2)*SQR(B2^2-4*C6^2))/(2*C6^2)) 670 R=G1 680 I=G3 690 GOSUB 2870 700 G5=M 710 G7=A 720 R=G2 730 I=G4 740 GOSUB 2870 750 G6=M 760 G8=A 770 R1=C1/(A(1,1)^2-D3^2) 780 R3=-(C3/(A(1,1)^2-D3^2)) 790 R9=A(2,1)*A(3,1)/(A(1,1)^2-D3^2) 800 R=R1 810 I=R3 820 GOSUB 2870 830 R5=M 840 R7=A 850 R2=C2/(A(4,1)^2-D3^2) 860 R4= -(C4/(A(4,1)^2-D3^2)) 870 R=R2 880 I=R4 890 GOSUB 2870 900 R6=M 910 R8=A 920 R0=A(2,1)*A(3,1)/ (A(4,1)^2-D3^2) 930 IF K1<=1 THEN 960 940 A1(1)=ABS(1-G5^2)/(1-A(4,1)^2+G5^2*(A(1,1)^2-D3^2)-2*(G1*C1-G3*C3)) 950 GOTO 970 960 A1(1)=1/(A(3,1)*A(2,1)) 970 FOR N=2 TO 5 980 A1(N)=A1(N-1)*.79438235# 990 NEXT N 1000 M1=A(1,1)^2-D3^2 1010 M2=A(4,1)^2-D3^2 1020 IF K1>1 THEN X=2 ELSE X=1 1030 FOR N=X TO 5 1040 A3(N)=SQR(1-2*K1*A(2,1)*A(3,1)*A1(N)+(A(2,1)*A(3,1)*A1(N))^2)/(1+M1*A1(N)) 1050 A0(N)=SQR(1-2*K1*A(2,1)*A(3,1)*A1(N)+(A(2,1)*A(3,1)*A1(N))^2)/(1+M1*A1(N)) 1060 A4=C1*A1(N)/(1+M1*A1(N)) 1070 A5=-C3*A1(N)/(1+M1*A1(N)) 1080 R=A4 1090 I=A5 1100 GOSUB 2870 1110 A6(N)=M 1120 A7(N)=A 1130 A8=C2*A1(N)/(1+M2*A1(N)) 1140 A9=-(C4*A1(N)/(1+M2*A1(N))) 1150 R=A8 1160 I=A9 1170 GOSUB 2870 1180 B8(N)=M 1190 B9(N)=A 1200 A2(N)=10*LOG(A1(N)*A(2,1)^2)/LOG(10) 1210 NEXT N 1220 A2(1)=10*LOG(A1(1)*A(2,1)^2)/LOG(10) 1230 GOSUB 2980 1240 IF K1<=1 THEN 1300 1250 LPRINT 1260 LPRINT USING "_MAXIMUM AVAILABLE GAIN: ##.## _dB";A2(1) 1270 LPRINT USING"_OPTIMUM GAIN SOURCE REFLECTION COEFFICIENT=#.##_<####";G5,G7*57.2958 1280 LPRINT USING"_OPTIMUM GAIN LOAD REFLECTION COEFFICIENT=#.##_<####";G6,G8*57.2958 1290 GOTO 1320 1300 LPRINT 1310 LPRINT USING "_MAXIMUM STABLE GAIN: ##.## _dB";A2(1) 1320 LPRINT 1330 LPRINT "CONSTANT GAIN CIRCLES ON SMITH CHART:" 1340 LPRINT 1350 IF S=1 THEN LPRINT "INPUT PLANE" ELSE LPRINT "OUTPUT PLANE" 1360 FOR N=X TO 5 1370 LPRINT 1380 LPRINT USING "##.## _dB GAIN CIRCLE";A2(N) 1390 LPRINT 1400 IF S=1 THEN T=A3(N) ELSE T=A0(N) 1410 IF S=1 THEN U=A6(N) ELSE U=B8(N) 1420 IF S=1 THEN W=A7(N) ELSE W=B9(N) 1430 LPRINT USING "_CENTER=#.##_<####";U,W*57.2958 1440 LPRINT USING "_RADIUS=#.##";T 1450 NEXT N 1460 LPRINT 1470 LPRINT USING "_STABILITY FACTOR (K)=##.##";K1 1480 IF K1>1 THEN 95 1490 LPRINT 1500 LPRINT "STABILITY CIRCLES ON SMITH CHART:" 1510 LPRINT:LPRINT "INPUT PLANE" 1520 LPRINT 1530 LPRINT USING "_CENTER=#.##_<####";R5,R7*57.2958 1540 LPRINT USING "_RADIUS=#.##";R9 1550 LPRINT:LPRINT "OUTPUT PLANE" 1560 LPRINT 1570 LPRINT USING "_CENTER=#.##_<####";R6,R8*57.2958 1580 LPRINT USING "_RADIUS=#.##";R0 1585 CLS 1590 GOTO 130 1600 REM ********CONSTANT NOISE FIGURE CIRCLE COMPUTATION******** 1610 PRINT "ENTER OPTIMUM NOISE SOURCE REFLECTION COEFFICIENT" 1620 INPUT "MAGNITUDE";A(5,1) 1630 INPUT "ANGLE";A(5,2) 1640 M=A(5,1) 1650 A=A(5,2)/57.2958 1660 GOSUB 2940 1670 B(5,1)=R 1680 B(5,2)=I 1690 PRINT "ENTER Rn (NORMALIZED)" 1700 INPUT Z 1710 PRINT "ENTER MINIMUM MOISE FIGURE IN dB" 1720 INPUT NF1 1722 PRINT "ENTER NOISE FIGURE STEPSIZE IN dB" 1724 INPUT S 1730 F1=10^(NF1/10) 1740 N(1)=0 1750 FOR N=2 TO 5 1760 NF2=NF1+(N-1)*S 1770 F2=10^(NF2/10) 1780 N(N)=(F2-F1)/(4*Z)*((1+B(5,1))^2+B(5,2)^2) 1790 C(N)=A(5,1)/(1+N(N)) 1800 R(N)=SQR(N(N)^2+N(N)*(1-A(5,1)^2))/(1+N(N)) 1810 NEXT N 1820 LPRINT 1830 LPRINT USING "_MINIMUM NOISE FIGURE: #.#_dB";NF1 1840 LPRINT USING "_OPTIMUM NOISE SOURCE REFLECTION COEFFICIENT=#.###_<####";A(5,1),A(5,2) 1850 LPRINT USING "_Rn=#.##";Z 1860 LPRINT 1870 LPRINT "CONSTANT NOISE FIGURE CIRCLES ON SMITH CHART:" 1880 FOR N=2 TO 5 1890 LPRINT 1900 LPRINT USING "#.#_dB NOISE FIGURE CIRCLE:";NF1+(N-1)*S 1910 LPRINT 1920 LPRINT USING "_CENTER=#.##_<####";C(N),A(5,2) 1930 LPRINT USING "_RADIUS=#.##";R(N) 1940 NEXT N 1945 CLS 1950 GOTO 130 1960 REM**********CONSTANT OUTPUT POWER CONTOUR COMPUTATION*********** 1965 PRINT "ENTER Vds IN VOLTS" 1967 INPUT V 1970 PRINT "ENTER Id IN MILLIAMPS" 1980 INPUT I1 2020 P1=10*LOG(V*I1/2)/LOG(10)-2 2030 P2=I1/V 2040 PRINT "ENTER SYSTEM IMPEDANCE IN OHMS" 2050 INPUT Z0 2060 Y0=1000/Z0 2070 PRINT "ENTER DRAIN CAPACITANCE IN pF" 2080 INPUT C:C=C*1E-12 2090 PRINT "ENTER BONDWIRE INDUCTANCE IN nH" 2100 INPUT L:L=L*1E-09 2110 PRINT "ENTER FREQUENCY IN GHz" 2120 INPUT FREQ:FREQ=FREQ*1E+09 2130 LPRINT 2140 LPRINT USING "_Id =####_ MILLIAMPS";I1 2150 LPRINT 2160 LPRINT USING "_Vds=##.#_ VOLTS";V 2170 LPRINT 2180 LPRINT USING "_P1dB=+##.#_ dBm";P1 2190 LPRINT 2200 LPRINT USING "_SYSTEM IMPEDANCE=###.#_ OHMS";Z0 2210 LPRINT 2212 LPRINT USING "_DRAIN CAPACITANCE=##.##_PF";C*1E+12 2214 LPRINT 2216 LPRINT USING "_BONDWIRE INDUCTANCE=##.##_nH";L*1E+09 2217 LPRINT 2218 LPRINT USING "_FREQUENCY=##.##_ GHz";FREQ*1E-09 2219 LPRINT 2220 LPRINT "CONSTANT OUTPUT POWER CONTOURS ON SMITH CHART" 2230 LPRINT 2240 LPRINT USING "+##.#_ dBm POWER POINT:";P1 2250 ZL=1000/P2 2260 ZL1=ZL/((6.28319*FREQ*C*ZL)^2+1)/Z0 2270 ZL2=(6.28319*FREQ*C*ZL^2/((6.28319*FREQ*C*ZL)^2+1)-6.28319*FREQ*L)/Z0 2280 LPRINT 2290 LPRINT USING "_Zopt(REAL)=##.##_ Zopt(IM)=##.##";ZL1,ZL2 2291 FOR N=2 TO 5 2292 P3(N)=P2*.794382^(N-1)/Y0 2294 P4(N)=ZL*.794382^(N-1)/Z0 2296 P5(N)=P3(N)/(1+P3(N)) 2300 P6(N)=P4(N)/(1+P4(N)) 2310 P7(N)=1/(1+P3(N)) 2320 P8(N)=1/(1+P4(N)) 2322 ZCR=(1-P6(N)^2)*Z0/(1+P6(N)^2-2*P6(N)) 2324 ZCG=(1-P5(N)^2)*Z0/(1+P5(N)^2+2*P5(N)) 2325 ZCR1=ZCR/((6.28319*FREQ*C*ZCR)^2+1)/Z0 2326 ZCR2=(6.28319*FREQ*C*ZCR^2/((6.28319*FREQ*C*ZCR)^2+1)-6.28319*FREQ*L)/Z0 2327 ZCG1=ZCG/((6.28319*FREQ*C*ZCG)^2+1)/Z0 2328 ZCG2=(6.28319*FREQ*C*ZCG^2/((6.28319*FREQ*C*ZCG)^2+1)-6.28319*FREQ*L)/Z0 2340 LPRINT 2350 LPRINT USING "+##.#_ dBm POWER CONTOUR:";P1+1-N 2360 LPRINT 2370 LPRINT USING "_CENTER=##.##_j##.## CENTER=##.##_j##.##";ZCR1,ZCR2,ZCG1,ZCG2 2380 LPRINT USING "_RADIUS=#.### _RADIUS=#.###";P8(N),P7(N) 2390 NEXT N 2395 CLS 2400 GOTO 130 2410 REM********OUTPUT-SOURCE/INPUT-LOAD REFLECTION COMPUTATION********** 2420 IF S=6 THEN 2450 2430 PRINT "ENTER SOURCE REFLECTION COEFFICIENT" 2440 GOTO 2460 2450 PRINT "ENTER LOAD REFLECTION COEFFICIENT" 2460 INPUT "MAGNITUDE";A(5,1) 2470 INPUT "ANGLE";A(5,2) 2480 M=A(5,1) 2490 A=A(5,2)/57.2958 2500 GOSUB 2940 2510 B(5,1)=R 2520 B(5,2)=I 2530 IF S=5 THEN D5=1-(B(1,1)*B(5,1)-B(1,2)*B(5,2)) ELSE D5=1-(B(4,1)*B(5,1)-B(4,2)*B(5,2)) 2540 IF S=5 THEN D6=-(B(1,1)*B(5,2)+B(1,2)*B(5,1)) ELSE D6=-(B(4,1)*B(5,2)+B(4,2)*B(5,1)) 2550 R=D5 2560 I=D6 2570 GOSUB 2870 2580 D7=M 2581 D8=A 2582 N1=(B(3,1)*B(2,1)-B(3,2)*B(2,2))*B(5,1)-(B(3,2)*B(2,1)+B(3,1)*B(2,2))*B(5,2) 2583 N2=(B(3,2)*B(2,1)+B(3,1)*B(2,2))*B(5,1)+(B(3,1)*B(2,1)-B(3,2)*B(2,2))*B(5,2) 2584 R=N1 2585 I=N2 2586 GOSUB 2870 2587 N4=M 2588 N5=A 2589 L1=N4/D7 2590 L2=N5-D8 2591 M=L1 2600 A=L2 2610 GOSUB 2940 2620 L3=R 2630 L4=I 2640 GOSUB 2870 2650 N4=M 2660 N5=A 2670 L1=N4/D7 2680 L2=N5-D8 2690 M=L1 2700 A=L2 2710 GOSUB 2940 2720 L3=R 2730 L4=I 2740 IF S=5 THEN L5=L3+B(4,1) ELSE L5=L3+B(1,1) 2750 IF S=5 THEN L6=-(L4+B(4,2)) ELSE L6=-(L4+B(1,2)) 2760 R=L5 2770 I=L6 2780 GOSUB 2870 2790 L7=M 2800 L8=A 2810 GOSUB 2980 2820 IF S=5 THEN LPRINT USING "_FOR A SOURCE REFLECTION COEFFICIENT OF #.##<####";A(5,1),A(5,2) ELSE LPRINT USING "_FOR A LOAD REFLECTION COEFFICIENT OF #.##_<####";A(5,1),A(5,2) 2830 IF S=5 THEN LPRINT USING "_OUTPUT REFLECTION COEFFICIENT=#.##_<####";L7,L8*(-57.2958) ELSE LPRINT USING "_INPUT REFLECTION COEFFICIENT=#.##_<####";L7,L8*(-57.2958) 2835 CLS 2840 GOTO 130 2850 END 2870 REM************SUBRUOTINE RECTANGULAR TO POLAR***************** 2880 M=SQR(R^2+I^2) 2890 A=ATN(I/R) 2900 IF R<0 THEN A=A+3.1415926# 2910 IF A>3.1415926# THEN A=A-6.283185200000001# 2920 RETURN 2930 END 2940 REM************SUBROUTINE POLAR TO RECTANGULAR****************** 2950 R=M*COS(A) 2960 I=M*SIN(A) 2970 RETURN 2980 REM************SUBROUTINE FOR PRINTING S DATA****************** 2990 LPRINT 3000 FOR N=1 TO 4 3010 LPRINT USING "\ \_=##.###_<####";A$(N),A(N,1),A(N,2) 3020 NEXT N 3030 RETURN 3040 END