home *** CD-ROM | disk | FTP | other *** search
- 10 ! PROGRAM "8970A" for HP9845 COMPUTER, Ver. 2.0, October 1986
- 20 ! I.ANGELOV, S.HAIMOV Institute of Electronics
- 30 ! blvd. Lenin 72, 1784 SOFIA, BULGARIA
- 40 ! --------------------------------------------------------------------------
- 50 ! The description of this program is given in DATA file "8970D" and in our
- 60 ! paper"COMPUTER-AIDED MICROWAVE NOISE MEASUREMENT",MICROWAVE JOURNAL,7,1986
- 70 ! --------------------------------------------------------------------------
- 80 OPTION BASE 1
- 90 DIM Title$[55],N(100,3),Lc3(100),Lc4(100)
- 100 EXIT GRAPHICS
- 110 PRINTER IS 16
- 120 PRINT PAGE
- 130 ! --------------------------------------------------------------------------
- 140 ! Initial interface values, PRESET for NFM and LO
- 150 Sel=7 ! Interface select code
- 160 Anf=8 ! 8970A HPIB address
- 170 Alo=19 ! 8350A or 8672A HPIB address
- 180 Dummy=7 ! Dummy device address
- 190 Plotad=5 ! 8972A HPIB address
- 200 Plotter$="8972A"! Plotter identifier string expression
- 210 ABORTIO Sel
- 220 REMOTE Sel,Anf,Alo
- 230 CLEAR Sel
- 240 OUTPUT Sel,Anf;"PR"
- 250 OUTPUT Sel,Alo;"IP"
- 260 ! --------------------------------------------------------------------------
- 270 ! Initial data: Date and Ambient temperature(Tec). No check for correct
- 280 ! input of the date. Tec=(5-40)deg.
- 290 LINPUT "ENTER THE DATE (Format:99/99/99, Default: No Date)?",Date$
- 300 Tec=25
- 310 INPUT "ENTER AMBIENT TEMPERATURE (degrees Celsium,Default 25)?",Tec
- 320 IF (Tec<5) OR (Tec>40) THEN 300
- 330 ! --------------------------------------------------------------------------
- 340 ! External LO Programs for HP8350A or HP86721
- 350 Lo=1
- 360 INPUT "ENTER THE OSCILLATOR: 8350(2-40GHz),8672(2-18GHz)?",Lo
- 370 IF (Lo=8350) OR (Lo=1) THEN Lo=1
- 380 IF (Lo=8672) OR (Lo=2) THEN Lo=2
- 390 IF (Lo<>1) AND (Lo<>2) THEN 360
- 400 IF Lo=1 THEN OUTPUT Sel,Anf;"J0"
- 410 IF Lo=2 THEN OUTPUT Sel,Anf;"J2","AC","EN","EN","EN",52,"EN","IF"
- 420 IF Lo=2 THEN OUTPUT Sel,Alo;"K0L3M0N7O3"
- 430 ! --------------------------------------------------------------------------
- 440 ! Measurement Device Selection
- 450 PRINT PAGE
- 460 PRINT "Amplifier : 1) 10-1500MHz - Mode 1.0"
- 470 PRINT " 2) 2000-60000MHz - Mode 1.1, with Ext.mixer, variable "
- 480 PRINT " LO and fixed IF frequency(10<=IF<=1500)"
- 490 PRINT " 3) Mode 1.2 - fixed LO and variable IF(10<=IF<=1500)-"
- 500 PRINT " frequency conversion in the measurement system"
- 510 PRINT " (single sideband measurement)"
- 520 PRINT
- 530 PRINT "Mixer : Mixer or receiver with fixed IF frequency, external"
- 540 PRINT " LO and frequency conversion in the DUT - Mode 1.3"
- 550 PRINT
- 560 PRINT "Receiver : Receiver or mixer with fixed frequency external LO an
- d"
- 570 PRINT " testing over a variable IF range - Mode 1.4"
- 580 A$="IF"
- 590 Loss$="N"
- 600 T_loss=Tec
- 610 Change$="First"
- 620 Kind$="A"
- 630 INPUT "WHAT ARE YOU GOING TO MEASURE([A]mplifier,[M]ixer,[R]eceiver)
- ?",Kind$
- 640 PRINT PAGE
- 650 IF Kind$="A" THEN Amplifier
- 660 IF Kind$="M" THEN Mixer
- 670 IF Kind$="R" THEN Receiver
- 680 BEEP
- 690 GOTO 620
- 700 ! --------------------------------------------------------------------------
- 710 Amplifier: ! *****
- 720 INPUT "WHAT KIND OF AMPLIFIER: Fix.[IF](Mode 1.0 or 1.1) , [V]ar.IF(Mo
- de 1.2)?",A$
- 730 IF A$="V" THEN A$="LO-"
- 740 IF A$="LO-" THEN INPUT "SELECT SINGLE SIDEBAND OFFSET(LSB or USB): Fix.[L
- O-]IF , Fix.[LO+]IF ?",A$
- 750 IF (A$<>"LO-") AND (A$<>"LO+") AND (A$<>"IF") THEN 580
- 760 IF A$="IF" THEN 950
- 770 !
- 780 ! Amplifier with LO-IF or LO+IF
- 790 INPUT "ENTER: Start freq., Stop freq., Step size, LO freq.(All in MHz)?"
- ,F1,F2,F3,F4
- 800 IF (F1>F2) OR (F3>F2-F1) OR (F2-F1>1500) OR (F3<=0) OR (F4<2000) OR (F4>60
- 000) THEN 790
- 810 IF A$="LO-" THEN OUTPUT Sel,Anf;"B1"
- 820 IF A$="LO+" THEN OUTPUT Sel,Anf;"B2"
- 830 OUTPUT Sel,Anf;"E2"
- 840 A$="LO"
- 850 OUTPUT Sel,Anf;"FA",F1,"EN","FB",F2,"EN","SS",F3,"EN","LF",F4,"EN","TC",27
- 3.2+Tec,"EN"
- 860 Fr1=F1
- 870 Fr2=F2
- 880 Fr3=F3
- 890 Fr4=F4
- 900 ON Lo GOSUB S8350a,S8672a
- 910 GOSUB Smooth
- 920 Title$="CONNECT FILTER AND EXT. MIXER!"
- 930 GOTO 1330
- 940 !
- 950 ! Amplifier with Fix.IF
- 960 INPUT "ENTER:Start freq.,Stop freq.,Step size,IF freq.(All in MHZ)?",F1,
- F2,F3,F4
- 970 IF (F3<=0) OR (F1<10) OR (F1>F2) OR (F1<2000) AND (F2>1500) OR (F2>60000)
- OR (F3>F2-F1) THEN 960
- 980 IF (F1>=2000) AND ((F4<10) OR (F4>1500)) THEN 960
- 990 Fr1=F1
- 1000 Fr2=F2
- 1010 Fr3=F3
- 1020 Fr4=F4
- 1030 IF F1<=1500 THEN OUTPUT Sel,Anf;"E0"
- 1040 IF F1>=2000 THEN OUTPUT Sel,Anf;"E1"
- 1050 GOSUB Smooth
- 1060 OUTPUT Sel,Anf;"FA",F1,"EN","FB",F2,"EN","SS",F3,"EN","TC",273.2+Tec,"EN"
- 1070 IF F1<=1500 THEN 1320
- 1080 OUTPUT Sel,Anf;"IF",F4,"EN"
- 1090 Title$="CONNECT EXT. MIXER"
- 1100 GOTO 1330
- 1110 ! -------------------------------------------------------------------------
- -
- 1120 Mixer:! *****
- 1130 OUTPUT Sel,Anf;"E3"
- 1140 PRINT "10<=IF<=1500"
- 1150 F4=150
- 1160 INPUT "ENTER: IF_freq.(Default 150MHz)?",F4
- 1170 IF (F4<10) OR (F4>1500) THEN 1140
- 1180 GOSUB Smooth
- 1190 OUTPUT Sel,Anf;"IF",F4,"EN","TC",273.2+Tec,"EN"
- 1200 GOTO 1320
- 1210 ! -------------------------------------------------------------------------
- 1220 Receiver:! *****
- 1230 OUTPUT Sel,Anf;"E4"
- 1240 PRINT "10<=IF<=1500"
- 1250 INPUT "ENTER: Start IF_freq.,Stop IF_freq.,Step size (All in MHz)?",F1,F
- 2,F3
- 1260 IF (F1<=10) OR (F2>1500) OR (F2<F1) OR (F3<=0) OR (F3>F2-F1) THEN 1250
- 1270 Fr1=F1
- 1280 Fr2=F2
- 1290 Fr3=F3
- 1300 GOSUB Smooth
- 1310 OUTPUT Sel,Anf;"FA",F1,"EN","FB",F2,"EN","SS",F3,"EN","TC",273.2+Tec,"EN"
- 1320 Title$="CONNECT NOISE SOURCE DIRECTLY TO NOISE FIGURE METER"
- 1330 PRINT PAGE
- 1340 ! -------------------------------------------------------------------------
- 1350 ! Calibration
- 1360 PRINT "CONNECT SYSTEM FOR CALIBRATION"
- 1370 PRINT Title$
- 1380 BEEP
- 1390 INPUT "WHEN READY, PRESS CONT KEY",T$
- 1400 GOSUB Calibrate
- 1410 PRINT PAGE
- 1420 ! -------------------------------------------------------------------------
- 1430 ! Transfer control, Loss compensation, LO Output power(only for HP8672A)
- 1440 IF Change$="N" THEN LINPUT "CHANGE: Trans.control,Loss comp.,Freq.range,LO
- power or Smooth.factor [Y/N]?",Change$
- 1450 IF (Change$<>"Y") AND (Change$<>"First") THEN Change$="N"
- 1460 IF Change$="N" THEN 1640
- 1470 LINPUT "Transfer control of LO [Y/N]?",T$
- 1480 IF T$="Y" THEN GOSUB Trans_control
- 1490 GOSUB Loss
- 1500 IF Kind$<>"M" THEN 1530
- 1510 INPUT "ENTER: Start LO_freq.,Stop LO_freq.,Step size(All in MHz)?",F1,F2
- ,F3
- 1520 IF (F1<10) OR (F1>F2) OR (F1<2000) AND (F2>1500) OR (F2>60000) OR (F3<=0)
- OR (F3>F2-F1) THEN 1510
- 1530 IF Lo=1 THEN 1630
- 1540 IF (Kind$="A") AND (A$="IF") AND (F1<=1500) THEN 1630
- 1550 C=10
- 1560 INPUT "ENTER: Local Oscillator OUTPUT POWER (6dBm,8dBm,10dBm)?",C
- 1570 IF (C<>10) AND (C<>8) AND (C<>6) THEN 1550
- 1580 IF C=6 THEN OUTPUT Sel,Alo;"L7"
- 1590 IF C=8 THEN OUTPUT Sel,Alo;"L5"
- 1600 IF C=10 THEN OUTPUT Sel,Alo;"L3"
- 1610 ! -------------------------------------------------------------------------
- 1620 ! Measures and Prints DUT Data
- 1630 PRINT PAGE
- 1640 IF Kind$="A" THEN PRINT "CONNECT AMPLIFIER"
- 1650 IF Kind$="M" THEN PRINT "CONNECT MIXER"
- 1660 IF Kind$="R" THEN PRINT "CONNECT RECEIVER"
- 1670 LINPUT "ENTER LABEL?",Title$
- 1680 IF Kind$="R" THEN 1720
- 1690 GOSUB Measure
- 1700 GOSUB Output
- 1710 GOTO 1740
- 1720 GOSUB Meas_rec
- 1730 GOSUB Output_rec
- 1740 List: BEEP
- 1750 LINPUT "[L]IST DATA, [P]LOT, [N]EXT MEASUREMENT,[S]TOP THE PROGRAM
- ?",L$
- 1760 IF L$="S" THEN 1820
- 1770 Change$="N"
- 1780 IF L$="N" THEN 1410
- 1790 IF ((L$="L") OR (L$="") OR (L$="P")) AND (Kind$<>"R") THEN 1700
- 1800 IF ((L$="L") OR (L$="") OR (L$="P")) AND (Kind$="R") THEN 1730
- 1810 GOTO 1750
- 1820 PRINT PAGE
- 1830 DISP "THE PROGRAM IS COMPLETED."
- 1840 WAIT 8000
- 1850 DISP ""
- 1860 END ! --------------- End of the Main Program --------------------
- 1870 ! .......................... SUBROUTINES ................................
- 1880 Smooth: ! ENTER SMOOTHING FACTOR TO HP8970A
- 1890 F5=8
- 1900 INPUT "ENTER:Smoothing factor(in power of two,Min=1,Max=64,Default 8)?
- ",F5
- 1910 IF (F5=1) OR (F5=2) OR (F5=4) OR (F5=8) OR (F5=16) OR (F5=32) OR (F5=64) T
- HEN 1940
- 1920 BEEP
- 1930 GOTO 1890
- 1940 OUTPUT Sel,Anf;"AF",F5,"EN"
- 1950 RETURN
- 1960 ! .........................................................................
- .
- 1970 Trans_control: ! TRANSFER CONTROL OF THE LO FROM HP9845 TO 8970A
- 1980 ! AND BACK AGAIN
- 1990 OUTPUT Sel,Anf;"T0"
- 2000 LOCAL Sel,Anf
- 2010 PASS CONTROL Sel,Dummy
- 2020 PRINT PAGE
- 2030 PRINT "**** 8970A is now in LOCAL mode and can control the LO by pressing
- 4.1 SP ****"
- 2040 PRINT "WHEN READY TO TRANSFER CONTROL TO 9845,KEY IN 4.0 SP ON THE 8970A F
- RONT PANEL."
- 2050 PRINT "PRESS CONT KEY ON THE 9845 "
- 2060 BEEP
- 2070 INPUT "PROGRAMM IS WAITING!",T$
- 2080 ABORTIO Sel
- 2090 REMOTE Sel,Anf
- 2100 IF Lo=2 THEN OUTPUT Sel,Alo;"K0L3M0N7O3"
- 2110 PRINT PAGE
- 2120 DISP "**9845 IS NOW THE CONTROLER*"
- 2130 RETURN
- 2140 ! ........................................................................
- 2150 S8672a: ! CONTROL FOR 8672A
- 2160 IMAGE "P",5Z,"Z0"
- 2170 IF (F<2000) AND ((Kind$="M") OR (Kind$="A") AND (A$="IF")) OR (Fr<2000) AN
- D (Kind$="R") THEN RETURN
- 2180 IF Kind$="R" THEN OUTPUT Sel,Alo USING 2160;Fr
- 2190 IF (Kind$="M") OR (Kind$="A") AND (A$="IF") THEN OUTPUT Sel,Alo USING 2160
- ;F
- 2200 IF (Kind$="A") AND (A$="LO") THEN OUTPUT Sel,Alo USING 2160;F4
- 2210 WAIT 20
- 2220 RETURN
- 2230 ! ........................................................................
- 2240 S8350a: ! CONTROL FOR 8350A
- 2250 IF (F<2000) AND ((Kind$="M") OR (Kind$="A") AND (A$="IF")) OR (Fr<2000) AN
- D (Kind$="R") THEN RETURN
- 2260 IMAGE "CW",5Z,"MZ"
- 2270 IF Kind$="R" THEN OUTPUT Sel,Alo USING 2260;Fr
- 2280 IF (Kind$="M") OR (Kind$="A") AND (A$="IF") THEN OUTPUT Sel,Alo USING 2260
- ;F
- 2290 IF (Kind$="A") AND (A$="LO") THEN OUTPUT Sel,Alo USING 2260;F4
- 2300 OUTPUT Sel,Alo;"M1","M0"
- 2310 WAIT 60
- 2320 RETURN
- 2330 ! .........................................................................
- 2340 Loss: ! ENTER OR MEASUREMENT LOSS COMPENSATION
- 2350 OUTPUT Sel,Anf;"L0"
- 2360 PRINT "PERMITTED RESPONSES:"
- 2370 PRINT "N - without compensation;"
- 2380 PRINT
- 2390 PRINT "F - fixed input and output losses (in dB);"
- 2400 PRINT
- 2410 PRINT "V - varying losses will be measured or manually entered"
- 2420 PRINT " (only for amplyfiers);"
- 2430 PRINT
- 2440 PRINT "M - measured losses in the Mode V will be used."
- 2450 Ncab=0
- 2460 DISP "LOSS COMPESATION:[N]o,[F]ix.,[V]ar.,[M]easured Var. (Default
- ";CHR$(135);Loss$;CHR$(128);")?";
- 2470 INPUT "",Loss$
- 2480 PRINT PAGE
- 2490 T_loss=Tec
- 2500 IF (Loss$="N") OR (Loss$="F") OR (Loss$="V") OR (Loss$="M") THEN 2540
- 2510 Loss$="N"
- 2520 BEEP
- 2530 GOTO 2360
- 2540 IF Loss$="N" THEN RETURN
- 2550 IF Loss$="F" THEN 2900
- 2560 IF ((Kind$="R") OR (Kind$="M")) AND ((Loss$="V") OR (Loss$="M")) THEN 2510
- 2570 IF Loss$="V" THEN 2600
- 2580 Loss$="V"
- 2590 RETURN
- 2600 LINPUT "[M]anual entry or Measurement with [N]oise Figure Meter?",T$
- 2610 IF T$="M" THEN 3140
- 2620 IF (T$<>"") AND (T$<>"N") THEN 2600
- 2630 Key=1
- 2640 !
- 2650 ! Loss compensation measurement
- 2660 BEEP
- 2670 INPUT "CONNECT INPUT CABLE!(then press CONT key)",T$
- 2680 GOSUB Measure
- 2690 C=0
- 2700 FOR F=F1 TO F2 STEP F3
- 2710 C=C+1
- 2720 Lc3(C)=-N(C,1)
- 2730 IF (F+F3>F2) AND (F<>F2) THEN F=F2-F3
- 2740 NEXT F
- 2750 BEEP
- 2760 INPUT "CONNECT OUTPUT CABLE!(then press CONT key)",T$
- 2770 GOSUB Measure
- 2780 C=0
- 2790 FOR F=F1 TO F2 STEP F3
- 2800 C=C+1
- 2810 Lc4(C)=-N(C,1)
- 2820 IF (F+F3>F2) AND (F<>F2) THEN F=F2-F3
- 2830 NEXT F
- 2840 BEEP
- 2850 Key=0
- 2860 DISP "ENTER LOSS TEMPERATURE( Default ";CHR$(135);VAL$(T_loss)&CHR$(179)&C
- HR$(128)&"C ";")?";
- 2870 INPUT "",T_loss ! No check for correct input
- 2880 PRINT PAGE
- 2890 RETURN
- 2900 Ncab=1
- 2910 IF Kind$="R" THEN 3000
- 2920 PRINT "PERMITTED RESPONSES:"
- 2930 PRINT "1 - one pairs of cables working at the temperature of measurement
- "
- 2940 PRINT
- 2950 PRINT "2 - two pairs of cables: the first working at the temperature of"
- 2960 PRINT " measurement, and the second - at the ambient temperature."
- 2970 INPUT "One or two pairs of cables [1,2]?",Ncab
- 2980 IF (Ncab<>1) AND (Ncab<>2) THEN 2900
- 2990 IF Ncab=2 THEN PRINT USING "19(/),11A";"First pair:"
- 3000 DISP "LOSS COMPENS. before DUT(Default";CHR$(135);Lc1;CHR$(128);"dB) and a
- fter DUT(Default";CHR$(135);Lc2;CHR$(128);"dB) ?";
- 3010 INPUT "",Lc1,Lc2 ! No check for correct input
- 3020 IF Ncab<>2 THEN 3080
- 3030 PRINT USING "19(/),12A";"Second pair:"
- 3040 DISP "LOSS COMPENS. before DUT(Default";CHR$(135);Lc5;CHR$(128);"dB) and a
- fter DUT(Default";CHR$(135);Lc6;CHR$(128);"dB) ?";
- 3050 INPUT "",Lc5,Lc6 ! No check for correct input
- 3060 PRINT PAGE
- 3070 DISP "First pair:";
- 3080 DISP "ENTER LOSS TEMPERATURE( Default ";CHR$(135);VAL$(T_loss)&CHR$(179)&C
- HR$(128)&"C ";")?";
- 3090 INPUT "",T_loss ! No check for correct input
- 3100 OUTPUT Sel,Anf;"LA",Lc1,"EN","LB",Lc2,"EN","LT",273.2+T_loss,"EN","L1"
- 3110 RETURN
- 3120 !
- 3130 ! Manual entry the Loss compensation
- 3140 L$=""
- 3150 MAT Lc3=ZER
- 3160 MAT Lc4=ZER
- 3170 T$="INPUT"
- 3180 FOR J=1 TO 2
- 3190 IF (L$="") OR (L$="N") AND (J=2) THEN PRINT PAGE
- 3200 IF (J=2) AND (L$="N") THEN PRINT USING "#,59A//16A";"Values which don't ne
- ed correction are passed by CONT key","CORRECTION FOR "
- 3210 PRINT USING "6A,6A";T$," CABLE"
- 3220 C=0
- 3230 FOR F=F1 TO F2 STEP F3
- 3240 C=C+1
- 3250 IMAGE +,"Frequency = ",5D," MHz"
- 3260 PRINT USING 3250;F
- 3270 IF J=1 THEN D=Lc3(C)
- 3280 IF J=2 THEN D=Lc4(C)
- 3290 DISP "Loss compensation (Default ";CHR$(135);D;CHR$(128);" dB)?";
- 3300 INPUT "",D
- 3310 IF J=1 THEN Lc3(C)=D
- 3320 IF J=2 THEN Lc4(C)=D
- 3330 IF (F+F3>F2) AND (F<>F2) THEN F=F2-F3
- 3340 NEXT F
- 3350 T$="OUTPUT"
- 3360 NEXT J
- 3370 PRINT PAGE
- 3380 PRINT "LOSS COMPENSATION FOR INPUT CABLE (in dB)"
- 3390 REDIM Lc3(C),Lc4(C)
- 3400 PRINT Lc3(*);
- 3410 PRINT
- 3420 PRINT "LOSS COMPENSATION FOR OUTPUT CABLE(in dB)"
- 3430 PRINT Lc4(*);
- 3440 REDIM Lc3(100),Lc4(100)
- 3450 LINPUT "Loss values OK [Y/N]?",L$
- 3460 IF L$<>"N" THEN 2860
- 3470 PRINT PAGE
- 3480 PRINT USING "#,59A//16A";"Values which don't need correction are passed by
- CONT key","CORRECTION FOR "
- 3490 GOTO 3170
- 3500 ! .........................................................................
- 3510 Calibrate: ! CALIBRATE THE SYSTEM
- 3520 PRINT PAGE
- 3530 PRINT "CALIBRATE"
- 3540 OUTPUT Sel,Anf;"Q1,T1,CA"
- 3550 STATUS Sel,Anf;R0
- 3560 FOR J=1 TO 3
- 3570 IF Kind$="M" THEN 3600
- 3580 FOR F=F1 TO F2 STEP F3
- 3590 IF (Kind$="A") AND (A$="IF") THEN ON Lo GOSUB S8350a,S8672a
- 3600 OUTPUT Sel,Anf;"T2"
- 3610 STATUS Sel,Anf;R0
- 3620 IF BIT(R0,0)<>1 THEN 3610
- 3630 IF Kind$="M" THEN 3670
- 3640 IF (F+F3>F2) AND (F<>F2) THEN F=F2-F3
- 3650 DISP F;"MHz"
- 3660 NEXT F
- 3670 NEXT J
- 3680 OUTPUT Sel,Anf;"Q0","T0","M2"
- 3690 BEEP
- 3700 RETURN
- 3710 ! .......................................................................
- 3720 Measure: ! MEASURE/STORE AMPLIFIER or MIXER DATA and VARYING LOSSES
- 3730 PRINT PAGE
- 3740 IF (Loss$="V") AND (Key=1) THEN 3820
- 3750 IF (Kind$="M") OR (Change$<>"Y") THEN 3830
- 3760 LINPUT "Do you want to reduce frequency range[Y/N]?",T$
- 3770 IF T$<>"Y" THEN 3800
- 3780 INPUT "ENTER:Start freq.,Stop freq.,Step size(All in MHZ)?",F1,F2,F3
- 3790 IF (F1<Fr1) OR (F2>Fr2) OR (F3>F2-F1) OR (F1>F2) OR (F3<=0) THEN 3780
- 3800 LINPUT "Do you want new Smoothing factor[Y/N]?",T$
- 3810 IF T$="Y" THEN GOSUB Smooth
- 3820 IF (Loss$="V") AND (Key=1) THEN PRINT "MEASUREMENT LOSSES"
- 3830 IF (Kind$="A") AND (Key=0) THEN PRINT "MEASUREMENT AMPLIFIER"
- 3840 IF (Kind$="M") AND (Key=0) THEN PRINT "MEASUREMENT MIXER"
- 3850 OUTPUT Sel,Anf;"M2,H1,T1"
- 3860 C=0
- 3870 FOR F=F1 TO F2 STEP F3
- 3880 C=C+1
- 3890 IF (Loss$<>"V") OR (Loss$="V") AND (Key=1) THEN 3920
- 3900 OUTPUT Sel,Anf;"L0"
- 3910 OUTPUT Sel,Anf;"LA",Lc3(C),"EN","LB",Lc4(C),"EN","LT",273.2+T_loss,"EN","L
- 1"
- 3920 IF (F1>=2000) AND ((Kind$="M") OR (Kind$="A") AND (A$="IF")) THEN ON Lo GO
- SUB S8350a,S8672a
- 3930 DISP F;"MHZ"
- 3940 IMAGE "FR",5D,"EN","T2"
- 3950 OUTPUT Sel,Anf USING 3940;F
- 3960 ENTER Sel,Anf USING "H,H,H";X,N(C,1),N(C,2)
- 3970 ON ERROR GOTO 3990
- 3980 N(C,3)=(10^(N(C,2)/10)-1)*(273.2+T_loss) ! To be tested !
- 3990 IF (F+F3>F2) AND (F<>F2) THEN F=F2-F3
- 4000 OFF ERROR
- 4010 NEXT F
- 4020 OUTPUT Sel,Anf;"T0"
- 4030 RETURN
- 4040 ! ........................................................................
- 4050 Meas_rec: ! MEASURE/STORE RECEIVER DATA
- 4060 PRINT PAGE
- 4070 IF Change$<>"First" THEN 4100
- 4080 INPUT "ENTER:Start LO_freq.,Stop LO_freq.,Step size(All in MHz)?",F4,F6,
- F7
- 4090 IF (F4<10) OR (F6>60000) OR (F6<F4) OR (F7>F6-F4) OR (F7<=0) OR (F6>1500)
- AND (F4<2000) THEN 4080
- 4100 IF (Change$="N") OR (Change$="First") THEN 4170
- 4110 LINPUT "Do you want to reduce IF frequency range[Y/N]?",T$
- 4120 IF T$<>"Y" THEN 4150
- 4130 INPUT "ENTER:Start IF_freq.,Stop IF_freq.,Step size(All in MHz)?",F1,F2,
- F3
- 4140 IF (F1<Fr1) OR (F2>Fr2) OR (F2<F1) OR (F3>F2-F1) OR (F3<=0) THEN 4130
- 4150 LINPUT "Do you want new Smoothing factor[Y/N]?",T$
- 4160 IF T$="Y" THEN GOSUB Smooth
- 4170 PRINT "MEASUREMENT RECEIVER"
- 4180 OUTPUT Sel,Anf;"M2,H1,T1"
- 4190 C=0
- 4200 FOR Fr=F4 TO F6 STEP F7
- 4210 IF Fr>=2000 THEN ON Lo GOSUB S8350a,S8672a
- 4220 IMAGE "LF",5D,"EN"
- 4230 OUTPUT Sel,Anf USING 4220;Fr
- 4240 FOR F=F1 TO F2 STEP F3
- 4250 C=C+1
- 4260 IMAGE "FR",4D,"EN","T2"
- 4270 OUTPUT Sel,Anf USING 4260;F
- 4280 IF Fr>=2000 THEN DISP "LO_freq.=";Fr;"MHz","IF_freq.=";F;"MHz"
- 4290 IF Fr<2000 THEN DISP "Freq.=";Fr;"MHz","IF_freq.=";F;"MHz"
- 4300 ENTER Sel,Anf USING "H,H,H";X,N(C,1),N(C,2)
- 4310 ON ERROR GOTO 4330
- 4320 N(C,3)=(10^(N(C,2)/10)-1)*(T_loss+273.2) ! To be tested !
- 4330 IF (F+F3>F2) AND (F<>F2) THEN F=F2-F3
- 4340 OFF ERROR
- 4350 NEXT F
- 4360 IF (Fr+F7>F6) AND (Fr<>F6) THEN Fr=F6-F7
- 4370 NEXT Fr
- 4380 OUTPUT Sel,Anf;"T0"
- 4390 RETURN
- 4400 ! .......................................................................
- 4410 Output: ! PRINTS/DRAWS DUT(Amplifier or Mixer) DATA TABLE
- 4420 PRINTER IS 16
- 4430 PRINT PAGE
- 4440 IF L$="P" THEN Plot
- 4450 PRINT TAB(28);Title$
- 4460 PRINT
- 4470 IF Date$="" THEN 4500
- 4480 PRINT TAB(55);"Date:";Date$
- 4490 PRINT
- 4500 IMAGE /,17X,"FREQ.",8X,"GAIN ",8X,"NF",10X,"NF"/17X,"[MHZ]",8X,"[DB]",8X,"
- [DB]",8X,"Te[K]"/
- 4510 IMAGE /,17X,"LO FREQ.",5X,"GAIN ",8X,"NF",10X,"NF"/17X,"[MHZ]",8X,"[DB]",8
- X,"[DB]",8X,"Te[K]"/
- 4520 IF Kind$<>"M" THEN PRINT USING 4500
- 4530 IF Kind$="M" THEN PRINT USING 4510
- 4540 C=0
- 4550 FOR F=F1 TO F2 STEP F3
- 4560 C=C+1
- 4570 E=N(C,2)/1E6
- 4580 IF E<90000 THEN GOTO 4650
- 4590 E=E-90000
- 4600 IMAGE 16X,5D,X,"ERROR=",2D," SEE PULLOUT CARD"
- 4610 PRINT USING 4600;F,E
- 4620 GOTO 4690
- 4630 IMAGE 16X,5D,7X,3D.2D,6X,3D.2D,6X,5D
- 4640 IF Ncab<>2 THEN 4680
- 4650 N(C,1)=N(C,1)+Lc5+Lc6 ! To be tested !
- 4660 N(C,2)=N(C,2)-Lc5 ! To be tested !
- 4670 N(C,3)=(10^(N(C,2)/10)-1)*(273.2+Tec) ! To be tested !
- 4680 PRINT USING 4630;F,N(C,1),N(C,2),N(C,3)
- 4690 IF (F+F3>F2) AND (F<>F2) THEN F=F2-F3
- 4700 NEXT F
- 4710 IF Ncab=2 THEN Ncab=3
- 4720 IMAGE //23X,3A,4D,"MHZ",5X,"SMOOTHING=",3D
- 4730 IMAGE 10X,"LOSS COMPENSATION: before DUT=",DD.D,"dB",3X,"after DUT=",DD.D,
- "dB",3X,"T=",SDDD,A,"C"
- 4740 IMAGE 10X," before DUT=",DD.D,"dB",3X,"after DUT=",DD.D,
- "dB",3X,"T=",SDDD,A,"C"
- 4750 IF (A$="IF") AND (F1<=1500) THEN PRINT SPA(31);"SMOOTHING=";F5
- 4760 IF NOT ((A$="IF") AND (F1<=1500)) THEN PRINT USING 4720;A$&"=",F4,F5
- 4770 IF Loss$="F" THEN PRINT USING 4730;Lc1,Lc2,T_loss,CHR$(179)
- 4780 IF (Loss$="F") AND (Ncab=3) THEN PRINT USING 4740;Lc5,Lc6,Tec,CHR$(179)
- 4790 IF Loss$="V" THEN PRINT SPA(10),"LOSS COMPENSATION: varying"
- 4800 IF Hard=1 THEN 4860
- 4810 LINPUT "DO YOU WANT A HARD COPY[Y/N]?",T$
- 4820 IF T$<>"Y" THEN 4870
- 4830 PRINTER IS 0
- 4840 Hard=1
- 4850 GOTO 4450
- 4860 Hard=0
- 4870 PRINTER IS 16
- 4880 RETURN
- 4890 ! ........................................................................
- 4900 Output_rec: ! PRINTS/DRAWS DUT(Receiver) DATA TABLE
- 4910 PRINTER IS 16
- 4920 PRINT PAGE
- 4930 IF L$="P" THEN Plot
- 4940 C=0
- 4950 Num=(F2-F1)/F3+1
- 4960 IF INT(Num)<>Num THEN Num=INT(Num)+1
- 4970 FOR Fr=F4 TO F6 STEP F7
- 4980 PRINT
- 4990 PRINT TAB(24);Title$
- 5000 PRINT
- 5010 IF Date$="" THEN 5040
- 5020 PRINT TAB(55);"Date:";Date$
- 5030 PRINT
- 5040 PRINT TAB(24);"LO_freq.=";Fr;"MHz"
- 5050 IMAGE /,17X," IF .",8X,"GAIN ",8X,"NF",10X,"NF"/17X,"[MHZ]",8X,"[DB]",8X,"
- [DB]",8X,"Te[K]"/
- 5060 PRINT USING 5050
- 5070 C=C-Num*Hard
- 5080 FOR F=F1 TO F2 STEP F3
- 5090 C=C+1
- 5100 E=N(C,2)/10^6
- 5110 IF E<90000 THEN GOTO 5160
- 5120 E=E-90000
- 5130 IMAGE X,"LO_freq.=",5D,3X,"IF_freq=",4D,2X,"ERROR=",2D," SEE PULLOUT CARD"
- 5140 PRINT USING 5130;Fr,F,E
- 5150 GOTO 5180
- 5160 IMAGE 16X,5D,7X,3D.2D,6X,3D.2D,6X,5D.D
- 5170 PRINT USING 5160;F,N(C,1),N(C,2),N(C,3)
- 5180 IF (F+F3>F2) AND (F<>F2) THEN F=F2-F3
- 5190 NEXT F
- 5200 IF Hard=1 THEN 5280
- 5210 LINPUT "DO YOU WANT A HARD COPY[Y/N]?",T$
- 5220 IF T$<>"Y" THEN 5320
- 5230 PRINTER IS 0
- 5240 Hard=1
- 5250 GOTO 4980
- 5260 PRINT
- 5270 PRINT
- 5280 IF Hard=1 THEN PRINT USING 5340;F5,T_loss,CHR$(179)
- 5290 IF (Hard=1) AND (Loss$="F") THEN PRINT USING 5350;Lc1,Lc2
- 5300 Hard=0
- 5310 PRINTER IS 16
- 5320 IF (Fr+F7>F6) AND (Fr<>F6) THEN Fr=F6-F7
- 5330 NEXT Fr
- 5340 IMAGE //25X,"SMOOTHING=",2D,3X,"T=",SDDD,A,"C"
- 5350 IMAGE 10X,"LOSS COMPENSATION: before DUT=",DD.D,"dB",3X,"after DUT=",DD.D,
- "dB"
- 5360 PRINT USING 5340;F5,T_loss,CHR$(179)
- 5370 IF Loss$="F" THEN PRINT USING 5350;Lc1,Lc2
- 5380 Hard=0
- 5390 PRINTER IS 16
- 5400 RETURN
- 5410 ! .........................................................................
- 5420 Plot: ! DRAW GAIN and NOISE FIGURE GRAPHICS
- 5430 ! INITIAL VALUES
- 5440 D=Num=Fr=Bg=Tg=0
- 5450 IF Kind$<>"R" THEN 5540
- 5460 Fr=F4
- 5470 Num=(F2-F1)/F3+1
- 5480 IF INT(Num)<>Num THEN Num=INT(Num)+1
- 5490 PRINT "LO_frequency=";Fr
- 5500 LINPUT "DO YOU WANT GRAPHICS FOR THIS FREQUENCY[Y/N]?",T$
- 5510 IF T$<>"Y" THEN 7130
- 5520 IF Fr<>F4 THEN LINPUT "DO YOU WANT TO CHANGE DIMENSIONS[Y/N]?",T$
- 5530 IF T$<>"Y" THEN 5650
- 5540 LINPUT "Noise [F]igure or Noise [T]emperature?",T$
- 5550 Bn=0
- 5560 Tn=8
- 5570 IF T$<>"T" THEN INPUT "Noise Figure:BOTTOM SCALE,TOP SCALE(in dB, Default
- 0,8)?",Bn,Tn ! No check for correct input
- 5580 IF T$="T" THEN Tn=400
- 5590 IF T$="T" THEN INPUT "Noise Temperature:BOTTOM SCALE,TOP SCALE(in degrees
- Kelvin,Default 0,400)?",Bn,Tn ! No check for correct input
- 5600 Nt=2
- 5610 IF T$="T" THEN Nt=3
- 5620 Bg=0
- 5630 Tg=40
- 5640 INPUT "Gain:BOTTOM SCALE,TOP SCALE(in dB, Default 0,40)?",Bg,Tg ! No
- check for correct input
- 5650 PLOTTER IS 13,"GRAPHICS"
- 5660 GRAPHICS
- 5670 Plotter=13
- 5680 Ff=F2-F1
- 5690 C=Tn-Bn
- 5700 PEN 1
- 5710 LINE TYPE 1
- 5720 ! DEFINE THE AREAS.
- 5730 LOCATE 16,17,11,80
- 5740 SCALE 0,1,Bn,Tn
- 5750 AXES 0,C/8,1,Bn
- 5760 LOCATE 106,107,11,80
- 5770 SCALE 0,-1,Bn,Tn
- 5780 AXES 0,C/8,0,Bn
- 5790 LOCATE 17,106,10,11
- 5800 SCALE F1,F2,0,1
- 5810 AXES Ff/8,0,F1,1
- 5820 ! DRAW NOISE GRAPHIC.
- 5830 LOCATE 17,106,12,80
- 5840 SCALE F1,F2,Bn,Tn
- 5850 C=0
- 5860 PEN 2
- 5870 MOVE F1,N(1+D*Num,Nt)
- 5880 FOR F=F1 TO F2 STEP F3
- 5890 C=C+1
- 5900 DRAW F,N(C+D*Num,Nt)
- 5910 IF (F+F3>F2) AND (F<>F2) THEN F=F2-F3
- 5920 NEXT F
- 5930 ! DRAW GAIN GRAPHIC.
- 5940 LOCATE 17,106,12,80
- 5950 SCALE F1,F2,Bg,Tg
- 5960 C=0
- 5970 PEN 3
- 5980 IF Plotter=13 THEN LINE TYPE 5,1
- 5990 MOVE F1,N(1+D*Num,1)
- 6000 FOR F=F1 TO F2 STEP F3
- 6010 C=C+1
- 6020 DRAW F,N(C+D*Num,1)
- 6030 IF (F+F3>F2) AND (F<>F2) THEN F=F2-F3
- 6040 NEXT F
- 6050 ! TITLES THE X-Y COORDINATES AND LABELS.
- 6060 PEN 4
- 6070 C=Tg-Bg
- 6080 LINE TYPE 1
- 6090 LORG 4
- 6100 IF Date$="" THEN 6140
- 6110 CSIZE 2.5,1
- 6120 MOVE F1+.5*Ff,Tg+.09*C
- 6130 LABEL "Date:";Date$
- 6140 MOVE F1+.5*Ff,Tg+.05*C
- 6150 LABEL Title$
- 6160 IF Plotter<>13 THEN 6280
- 6170 MOVE F1+Ff/16,Bg
- 6180 DRAW F1+3*Ff/16,Bg
- 6190 CSIZE 2.5,.619
- 6200 MOVE F1+4.1*Ff/16,Bg
- 6210 LABEL "NOISE"
- 6220 LINE TYPE 5,1
- 6230 MOVE F1+3*Ff/8,Bg
- 6240 DRAW F1+4*Ff/8,Bg
- 6250 LINE TYPE 1
- 6260 MOVE F1+4.50*Ff/8,Bg
- 6270 LABEL "GAIN"
- 6280 CSIZE 2.8,.619
- 6290 PEN 1
- 6300 FOR F=F1 TO F2 STEP Ff/8
- 6310 MOVE F,Bg-.06*C
- 6320 LABEL USING "K";F
- 6330 NEXT F
- 6340 MOVE F1+.5*Ff,Bg-.13*C
- 6350 CSIZE 3,.8
- 6360 IF Kind$<>"R" THEN LABEL "FREQUENCY [MHz]"
- 6370 IF Kind$="R" THEN LABEL "IF FREQUENCY [MHz]"
- 6380 PEN 4
- 6390 MOVE F1+.5*Ff,Tg
- 6400 IF (Kind$<>"R") AND NOT ((A$="IF") AND (F1<=1500)) THEN LABEL A$;" freq.="
- ;F4;"MHz"
- 6410 IF Kind$="R" THEN LABEL "LO freq.=";Fr;"MHz"
- 6420 LORG 2
- 6430 PEN 3
- 6440 CSIZE 2.8,.619
- 6450 FOR F=Bg TO Tg STEP C/8
- 6460 MOVE F2+.03*Ff,F
- 6470 LABEL USING "3D.DD";F
- 6480 NEXT F
- 6490 LORG 4
- 6500 DEG
- 6510 LDIR 90
- 6520 SETGU
- 6530 CSIZE 3,.8
- 6540 MOVE 123,50
- 6550 LABEL "GAIN [dB]"
- 6560 RAD
- 6570 LDIR 0
- 6580 SETUU
- 6590 SCALE F1,F2,Bn,Tn
- 6600 PEN 2
- 6610 LORG 8
- 6620 C=Tn-Bn
- 6630 CSIZE 2.8,.619
- 6640 FOR F=Bn TO Tn STEP C/8
- 6650 MOVE F1-.025*Ff,F
- 6660 IF Nt=2 THEN LABEL USING "3D.DD";F
- 6670 IF Nt=3 THEN LABEL USING "4D";F
- 6680 NEXT F
- 6690 DEG
- 6700 LDIR 90
- 6710 LORG 6
- 6720 SETGU
- 6730 CSIZE 3,.8
- 6740 MOVE 0,50
- 6750 IF Nt=2 THEN LABEL "NOISE FIGURE [dB]"
- 6760 IF Nt=3 THEN LABEL "NOISE TEMPERATURE [K]"
- 6770 RAD
- 6780 LDIR 0
- 6790 SETUU
- 6800 BEEP
- 6810 IF Plotter=9872 THEN 7000
- 6820 SETGU
- 6830 LORG 3
- 6840 MOVE 0,95
- 6850 LABEL "TO CONTINUE PRESS CONT KEY"
- 6860 PRINT "TO CONTINUE PRESS CONT KEY"
- 6870 PAUSE
- 6880 PRINT PAGE
- 6890 LINPUT "DUMP GRAPHICS[Y/N]?",T$
- 6900 IF T$<>"Y" THEN 7040
- 6910 PEN -1
- 6920 MOVE 0,95
- 6930 LABEL "TO CONTINUE PRESS CONT KEY"
- 6940 OUTPUT 0 USING "#,K";CHR$(27)&"&l0T" !The perforations is ignored
- 6950 DUMP GRAPHICS
- 6960 OUTPUT 0 USING "#,K";CHR$(27)&"&l36T" !The perforations is retrieved
- 6970 GOTO 7030
- 6980 !
- 6990 ! MODES.
- 7000 PEN 4
- 7010 LINPUT "LETTER MODE[Y/N]?",T$
- 7020 IF T$="Y" THEN LETTER
- 7030 PEN 0
- 7040 SETUU
- 7050 LINPUT "DO YOU WANT THE PLOTTER HARD COPY[Y/N]?",T$
- 7060 IF T$<>"Y" THEN 7110
- 7070 PEN 1
- 7080 Plotter=9872
- 7090 PLOTTER IS Sel,Plotad,Plotter$
- 7100 GOTO 5690
- 7110 IF Plotter=9872 THEN PLOTTER Sel,Plotad IS OFF
- 7120 IF Kind$<>"R" THEN 7160
- 7130 Fr=Fr+F7
- 7140 D=(Fr-F4)/F7
- 7150 IF Fr<=F6 THEN 5490
- 7160 EXIT GRAPHICS
- 7170 RETURN
-