RCS MEASUREMENT OF POLARIMETRIC ACTIVE RADAR CALIB RATORS by Kamal Sarabandi Yisok Oh Radiation Laboratory Department of Electrical Engineering, and Computer Science The University of Michigan PI: Fawwaz T. Ulaby JPL Contract 958744 June 19, 1990

S i

Abstract Practical aspects of polarimetric measurement of active radar calibrators (PARC) are discussed in this report. A new polarimetric calibration technique (STCT) is employed for polarimetric radar cross section measurement of L- and C-band PARCs. The amplitude and phase of the scattering matrix elements are given over a wide range of incidence angle for azimuth, elevation, 450, and 1350 planes. Tables for scattering matrix elements and the polarization signatures at boresight are also provided. i

Contents 1 Introduction 1 2 System Configuration and Measurement Setup 2 3 Calibration Procedure 6 4 Experimental Results 7 5 Conclusions 9 A Appendix A A-1 B Appendix B B-1 ii

List of Figures 1 Block diagram of the scatterometer system............. 3 2 Block diagram of the pulsing network.................. 3 3 Block diagram of the L-band microwave circuitry........... 5 4 Block diagram of the C-band microwave circuitry.......... 5 5 Automatic radar cross section measurement setup.......... 14 6 Time domain response of an L-band PARC............... 15 7 Time domain response of a C-band PARC.............. 15 8 The front panel of L- and C-band PARC's as seen by a radar..... 16 9 The orientation of L- and C-band PARC's for pattern measurement. 16 10 The azimuth and elevation polarization signature for L1 PARC.. 17 11 The 45~ and 1350 polarization signature for L1 PARC....... 18 12 The azimuth and elevation polarization signature for C1 PARC... 19 13 The 450 and 135~ polarization signature for C1 PARC...... 20 14 Azimuth pattern of amplitude of scattering matrix elements for L1 PARC................................... 21 15 Elevation pattern of amplitude of scattering matrix elements for L1 PARC................................... 22 16 45~ pattern of amplitude of scattering matrix elements for L1 PARC. 23 17 45* pattern of phase of scattering matrix elements for Li PARC... 24 18 135~ pattern of amplitude of scattering matrix elements for L1 PARC. 25 19 1350 pattern of phase of scattering matrix elements for L1 PARC.. 26 iii

20 Azimuth pattern of amplitude of scattering matrix elements for L2 PARC.................................... 27 21 Elevation pattern of amplitude of scattering matrix elements for L2 PARC................................... 28 22 45~ pattern of amplitude of scattering matrix elements for L2 PARC. 29 23 45~ pattern of phase of scattering matrix elements for L2 PARC... 30 24 135~ pattern of amplitude of scattering matrix elements for L2 PARC. 31 25 135~ pattern of phase of scattering matrix elements for L2 PARC.. 32 26 Azimuth pattern of amplitude of scattering matrix elements for L3 PARC.................................. 33 27 Elevation pattern of amplitude of scattering matrix elements for L3 PARC................................... 34 28 45~ pattern of amplitude of scattering matrix elements for L3 PARC. 35 29 450 pattern of phase of scattering matrix elements for L3 PARC... 36 30 135~ pattern of amplitude of scattering matrix elements for L3 PARC. 37 31 135~ pattern of phase of scattering matrix elements for L3 PARC.. 38 32 Azimuth pattern of amplitude of scattering matrix elements for C1 PARC................................... 39 33 Azimuth pattern of phase of scattering matrix elements for C1 PARC. 40 34 Elevation pattern of amplitude of scattering matrix elements for C1 PARC................................... 41 35 Elevation pattern of phase of scattering matrix elements for C1 PARC. 42 iv

36 450 pattern of amplitude of scattering matrix elements for C1 PARC. 43 37 135~ pattern of amplitude of scattering matrix elements for C1 PARC. 44 38 Azimuth pattern of amplitude of scattering matrix elements for C2 PARC.................................. 45 39 Azimuth pattern of phase of scattering matrix elements for C2 PARC. 46 40 Elevation pattern of amplitude of scattering matrix elements for C2 PARC.................................... 47 41 Elevation pattern of phase of scattering matrix elements for C2 PARC. 48 42 45~ pattern of amplitude of scattering matrix elements for C2 PARC. 49 43 135~ pattern of amplitude of scattering matrix elements for C2 PARC. 50 44 Azimuth pattern of amplitude of scattering matrix elements for C3 PARC................................. 51 45 Azimuth pattern of phase of scattering matrix elements for C3 PARC. 52 46 Elevation pattern of amplitude of scattering matrix elements for C3 PARC................................... 53 47 Elevation pattern of phase of scattering matrix elements for C3 PARC. 54 48 45~ pattern of amplitude of scattering matrix elements for C3 PARC. 55 49 135~ pattern of amplitude of scattering matrix elements for C3 PARC..................... 56 V

List of Tables 1 Elements of scattering matrix for L-band PARCs. The entries are in the form AijZLqij, where Aij is the RCS oij in dBsm (arj = 47rlsij 2) and /ij is the phase of sij in degrees.................. 12 2 Elements of scattering matrix for L-band PARCs. The entries are in the form Aijloij, where Aij is the RCS aij in dBsm (aij = 471'siji2) and kij is the phase of sij in degrees.................. 13 vi

1 Introduction Airborne and space-borne polarimetric imaging SAR has been shown to be an important remote sensing tool for the acquisition of quantitative information about the earth's environment on a global scale. In order to utilize the quantitative data scientifically, external calibration of the radar system is necessary. The external calibration of radar systems is performed by using a target with a specified radar cross section (RCS) known as a calibration target. Calibration targets, in general, can be categorized into two major groups: 1) passive calibrators and 2) active calibrators [1]. Although passive calibrators are more stable and reliable than the active ones, they are less desirable because of their large physical dimensions. In recent years, polarimetric active radar calibrators (PARC) have been used extensively and are planned to be employed for external calibration of SAR systems [2] in support of future spaceborne missions. The success of external calibration relies on the knowledge of the scattering matrix of the calibration target(s). Although it may be possible to estimate the elements of the scattering matrix for a calibration target to a reasonable extent, the manufacturing tolerances always leave a great deal of uncertainty in the estimation. Therefore it is imperative to measure the calibrators against a precise calibration target (such as a metallic sphere) under laboratory condition. This also reveals another drawback for passive calibrators with large physical dimensions, namely that the far-field condition and uniform illumination criteria cannot be met in the laboratory. I

Until recently, it has been very difficult to measure the scattering matrices of targets over a wide range of incidence angle and frequency with the desired accuracy. Advances in technology and calibration methods have made it possible to measure the elements of the scattering matrix with an accuracy of 0.5 dB in magnitude and 5~ in phase [3]. The purpose of this report is to document measurements of JPL's L- and Cband PARCs using the new calibration technique (STCT) given in Appendix A. The measurements were performed in the UM anechoic chamber i:sing a fully automated polarimetric scatterometer[4]. 2 System Configuration and Measurement Setup The polarimetric measurements of the PARCs were performed by L- and C-band scatterometers. A simplified block diagram of the scatterometer system is shown in Fig. (1). The scatterometer is an HP 8753A-based system with both phase and amplitude measurement capability and 100 dB dynamic range. The ability of the network analyzer to generate the time domain response of the frequency measurement allows us to separate the unwanted short-range signals from the desired target response (known as software gating). The sequence of polarization selection, data collection, and target orientation is performed via an HP 9000 series computer. The relay actuator energizes the frequency and polarization switches. The amplifier and pulsing network eliminates the short-range returns from the antenna and circulators to increase the dynamic range for RCS measurements [5]. 2

Figure l: Block diagram of the scatterometer system. Figure 2: Block diagram of the pulsing network. 3

In this scheme, the receiver is switched off during transmission and then reconnected when the target return is expected to arrive at the receiver. Since the switching is done at a much higher rate than the receiver's bandwidth the network analyzer does not sense that the incoming signal is pulsed and it is measured as if it were a CW signal. The block diagram of the amplifier and pulsing network is shown in Fig. (2). The synthesized source of the network analyzer spans the frequency range 300 KHz to 3 GHz and therefore for C-band up- and down-convertors are used. The block diagrams of the L- and C-band microwave circuitry are given in Figs. (3) and (4), respectively. The up-convertor of the C-band unit is a very stable microwave source operating at 6.5 GHz. The frequency range of the network analyzer for C-band measurement must be set to 1-1.5 GHz in order to operate the C-band scatterometer at 5-5.5 GHz. The operating frequency of the L-band system is 1.1 -1.4 GHz. A new orthomode transducer (OMT) and dual-polarized antenna were designed for this project at L-band. The overall cross-polarization isolation of the new OMT and antenna is better than 35 dB. Because PARC has a high gain amplifier, reflection from nearby objects might increase the feedback which would cause oscillation. To avoid this problem and also to have a very good signal to background ratio, the PARCs were mounted on a styrofoam pedestal in an anechoic chamber. The correct position of the PARCs with respect to the antenna coordinate system was accomplished by an azimuthover-elevation positioner as depicted in Fig. (5). The azimuth turntable 4

SPOT Switch Ciculator From Amplifier & Pulsing Network. To V-port of Antenna To H-port of Antenna From Relay Actuator To Amplifier & Pulsing Network Figure 3: Block diagram of the L-band microwave circuitry. From Amplifier & Pulsing Network To Amtpllier & PN Newor Figure 4: Block diagram of the C-band microwave circuitry. 5

is a computer controlled stepper motor with an accuracy of a fraction of a tenth of a degree and the elevation controller is a precise analog positioner. 3 Calibration Procedure To calibrate the PARCs, we used the single-target calibration technique (STCT) described in Appendix A. The error in measurement of scattering matrix using this technique is less than 0.5 dB in amplitude and 50 in phase. With the STCT the antenna cross-talk contamination and channel imbalances are obtained by measuring only a single calibration target, namely a metallic sphere. This technique is immune to errors caused by target alignment with respect to the antenna coordinate system. Using a four-port network approach it is shown that the measured scattering matrix of a target with scattering matrix s is given by M = 0 1 C l I 1 C l + N 0 R2 C 1 C 1 0 T2 where the R and T matrices are the receive and transmit channel imbalances, C is the antenna cross-talk contamination factor, and N is a matrix representing thermal noise and background reflections. The background contribution can be obtained by measuring the empty chamber and the effect of the thermal noise can be minimized by an integration process. By denoting the measured scattering matrix elements of the sphere and the PARC, respectively, by m?, and mu, the unknown scattering matrix elements of 6

the PARC can be obtained from SVV - (1-C2)2 [-2C2(. + ) + (1 + C)(+ 2 ] so -- C2)2 [-2C ( + + (1 + C2)(2 + C2)] so Svh = (1-'C) [2MO + 2C2M -(1 + C2)( M + m)] o hv = C2)2 [22 + 2C2t - (1 + C2)( + )] os Shv = (1 - C2 mh "02 MO MO m2 where so is the theoretical value for the diagonal elements of the sphere's scattering matrix. The cross-talk contamination factor is given by 1 ~ —wa) where a k m1-,1 and the branch of the square root is chosen such that Re [v/1- -] > 0. The uncertainty on the sign of C can be removed when measuring PARCs because the general trend of phase behavior is known. 4 Experimental Results The measurements were performed in a 14-meter long anechoic chamber. The PARC under test was mounted on a styrofoam pedestal on an azimuth-overelevation positioner. To assure that the PARC is not oscillating in the chamber, the energy flow between the receive and transmit antenna was monitored by inserting a 20 dB directional coupler between the amplifier and the transmit antenna. Also to avoid saturating the PARC's amplifier and scatterometer's receiver, the scatterometer transmit power was adjusted such that the PARC output power was around 5 dBm. For the actual RCS measurements the directional coupler was removed. 7

A 12-inch metallic sphere was used as the calibration target, and the signal to noise ratio was better than 30 dB in all cases. The L- and C-band measurements were performed over the frequency range 1.1-1.4 GHz and 5-5.5 GHz, respectively. All the data presented in this report are measurements at the center frequencies, namely 1.25 GHz for L-band and 5.3 GHz for the C-band. The backscattered radar cross section patterns were measured over the range of incidence angle from -40 to +40 degrees relative to the boresight direction in the azimuth, elevation, 450, and 135~ planes. The radar cross section of a PARC can be decomposed into two components. The first component is the contribution of the front panel and the antennas and the second component is the contribution of the delay line and amplifier. Using the range-gating capability of the scatterometers, the two responses can be separated. Figs. (6) and (7) represent the time-domain responses of an L-band and a C-band PARC, respectively, where the relative amplitudes of the two components can be compared. In all of the results shown in this report, the contribution of the front panel and the antennas has been gated out. In this study three L-band and three C-band PARCs were measured. The L-band PARCs are designated according to their serial number and the C-band PARCs designations are according to Fig. (8). In order to measure the RCS patterns in the desired planes, the PARCs were oriented as shown in Fig. (9). Tables 1 and 2 give the measured elements of the scattering matrices for L- and C-band at boresight for quick reference. 8

The polarization signature of PARCs L1 and C1 are plotted in Figs. (10) - (13). It is shown that co-polarized signatures for the case where the antennas are oriented 45~ with respect to vertical direction (45~ and 135~ for L-band and azimuth and elevation for C-band) are slightly different from the theoretical response due to small errors in the phase measurement. However, for the case where the antennas are parallel and perpendicular to the vertical direction (azimuth and elevation for L-band and 450 and 1350 for C-band) the errors in phase measurement do not affect the polarization signatures. In Figs. (14) - (49) the measured RCS patterns of L- and C-band PARCs are shown. The C-band patterns seem reasonable but the L-band patterns are not quite symmetric, the maximum RCS appears at about 100 from boresight, and the measured phases are very much different from the expected values. These problems are due to the fact that the transmit and receive antennas are very close to each other (touching). The antennas are in the near field of each other and therefore the amplitude and phase patterns are different from the patterns of isolated antennas. 5 Conclusions The radar cross section patterns of three L-band and three C-band PARCs were measured polarimetrically. The measurements were performed in an anechoic chamber and accurate orientation of the PARCs was achieved by a very precise azimuth-over-elevation positioner. The measurements show that the RCS is not very sensitive to changes in the 9

azimuth and elevation angles, but it is very sensitive to the rotation angle about the boresight direction. It is found that when the PARCs transmit and receive antennas are parallel and perpendicular to the vertical direction, small errors in the orientation angles or errors in phase measurement have a minor effect on calibration accuracy. It is also found that the close proximity of the L-band antennas has caused significant problems for the patterns and considerable errors in the scattering matrix elements. We recommend that the antennas be separated by at least one wavelength. 10

References [1] Brunfeldt, D.R., and F.T. Ulaby, " Active calibrators for radar calibration ", IEEE Trans. Geosci. Remote Sensing, vol 22, no 2, 1984. [2] Freeman, A., Y. Shen, and C.L. Werner, " Polarimetric SAR calibration experiment using active radar calibrators", IEEE Trans. Geosci. Remote Sensing, vol. 28, no. 2, 1990. [3] Sarabandi, K., and F.T. Ulaby, " A convenient technique for polarimetric calibration of radar systems", IEEE Trans. Geosci. Remote Sensing, submitted for publication. [4] Tassoudji, M.A., K. Sarabandi, and F.T. Ulaby, "Design consideration and implementation of the LCX polarimetric scatterometer (POLARSCAT)", Radiation Laboratory Report No. 022486-T-2, The University of Michigan, June 1989. [5] Liepa, V.V., K. Sarabandi, and M.A. Tassoudji, " A pulsed network analyzer based scatterometer", Proc. of IEEE Geosci. Remote Sens. Symp., Vancouver, July 1989. 11

vv vh hv hh L1 Az 1.9/0.0 -31.1/91.3 36.72L121.4 1.4/-120.0 El -6.1L0.0 35.0Z14.2 -53.2L-27.6 -2.5L-84.6 450 31.2Z0.0 30.6Z-13.4 30.6L197.0 29.9 L184.5 1350 31-.3L0.0 30.9L177.8 30.9L19.4 30.8L185.2 L2 Az -3.4L0.0 -24.6L-9.1 35.8L153.0 -3.3L-34.5 El -3.OL0.0 36.4L184.9 -47.6L-81.2 -2.7Z20.0 450 29.9L0.0 29.5L9.0 29.5L175.7 29.2L184.9 1350 30.8L0.0 30.6L187.8 30.6L-6.5 30.2Z182.4 L3 Az -2.7Z0.0 -57.6L-74.1 36.6L173.4 -2.6L186.6 El -17.4L0.0 38.8L-56.6 -44.2L202.4 -1.7L101.9 450 32.2L0.0 31.6L8.0 31.8L179.1 31.9L182.7 1350 32.6L0.0 32.2L186.7 32.2L0.3 32.3L183.3 Table 1: Elements of scattering matrix for L-band PARCs. The entries are in the form AijsLj, where Aij is the RCS ij, in dBsm (aij = 4irlsij12) and,ij is the phase of si, in degrees. 12

vv vh hv hh C1 Az 27.2L0.0 27.11187.2 27.1Z-1.7 27.11185.5 El 27.2L0.0 27.1L-3.1 27.0L183.7 26.8 180.8 450 -1.9L0.0 -24.2L119.0 32.8L-59.0 -7.1 1182.2 1350 -1.210.0 33.01-52.3 -46.01122.9 -3.11-163.6 C2 Az 26.7L0.0 26.7Z-2.7 26.71181.6 26.6 179.3 El 26.6z0.0 26.7Z180.1 26.71-0.2 26.81180.3 450 -19.610.0 32.5Z-148.8 -46.6Z52.2 -10.9 L145.8 1350 -40.2L0.0 -55.216.3 32.4 L-55.7 -15.61186.5 C3 Az '26.510.0 26.4L1.0 26.4L178.6 26.2L179.6 El 26.3L0.0 26.11180.0 26.1Z-1.3 25.9Z178.9 450 -5.210.0 32.3Z145.3 -51.01-18.6 -8.3L179.3 135~ -8.510.0 -44.3Z-141.4 31.5L46.8 -3.8L184.4 Table 2: Elements of scattering matrix for L-band PARCs. The entries are in the form Aji where A is the RCS aij in dBsm (uij = 4rlsij12) and Oij is the phase of sij in degrees. 13

'- - - - - - - - - - - - - - - - - - - --- - - - - - - - - - - - - - - - Anechoic Chamber I' I __ __ __ __ __ _____ __I Elevation Positioner Motor Controller Elevation Positioner Stepper Motor Controller I I Figure 5: Automatic radar cross section measurement setup. 14

- -. A 2-l I -- -..... ^ -.2 --- C2 LM 1 Avg 16 A/1 —m 109 MAG 10 aU/ Ht U C 10 d 24. 968 dB L. BA * - V 5 1 Sn REF-2 MAR EIR 1 —2 5 n 16.8I 8 4 ILn~~~~~~~,.[ I I CHI START 0 s STOP 400 ns Figure 6: Time domain response of an L-band PARC. CHI A/R-M log MAG 10 dB/ REF 0 dB; 33.923 dB Avg 16 t cm - C eANO - V 1 44 no 1 -1 MARKER 11-2 - I 4 n 13. 1 1 m 1 CHI START 0 S STOP 400 no Figure 7: Time domain response of a C-band PARC. 15

PARC front view: (L-band) PARC name: PARC serial number: PARC front view: (C-band) PARC name: Amplifier serial number: ~~361 [c~~~~~~~~B ~~~~3~~r L1 #1 L2 #2 L3 #3 C1 C2 #007 #015 C3 #008 Figure 8: The front panel of L- and C-band PARC's as seen by a radar. L-band PARC: C-band PARC: (C1) axis of rotation Azimuth axis of rotation axis of- rotation axis of rotation 450 Elevation 1350 axis o rdbotation axis of rotation axis d rotaMon axis of rotation Azi muth 450 Elevation 1350 Figure 9: The orientation of L- and C-band PARC's for pattern measurement. 16

Co-pol. L1 Azimuth Cross-pol. LI Azimuth v 90 'V 90 Co-pol. L1 Elevation Cross-pol. L1 Elevation Y40 v W90v - V 90 14 ~~90 w9 Figure 10: The azimuth and elevation polarization signature for L1 PARC. 17

Co-pol. L1 45~ Cross-pol. L1 450 50 940 90 w1 90 w. 90 Co-pol. L1 1350 Cross-pol. L1 1350 'V 90 '- 90 Figure 11: The 450 and 135~ polarization signature for L1 PARC. 18

Co-pol. C1 Azimuth Cross-pol. C1 Azimuth ~.~.75.25 'V _ 90 V 9v 0 w 90 wI 90 Co-pol. C1 Elevation Cross-pol. C1 Elevation 4e V90 v 90 Figure 12: The azimuth and elevation polarization signature for C1 PARC. 19

Co-pol. C1 45~ Cross-pol. C1 450 XI 90 Co-pol. C1 1350 Cross-pol. C1 1350 'V 90 vI 90 Figure 13: The 45~ and 1350 polarization signature for C1 PARC. 20

Azimuth Pattern (L1) 10. 5. E "A cn 1:4 0. -5. -10. -15. -20. L' -40. -30. -20. -10. 0. 10. 20. 30. 40. 40. 35. E r/ "0 ) a 30. 25. -30. \ t -! _.~~~~~, X,,,',,-,.,/:. I. I ~...I..I ~... I.. I. * I V -35. -40. I,.I'o "% A I I, I 0 I % ft. ". -sJ6 -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 14: Azimuth pattern of amplitude of scattering matrix elements for L1 PARC. 21

Elevation Pattern (L1) 10. 5. "0 C 0. -5. -10. -15. -20. L'A -40. -30. -20. -10. 0. 10. 20. 30. 40. 40. 35. "0 5 cn ci, Q 30. 25. -35. II p~~~ g g I I~ I I Ig SI It * *I S( I ) ~ ~~~~~~~ IS I I () () ~ ~ ~~~ CI ( ( I~S. -40. -45. 4 -4 I. ~L L 0. [ {! I [! I wI --........ -30. -20. -10. O. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 15: Elevation pattern of amplitude of scattering matrix elements for L1 PARC. 22

450 Pattern (L 1) 35. 30. E C0 u v:4 25. 20. 15-40. -40P -30. -20. -10. 0. 10. 20. 30. 40. 35. 30. cOn Q4 25. 20. 1-405. -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 16: 45~ pattern of amplitude of scattering matrix elements for L1 PARC. 23

45~ Pattern (L1) 200. I- 195. 190. 185. 180. 175. OMn- IOV 40. -30. -20. -10. 0. 10. 20. 30. 40. Z. -30. -20. -10. 0. 10. 20. 30. Z0 10. _.t I Ill~ i iIi 1%) ~ ~ %* 5. ' ]- IIt Ow[i 0. -5. 01 -10. -15. -20. -40. -30. -20. -10 0. 10. 20. 30. 40. 210. 205. r~ o) 200. 21 195. 190. 180. -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degres) Figure 17: 45~ pattern of phase of scattering matrix elements for L1 PARC. 24

1350 Pattem (L1) 35. 30. a "0 Q v: 25. 20. 15. L -40. -30. -20. -10. 0. 10. 20. 30. 40. 35. 30. r: "0 QMO 25. 20. 15. L -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 18: 1350 pattern of amplitude of scattering matrix elements for L1 PARC. 25

1350 Pattern (L1) 200......... 195. e, 190. a 185. 180. 175. O' 170. -40. -30. -20. -10. 0. 10. 20. 30. 40. 190. 185. E)H 180. C 175. 170. 165. 160. -40. -30. -20. -10. 0. 10. 20. 30. 40. 30. --. 25. 9 20. 15. 10. -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 19: 135~ pattern of phase of scattering matrix elements for L1 PARC. 26

Azimuth Pattern (L2) 10. 5. a 0. -5. -10. -15. -20. u.& -40. -30. -20. -10. 0. 10. 20. 30. 40. 40. 35. "00N a CTA I= %%-l cn 30. 25. -20. /'..~~~~~ ~ ~,AA..-.% D. S I * I U \. / %~I * II ~.\ /' * I I~ U *,, S., '. -25. -30. _' -40. I.... I.... I.... i -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 20: Azimuth pattern of amplitude of scattering matrix elements for L2 PARC. 27

Elevation Pattern (L2) 10. 5.? cn C.) q V: 0. -5. -10. -15. _ -20. -40. -30. -20. -10. 0. 10. 20. 30. 40. 40. 35. o~ V0 Q C4 30. 25. -35.. I I * % I. I I. I- ~ ~ i -40.-45. ' -40... i,., "I, I * II I * a I I.: -''. -.- I.:,,.. 'Y'I.'..:.. I I s. I. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 21: Elevation pattern of amplitude of scattering matrix elements for L2 PARC. 28

450 Pattern (L2) 35. 30. 25. Pa V CA 20. 15. L-40. -30. -20. -10. 0. 10. 20. 30. 40. 35. 30. 25. "c CD Pa 20. 15. -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 22: 450 pattern of amplitude of scattering matrix elements for L2 PARC. 29

450 Pattern (L2) 200. 195. 190. a 185. 180. 175. i h 170... f -40. -30. -20. -10. 0. 10. 20. 30. 40. 30. 25. 20. 15.,9 10. 5. - 0. -40. -30. -20. -10. O. 10. 20. 30. 40. 200. 3.. 195. 190. 185. 180. 175. -40. -30. -20. -1. 0. 10. 20. 30. 40. Figure 23: 450 pattern of phase of scattering matrix elements for L2 PARC. 30

1350 Pattern (L2) C4 C0 V: 35. 30. 25. 20. 15... -40. -30. -20. -10. 0. 10. 20. 30. 40. 35. 30. V F0 QC3 25. 20. 15. '3 20 - 0. -40. -30. -20. - 10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 24: 135~ pattern of amplitude of scattering matrix elements for L2 PARC. 31

135~ Pattern (L2) 200. 195. -. - l 190. z 185. X 180. 175. 170. -40. -30. -20. -10. 0. 10. 20. 30. 40. 200......... W l 195. 4.)M 190. C 185..m 180. 175. 170. -40. -30. -20. -10. 0. 10. 20. 30. 40. 10. I.. I.,.I,.I I I ' I I I I I * ' ' I I I..'. 5. I%_- OVW 0. 5. -10. -15. '20. -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 25: 1350 pattern of phase of scattering matrix elements for L2 PARC. 32

Azimuth Pattern (L3) Ei C43.,lz C.cn~ C) 10. 5. 0. -5. -10. -15. -20. L' -40. -30. -20. -10. 0. 10. 20. 30. 40. ca CT CT "r 40. 35. 30. 25. -35. -40. -45. '' -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 26: Azimuth pattern of amplitude of scattering matrix elements for L3 PARC. 33

Elevation Pattern (L3) 10. 5. ri v: cOn 0. -5. -10. -15. - -20. -40. -30. -20. -10. 0. 10. 20. 30. 40. 40. 35. c" U4 u v:4 30. 25. -35. I I I \ I % I aI I %,*ed &0 II II Io -40. 45. I' -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 27: Elevation pattern of amplitude of scattering matrix elements for L3 PARC. 34

450 Pattern (L3) C4 -O Q 35. 30. 25. 20. 15. -40. -30. -20. -10. 0. 10. 20. 30. 40. 35. 30. 25. EE &0 Q7 C4 V C4 20. 15. L.. -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 28: 45~ pattern of amplitude of scattering matrix elements for L3 PARC. 35

450 Pattern (L3) 200. 195. - O- v, E) 190. a 185. e) 180. 175. 170. -40. -30. -20. -10. 0. 10. 20. 30. 40. 15. 'hA 20. 15., -40. -30. -20. -10. 0. 10. 20. 30. 40. 200. 4 5, r I.I I I I ~ 195.- V 190. -40. -30. -20. -10. 0. 10. 20. 30. 40. 36

1350 Pattern (L3) 35. 30. v: - Qa 25. 20. 15. L-A. -40. -30. -20. -10. 0. 10. 20. 30. 40. 35. 30. cn az 0O ri 25. 20. 15. L -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 30: 1350 pattern of amplitude of scattering matrix elements for L3 PARC. 37

1350 Pattern (L3) 200... 195. a 190. n 185. -~ 180. 175.. Ohh w 170. -40. -30. - 20. -10. 0 200. 195. 190. 4 185. g 180. 175. - e " Ib-,, 170. -40. -30. -20. -10. 0 20.,. i 15. ' '- *Vi Ca # 10. 01 5. 10. -5. -10..30 20.. -40. -30. -20. -10. a 10. 20. 30. 40.!. 10. 20. 30. 40..... I.... I I.... I I........ I.... I.... I... l""l""i~/ 4 I _ _ _ 1 _ I 10. 20. 30. 40. Incidence Angle (Degrees) Figure 31: 1350 pattern of phase of scattering matrix elements for L3 PARC. 38

Azimuth Pattern (C1) 30. 25. E CA "0 cQ v: 20. - 1,5. 10. -40. -30. -20. -10. 0. 10. 20. 30. 40. 30. 25. "0 cn Le 20. 15. 10. __ -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 32: Azimuth pattern of amplitude of scattering matrix elements for C1 PARC. 39

Azimuth Pattern (C 1) 190. v I a) v~ C4 185. 180. 175. 1170. 1.... t.... I.... I.... I.... -417 0. -30. -20. - 10.. 10. 20. 30.. -40. -30. -20. -10. 0. 10. 20. -30. 4(). 190. 11-1% 185. CB s180. a. 175. 170. -4!..... I........ II... I I I~~~~~~~~~~~~ O. -30. -20. -10. 0. 10. 20. 30. 40. 10. 5. C, 14 C o. 2_. O L A i I I I LIILL I - i. r I 4 -10. '............ -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 33: Azimuth pattern of phase of scattering matrix elements for C1 PARC. 40

Elevation Pattern (C1) 30. 25. cn 20. 15. 10. -40. -30. -20. -10. 0. 10. 20. 30. 40. 30. 25. C4 rA "0 20. 15. 10. L. -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 34: Elevation pattern of amplitude of scattering matrix elements for C1 PARC. 41

Elevation Pattern (C 1) 190. ' I I [ I I I, 185. C~ 180. c) 175. 170..........,............... -40. -30. -20. -10. 0. 10. 20. 30. 40. 1....l l. l l. 0. rr -5. -10. -...A,~... A..JL~.. I~ ~.... i,&i.~I....t -40. -30. -20. -10. 0. 10. 20. 30. 40. 190.,, 185. 180. a5 175. 170. -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 35: Elevation pattern of phase of scattering matrix elements for C1 PARC. 42

450 Pattern (C1) 10. 5. EE co ce) "0 0. -5. -10. -15. _ -20. -40. -30. -20. -10. 0. 10. 20. 30. 40. 35. 30. CA Qtz Nfww 25. 20. -25. I — V. *5 * ~~~~~~~ ) * U.* a, g S~~~~~~~ I*~~~~~/ r~~~~~~~~U~ % c~~~~~~~~~~ P 55 S 1L ~ ~~I~~L I~YI -30. -35. ' -4 60 0. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 36: 450 pattern of amplitude of scattering matrix elements for C1 PARC. 43

1350 Pattern (C1) "0 cQ u 04) 10. 5 -15. -20. -40. -30. -20. -10. 35. 30. 25. 20. -40. 1 \ /' 0. 10. 20. 30. 40. "0 cn C-, Q -4 0. 3........ -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 37: 1350 pattern of amplitude of scattering matrix elements for C1 PARC. 44

Azimuth Pattern (C2) 30. 25. e C/2 cn 94 20. 15. 10. L -40, -30. -20. -10. 0. 10. 20. 30. 40. 30. 25. Pc:,.O ae _J 20. 15. 10. ' -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 38: Azimuth pattern of amplitude of scattering matnx elements for C2 PARC. 45

Azimuth Pattern (C2) 190. Ohk- vv _r 185. Gi 180. C 175. 170. A |., l.,... i l -40. -30. -20. -10. 0. 10. 20. 30. 40). 10........ svh- FIO 5. 0. CO. o-5. -10. -40. -30. -20. - 10. O. 10. 20. 30. 40. 190.,, 185. 1 180. ffi 175. 170. -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 39: Azimuth pattern of phase of scattering matrix elements for C2 PARC. 46

Elevation Pattern (C2) 30. 25. cn "0 CW Q 20. 15. 10. v-'-40. -30. -20. -10. 0. 10. 20. 30. 40. 30. 25. "0 ma 04 20. 15. 10. -'-40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 40: Elevation pattern of amplitude of scattering matrix elements for C2 PARC. 47

Elevation Pattern (C2) 190. 1:hh vv 185. L7 180. 175. 170. -40. -30. -20. -10. 0. 10. 20. 30. 40. 185. -.: 81 180. 175. 170............................. -40. -30. -20. -10. 0. 10. 20. 30. 40. 10. I I f wPl1 _o. 5. -50. -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 41: Elevation pattern of phase of scattering matrix elements for C2 PARC. 48

450 Pattern (C2) 10. 5. r" 0. -5. -10. -15. -20. L....... -40. -30. -20. -10. 0. 10. 20. 30. 40. 35. 30. E "0 1&4 - 25. 20. 1 -40. -45. -50. 1 * * * I.. " -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 42: 450 pattern of amplitude of scattering matrix elements for C2 PARC. 49

1350~ Pattern (C2) C43 '0 Q 10. 5. 0. -5. -10. -15. -20. ' -40. -30. -20. -10. 0. 10. 20. 30. 40, 35. 30. 25. 20...... avh 20. /,, cn "0 ce -35..\ I 4 % * % I I % Ig I. 6l. 1, -40. -45. L -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 43: 1350 pattern of amplitude of scattering matrix elements for C2 PARC. 50

Azimuth Pattern (C3) 30. 25. 20. E rA.. u V4 15. 10. '" -40. -30. -20. -10. 0. 10. 20. 30. 40. 30. 25. 20. v uC U 15. 10. L..' -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 44: Azimuth pattern of amplitude of scattering matrix elements for C3 PARC. 51

Azimuth Pattern (C3) 190. I '(hh- ()vv 185. 180. a 175. 170.. -40. -30. -20. -10. 0. 10. 20. 30. 40. 10. 8'Vh- _ v 5. 0. _ -5. -10. ~-40. -30. -20. -1 0. 10. 20. 30. 40. 190. 185. Z.i.i.I. 180. 175. -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 45: Azimuth pattern of phase of scattering matrix elements for C3 PARC. 52

Elevation Pattern (C3) 30. 25. E cn CO 7~ C4 u 20. 15. 10. -40. -30. -20. -10. 0. 10. 20. 30. 40. 30. 25. Cn at 20. 15. 10. "'' -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 46: Elevation pattern of amplitude of scattering matrix elements for C3 PARC. 53

Elevation Pattern (C3) 190..... 185. e3 180. a., 175. 170. -40. -30. -20. -10. 0. 10. 20. 30. 40. 190. 1-85.... I O 180. o175. 170. -40. -30. -20. -1 0. 10. 20. 30. 40. 10.. 5. z-I-I -0. -40. -30. -20. -1. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 47: Elevation pattern of phase of scattering matrix elements for C3 PARC. 54

450 Pattern (C3) 10. 5. EE cn u: v0 Q1 0. -5. -10. -15'. -20. L. -40. -30. -20. -10. 0. 10. 20. 30. 40. 35. 30. "0 U "O (A C) 04 25. 20. -40. -45. -50. L -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 48: 450 pattern of amplitude of scattering matrix elements for C3 PARC. 55

1350 Pattern (C3) 10. 5. "0 a: L) 0. -5. -10. -15. -20. L -40. -30. -20. -10. 0. 10. 20. 30. 40. 35. 30..I... I I..I. I... I... I... I...,, EE C4t' "0z cn L) a 25. 20. -35. -40. 45. L. -40. -30. -20. -10. 0. 10. 20. 30. 40. Incidence Angle (Degrees) Figure 49: 1350 pattern of amplitude of scattering matrix elements for C3 PARC. 56

APPENDIX A A CONVENIENT TECHNIQUE FOR POLARIMETRIC CALIBRATION OF SINGLE-ANTENNA RADAR SYSTEMS K. Sarabandi and F.T.Ulaby Abstract- This paper introduces a practical technique for calibrating singleantenna polarimetric radar systems. With this technique, only a single calibration target, such as a conducting sphere or a trihedral corner reflector, is needed to calibrate the radar system, both in amplitude and phase, for all linear polarization configurations. By using a metal sphere, which is orientation independent, error in calibration measurement is minimized, while simultaneously calibrating the crosspolarization channels. The antenna system and two orthogonal channels (in free space) are modeled as a four-port passive network. Upon using the reciprocity relations for the passive network, and assuming the cross-coupling terms of the antenna to be equal the cross-talk factors of the antenna system and the transmit and receive channel imbalances can be obtained from measurement of the backscatter from a metal sphere. For an X-band radar system with cross-polarization isolation of 25 dB, comparison of values measured for a sphere and a cylinder with theoretical values shows agreement within 0.4 dB in magnitude and 50 in phase. Also an effective polarization isolation of 50 dB is achieved using this calibration technique. A-1

A1 Introduction Accurate knowledge of the scattering matrix of a target is an important ingredient towards extracting biophysical information about the target. The scattering matrix of a target can be measured by using a set of orthogonal polarization. In practice, however, it is very difficult, if not impossible, to design an antenna system with perfect isolation between the orthogonal polarization channels, which leads to contamination of the measurements. In recent years, considerable effort has been devoted to the development of techniques for calibrating polarimetric radar systems. Calibration techniques available in the literature can be categorized into two major groups: 1) calibration techniques for imaging radars, and 2) calibration techniques for point-target measurement systems, which may also be appropriate for imaging radars. In the first group, the scattering properties of clutter are usually employed to simplify the calibration problem [Sheen and Kasischke, 1989]. van Zyl [1989] and Klein [1989] developed a method for estimating the cross-talk contamination of the antenna by assuming that the like- and cross-polarized responses of natural targets with azimuthal symmetry are uncorrelated. Among the point-target calibration techniques, the generalized calibration technique (GCT) by Whitt and Ulaby [1989] characterizes the distortion matrices (channel imbalances and antenna cross-talk) of the receive and transmit antenna by using three calibration targets. An eigenvalue approach is employed to solve for the distortion matrices. In a similar technique by Barnes [1986] the distortion matrices are obtained by using targets with specific scattering A-2

matrices. This technique is referred to by Ulaby et al. [1989] as the constrained calibration technique (CCT). Although, in principle, GCT and CCT can fully characterize the distortion matrices, they are very sensitive to target alignment and to the knowledge of the theoretical values of the scattering matrices of the calibration targets. A third calibration technique for point targets by Sarabandi, et al. [1989] uses a sphere and any other depolarizing calibration target (scattering matrix of this target need not to be known), and is therefore immune to errors caused by target orientation and lack of precise knowledge of the theoretical values of the calibration targets' scattering matrices. However, the drawback of this method, which is called the isolated-antenna calibration technique (IACT), is that it does not account for cross-talk contamination in the antenna. The isolated antenna assumption can lead to significant errors in the cross-polarized terms when the ratio of cross- to like-polarized terms is small and/or cross-talk contamination is large. To remove the drawback of the IACT while maintaining insensitivity to orientation of the calibration targets, we introduce in this paper a technique for calibrating single-antenna radar systems using a four-port network approach. The antenna system and two orthogonal directions in free space are modeled as a four-port network, and channel imbalances as well as the antenna cross-talk contamination are determined by measuring the backscatter from a single calibration target, namely a conducting sphere. This technique will henceforth be referred to as STCT, or single-target calibration technique. Like IACT, STCT is is insensitive to target orientation, but it also accounts for the antenna cross-talk contamination. If the A-3

antenna cross-talk contamination is very small (t 0), the STCT is not appropriate and the IACT should be used instead. The validity and accuracy of this technique were tested using X-band and Lband scatterometers, both in an anechoic chamber and under field conditions. Cylinders and spheres are used as test targets. Excellent agreement was obtained between the measured and theoretical values of the test target. Also the effective cross-polarization isolation obtained in this method was in the order of 50 dB. A2 Theoretical Formulation By defining a set of orthogonal directions in a plane perpendicular to the direction of propagation, the field components of the wave scattered by a given point target can be related to the components of the incident plane wave though the scattering matrix of the target s. The antenna structure of a polarimetric radar system must be designed in such a way that the transmit and receive polarizations are parallel to the specified orthogonal directions. In practice, however, it is not possible to construct antennas that are totally free of polarization contaminations, i.e., coupling between the orthogonal polarization ports of the antenna. Polarization contamination (antenna cross-talk) takes place in the orthogonal mode transducer (OMT) and in the antenna structure itself. Suppose the two orthogonal directions in free space are viewed as two ports of a four-port passive device that includes the OMT and the antenna structure (see Fig. 1). This four-port network can be characterized by a scattering matrix S A-4

which relates the incident wave vector V+ to the reflected wave vector V-, V- = SV+ where S11 S12 S13 S14 S21 S22 S23 S24 (A) S31 S32 S33 S34 S41 S42 S43 S44 Since the four-port device is passive its scattering matrix must be symmetric. Thus, si = $,i i,j E {1,2,3,4} If the reference plane of the nth port is translated outward by distance e,, the new scattering matrix for the device becomes [Collins, pp. 172, 1966] s' = ese where the translation matrix 9 is given by (A2) e-i,1' O o O 0 e-i#t2 0 0 = (A3) 0 0 e-/i.33 0 o O O e-/i44 In (3) /n is the propagation constant of the nth port transmission line. In this case, since ports 3 and 4 are two ports in free space, /3 = /4 = ko and the translation A-5

matrix must be modified to account for spherical propagation. If the target is located at a distance r from the radar system and the reference planes at ports 3 and 4 are translated to the target location, then the translation matrix becomes 1 0 0 0 0 1 0 0 00 0- ikr 0 r 0 0 0 C-iko r The scattering matrix, after translation of the reference planes of ports 3 and 4 by distance r, takes the following form S11 S12 S13e-ir 14-ikr $21 $22 S23e.-k.,r s24 e-iko~ ' = 2 r (A4) -kor e-ikor 2ikor e-2ikor S31 -'~ S32-~ S33 2 534 2 r r r 2 e-ikor e-ikOr e2kr e-2ikor S41 r 2 r S 42 4r2 44 r2 Note that here we have ignored the gain and effective areas of the transmit and receive antennas which will be included in the channel imbalances. The signal flow-chart of the antenna system and free space ports is shown in Fig. 2. Suppose the radar is equipped with a space discriminating filter (range gating filter) which is tuned at r. The filtered scattering matrix ( S") is then given by 0 0 S13 S14 0 0 $23 S24 e-iko' S31 S32 0 0 s41 S42 0 0 A-6

Basically, short-range reflections from the antenna system and multiple bounces between the antenna and the target have been gated out. The incident and reflected waves at each port can now be represented by two uncoupled matrix equations as follows [V] e-ikor S13 [ V4 (A5) Lv2Jr S23 $24 9+ V e-ik4r S31 S32 V+ On the other hand, the incident and reflected waves at ports 3 and 4 are the scattered and incident waves, respectively, of the target, which is represented by a two-port network and thus related to each other by the scattering matrix of the target s. That is, V3+ s,, sh Va [ V3 = 1 [ Sy Svh 1 3 1 (A7) V4+L hv Shh V4 Note that the scattering matrix used here is defined in the backscattering alignment convention since the orthogonal directions are specified independent of the incident and scattering directions. After rearranging (5)-(7) in order to relate the reflected waves to the incident waves at ports 1 and 2, in addition to employing the reciprocity property of the four-port network, we get V 1 e 2ikor S13 S14 i F s vh 1[ S13 S23 V1 1 = r2 I II I Svh(A8) V2 J S23 524 Shv 8hh S14 524 V2+ A-7

Upon normalizing with respect to the like-polarized channels (8) becomes LV2-J 0 S24 ][C2 1 [ Shv ShhJ C1] 1] S13 0 ~ + 0[ S24 V2+[ ] (A9) where C1 = S14/S13 and C2 = S23/S24 are the antenna cross-talk factors. So far we have modeled the antenna system, free space channel, and the target by a two-port network. To account for the effects of active circuits on the performance of the overall radar system, let us consider the block diagram depicted in Fig. 3. The transmit (Vtv, Vth) and receive (Vrv, Vrh) voltages are the quantities measured by the radar. The channel imbalance quantities (Ts, Th, Rp, Rh), which relate the transmit/receive voltages to the incident/reflected waves at port 1 and 2, account for variations (in both amplitude and phase) of the active circuits and the antenna gains. The transmit and receive channels of the radar system are separated by a transmit-receive switch (TR switch) or a circulator. These components can be assumed ideal because any leakage that may occur will not be sampled by the range gating process. Therefore, the transmit and receive voltages can be related to the incident and reflected voltages of ports 1 and 2 by Vr| RvO 1 [vi-] (A10) L Vrh j hORhJ Vi ] [V1+ TV ~ tv (Al l) L v2+ J L 0 Th J L Vth j A-8

Using (9) in (10) and (11) results in [ V ] e-2ikor RvS3 0 1 C1 Svv Svh 1 C2 L Vrh J L RhS24 JL C2 1 L Sh Shh L C 1 [ TvS13 ThS [ Vtv (A12) L 0 ThS24 JLVth which may be written in matrix notation as e-2iko r V, 2 RCsCTTVt (A13) The matrix M = RCsCTT represents the measured (uncalibrated) scattering matrix of the target under observation. If the matrices C, R, and T are known, the actual scattering matrix s can then be obtained. To determine C, R, and T we note that these matrices depend on the choice of the orthogonal channels in free space. So far we have made no assumption on the direction of the orthogonal channels (v and h) except that they are perpendicular to the direction of propagation. Once the v and h directions are specified, the scattering matrix of the target can, in principle, be determined. A radar system with linear polarization configurations usually is oriented such that for a given polarization most of the transmitted energy falls into the desired channel, i.e. an orientation for which the antennas cross-talk factors (C1 and C2) are minimal. With available design techniques, it is easy to achieve the conditions I C1 1< 0.1 and 2 C2 1s 0.1, which correspond to a polarization isolation level of 20 dB, but achieving much greater isolation level is difficult. For accurate polarimetric measurements, the effective isolation level A-9

should be on the order of 40 dB. Hence the factors C1 and C2 may not be ignored, but should instead be determined by the calibration technique. To demonstrate how the choice of the coordinate frame affects the antennas' cross-talk factors, we obtain a relationship for the cross-talk factors when the coordinate frame is rotated by an angle 0b. Suppose s represents the scattering matrix of a target for a particular coordinate frame and s' denotes the scattering matrix of the same target when the coordinate frame is rotated around the incidence direction by an angle 4. It is a trivial matter to show that cos 4 -sin ] cos,b sin (A4) S s s (A14) sing cos -sin cos;' Let us indicate the imbalance and cross-talk matrices in the rotated coordinate system by a prime sign. Since the relative orientation of the antenna system and target have not been changed, the measured scattering matrices for two coordinate systems are identical. That is, M' = M. Therefore, M = RCsCTT = R'C's'C'TT' (A15) Using (14) in (15) results in M = R'PsPTT' (A16) where cos k + CI sin 4 -sin i + C cos (A17) P sin ++ (A17) Lsin o + C cos COs?k - C~ sin 0 A-10

Again, by normalizing the diagonal elements of the matrix P to 1 and then comparing the resultant matrices to C, R, and T it can easily be inferred that C1 -sin +C cost~b (A18) cos ok + C' sin ob C sin + C cosb (A19) C2 3111cos -Csn2 (A19) S13 = (cos + C+ Csin /)S3 S24 = (cosb - 2 in )S24 If it is required that maximum energy falls into the v channel when port 1 (v port of the OMT) is energized, the condition C1 = 0 should be enforced which is equivalent to setting 4 = arctan C'. This condition, however, does not maximize the energy transfer into the h channel when the h port of the OMT is energized. Moreover the cross-talk terms usually are complex quantities and the above condition may not be achievable. In order to maximize the energy transfer for both channels and simplify the calibration procedure we look for a rotation angle such that C1 = C2 < 1, i.e. -sin tb + Cl cos b sin 4 + C2cos cos + Cl sinn cos + C2 sin i/ which requires that 4!arctan C1 C2 (A20) This can be accomplished if both C' and C2 are real quantities. It is relatively easy to design the antenna such that C CV2 to begin wit h, and then by adjusting the rotation angle using (20) the cross-talk factors can be made even more A-11

similar. Therefore from here on, we shall assume that the antennas' cross-talk factors are identical and the error associated with this assumption is on the order of the difference in the imaginary parts of the cross-talk factors. In view of this approximation, the measured scattering matrix is given by 1 C i C M = 1~ T. (A21) C 1 C I A3 Calibration Procedure The relationship between the measured scattering matrix M and the actual scattering matrix of an unknown target is given by equation (21). If the elements of the imbalance and cross-talk matrices are known, the scattering matrix of the target can be obtained from s = C-'R-'MT-'C-. The matrices R and T are diagonal and C is symmetric with known diagonal elements; therefore, there is a total of five unknowns that need to be determined. The standard approach is to measure targets with known scattering matrices to establish a set of equations for the unknown elements of the R, T, and C matrices. By measuring each calibration target, four nonlinear equations are obtained, so it seems that at least two targets are needed to find all the five unknowns. But as will be shown, a sphere or a target with similar scattering matrix (such as a trihedral) is sufficient to characterize the scattering matrix of the unknown target. In fact, A-12

it is not required to find all the five unknowns to obtain the scattering matrix of the unknown target. Upon expanding (21) and noting that for backscattering, the scattering matrix is symmetric (812 = S21) we get = R[ s,, + 2Csvh + C2shh (1 + C2)svh + C(S,, + Shh) T (A22) (1 + C2)svh + C(svv + Shh) Shh + 2Csah + C sv, For the sake of simplicity, the diagonal elements of R and T will be denoted by Ri and Tj (i = 1,2) respectively. Measuring a sphere with radar cross section a = 1soI2, (22) provides the following set of equations R1T1(1 + C2) = m1 (A23) 80 2R1T2C = 2 (A24) M~ 2R2T1C - 2 (A25) R2T2(1 + C2) 22 (A26) So where m9j denotes the ijth elements of the measured scattering matrix of the sphere. The cross-talk term can be obtained by multiplying (23) by (26) and (24) by (25) and then eliminating the term R1T1R2T2 from the resultant equations. Thus 4C2 m12m21 a (1 + C2)2 ml0mO2 which is a biquadratic equation with four possible solutions given by C=1 q —1. 7 a A-13

Requiring C to be a small number, two of these solutions can be discarded (note that Jal < 1), therefore C= (1- a) (A27) To meet the condition IC! < 1, the branch cut for VT1 —a is chosen such that Re[VT —F > 0. Therefore C is determined from the sphere measurement within a ~ sign. By denoting the measured scattering matrix elements of the unknown target by m- and using (23)-(26) to find the products of RiTj, we obtain SVV + C(Svh + Shv) + C'Shh C2svv + C(Svh + She) + Shh C(v,, + Shh) + Svh + C2Shv C(s,, + Shh) + Shv + C2Svh Solving these equations simultaneously, the can be obtained and are given by m11 (1 + C2)s~ (A28) = m2(1 + C2)s? (A29) m22 12 (2C)s~ (A30) m12 -= s(2C)as (A31) unknown scattering matrix elements Svv (1-Ci)_ [-2C2(-~ + f' ) + (1 + C2)(-L + C2,)] s~ (A32) Shh = (1-C3 [-2C2(! + L) + (1 + C2)( + C2m s (A33) Svh = 76P r[2 2 + 2C2)- (1 + C2)( 1 + 0)1 SO (A34) S (1-C2)2 ~i z ~ ml, ' i m22j 8hv = (l.C2)2 [o + 2C )- (1 + C2)( 0' + m)' SO (A35) It should be pointed out that there is no ambiguity in sil and S22 since the the branch of VTWJ is defined, but there is a 1800 phase ambiguity in s12 and s21* A-14

Expressions (32)-(35) give the elements of the scattering matrix when the calibration and the unknown targets are at the same range from the radar. If the range of the calibration target (ro) is different from the range of the unknown target (rn), (32)-(35) must be modified by a multiplying factor (r.)2e-2'k~(r~-r"). The complex quantity C is an inherent characteristic of the antenna system and does not change with variations in the performance of the active devices in the radar system, and therefore is less affected by environmental changes. The ambiguity in the sign of C for an antenna system may be easily resolved once by measuring a target with a known phase relationship between the elements of its scattering matrix (such as a tilted cylinder). To investigate the accuracy of the measurement of C, we use the fact that lal << 1 and therefore (27) becomes C ',\a-. If the uncertainty in measurement of a is represented by A and JAI << la, then 1 1 C + 6C =,2 + va(1 + ) from which we get EC 1A C 2a It is concluded that the uncertainty in C is about 50% of the uncertainty in measuring a. Using a sphere as the calibration target not only simplifies calculation of the unknowns significantly, but also offers two more advantages. One advantage is that the scattering matrix of a sphere is insensitive to orientation and therefore no A-15

error will be incurred because of target orientation. The second advantage stems from the fact that spheres are the only three-dimensional structures for which an exact theoretical scattering matrix is known. A4 Comparison with Measured Data The validity of the STCT is now examined by measuring scattering matrices of cylinders and spheres as test targets employing a polarimetric X-band scatterometer. The results based on the IACT also is included for comparison. The measurements were performed in a 14-m long anechoic chamber and the target orientation was facilitated by a very fine-tune azimuth over elevation stepper motor positioner. Detailed description of the scatterometer and measurement setup is given in [3]. The analysis given in section 2 does not take into account the effect of noise and disturbances. In reality the measured scattering matrix includes an additive noise factor and therefore (21) becomes M = RCsCT + N (A36) where N is a matrix representation of disturbances. In order to measure s accurately, all the elements of N must be much smaller than the elements of M. The disturbances, for a typical radar system, may include thermal and background noise. Thermal noise is a zero-mean random process with power proportional to the product of the system bandwidth and noise temperature. This effect can be minimized using an averaging process. The background noise includes the signal returns from objects at ranges comparable to that of the test target or the shortA-16

range multiple reflections within the system. This problem can be eliminated using background subtraction from the target and background response. Another source of error in the measurement of s is the interaction of the target with its support structure (pedestal). This interaction is not linear and hence cannot be subtracted out. A 12-inch diameter sphere was used as the calibration target, and test targets included a 6-inch sphere, a 8-inch sphere, and a conducting cylinder with a diameter of 0.8 cm and length of 27.2 cm, observed at three different orientations (vertical, horizontal, and 450). The calibrated elements of the scattering matrix were then compared with the theoretical values computed using the exact Mie-series solution for the spheres and using a semi-exact solution for the cylinder. The semi-exact solution is based on the assumption that the current induced on the surface of the cylinder is identical with that of an infinite cylinder with the same radius. This solution is accurate in the specular direction and when the cylinder length is much larger than the wavelength. Using averaging and background subtraction a signal to noise ratio of better than 40 dB was achieved in measuring the elements of M. For targets with 12 = 0 (such as sphere and vertical cylinder), the signal to noise ratio for the off-diagonal elements of M was better than 25 dB. Figure 4-6 compare the theoretical and measured scattering matrix elements of the 6-inch sphere. The error in the like-polarized terms is less than 0.3 dB and the results based on the IACT and STCT are exactly identical. It is also A-17

shown that the error in the phase is less than 2 degrees. Figure 6 shows the crosspolarized component of the sphere (theoretical value =-oo in dB scale) where there is a significant disagreement between STCT and IACT. An effective polarization isolation of 50 dB is obtained using STCT. It should be pointed out that the minimum noise-equivalent cross section of the radar system is -65 dBsm. Therefore the cross polarization isolation is limited by the system noise in this case. Similar results were also obtained for the 8-inch sphere. Figures 7-10 depict the results for the vertical cylinder and excellent agreement between the measured data and theory is achieved. As shown in Fig. 9 the measured effective polarization isolation for the vertical cylinder is -50 dB. Results for the 450 tilted cylinder are shown in Figs. 11-15 where the accuracy of the STCT is within ~0.4 dB in magnitude and ~50 in phase. These plots demonstrate the superiority of the STCT over the IACT. A5 Concluding Remarks A convenient calibration technique for single-antenna polarimetric radar system with range-gating capability has been developed. The radar cross-talk contamination and channel imbalances are obtained by measuring the backscatter from a single calibration target whose scattering matrix is diagonal with equal diagonal entries. The insensitivity to alignment of calibration target offered by this technique makes it particularly useful for field operation. Using a four-port network approach, it is shown that the cross-talk contam A-18

ination factor is a feature of the antenna system only, and hence is not affected by instability of active devices in the radar system. Excellent agreement between measurements and theory was obtained when a sphere was used as the calibration target and cylinders and other spheres were used as test targets. A minimum effective polarization isolation of 50 dB was achieved using this technique. Acknowledgement This work was supported by JPL SIR-C calibration project. References [1] Barnes, R.M., "Polarimetric calibration using in-scene reflectors," Rep. TT.65, MIT, Lincoln Laboratory, Lexington, MA, Sept. 1986. [2] Klein, J. D.,"Calibration of quadpolarization SAR data using backscattering statistics," Proc. 1989, Intern. Geosci. Remote Sens. Symp., Vancouver, Canada, July 1989. [3] Sarabandi, K., F.T. Ulaby, and M.A. Tassoudji, "Calibration of polarimetric radar systems with good polarization isolation," accepted for publication in IEEE Trans. Geosci. and Remote Sens., Sept., 1989. [4] Sheen, D.R. and E.S. Kasischke,"Comparison of SAR polarimetric calibration technique using clutter," Proc. 1989, Intern. Geosci. Remote Sens. Symp., Vancouver, Canada, July 1989. [5] Ulaby, F.T., P.F. Polatin, M.W. Whitt, V.V. Liepa, "A general polarimetric radar calibration technique: Theory and experiment, Part I- Theory," submitted to IEEE Trans. Antennas Propagat., July 1989. [6] van Zyl, J. J., " Calibration of polarimetric radar images using only image parameters and trihedral corner reflector responses," submitted to IEEE Trans. Geosci. and Remote Sens., Jan., 1989. [7] Whitt, M.W. and F.T. Ulaby, "A general polarimetric radar calibration technique: Theory and experiment, Part I- Theory," submitted to IEEE Trans. Antennas Propagat., July 1989. A-19

3 1 r' ~ + V + v1 j3 --- ' V2 V Figur A-: AqV4 A-20

Target Figure A-2: Signal flow-chart of the antenna system, free space, and the target. A-21

V. Antenna System Figure A-3: Simplified block diagram of a typical polarimetric radar. A-22

-15.0 -16.0 -17.0 -18.0 -19.0 -20.0...I...I...I...I... I... I..,.... I...... m~~rm -. Th~~~~~~~~~~~~~~~reoretical........... sTcT (0S - - s (lIshh...... TACr (ISO _ I C ~~ACr (lSsDI.... I.... I.... I.... I.... I.... I.... I.... I.... I.. 9.0 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10.0 Frequency (GHz) Figure A-4: Magnitude of the diagonal elements of the scattering matrix of a 6-inch sphere. A-23

0 A v >,6, 10.0 8.0 6.0 4.0 2.0 0.0 -2.0 -4.0 -6.0 -8.0 _'nfl I, W I I I I II Theoretical I IACrT - V~,%jI 9.0 9.1 9.2 9.3 9.4 9.5 9.6 Frequency (GHz) 9.7 9.8 9.9 10.0 Figure A-5: Phase difference between the diagonal elements of the scattering matrix of a 6-inch sphere. A-24

-10.0 -20.0 -30.0 -40.0 0 C4......................................................................... STC (Stb -Theoretical (S) L O GIACr (S I F i..I.1].I~z..I^.......I....I....I....I....Is... [ I -c~~ -50.0 -60.0 -70.0 -80.0 9.0 9.1 9.2 9.3 9.4 9.5 9.6 Frequency (GHz) 9.7 9.8 9.9 10.0 Figure A-6: Magnitude of the off-diagonal element of the scattering matrix of a 6-inch sphere compared with one of the diagonal elements. A-25

-10.0 -10.5 -11.0 -11.5 -12.0 -12.5 -13.0 -13.5 -14.0 -14.5 -15.0 Theoretical i.......... STCT I IACT 9.0 9.1 9.2 9.3 9.4 9.5 9.6 Frequency (GHz) 9.7 9.8 9.9 10.0 Figure A-7: Magnitude of the diagonal element (s,) of the scattering matrix of the vertical cylinder. A-26

i m:e O -10.0 -10.5 -11.0 -11.5 -12.0 -12.5 -13.0 -13.5 -14.0 -14.5 -15.0 9 1 ~~~Theoretcal e e~~~~..-, —* 'tl m~~~~~~~~~~~~~~~ I @ ~ACTI m... I.... I.... I.... I a... I.... I.... I.... I...... m~~~~~~~~~~~~~~~,0 m~ ~ ~~0110 1_ m~~~~~~~~?C - i ~~~~~~~~~~~~~~Theoretical............ $~~~~TCT ~ IACT 7 0 i.0 9.1 9.2 9.3 9.4 9.5 9.6 Frequency (GHz) 9.7 9.8 9.9 10.0 Figure A-8: Magnitude of the diagonal element (Shh) of the scattering matrix of the vertical cylinder. A-27

-10.0 5 a aO -20.0 -30.0 -40.0 -50.0 -60.0 -70.0 9.0 9.1 9.2 9.3 9.4 9.5 9.6 Frequency (GHz) 9.7 9.8 9.9 10.0 Figure A-9: Magnitude of the off-diagonal element (svh) of the scattering matrix of the vertical cylinder compared with sa,. A-28

-40.0 -42.0 cn 00IM a C%W:O A' -44.0 -46.0 -48.0 -50.0 -52.0 -54.0 -56.0 -58.0 -60.0 9.0 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10.0 Frequency (GHz) Figure A-10: Phase difference between the diagonal elements of the scattering matrix of the vertical cylinder. A-29

-10.0 AlW 00 Clg 11401 -11.0 -12.0 -13.0 -14.0 -15.0! _,.0 -- G 0O 0 ' e..... lra...,lt Theoretical _.- *STCT I IACT 9.0 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10.0 Frequency (GHz) Figure A-I: Magnitude of the diagonal element (s4,) of the scattering matrix of the 450 tilted cylinder. A-30

-10.0 -11.0 1i2.000000 00000 *Os... S -13.0 Theoretical -14.0p S.........C.. t 10 k -1S.0 9.0 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10. Frequency (GHz) Figure A-12: Magnitude of the diagonal element (shh) of the scattering matrix of the 450 tilted cylinder. 0 A-31

/ as C=1,.e /o -15.0 -16.0 -17.0 -18.0 -19.0 -20.0 -21.0 -22.0 -23.0 -24.0 -,, A O 9O @@ @@@.0e.. Loo 000 00 00 0 00000 0. ~ ~ ~ ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Theoretical...... STCT 0 IACT I.... I.... I.... I.... I.... I.... I....I I - Ae..eWa. 9.0 9.1 9.2 9.3 9.4 9.5 9.6 Frequency (GHz) 9.7 9.8 9.9 10.0 Figure A-13: Magnitude of the off-diagonal element (89h) of the scattering matrix of the 450 tilted cylinder. A-32

An 0 J2;o lew 10.0 8.0 6.0 4.0 2.0 0.0 -2.0 -4.0 -6.0 -8.0 -10.0 9 - T ormezical 0 IACT eeeee, gee C i~ ieo.00I @0 L c Gee, ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ i. e..o.e...'.eeeeoe ~~~~~~ ~ 000000 -0 00 00 ~... I..0.....I..I..I...I... ).0 9.1 9.2 9.3 9.4 9.5 9.6 Frequency (GHz) 9.7 9.8 9.9 10.0 Figure A:14: Phase difference between the diagonal elements of the scattering matrix of the 45~ tilted cylinder. A-33

-70.0 -73.0 II I I I I I 040tl (A *aO gmi ol -9 -76.0 -79.0 -82.0 -85.0 -88.0 -91.0 -94.0 -97.0.fim n Theoetical -.......... STCT O IACr e~ S *a 0 0 ~~~~~5G~ ~ ~ ~ ~ ~ eM.....I............. 0 *500 0 auffinom 0 0 0 0 0 0 0 - A-... I & —a L. —.-, U - a*. WV 9.0 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10.0 Frequency (GHz) Figure A-15: Phase difference between the diagonal and the off-diagonal elements of the scattering matrix of the 450 tilted cylinder. A-34

APPENDIX B POLARIMETRIC MEASUREMENT PROGRAM This program is written in HP BASIC to control the network analyzer based scatterometer (see Fig. (1)) and a stepping motor controller to acquire polarimetric measurement data of the PARCs automatically. The main program is comprised of two major functions for calibration: 1) target measurement and 2) reference target measurement. For each measurement, the frequency band for L- and C-band is selected and the time gating parameters, i.e., the gate center and the gate span, are selected by the operator prior to data acquisition. The target measurement starts with selection of target rotation parameters such as start angle, increment angle, stop angle and rotation speed by calling the subroutine "Rotatetarget". The subroutine "Rotatetarget" calls the other subroutine 'comm' to communicate with a stepping motor controller through a serial port of an HP 9000 series computer. The Fourier transform of the time gated data (in magnitude and phase) of the four polarizations (VV, HH, HV, VI) are collected for each incidence angle and for the selected frequency points. The reference measurement for calibration utilizes the averaging technique to reduce the effect of thermal noise and background subtraction to increase S/N. At the end of the measurement, the main program calls a subroutine "Storefile" to transfer the collected data to a disk drive with a title of the data file des B-1

ignated by a subroutine "Set-clock" and "Store-file". The subroutines of "Config.andpoll", "Hp-businit" and "Series-init" are to configure the system including a HP network analyzer and the HP-IB bus connections. The subroutines of "Freq-set", "Freq.sw" and "Pol-sw" are to control the network analyzer and the relay actuator for the selection of frequencies and polarizations. B-2

10! 20 L/C/X POLARIMETER MEASUREMENT PROGRAM 30 FILE: PARC_1 40!************************************************************************ 50! LAST EDIT: May 21, 1990 JPL PARC measurements 60 70!******************************************************* 80 OPTION BASE 1 90 COM /Paths/ @Nwa,@Nwadatal,@Nwa_data2,Netwrk_analyzer,@Hpib, Relay 100 COM /Constants/ Vel,Zero(3),Exec_key$[2] 110 COM /System_config/ INTEGER Printer_flag, Debug_flag, Version$ [12],Mode$ [10],Out_type$ [10],Sound$ [3],Bell$ [1],Target$ [30],Ref_target$ [30] 120 COM /Sys_l/ Freq$(3) [1],Freq_cent(3),Freq_span(3),Gate_cent(3),Gate_span(3) 130 COM /Sys_2/ Pol$(4) [2],Polsw$(3, 4) [8] 140 COM /Sys_3/ INTEGER F_disp,P_disp 150 COM /Sys_4/ Drive_a$[15],Drive_b$[15],Drive_c$[15],INTEGER Preamble,Bytes 160 COM /SyS5/ INTEGER Nskip,Ndata 170 COM / Sys_6/ Ref_angle,Angle,Angle$[10],Beam(3),INTEGER Npts,Ntrace, Average_factor 180 COM /Sys_7/ INTEGER Meas_flag(3) 190 COM /Com4/ INTEGER Rotation_state,REAL Inc_angle,Current_angle,Start_angle, Stop_angle,Old_home_angle,INTEGER Sets_per_pos 200 COM /Status/ INTEGER Sc,Connect_flg,Eflg,Debugflg,Response$[80] 210! 220 230 INTEGER F,I,J,P,T,Meas_flag_old(3),Exit_flag,Nt,Ntskh,Npt 240 DIM Sky_cal_file$(3)[14],Old_target_name$[30] 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450 460 470 480 490 500 510 520 530 540 550 560 570 580 DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA -DATA READ READ READ READ READ READ READ READ!,L" "C", "X" "WVV" "HH" "HV" "VH" 1.25,1.25,1.5.3,.5,.5 12.5, 9.0, 6.2 "?*B3456", "l?*A56B34"1, "?*A6B345" I")*A5B346" "?*B3456" "I?*A34B56", "?*A4B356" I"?*A3B456" "?*A34B56", "'?*B34561'" "?*A3B456", "? *A4B356" ":, 700, 0", ":, 700, 1" ":MEMORY, 0,7" 400E-9,400E-9,400E-9 10E-9, 10E-9,.10E-9 Freq$ (*) Pol$ (*) Freq_cent (*) Freq_span ( * ) Beam(*) Polsw$ ( * ) Drive aS, Drive b$, Drive cS Gate_cent( * ), Gate span( * )! FREQUENCY! POLARIZATION! FREQ_CENT! FREQ_SPAN! BEAMWIDTH! L! C! x! DRIVE A,BC! GATE CENTERS! GATE SPANS! Set up error handling routine. LOAD KEY "NOKEY:MEMORY, 0,1" MASS STORAGE IS ":,700,1"! Initialize important parameters. DEG Rotationstate=-1 Current_angle-0. MAT Meas_flag- (1) Mode$="FAST ACQ" F_disp=1

590 600 610 620 630 640 650 660.670 680 690 700 710 720 730 740 750 760 770 780 790 800 810 820 830 840 850 860 870 880 890 900 910 920 930 940 950 960 970 980 990 1000 1010 1020 1030 1040 1050 1060 1070 1080 1090 1100 1110 1120 1130 1140 1150 1160 1170 1180 1190 P_disp=1 Printer_flag=0! Hp_bus_init IF Printer_flag=l THEN Out_type$="PRINT/DISC" Vel=2. 99792458E+8 Ntrace=1l Npts=401 Nskip=40 Ndata=10 Average_factor=1 Angle$=" 0" Angle-0 Ref_angle=0 Target $-" " Sound$-"ON" Debug_flag=0 Bell$-CHR$ (7) Exec_key$=CHR$ (255) &CHR$ (88) Version$-"Version 8.0 Exit_flag=0 Print bannerl System memory-VAL ( SYSTEMS ( "AVAILABLE MEMORY" ) ) IF FNAsk("INITIALIZE RAM DISK?") THEN INITIALIZE Drive c$S, 0 INITIALIZE Drive_c$, INT ((System_memory) /512) ELSE ASSIGN @Is it there TO Drive c$S;RETURN Outcome IF Outcome-0 THEN CAT Drive_cS;NO HEADER,COUNT Entries IF Entries-0 THEN INITIALIZE Drivec$,O END IF ASSIGN @Is it there TO * END IF Config_and_poll OUTPUT @Relay; "?*B1256A34" Seriesinit Start_loop:!! Print banner4 ON KEY 0 LABEL ON KEY 1 LABEL ON KEY 2 LABEL ON KEY 3 LABEL ON KEY 4 LABEL ON KEY 5 LABEL ON KEY 6 LABEL ON KEY 7 LABEL ON KEY 8 LABEL ON KEY 9 LABEL " SKY CAL ",FNTrap_level "n REFERENCE CAL", FNTrap_level " TARGET RUN ",FNTrap level " SET FREQUENCY", FNTrap_level " ANGLE ",FNTrap_level " TARGET NAME ",FNTrap_level " # OF TRACES ",FNTrap level n * OF POINTS ",FNTraplevel "# OF AVERAGES ",FNTrap_level f" QUIT ",FNTrap_level GOSUB Sky_calibrate GOSUB Ref_target GOSUB Acq_target GOSUB Freq_set GOSUB Set_angle GOSUB Settarget GOSUB Set traces GOSUB Set points GOSUB Setaverage GOTO Quit_fastacq GOSUB LOOP Allocate matrix EXIT IF Exit_flag=l END LOOP GOSUB Deallocate mtrx Exitflag-0

1200 GOTO Start_loop 1210 1220 Null: RETURN 1230! 1240! --- —--------------------------------------------------------------------- 1250 1260 Sky_calibrate:! Acquire a sky calibration data set. 1270 1280 OFF KEY 1290 Clear crt 1300 OUTPUT @Nwa;"TIMDTRANON; LOGM; GATEOFF;" 1310 OUTPUT @Nwa;"STAR ONS; STOP 400NS;" 1320 PRINT TABXY(1,10);"Please point scatterometer assembly to free space." 1330 PRINT TABXY(1,12);"Press CONTINUE when ready..." 1340 PAUSE 1350 Clearcrt 1360 PRINT TABXY(1,14);"Sky data is being collected... 1370 OUTPUT @Nwa;"TIMDTRANOFF; POLA; AVERFACT";VAL$ (Average_factor);";" 1380 OUTPUT @Nwa; "GATEOFF; AVEROON;" 1390! 1400! Get a free space (sky) measurement. 1410! 1420 FOR T-1 TO Ntrace 1430 FOR F-1 TO 3 1440 IF Meas_flag(F)-1 THEN 1450 IF F=1 THEN 1460 OUTPUT @Nwa;"POWE20;" 14.70 ELSE 1480 OUTPUT @Nwa;"POWE10;" 1490 END IF 1500 Freq_set (F) 1510 Freqsw(F) 1520 OUTPUT @Nwa;"GATECENT";VAL$(Gate_cent(F));"S;" 1530 OUTPUT @Nwa;"GATESPAN";VAL$ (Gate_span(F)); "S;" 1540 FOR P-1 TO 4 1550 Pol sw(F,P) 1560 OUTPUT @Nwa; "FORM3; NUMG";VAL$ (Average_factor+l);"; WAIT;" 1570 OUTPUT @Nwa;"WAIT; GATEOON; WAIT; OUTPFORM;" 1580 ENTER @Nwa_datal;Preamble, Bytes, Trace ( * ) 1590 MAT Target_response(F,P,.*) Trace 1600 OUTPUT @Nwa;" GATEOFF; WAIT;" 1610 NEXT P 1620 Nskh-Nskip+l 1630 FOR P-1 TO 4 1640 FOR Nt-Nskh TO Npts STEP Nskip 1650 Nst-I+INT(Nt/Nskip) 1660 Target data (F, T, P,Nst) =Target_response (F,P,Nt) 1670 NEXT Nt 1680 NEXT P 1690 END IF 1700 NEXT F 1710 NEXT T 1720 Old_target_name$=Target$ 1730 Ref_target$="SKY CALIBRATION" 1740 Store_file(Targetdata(*), "SKY",FNTime_stamp$,F) 1750 Ref_target$=Old_target_name$ 1760 Pol_sw(F_disp,P_disp) 1770 DISP "Sky calibration data saved." 1780 Exit_flag=1l 1790 RETURN 1800!

1810! ----. --- —----------------------------- 1820 1830 Ref_target:! Acquire a reference target data set. 1840 1850 OFF KEY 1860 Clearcrt 1870 OUTPUT @Nwa; "TIMDTRANON; LOGM; GATEOFF;" 1880 OUTPUT @Nwa;"LOGM; AUTO; STAR ONS; STOP 400NS;" 1890 PRINT TABXY(1,10);"Please point scatterometer assembly to reference targ 1900 PRINT TABXY(1,12);"Press CONTINUE when ready..." 1910 PAUSE 1920 GOSUB Set gates 1930 OUTPUT @Nwa;"TIMDTRANOFF; POLA; AVERFACT";VAL$ (Average_factor);";" 1940 OUTPUT @Nwa;"GATEOFF'; AVEROON" 1950 INPUT "Enter the reference target angle: ",Ref_angle 1960! 1970! Get the reference target response. 1980 1990 FOR T=1 TO Ntrace 2000 FOR F-1 TO 3 2010 IF Meas_flag(F) THEN 2020 IF F=1 THEN 2030 OUTPUT @Nwa;"POWE20;" 2040 ELSE 2050 OUTPUT @Nwa;"POWE10;" 2060 END IF 2070 Freq_set(F) 2080 Freq_sw(F) 2090 OUTPUT @Nwa;"GATECENT";VAL$(Gate_cent(F));"S;" 2100 OUTPUT @Nwa; "GATESPAN";VAL$ (Gate_span(F));"S;" 2110 FOR P-1 TO 4 2120 Pol sw(F,P) 2130 OUTPUT @Nwa;"FORM3;NUMG";VAL$ (Average_factor+1); ";WAIT" 2140 OUTPUT @Nwa;"WAIT; GATEOON; WAIT; OUTPFORM;" 2150 ENTER @Nwa_datal; Preamble, Bytes, Trace ( * ) 2160 MAT Target_response(F, P, *) Trace 2170 OUTPUT @Nwa;"GATEOFF;" 2180 NEXT P 2190 Nskh-Nskip+l 2200 FOR P-1 TO 4 2210 FOR Nt-Nskh TO Npts STEP Nskip 2220 Nst-INT (Nt/Nskip) 2230 Target_data (F, T, P, Nst) Target_response (F, P, Nt) 2240 NEXT Nt 2250 NEXT P 2260 END IF 2270 NEXT F 2280 NEXT T 22 90 Store_file (Target_data ( * ), "REF", FNTime_stampS, F) 2300 2310! Get the reference target mount response. 2320 2330 BEEP 2340 PRINT TABXY(l,lO);"Please remove the reference target from its mount." 2350 PRINT TABXY(1,12);"Press CONTINUE when ready..." 2360 PAUSE 2370 Clear crt 2380 PRINT TABXY(1,14);"Data for the mount is being collected.... " 2390 FOR T=1 TO Ntrace 2400 FOR F=1 TO 3 2410 IF Meas_flag(F) THEN

2420 IF F=1 THEN 2430 OUTPUT @Nwa;"POWE20;" 2440 ELSE 2450 OUTPUT @Nwa;"POWE10;" 2460 END IF 2470 Freq_set (F) 2480 Freqsw(F) 2490 OUTPUT @Nwa;"GATECENT";VAL$(Gate cent(F));"S;" 2500 OUTPUT @Nwa;"GATESPAN";VAL$ (Gate_span(F));"S;" 2510 FOR P=1 TO 4 2520 Pol_ sw(F,P) 2530 OUTPUT @Nwa;"FORM3;NUMG";VAL$ (Average_factor+1); ";WAIT" 2540 OUTPUT @Nwa;"WAIT; GATEOON; WAIT; OUTPFORM;" 2550 ENTER @Nwa datal;Preamble,Bytes,Trace(*) 2560 MAT Target_response(F,P,*)= Trace 2570 OUTPUT @Nwa;"GATEOFF;" 2580 NEXT P 2590 Nskh=Nskip+l 2600 FOR P=1 TO 4 2610 FOR Nt=Nskh TO Npts STEP Nskip 2620 Nst-INT (Nt/Nskip) 2630 Target_data(F,T,P,Nst) Target_response(F,P,Nt) 2640 NEXT Nt 2650 NEXT P 2660 END IF 2670 NEXT F 2680 NEXT T 2690 Store_file(Target data(*), "MNT",FNTime stamp$,F) 2700 Pol_sw (F_disp, P_disp) 2710 DISP "Reference target mount response saved." 2720 Exit_flag=l 2730 RETURN 2740 Acq_target: 2750 2760 OFF KEY 2770 Clearcrt 2780 OUTPUT @Nwa;"TIMDTRANON; LOGM; GATEOFF; AVEROFF;" 2790 OUTPUT QNwa;"STAR ONS; STOP 400NS;" 2800 PRINT TABXY(1,10);"Please point scatterometer assembly at surface target." 2810 PRINT TABXY(1,12);"Press CONTINUE when ready..." 2820 PAUSE 2830 GOSUB Set_gates 2840 OUTPUT @Nwa;"TIMDTRANOFF; WAIT; GATEOON; POLA;" 2850 2860! Get the target response. 2870 2880 FOR T=1 TO Ntrace 2890 2900! Get angles 2910 2920 IF T-1 THEN 2930 Rotationstate-1 2940 ELSE 2950 Rotationstate=2 2960 END IF 2970 SELECT Rotationstate 2980 CASE =0 2990 Clear _crt 3000 PRINT TABXY(1,4);"When ready for measurement, press CONTINUE." 3010 BEEP 3020 PAUSE

3030 3040 3050 3060 3070 3080 3090 3100 3110 3120 3130 3140 3150 3160 3170 3180 3190 3200 3210 3220 3230 3240 3250 3260 3270 3280 3290 3300 3310 3320 3330 3340 3350 3360 3370 3380 3390 3400 3410 3420 3430 3440 3450 3460 3470 3480 3490 3500 3510 3520 3530 3540 3550 3560 3570 3580 3590 3600 3610 3620 3630 Clear_crt (3, 16) PRINT TABXY(1,4); "Collecting data... " CASE ELSE PRINT TABXY(1,4);"Current angle is ";Current_angle;" degrees." Rotate_target WAIT 1 Clearcrt(3, 16) PRINT TABXY (1, 4); "Collecting data END SELECT FOR F=1 TO 3 IF Meas_flag(F) THEN IF F=1 THEN OUTPUT @Nwa; "POWE20;" ELSE it OUTPUT @Nwa; "POWE10;" END IF FreqLset (F) Freqsw (F) OUTPUT @Nwa; "GATECENT";VAL$ (Gatecent (F)); "S;" OUTPUT @Nwa; "GATESPAN";VAL$ (Gate_span (F)); "S;" OUTPUT @Nwa; "GATEOON; WAIT;" FOR P-1 TO 4 Polsw(F, P) OUTPUT @Nwa; "SING; FORM3; OUTPFORM;" ENTER @Nwadatal;Preamble, Bytes, Trace (*) MAT Target_response(F, P, *) - Trace NEXT P Nskh=Nskip+l FOR P=1 TO 4 FOR Nt-Nskh TO Npts STEP Nskip Nst-INT (Nt/Nskip) Targetdata (F,T,P,Nst) -Target_response (F,P,Nt) NEXT Nt NEXT P END IF NEXT F PRINT "# OF TRACES LEFT-",Ntrace-T NEXT T Store file (Target _data (*), "GND", FNTimestamp$, F) DISP "Surface target data saved." BEEP WAIT.1 BEEP OUTPUT @Nwa; "CONT;" Exit_flagl RETURN! ------- -------- ----— m -m ------- -— m -mm ------— m -------— m --------------- tI _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Freq_set: GOSUB Deallocate_mtrx OFF KEY MAT Meas_flag_old= Meas_flag MAT Meas_flag- (0) Exit_flag=0 ON KEY 0 LABEL " L BAND ON KEY 1 LABEL " C BAND ON KEY 2 LABEL " X BAND ON KEY 4 LABEL " STORE ON KEY 5 LABEL " ON KEY 6 LABEL " ON KEY 7 LABEL " ",FNTrap_level ",FNTrap_level ",FNT rap level ",FNTrap_level ", FNTrap_level ",FNTrap_level ",FNTrap_level GOSUB Set 1 GOSUB Set c GOSUB Set x GOTO Storeband GOSUB Null GOSUB Null GOSUB Null

3640 3650 3660 3670 3680 3690 RETURN 3700 Set 1: 3710 3720 3730 RETURN 3740 Set c: 3750 3760 3770 RETURN 3780 Set x: 3790 3800 3810 RETURN 3820 Store _ 3830 3840 3850 RETURN 3860 Cancel 3870 3880 3890 3900 RETURN 3910 3920 ------ 3930 3940 Set anc 3950 3960 3970 3980 RETURN 3990! 4000! --- — 4010! 4020 Settai 4030 4040.4050 4060 4070 RETURN 4080! 4090! --- —4100! 4110 Set trz 4120 4130 4140 4150 4160 RETURN 4170! ON KEY 8 LABEL " ON KEY 9 LABEL " LOOP EXIT IF Exit flag=l END LOOP OFF KEY 0 Meas_flag(l) =1 Fdisp=l OFF KEY 1 Meas_flag(2)=1 F_disp=2 OFF KEY 2 Meas_flag(3)=l F_disp=3 ",FNTrap_level GOSUB Null CANCEL ",FNTrap_level GOTO Cancel_band band: Printbanner4 Exit_flag-1 GOSUB Allocate matrix band:! MAT Meas_flag- Meas_flag old Exit_flag-1 GOSUB Allocate matrix _____________________________________________________________________ gle:! INPUT "Enter measurement angle: ",Angle Angle$-VAL$ (Angle) &CHR$ (179) &" "! Degree sign. Print banner4 ______________________________________________-______________________ rget:! LINPUT "Enter target type or name: ",Targets Target$TRIM$S (Target$) Target$-Target$&RPT$ (" ",-30-LEN (Target$)) Print banner4 aces:! INPUT "Enter the number of traces (or angles) desired(>=3 ): ",Ntrace GOSUB Deallocate mtrx GOSUB Allocate matrix Printbanner4 4180 4190 4200 4210 4220 4230 4240 Set_points:! INPUT "Enter the number of sample points (Npts,201): ",Npts OUTPUT @Nwa; "POIN " &VAL$ (Npts) &";" INPUT "Enter the data points to be stored (Ndata,10):",Ncat. Nskip=INT (Npts/Ndata) Bytes-l 6*Ndata

4250 Print banner4 4260 GOSUB Deallocate mtrx 4270 GOSUB Allocatematrix 4280 RETURN 4290! 4300! --- —---------------------------------------------— ~ _____ 4310 4320 Set_average: 4330 INPUT "Enter averaging factor: ",Average_factor 4340 Print banner4 4350 RETURN 4360! 4370! --- —--------------------------------------— ~-~-_______________________ 4380! 4390 Allocate_matrix:! Allocate storage space for data. 4400 4410 System_memory-VAL (SYSTEMS ( "AVAILABLE MEMORY" ) ) 4420 Avail_traces-MIN(Ntrace,INT(System_memory-50000-3*4*16.*Npts)/(3*4*16.*N 4430 IF Availtraces<Ntrace THEN 4440 BEEP 4450 PRINT TABXY(1,16);"Memory has capacity for only ";Avail traces;" trace 4460 PRINT "Press CONTINUE key to continue" 4470 PAUSE 4480 Ntrace-Avail traces 4490 END IF 4500 ALLOCATE COMPLEX Trace (Npts), Target response(3, 4,Npts) 4510 ALLOCATE COMPLEX Target_data (3,Ntrace, 4,Ndata) 4520 RETURN 4530 Deallocate mtrx:! Return to main program. 4540 4550 DEALLOCATE Target_response (*), Trace (*) 4560 DEALLOCATE Target_data(*) 4570 RETURN 4580! 4590! --- —---------------------------------— ~ —______________________________ 4600! 4610 Set_gates:! Set gate centers and spans. 4620 4630 FOR F=1 TO 3 4640 IF Meas_flag(F) THEN 4650 IF F-1 THEN 4660 OUTPUT @Nwa;"POWE20;" 4670 ELSE 4680 OUTPUT @Nwa; "POWE10;" 4690 END IF 4700 Freq_set(F) 4710 Freq_sw(F) 4720 P-l 4730 Polsw(F,P) 4740 OUTPUT @Nwa;"TIMDTRANON; LOGM;" 4750 OUTPUT @Nwa;"STAR ONS; STOP 400NS; WAIT;" 4760 OUTPUT @Nwa; "MARK1; MARKMAXI;" 4770 OUTPUT @Nwa;"FORM3; OUTPACTI;" 4780 ENTER @Nwa;Gate cent(F) 4790 OUTPUT @Nwa;"MARKOFF;" 4800 OUTPUT @Nwa; "CONT;" 4810 OUTPUT @Nwa; "GATESPAN";VAL$ (Gate_span (F));"S;" 4820 OUTPUT @Nwa;"GATECENT";VAL$ (Gate_cent(F));"S;" 4830 OUTPUT @Nwa;"KEY41; KEY59; KEY58; KEY59;" 4840 LOCAL @Nwa 4850 DISP "Adjust gate center to suit, and press CONTINUE."

4860 PAUSE 4870 OUTPUT @Nwa;"OUTP2 4880 ENTER @Nwa;Gate ce 4890 OUTPUT @Nwa;"GATEc 4900 OUTPUT @Nwa;"KEY43 4910 LOCAL @Nwa 4920 DISP "Adjust gate 4930 PAUSE 4940 OUTPUT @Nwa;"OUTP2 4950 ENTER @Nwa;Gate_sr 4960 END IF 4970 NEXT F 4980 RETURN 4990 5000! ~ --- —---------------— ~ —. 5010 5020 Quit_fast acq:! End of program 5030 DISP "PROGRAM EXIT" 5040 GOSUB Deallocate mtrx 5050 LOAD KEY "EDITKEY:MEMORY,0,1" 5060 STOP 5070 END 5080 5090! ****************************** 5100 5110 DEF FNAsk(Prompt$) 5120 OFF KEY 5130 DISP Prompt$; 5140 INPUT "",Yn$ 5150 Yn$=UPC$(Yn$[1,1]) 5160 SELECT Yn$ 5170 CASE ="Y" 5180 RETURN 1 5190 CASE ="N"n =,"" 5200 RETURN 0 5210 CASE ELSE 5220 RETURN 0 5230 END SELECT 5240 FNEND 5250 5260! ***************************** 5270 5280 DEF FNFileloc$(File$,Dir$) 5290 INTEGER C! for the locatioi 5300 LET C-POS(Dir$,":")-1 5310 IF C<0O THEN 5320 RETURN TRIM$(File$&Dir$) 5330 ELSE 5340 RETURN Dir$[1,C]&RPT$("/",I 5350 END IF 5360 FNEND! Fileloc 5370 5380! ***************************** 5390 5400 DEF FNTime_stamp$(OPTIONAL Tir 5410 5420 DIM Time digits$[4],Year < 5430 DIM Machinetime$(8],Mach: 5440 REAL Timedatenow 5450 5460 Timedate now=TIMEDATE ACT I;" ent (F) SPAN";VAL$ (Gate_span (F));";" L; KEY59; KEY58; KEY4;" span to suit, and press CONTINUE." ACTI;" pan (F) kfffkfkffkkkf n of the ':' in Dir$ (minus 1) Dir$[C,C]<>"/")&File$&Dir$[C+1,LEN(Dir$)] ***************************************** * me format) digits$ [6] ine date$[11]

5470 Machine date$=DATE$ (Timedate now) 5480 Machinetime$=TIME $(Timedate now) 5490 Time_digits $=Machine_t ime$ (1,2 ] &Machine_time$ [ 4, 5] 5500 Year_digits$ [1, 2]=Machinedate$10,11] 5510 IF Machine date$[I1,1]= " THEN Machine date$[I1, 1]= "0" 5520 5530 SELECT Machine dateS[4,6] 5540 CASE ="Jan" 5550 Year_digits$ [3, 4]="01" 55.60 CASE ="Feb" 5570 Year_digits$ [3, 4]="02" 5580 CASE ="Mar" 5590 Year_digits$ [3, 4]="03" 5600 CASE ="Apr" 5610 Year_digits $ [3, 4="04" 5620 CASE -"May" 5630 Year_digits$ [3, 4]="05" 5640 CASE ="Jun" 5650 Year_digits$[3, 4] "06" 5660 CASE ="Jul" 5670 Year_digits $ [ 3, 4]" 07" 5680 CASE ="Aug" 5690 Year_digits$ [3, 4]="08" 5700 CASE ="Sep" 5710 Year_digits$ [3, 4]="09" 5720 CASE ="Oct" 5730 Year_digits$ [3, 4]="10" 5740 CASE ="Nov" 5750 Year_digits$ [3, 4]="11" 5760 CASE -"Dec" 5770 Year_ digits$ [3, 4 ] -"12" 5780 END SELECT 5790 5800 Year_digits$[5,6] Machine_date$ [1,2] 5810 SELECT NPAR 5820 CASE -0 5830 RETURN Year_digits$[5, 6]&Time_digits$ 5840 CASE -1 5850 IF Timeformat-1 THEN 5860 RETURN Year digits$&Time digits$ 5870 END IF 5880 IF Time format-2 THEN 5890 RETURN Year_digits$(3,6]&Time_digits$ 5900 END IF 5910 END SELECT 5920 FNEND 5930 5940!************************************************************************ 5950 5960 DEF FNTrap_level 5970 RETURN VAL(SYSTEMS("SYSTEM PRIORITY"))+1 5980 FNEND 5990 6000! *********************************************************************** 6010 6020 SUB Config_and_poll 6030 COM /Paths/ @Nwa, Nwadatal,@Nwadata2,Netwrk_analyzer, 3Hpib, @Relay 6040 COM /System/ System_memory 6050 6060! Find out what's out there. 6070

6080 A: 6090 A: 6100 K] 6110 K] 6120 C. 6130 N4 6140 A: 6150 Si 6160 Pi 6170 O0 6180 Is na: 6190 6200 6210 6220 6230 6240 6250 6260 6270 6280 6290 6300 6310 P] 6320 P1 6330 6340 6350 6360 Nona: 6370 6380 6390 6400 6410 6420 6430 6440 6450 6460 Check_ 6470 01 6480 LLOCATE Devicelist$(0:31) [20] LPHA PEN 4 BD LINE PEN 3 EY LABELS PEN 5 lear crt etwrk_analyzer-0 LLOCATE Na ident $ [80] ystemmemory=VAL (SYSTEMS ("AVAILABLE MEMORY") )! How RINT "AVAILABLE MEMORY: ";System_memory;" BYTES" N TIMEOUT 7,4 GOTO Nona! In case there is no much memory for RAM-D I network analyzer OUTPUT @Nwa;"FORM4; OUTPIDEN;" ENTER @Nwa data2;Na ident$ IF POS(Na_ident$," 8510A") THEN IF POS(Naident$,"8510B") THEN IF POS(Na_ident$,"8720A") THEN IF POS(Naident$, "8720B") THEN IF POS(Na ident$,"8753A") THEN IF POS(Na ident$,"8753B") THEN LOCAL @Nwa PRINT PRINT Na ident$ PRINT Netwrk_analyzer Clearcrt RINT RINT IF Netwrk_analyzer-0 THEN Netwrk_analyzer=1l Netwrk_analyzer=2 Netwrk_analyzer3 Netwrk_analyzer=4 Netwrk_analyzer=5 Netwrk_analyzer=6 BEEP OFF CYCLE PRINT TABXY(1,5);"There is no active network analyzer on the HPIB bus PRINT TABXY(1,6);"Please check connections, and press the RUN key." PRINT PRINT TABXY(1,7);"If you DO NOT want to use a network analyzer, press the CONTINUE key." PAUSE END IF hpib:! Check the rest of the bus N TIMEOUT 7,.01 GOTO Nothing 6490 6500 6510 6520 6530 6540 6550 6560 6570 6580 6590 6600 6610 6620 6630 6640 6650 6660 6670 FOR Device-700 TO 731 DISP "Checking for device at address: ";Device Device list$ (Device-700) -"NOTHING" ASSIGN @What is it TO Device Outcome-SPOLL (@What is it) Device list$ (Device-700) -"SOMETHING" PRINT Device, "SOMETHING HERE", "spoll: ";Outcome ASSIGN @What is it TO * Nothing:! Skip to next device NEXT Device OFF TIMEOUT 7 ASSIGN @What is it TO * IF Device listS(1)="SOMETHING" THEN DISP "Position the printer to Top-Of-Form and press CONTINUE... PAUSE PRINTER IS PRT PRINT CHR$ (27) &"&llL";! Set Page Breaks Printer_f lag-1

6680 PRINTER IS CRT 6690 END IF 6700 DEALLOCATE Naident$ 6710 DEALLOCATE Device listS(*) 6720 ABORT @Hpib 6730 SUBEXIT 6740 SUBEND 6750 6760 ************************************************************************ 6770 6780 SUB Hp_bus_init 6790 COM /Paths/ @Nwa,@Nwa_datal,QNwa_data2,Netwrk_analyzer,@Hpib,@Relay 6800 COM /Sys_l/ Freq$(*),Freq_cent(*),Freq_span(*),Gate_cent(*),Gate_span(*) 6810 COM /Sys_ 2/ Pol$(*),Polsw$(*) 6820 COM /System_config/ INTEGER Printer_flag, Debug_flag, Version$, Mode$,Out_typeS,Sound$,Bell$, Target, Ref_targetS$ 6830 6840! This subroutine configures the HP-IB bus and presets the HP8510. 6850 6860 ASSIGN @Hpib TO 7 6870 ASSIGN @Nwa TO 716 6880 ASSIGN @Nwa datal TO 716;FORMAT OFF 6890 ASSIGN @Nwa data2 TO 716;FORMAT ON 6900 ASSIGN @Relay TO 710 6910 REMOTE @Hpib 6920 ABORT @Hpib 6930 CLEAR @Nwa 6940 IF Debug_flag=l THEN OUTPUT @Nwa;"DEBUON;" 6950 IF Debug_flag-0 THEN 6960 OUTPUT @Nwa;"DEBUOFF;" 6970 OUTPUT @Nwa;"TITL """&Freq$(2)&" BAND """ 6980 END IF 6990 SUBEND 7000 7010!************************************************************************* 7020 7030 SUB Series init 7040 -COM /Systemconfig/ INTEGER Printer_flag,Debug_flag,Version$,Mode$,Outtype$,Sound$, Bell$, Target$, Ref_target$ 7050 DIM Input$S[80] 7060 7070 This subroutine prints a header for the printout and sets the system 7080! date and time. 7090 7100 IF Printer flag-l THEN PRINTER IS PRT 7110 PRINT CHR$(12) 7120 Set clock 7130 LINPUT "ENTER MEASUREMENT SERIES TITLE",Input$ 7140 Preface$S"*"&RPT$(" ",9) 7150 PRINT RPT$("*n 70) 7160 PRINT Preface$&Input$ 7170 LINPUT "ENTER OPERATOR NAME", Input$ 7180 PRINT Preface$&Input$ 7190 PRINTER IS CRT 7200 PRINT 7210 PRINT 7220 PRINT Preface$& "MEASUREMENT SERIES STARTED AT "&TIME$(TIMEDATE) 7230 PRINTER IS CRT 7240 SUBEND 7250 7260!******************************************************************......

7270 7280 7290 7300 7310 7320 7330 7340 SUB Set clock OPTION BASE 1 INTEGER I DIM Chrono$ [12],Month$ (12) [3] Exec_key$=CHR$ (255) &CHR$ (88) READ Month$(*) DATA "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG" "SEP", "OCT" "NOV", "DEC" OUTPUT KBD; "SCRATCH KEY "&Execkey$; Clear crt PRINT " Current system date: ";DATES (TIMI PRINT " Current system time: ";TIME$(TIME PRINT Ask: LINPUT "Enter date and time (YYMMDDHHMMss): ",Chrono$ IF Chrono$="" AND DATE$(TIMEDATE)<>" 1 Mar 1900" THEN Clear crt SUBEXIT 7350 7360 7370 7380 7390 7400 7410 7420 7430 7440 7450 7460 7470 7480 7490 7500 7510 7520 7530 7540 7550 7560 7570 7580 7590 7600 7610 7620 7630 7640 7650 7660 7670 7680 7690 77GO 7710 7720 7730 7740 7750 7760 7770 7780 7790 7800 7810 7820 7830 7840 7850 7860 EDATE) EDATE) END IF Year$=VAL$ (1900+VAL (Chrono$ [1, 2 ] ) ) IF (VAL(Chrono$[3,4])<-0 OR VAL(Chrono$[3,4] )>12) THEN BEEP PRINT "Incorrect month value." GOTO Ask END IF YearS=Month$ (VAL(Chrono$ (3,4]) )&" "&Year$ Year$-Chrono$ [ 5, 6] &" "&Year$ SET TIMEDATE (DATE (Year$)) IF (VAL(Chrono$[7,8]))>23 THEN BEEP PRINT "Incorrect hour value." GOTO Ask END IF Day$-Chrono$ [ 7, 8] &": " IF VAL(Chrono$[9,10])>59 THEN BEEP PRINT "Incorrect minute value." GOTO Ask END IF Day$-Day$&Chrono$ [9, 10] &":" IF (LEN(Chrono$)>10 AND LEN(Chrono$)=12) THEN IF VAL(Chrono$[11,12])>59 THEN BEEP PRINT "Incorrect seconds value." GOTO Ask END IF Day$-Day$&Chrono$ [11,12] ELSE Day$-DayDayS &" 00" END IF SET TIME TIME(Day$) Clear crt SUBEXIT SUBEND! ************************************************************************ SUB Fix error SELECT ERRN CASE ELSE PRINTER IS CRT

7870 PRINT "ERROR ";ERRN 7880 PRINT ERRM$ 7890 PRINT " PROGRAM IS PAUSED. FIX ERROR, IF POSSIBLE, AND CONTINUE." 7900 PAUSE 7910 END SELECT 7920 SUBEND 7930 7940!******************************************* 7950 7960 SUB Clear_crt(OPTIONAL INTEGER Startline,Num of lines) 7970 7980 INTEGER I 7990 DIM Clear line$ [80] 8000 Clear lineS=" 8010 IF NPAR=0 THEN 8020 OUTPUT KBD;CHR$ (255) &CHR$ (75); 8030 ELSE 8040 PRINT TABXY(1,Start line);"";RPT$(Clear line$,Numn_oflines) 8050 PRINT TABXY(1, Start_line);""; 8060 SUBEXIT 8070 END IF 8080 SUBEND 8090 8100!************************************************************************ 8110 8120 SUB Print bannerl 8130 Clear_ crt 8140 PRINT 8150 PRINT 8160 PRINT TABXY(3,16);" ************************************************"* 8170 PRINT TABXY(4,16);"* * 8180 PRINT TABXY(5,16);"* LCX 8190 PRINT TABXY(6,16);"* UNIVERSITY OF MICHIGAN RADIATION LAB 8200 PRINT TABXY(7,16);"* L/C/X MEASUREMENT PROGRAM *1 8210 PRINT TABXY(8,16);"* (VERSION 8.0) *" 8220 PRINT TABXY(9,16);"* *" 8230 PRINT TABXY (10, 16);* May 21, 1990 * 8240 PRINT TABXY(11, 16);"u* * 8250 PRINT TABXY(12, 16);n ************************************************" 8260 SUBEXIT 8270 SUBEND 8280 8290!************************************************************************* 8300 8310 SUB Print banner2 8320 PRINT "Don't use Print banner2." 8330 SUBEND 8340 8350 ******-***************************************************************** 8360 8370 SUB Print banner3 8380 PRINT "Don't use Print banner3." 8390 SUBEND 8400 8410!************************************************************************* 8420 8430 SUB Print banner4 8440 COM /Paths/ @Nwa,@Nwadatal,@Nwadata2,Netwrk_analyzer,@Hpib,@Relay 8450 COM /Constants/ Vel,Zero(*),Exec_key$ 8460 COM /System_config/ INTEGER Printer_flag,Debug_flag,Version$,Mode$, Out_type$, Sound$, Bell$,Target$, Ref_target$

8470 8480 8490 8500 8510 8520 8530 8540 8550 8560 8570 8580 8590 8600 8610 8620 8630 8640 8650 8660 8670 8680 8690 8700 8710 8720 8730 8740 8750 8760 8770 8780 8790 8800 8810 8820 8830 8840 8850 8860 8870 8880 8890 8900 8910 8920 8930 8940 8950 8960 8970 8980 8990 9000 9010 9020 9030 9040 COM COM COM COM COM COM /Sys_l/ /Sys_2/ / Sys_3 / /Sys_4/ /Sys_5/ /Sys_6/ Freq$(*),Freq_cent (*),Freqspan(*), Gate_cent (*),Gate_span(*) Pol$ (*), Polsw$ (*) INTEGER F_disp, P_disp Drive_a$, Drive_b$, Drive_c$, INTEGER Preamble, Bytes INTEGER Nskip, Ndata Ref_angle,Angle, Angle, Beam ( * ), INTEGER Npts,Ntrace, Average_factor INTEGER Meas_flag(*) COM /Sys_7/ I OFF KEY Clearcrt PRINT PRINT PRINT " PRINT PRINT " FOR F=1 TO 3 IF Meas_flag(F) NEXT F PRINT " " PRINT " PRINT " PRINT " PRINT n PRINT n PRINT " PRINT " PRINT " PRINT " PRINT " PRINT " SUBEXIT SUBEND PARAMETER CURRENT VALUE" FREQUENCY It; I THEN PRINT Freq$(F)&" "; ANTENNA ANGLE TARGET TYPE MEASUREMENT MODE CURRENT DISPLAY # OF TRACES/SET # OF SAMPLE POINTS # OF DATA POINTS (to be stored) # OF AVERAGES "&Angle$ "&TargetS "&Mode $ &" " "&Freq$ (F_disp) &" "&Pol$( "; Ntrace ";Npts "; Ndata "; Average_factor I ************************************************************************* SUB Store_file(COMPLEX Matrix(*), File _type$,Filename$, INTEGER F) COM /Sys_1/ Freq$(*),Freq cent( *),Freq span(*),Gate_cent(*),Gate_span (*) COM /Sys_2/ Pol$(*),Polsw$(*) COM /Sys 5/ INTEGER Nskip,Ndata COM /Sys_6/ Ref_angle,Angle,Angle$, Beam(*), INTEGER Npts,Ntrace, Average f actor COM /Sys 7/ INTEGER Meas_flag(*) COM /System_config/ INTEGER Printer_flag, Debug_flag,Version$,Mode$, Out_type$, Sound$,Bell$,Target$,Ref_target$ INTEGER Records_per_set, T REAL Bytesper_set DIM Suffix$ [2] ALLOCATE COMPLEX Trace(Ndata) DISP "Saving file." SELECT File_type$ CASE ="SKY"! Sky data. Bytesper_set=1 6 *Ndata Recordsyper_set=4*SUM(Meas_flag) *Ntrace IF SUM(Meas_flag)=3 THEN

9050 Suffix$="SA" 9060 ELSE 9070 FOR F-l TO 3 9080 IF Meas_flag(F) =1 THEN 9090 Mf=F 9100 END IF 9110 NEXT F 9120 Suffix$="S"&Freq$ (Mf) 9130 END IF 9140 GOSUB Save traces 9150 9160 9170 CASE ="REF"' 9180 Bytes_per_set=l 6 *Ndata 9190 Records per_set4 *SUM (Meas_flag) *Ntrace 9200 IF SUM(Meas_flag)=3 THEN 9210 Suffix$="RA" 9220 ELSE 9230 FOR F=1 TO 3 9240 IF Meas_flag(F)=1 THEN 9250 Mf=F 9260 END IF 9270 NEXT F 9280 Suffix$-"R"&Freq$S (Mf) 9290 END IF 9300 GOSUB Savetraces 9310 9320 9330 CASE ="MNT" 9340 Bytesypersetl16*Ndata 9350 Records per_set=4*SUM (Meas_flag) *Ntrace 9360 IF SUM(Measflag) -3 THEN 9370 Suffix$="MA" 9380 ELSE 9390 FOR F-1 TO 3 9400 IF Meas_flag(F)=l THEN 9410 Mf-F 9420 END IF 9430 NEXT F 9440 Suffix$="M" &Freq$ (Mf) 9450 END IF.9460 GOSUB Savetraces 9470 9480 9490 CASE -"GND" 9500 Bytesper set-1 6 *Ndata 9510 Records_per _setNtrace*4*SUM (Meas_flag) 9520 IF SUM(Measflag) -3 THEN 9530 Suf f ix$"GA" 9540 ELSE 9550 FOR F-1 TO 3 9560 IF Meas_flag(F)=1 THEN 9570 Mf=F 9580 END IF 9590 NEXT F 9600 Suffix$="G"&Freq$ (Mf) 9610 END IF 9620 GOSUB Save traces 9630 END SELECT 9640 DEALLOCATE Trace(*) 9650 SUBEXIT

9660 9670! 9680 Saveaveraged:! 9690! Save the reference data file. 9700 9710 IF NOT Debug_flag THEN 9720 CREATE BDAT Filename$&Suffix$&Drivec$,Recordsper setBytesper set 9730 END IF 9740 Baserecord=0 9750 FOR F=1 TO 3 9760 IF Meas_flag(F)=1 THEN 9770 IF Debug_flag THEN 9780 ASSIGN @Disc TO PRT 9790 OUTPUT @Disc;"FILE: ",,Filename$,Suffix$ 9800 OUTPUT @Disc USING Image_l;Version$,Freqcent (F),Freq_span(F) 9810 OUTPUT @Disc USING Image_2;Ndata, Average_factor 9820 OUTPUT @Disc USING Image_3;Reftarget$,T 9830 FOR P=1 TO 4 9840 OUTPUT @Disc USING Image_4;Pol$(P),Gate_cent(F),Gate_span(F) 9850 MAT Trace- Matrix(F,1,P,*) 9860 OUTPUT @Disc;Trace(*) 9870 NEXT P 9880 ELSE 9890 ASSIGN @Disc TO Filename$&Suffix$&Drive c$;FORMAT OFF 9900 OUTPUT @Disc,Base_record+l;Version$, Freq_cent (F), Freq_span(F) 9910 OUTPUT @Disc,Base_record+l;Ndata,Average_factor 9920 OUTPUT @Disc,Baserecord+l;Reftarget$,T 9930 FOR P=1 TO 4 9940 OUTPUT @Disc,Baserecord+P;Pol$ (P),Gate_cent (F),Gatespan (F) 9950 MAT Trace- Matrix(F, 1,P,*) 9960 OUTPUT @Disc,Base record+P;Trace(*) 9970 NEXT P 9980 Baserecord-Baserecord+4 9990 END IF 10000 END IF 10010 NEXT F 10020 ASSIGN @Disc TO * 10030 RETURN 10040! 10050! --- —--------------------------------------------------------------— ~ — 10060! 10070 Save traces:! 10080! Save the ground target data file. 10090! 10100 IF NOT Debug_flag THEN 10110 CREATE BDAT Filename$&Suffix$&Drive_c$,Recordsper set,Bytesperset 10120 Baserecord-0 10130 END IF 10140 IF Debug flag THEN 10150 ASSIGN @Disc TO PRT 10160 OUTPUT @Disc;"FILE: ";Filename$;Suffix$ 10170 OUTPUT @Disc USING Image_5;Ndata,Ntrace 10180 OUTPUT @Disc USING Image_3;Target$ 10190 FOR T=1 TO Ntrace 10200 FOR F=1 TO 3 10210 IF Meas_flag(F)=l THEN 10220 OUTPUT @Disc USING Image_l;Version$,Freq_cent(F),Freq_span(F) 10230 FOR P=1 TO 4 10240 OUTPUT @Disc USING Image_4;Pol$(P),Gate_cent(F),Gate_span()-, 10250 MAT Trace= Matrix(F,T,P, *) 10260 OUTPUT @Disc;Trace(*)

10270 NEXT P 10280 END IF 10290 NEXT F 10300 NEXT T 10310 ELSE 10320 ASSIGN @Disc TO Filename$&Suffix$&Drive cS$;FORMAT OFF 10330! OUTPUT @Disc,1;Ndata,Ntrace 10340! OUTPUT @Disc,l;Target$ 10350 FOR T=1 TO Ntrace 10360 FOR F-1 TO 3 10370 IF Meas_flag(F)=l1 THEN 10380! OUTPUT @Disc,Base_record+l;Version$,Freqcent (F),Freqspan(F) 10390 FOR P=1 TO 4 10400! OUTPUT @Disc,Base_record+P;Pol$(P),Gate_cent(F),Gate_span(F),T 10410 MAT Trace- Matrix(F,T,P,*) 10420 OUTPUT @Disc,Base record+P;Trace(*) 10430 NEXT P 10440 Baserecord=Base record+4 10450 END IF 10460 NEXT F 10470 NEXT T 10480 END IF 10490 ASSIGN @Disc TO * 10500 RETURN 10510! 10520! --- —-------------------------------------------------------------------- 10530! 10540 Image_l 1:IMAGE (1X,12A,5X,"FREQ CENTER: ",2D.4D,5X,"FREQ SPAN: ",2D.4D) 10550 Image_2:IMAGE ("NUMBER OF POINTS: ",5D, 5X,"NUMBER OF AVERAGES: ",5D) 10560 Image_3:IMAGE ("TARGET: ",30A, "GATING TARGET TYPE: ",2D) 10570 Image_4:IMAGE ("POLARIZATION: ",2A, 5X,"GATE CENTER: ",SD.14DE,/,S5X,"GATE SPAN 10580 Image_ 5:IMAGE ("NUMBER OF POINTS: ",5D,5X,"NUMBER OF TRACES: ",5D) 10590 Image_6:IMAGE (5X, SD.14DE,5X, SD.14DE) 10600 SUBEND 10610! 10620!************************************************************************* 10630! 10640 SUB Freq_set(INTEGER Ifreq) 10650 COM /Paths/ @Nwa,GNwadatal, @Nwa_data2,Netwrkanalyzer, @Hpib, @Relay 10660 COM /Sysl/ Freq$(*),Freq_cent(*),Freq_span(*),Gate_cent(*),Gate_span(*) 10670! 10680! This subroutine sets the transmit frequency for the HP8753. 10690 10700 SELECT Netwrk analyzer 10710 CASE =3,=4, 5,=-6 10720 OUTPUT @Nwa; "TIMDTRANOFF;" 10730 CASE -1,-2 10740 OUTPUT @Nwa; "FREQ;" 10750 END SELECT 10760 OUTPUT @Nwa;"CENT "&VAL$(Freq_cent (Ifreq)) &" GHZ;" 10770 OUTPUT @Nwa;"SPAN "&VAL$(Freqspan (Ifreq)) &" GHZ;" 10780 SUBEND 10790 10800!****************************************************************** 10810! 10820 SUB Freq_sw(INTEGER Ifreq) 10830 COM /Paths/ @Nwa, Nwa_datal, @Nwa_data2,Netwrk_analyzer, @Hpib, @Relay 10840 SELECT Ifreq 10850 CASE 1 10860 OUTPUT @Relay;"?*A1B2" 10870 CASE 2

10880 OUTPUT @Relay;"?*A2B1" 10890 CASE 3 10900 OUTPUT @Relay;"?*B12" 10910 END SELECT 10920 WAIT.1 10930 SUBEND 10940 10950!************************************************************************ 10960 10970 SUB Pol_sw(INTEGER Ifreq,Ipol) 10980 COM /Paths/ @Nwa,@Nwa_datal,@Nwa_data2,Netwrk_analyzer,@Hpib,@Relay 10990 COM /Sys_l/ Freq$(*),Freqcent(*),Freqspan(*),Gate cent(*),Gate_span(*) 11000 COM /Sys_2/ Pol$(*),Polsw$(*) 11010 11020! This subroutine sets the transmit and receive polarization by 11030! sending the proper command over the HPIB to the polarization 11040! relays. 11050 11060 OUTPUT @Relay;Polsw$(Ifreq,Ipol) 11070 OUTPUT @Nwa;"TITL "" "&Freq$(Ifreq)&" BAND - "&Pol$(Ipol)&"""" 11080 WAIT.1 11090 SUBEND 11100 11110!************************************************************************ 11120 11130 SUB Rotate_target 11140 OPTION BASE 1 11150 COM /Com4/ INTEGER Rotation_state,REAL Inc_angle,Current_angle,Start_angle, Stop_angle,Old home_angle,INTEGER Sets per_pos 11160 COM /Status/ INTEGER Sc,Connect_flg,EflgDebug flg,Response$[80] 11170 INTEGER Fs_flag,Ss_flag,Speed,Imc_status,Confirm answer 11180 11190 11200 Confirm answer-i 11210 Imc_ status=0 11220 Debug_flg-0 11230 Fs_flag —1 11240 Ss_flag —i 11250 Clearcrt(3,16) 11260! 11270 11280 SELECT Rotation state 11290 CASE — 1 11300 IF FNAsk("Do you wish to use the rotator?") THEN 11310 Connectf lg-0 11320 GOSUB Init imc 11330 GOSUB Init_graph_pos 11340 GOSUB Manual_loop 11350 PRINT "Set Auto Mode Please....." 11360 ELSE 11370 Rotation state=0 11380 GCLEAR 11390 GRAPHICS OFF 11400 END IF 11410 CASE =0 11420 SUBEXIT 11430 CASE -1 11440 GOSUB Check_position 11450 GOSUB Print_angles 11460 GOSUB Manual_loop 11470 CASE =2

11480 11490 11500 11510 11520 11530 11540 11550 11560 11570 11580 11590 11600 11610 11620 11630 11640 11650 11660 11670 11680 11690 11700 11710 11720 11730 11740 11750 11760 11770 11780 11790 11800 11810 11820 11830 11840 11850 11860 11870 11880 11890 11900 11910 11920 11930 11940 11950 11960 11970 11980 11990 12000 12010 12020 12030 12040 12050 12060 12070 12080 GOSUB GOSUB CASE =3 GOSUB GOSUB GOSUB CASE =4 GOSUB GOSUB CASE =5 GOSUB Rotatj END SELECT SUBEXIT Check_position Auto Check_position Manual_loop Auto Check_position Gohome Check_position ionstate=1! Switch to manual mode.! Initimc:! Initialize the IMC unit. GOSUB Check_4 fault PRINT TABXY(1,3);"INITIALIZING IMC" Clearcrt (4, 15) Conmm("4WB")! Set warm boot (cl PRINT TABXY(1,4);"WB" Comm("4EB")! Clear IMC buffer. PRINT TABXY(1,4);"EB" Encoder ratio=4096! 32000 Comm("4ER"&VAL$ (Encoder ratio))! L PRINT TABXY (1,4); "ER"&VAL$ (Encoder ratio) ear flags). I.oad encoder ratio. I! IF FNAsk("Do you wish to set home at the current position?") THEN Comm("4RS", Confirm answer) ENTER Response$;Old_home angle Old_home_angleOld_home_angle/ 93.3 Comm("4PIZO")! Set IMC at 0. PRINT TABXY(1, 4); "PIZ"&RPT$ (" ", LEN(VAL$ (Encoder ratio))) Comm("4PIA0")! Set IMC at 0. PRINT TABXY(1,4);"PIA" Current_angle-0 END IF Comm("4SP100")! Set speed to (50pps). PRINT TABXY(1, 4);"SP "&RPT$(" ",LEN(VAL$ (Encoder_ratio))) Comm("4AC500")! Set acceleration (500pps^2). PRINT TABXY (1, 4); "AC " Comm( " 4DC500")! Set deceleration (500pps^2). PRINT TABXY (1, 4); "DC " GOSUB Check_position Rotation state-1 Clear crt PRINT TABXY(1, 4); "DONE INITIALIZING IMC" PRINT TABXY(1, 5);"Turntable currently in manual mode." PRINT TABXY(1,6) Print_angles:! PRINT TABXY(1,7);"Current angle is: ";Current_angle;" degrees." PRINT TABXY(1,8);"Starting angle is: ";Start_angle;" degrees." PRINT TABXY(1,9); "Stopping angle is: ";Stop_angle;" degrees." RETURN Manual_loop:! Main activation loop. LOOP ON KEY 0 LABEL "FAST SLEW CW ",FNTrap_level GOSUB Fscw

12090 12100 12110 12120 12130 12140 12150 12160 12170 12180 12190 12200 12210 12220 12230 12240 12250 12260 12270 12280 12290 12300 12310 12320 12330 12340 12350 12360 12370 12380 12390 12400 12410 12420 12430 12440 12450 12460 12470 12480 12490 12500 12510 12520 12530 12540 12550 12560 12570 12580 12590 12600 12610 12620 12630 12640 12650 12660 12670 12680 12690 ON ON ON ON ON ON ON ON ON KEY KEY KEY KEY KEY KEY KEY KEY KEY 1 LABEL 5 LABEL 6 LABEL 2 LABEL 3 LABEL 4 LABEL 7 LABEL 8 LABEL 9 LABEL "FAST SLEW CCW ",FNTrap_level "SLOW SLEW CW ", FNTrap_level "SLOW SLEW CCW ",FNTrap_level "MANUAL CONTROL", FNTrap_level "TARGET GO HOME", FNTrap_level "STOP ROTATION ",FNTrap_level "SET AUTO MODE ", FNTrap_level GOSUB GOSUB GOSUB GOSUB GOSUB GOSUB GOSUB Fs ccw Sscw Ssccw,Manual Gohome Stop_turn Setauto "SET TARGET HOME",FNTrap_level GOSUB Setposition "RETURN ",FNTrap_level GOTO Quit GC END t t )SUB Checkposition LOOP Fscw:! Fast slew clockwise. IF Fs_flag<0 THEN Comm ( "4SP500") Comm ("4 SFN" ) Fs_flag-l*Fsflag Clearcrt (3, 15) PRINT TABXY(1, 15); "ROTATING CW (FAST)" ELSE Comm ( "44ST" ) Fs_flag=- 1 *Fs_flag Clear crt(3,15) PRINT TABXY(1, 15); "ROTATION STOPPED" GOSUB Check_position END IF RETURN I --- —---------------------------— ___________________________ --- _ --- — - Fsccw:! Fast slew counterclockwise. IF Fs_flag<0 THEN Comm("4ST") Comm("4SP500") Comm ( "4SRN" ) Fs_flag —l*Fs_flag Clearcrt(3,10) PRINT TABXY (1, 15); "ROTATING CCW (FAST)" RETUF! EI LSE Comm("4ST") Fs_f lag-1*Fsflag Clearcrt (3, 15) PRINT TABXY(1, 15);"ROTATION STOPPED" GOSUB Checkposition END IF Sscw:! Slow slew clockwise. IF Ss_flag<O THEN Cornmm("4ST") INPUT "Speed?", Sp Comm("4SP"&VAL$(INT(Sp))) Comm ( "4SFN") Ss_fl-ag=-l*Ss_flag Clearcrt(3,15) PRINT TABXY(1, 15);"ROTATING CW (SLOW)" ELSE

12700 12710 12720 12730 12740 12750 12760 12770 12780 12790 12800 12810 12820 12830 12840 12850 12860 12870 12880 12890 12900 12910 12920 12930 12940 12950 12960 12970 12980 12990 13000 13010 13020 13030 13040 13050 13060 13070 13080 13090 13100 13110 13120 13130 13140 13150 13160 13170 13180 13190 13200 13210 13220 13230 13240 13250 13260 13270 13280 13290 13300 Conmm("4ST" ) Ss_flag=-l*Ss_flag Clear_crt(3,15) PRINT TABXY(1,15); "ROTATION STOPPED" GOSUB Check_position END IF RETURN I! --- —--------------------------------- ___________________ —________ — _.... Ssccw:! Slow slew counterclockwise. IF Ss_flag<0 THEN INPUT "Speed?", Sp Comm ("4SP"&VAL$e(INT (Sp))) Comm("4SRN") Ss_flag —l*Ss_flag Clear_crt(3,15) PRINT TABXY(1, 15);"ROTATING CCW (SLOW)" ELSE Conm( ("4ST") Ss_flag —l*Ss_flag Clear_crt(3,15) PRINT TABXY(1,15S);"ROTATION STOPPED" GOSUB Checkposition END IF RETURN I! --- —-------------------------------— _-____________ --- —---------------- Manual: INPUT "ANGLE (IN DEGREES)-?",Inc angle INPUT "SPEED? (~100 —500 RECOMMENDED)",Speed Comm ("4SP" &VAL$ (Speed)) Auto: SELECT Rotation state CASE =4 GOSUB Go home Rotation state-2 GOTO Auto CASE ELSE Angl2-Inc_angle*93.3 Angll-INT (Angl2) IF Angl2-Angll>-.5 THEN Angll=Angll+l! Current angle=Current_angle+Inc_angle Inc_angle$=VAL$ (Angll) Comm("4IM"&Inc_angle$) Cornm("4RFI") END SELECT Imc status-0 Clearcrt(3,7) PRINT TABXY(1, 14);"ROTATING TARGET, PLEASE WAIT."! WHILE NOT BIT(Imc status,0)! Wait for motor to stop. Comm ( "4RS n,Confirm_answer) ENTER Response$;Imc_status PRINT TABXY(1,15);DVAL$(Imcstatus,2) GOSUB Check_position WAIT 1 END WHILE Imcstatus=0

13310 13320 13330 13340 RETURN 13350! 13360! --- —-- 13370 13380 Stop_tur 13390 13400 13410 13420 13430 13440 13450 13460 13470 13480 RETURN 13490! 13500! --- —-- 13510! 13520 Setauto 13530 13540 13550 13560 13570 13580 13590 13600 13610 13620 13630 13640 13650 13660 13670 13680 13690 13700 13710 13720 13730 13740 13750 13760 13770 13780 RETURN 13790! 13800! ------- 13810! 13820 Setposi 13830 13840 13850 13860 13870 13880 13890 13900 13910 Clear_crt (3, 16) PRINT TABXY(1,16);"CURRENT TARGET POSITION IS ";Currentangle;" DEGREES WAIT 2! Wait for target settling..__________________________________________________________________:n:Comm("4ST") WHILE NOT BIT(Imc_status, 0) Comm("4RS",Confirm answer) ENTER Response$; Imcstatus WAIT. 1 END WHILE Clearcrt(3, 16) PRINT TABXY (1, 15); "ROTATION STOPPED" GOSUB CheckjPosition Imcstatus-0! Wait for motor to stop. __________________________________________________________________ Commun ("4SP500") GOSUB Check_position Clear_crt(3,16) PRINT TABXY (1,3); "Current starting angle: ";Start angle;" degrees" PRINT TABXY(1, 4); "Current increment angle: ";Inc_angle;" degrees" PRINT TABXY(1,5);"Current stopping angle: ";Stop_angle;" degrees" PRINT TABXY(1,6);"Current rotation speed: ";Speed PRINT TABXY(1,7);RPT$(" ",80) PRINT TABXY(1,8);"Rotator positioned at: ";Current_angle;" degrees" INPUT "Enter starting angle value (degrees): ",Start_angle INPUT "Enter increment angle (degrees): ",Inc_angle INPUT "Enter stopping angle (degrees): ",Stop_angle INPUT "Enter rotation speed of target (-500 recommended): ",Speed Speed-INT (Speed) Comm(" 4SP"&VAL$ (Speed)) IF ABS (Start angle-Current angle)>.1 THEN PRINT TABXY(1,9);RPT$(" ",80) PRINT TABXY(1,10);"Rotating target to starting angle..." Temp_angle-Inc_angle Inc_angle-Start angle-Current_angle GOSUB Auto Inc_angle-Temp_angle END IF Rotation state-2 Clear crt PRINT TABXY(1,20);"Turntable is in automatic mode. (press the RETURN.tion:INPUT "LOCK IN CURRENT TARGET POSITION AS REFERENCE POSITION?",Yn$ IF Yn$-"Y" OR Yn$-"y" THEN Comm("4RS", Confirm_answer) ENTER Response$;Old_home_angle Old_home_angle=Old_home_angle/93.3 Comm ( " 4PIAO n ")! Set absolute position to zero. Comm("4PIZO0')! Set incremental postition to zero. Current_angle-0 ELSE PRINT "POSITION WAS NOT SET."

13920 13930 13940 13950 13960 13970 13980 13990 14000 14010 14020 14030 14040 14050 14060 14070 14080 14090 14100 14110 14120 14130 14140 14150 14160 14170 14180 14190 14200 14210 14220 14230 14240 14250 14260 14270 14280 14290 14300 14310 14320 RETURN I END IF f Go_home: IF Speed<200 THEN Speed=200 Comm (" 4SP" &VAL$ (Speed)) Comm("4AM0")! Move to zero absolute position. Comm("4RAN")! Initiate movement. Comm("4MW")! Make sure the move is completed. Imc status=0 Clearcrt(3,15) PRINT TABXY(1,14);"ROTATING TARGET TO HOME POSITION, PLEASE WAIT." WHILE NOT (BIT(Imc_status, 0) AND BIT(Imcstatus,5)) GOSUB Check status PRINT TABXY(1, 15); "CURRENT STATUS: ";DVAL$ (Imc status, 2) GOSUB Checkposition WAIT.1 END WHILE Clear_crt (3, 16) PRINT TABXY(1,15);"TARGET AT HOME POSITION." GOSUB Check_position Imc status=0 RETURN I! — -------------------------------— _-________________________ ---- __ --- —Check_status:! Keep an eye on the Whedco controller status. Comm ( " 4RS ", Confirm_answer) ENTER Response; Imcstatus RETURN!! --- —--.__________________________________________________________________ Check position:! Get the current turnstile position in degrees. Comm("4RP", Confirmanswer) ENTER Response$;Motorposition Current_angle-Motor_position/93.3 Current_angle-Current angle+Inc_angle PRINT TABXY(1,16);"CURRENT TARGET POSITION IS ";Currentangle;" DEGREE GOSUB Draw positions 14330 RETUF 14340! 14350! ---. 14360! 14370 Check 14380 14390 14400 14410 14420 14430 14440 14450 14460 14470 14480 14490 14500 14510 14520 IN c:4 fault:! Check the IMC for a fault condition and correct or! notify the user if necessary. I Commn("4FC", Confirmanswer) ENTER Response$; Fault$ SELECT Fault$ CASE ="Power failure"! Loss of power RETURN CASE ="Force DAC"! Force DAC command was given BEEP PRINT "Force DAC command was given..." DISP "Press CONTINUE to resume..." PAUSE RETURN CASE ="Over-current"! Over-current condition exists. BEEP

14530 14540 14550 14560 14570 14580 14590 14600 14610 14620 14630 14640 14650 14660 14670 14680 14690 14700 14710 14720 14730 14740 14750 14760 14770 14780 14790 14800 14810 14820 14830 14840 14850 14860 14870 14880 14890 14900 14910 14920 14930.14940 14950 14960 14970 14980 14990 15000 15010 15020 15030 15040 15050 15060 15070 15080 15090 15100 15110 15120 15130 I PRINT "An over-current condition has been detected on the IMC." PRINT PRINT "Cycle the power to the IMC until the OV-CUR LED goes out" DISP "Press CONTINUE to reinitialize the IMC" PAUSE GOSUB Initimc RETURN END SELECT RETURN Init_graph_pos:! Creates a graphical depiction of where the target is. GINIT GCLEAR GRAPHICS ON SHOW 0,100,0,100 PENUP MOVE 90,70 PEN 1! Draw circle POLYGON 12,360,360 PENUP MOVE 90,70! Draw old home orientation. PEN 2 DRAW 90+11*COS(Old_home_angle),70-11*SIN(Old_home_angle) PENUP MOVE 90,70! Draw current home orientation. PEN 4 DRAW 90,58 PENUP MOVE 90,70! Draw current target orienation. PEN 3 X pos-90+11*COS (Current_angle) Y_posm70-11*SIN(Current_angle) DRAW Xpos,Ypos RETURN! Drawpositions:! Draws out the angular orienations. MOVE 90,70! Draw old home orientation. PEN 2 DRAW 90-11*SIN (Old_home_angle),70 -11*COS (Old_home_angle) PENUP MOVE 90,70! Draw current home orientation. PEN 4 DRAW 90,58 PENUP DISABLE MOVE 90,70! Draw current target orienation. PEN -3 DRAW Xpos, Ypos MOVE 90,70 PEN 3 X-pos=90-11*SIN (Current_angle) Yjpos=70-11*COS (Current_angle) DRAW Xpo s, Ypos PENUP ENABLE RETURN

15140! 15150 ------------------------------------------------------------------------- 15160! 15170 Quit:! 15180 SUBEXIT 15190 SUBEND 15200 15210!************************************************************************* 15220 15230 SUB Cormm(C$,OPTIONAL INTEGER Confirm answer) 15240! 15250! PROGRAM MODULE: Comm 15260! 15270! PURPOSE: Modified version of the Comm module to be used 15280! for direct two way communication with the WHEDCO 15290! IMC stepping motor controller. 15300! 15310! UPDATE: 3.0 Version 3.0 checks to see if the card being used II 15320 15330 15340 15350 15360 15370 15380 15390 15400 15410 15420 15430 15440 15450 15460 15470 15480 15490 15500 15510 15520 15530 15540 15550 15560 15570 15580 15590 15600 15610 15620 15630 15640 15650 15660 15670 15680 15690 15700 15710 15720 15730 15740 I I is the HP98628A (Datacomm) or the HP98626A (Serial).. Depending on which card is used, the appropriate registers are selected. OPTION BASE 1 COM /Status/ INTEGER Sc,Connect_flg, E_flg,Debug_flg, Responses INTEGER Baud_rate, B, Num_chars, Response_flg, Indexl DIM InputS [256],TermS[256],In$ [256] BUFFER, From_232$ 256] DIM Numchars$[6],Numltrs$ [6,Out$S 256] BUFFER DIM Whiteprint$ [1],Crlf$ [2] IF Debug_flg THEN PRINT TABXY(1,1);"ENTERING Comm " ON ERROR GOSUB Error IF Connect_flg THEN After_init Sc-20 ASSIGN @Find it TO Sc;RETURN Outcome IF Outcome-0 THEN ASSIGN @Find it TO * CONTROL Sc, 0;1! Reset RS-232 interface. CONTROL Sc,3;1! Async link protocol. CONTROL Sc,0;1! Set Async toggle. CONTROL Sc,8;1+2! Set RTS and DTR lines. CONTROL Sc,16;0! Disable connection timeout. CONTROL Sc,17;0! Disable no activity timeout. CONTROL Sc, 18;0! Disable NO CARRIER timeout. CONTROL Sc,19;0! Disable transmit timeout. CONTROL Sc,20;14! TX baud speed = 9600 CONTROL Sc,21;14! RX baud speed = 9600 CONTROL Sc,22;0! No handshake with Whedco. CONTROL Sc,23;0! No hardwired handshake. CONTROL Sc,34;2! 7 bits/character. CONTROL Sc,35;0! 1 stop bit. CONTROL Sc,36;1! ODD parity. Connect_flg=1 ELSE Sc=8 ASSIGN @Find it TO * ASSIGN @Find it TO Sc;RETURN Outcome IF Outcome<>0 THEN PRINT "RS-232 card not installed. Please install and reboc:. ASSIGN @Find it TO *

15750 15760 15770 15780 15790 15800 15810 15820 15830 15840 15850 15860 15870 15880 15890 15900 15910 15920 15930 15940 15950 15960 15970 15980 15990 16000 16010 16020 16030 16040 16050 16060 16070 16080 16090 16100 16110 16120 16130 16140 16150 16160 16170 16180 16190 16200 16210 16220 16230 16240 16250 16260 16270 16280 16290 16300 16310 16320 16330 16340 16350 STOP END IF ASSIGN @Find it TO * RESET Sc CONTROL Sc,0;1 CONTROL Sc,3;Baud_rate CONTROL Sc,4;8+2 CONTROL Sc,5;3 CONTROL Sc,12;128+32+16 STATUS Sc,3;B Connect_flg=l END IF Afterinit:! White print $=CHR$ (136) Crlf$=CHR$ (13)&CHR$ (10) PRINT CHR$(128)&CHR$(136); ASSIGN @Screen TO CRT ASSIGN @Kbd TO KBD ASSIGN @Rx TO BUFFER In$ ASSIGN @Tx TO BUFFER OutS ASSIGN @Uartout TO Sc ASSIGN @Uartin TO Sc Response_flg=0 Response $""!! Reset the RS-232 interface.! Set the baud rate.! UART 8 bits/char. ODD parity.! UART DTR line active.! Disable CD,DSR,CTS! Confirm speed to user.! Set up the screen.! Reset command acknowledge flag.! Null out response string. ENABLE INTR Sc! Enable interrupt on card. TRANSFER @Tx TO @Uartout;CONT! Enable transfer buffers. TRANSFER @Uart in TO @Rx ON INTR Sc,FNTrap_level GOSUB Read_loop! Process card interrupts. IF C$<>"" THEN GOSUB Send com! Send command out to controller. ELSE GOTO Quit END IF Wait_for_it:WHILE NOT Response_flg GOSUB Read_ loop IF NPAR-2 THEN LOOP! If null command, exit quick.! Waiting for acknowledgement.! We are waiting for data to be! sent by the Whedco controller. GOSUB Read_ loop IF (POS(Response$,"*")) THEN Response$-Response$S [POS (Response$, "*"),LEN(Respo Response flg=1 END IF EXIT IF ((Response_flg=l) AND (POS(Response$,Crlf$))) END LOOP ELSE WHILE NOT ((POS(Response$,"*")) OR (POS(Response$,"?"))) GOSUB Read_loop END WHILE Indexl=POS(Response$,"*") IF Indexl=0 THEN! Must be a "?" (Whedco command err? ^-! Must be a "?" (Whedco command error). Eflg=l! Notify via error flag. Response_flg=l ELSE! Normal command interpretation.

16360 16370 16380 16390 16400 16410 16420 16430 16440 Ra 16450 16460 16470 16480 16490 16500 16510 16520 16530! 16540 S5 Ef lg=0 Response_f lg=1 END IF END IF END WHILE GOTO Quit eadloop:! Read in serial data from Whedco. STATUS @Rx, 4;Num chars IF Num chars=0 THEN RETURN Num chars$="#, "&VAL$ (Num chars) &"A" ENTER @Rx USING Num chars$;From 232$ Response$=Response$&From_2 32 $ RETURN! Number of characters to! receive, if 0 try again.! Set up the IMAGE for ENTER.! Transfer contents.! Build up dialogue.! Update pointers. end com:Term$=Crlf$ [1, 1] &C$&Crlf$ 16550 16560 16570 16580 16590 16600 16610 16620 16630 16640 16650 16660 16670 16680 16690 16700 16710 16720 16730 16740 16750 16760 16770 16780 16790 16800 16810 16820 16830 16840 16850 16860 16870 16880 16890 16900 16910 16920 16930 16940 16950 16960 Quit: I Num ltrs$="#, "&VAL$ (LEN (Term$) ) &"A" OUTPUT @Tx USING Num _ltrs$;Term$ Term$S" " RETURN OFF ERROR STATUS @Tx, 10;Stat STATUS @Rx,4;Num_bytes ABORTIO @Uart out ASSIGN @Tx TO * CONTROL @Rx, 8;0 STATUS @Rx, 10; Stat STATUS @Rx, 4;Num_bytes ABORTIO @Uartin ASSIGN @Rx TO * DISABLE INTR Sc SUBEXIT Error:PRINT "HANDLING Cormm ERROR" IF ERRN<>167 THEN Othererror IF Sc-8 THEN! Process the simple card. STATUS Sc,10;Uarterror IF BIT(Uart error, 1) THEN Overrun IF BIT(Uarterror,2) THEN Parity IF BIT (Uarterror, 4) THEN Breakl IF BIT(Uart error, 3) THEN Framing E_ flg1 PAUSE RETURN ELSE PRINT ERRM$ E_f 1g=1 PAUSE RETURN END IF Other: PRINT "UART error status: ";Uart error E_flg=1 RETURN

16970 16980! 16990 Overrun:PRINT "Overrun" 17000 E_flg=1 17010 RETURN 17020 17030! 17040 Parity: PRINT "Parity" 17050 E_flg=l 17060 RETURN 17070! 17080! 17090 Breakl: PRINT "Break" 17100 E_flg=l 17110 RETURN 17120! 17130! 17140 Framing:PRINT "Framing" 17150 E_flg=l 17160 RETURN 17170! 17180! 17190 Other_error:PRINT "Error message: ";ERRM$ 17200 PAUSE 17210 E_flg=l 17220 SUBEXIT 17230! 17240! 17250 SUBEND 17260! 17270!************************************************************************* 17280

UNIVERSITY OF MICHIGAN 3 1111111015 02527 83941111111 3 9015 02527 8394