home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 1
/
HamRadio.cdr
/
tech
/
design5
/
8970a.asc
< prev
next >
Wrap
Text File
|
1987-01-21
|
27KB
|
765 lines
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