NURAD CW Data Aquisition This document is an HTMLized version of the documentation
for Harris NURAD, provided by Arun. This document is for
reference only, and refers to hardware that no longer exists!.
Any errors are likely mine. -Mike Nolan
This document describes and provides operating instructions
for the CW radar data acquisition program NURAD and its
associated program NURAD2 under Harris VOS. Details of
implementation can be found in the technical description,
Computer Dept Report #xx.
The NURAD programs perform data-taking and
antenna-pointing for CW S-band and 430MHz radar observations
of targets with well-known ephemerides and bandwidth less than
40KHz, e.g the terrestrial planets, main belt and near earth
asteroids and the Galilean satellites of Jupiter. The
data-taking functions (handled by NURAD) consist
of a Setup phase followed by alternating Transmit and Receive
phases. During the Transmit phase, the transmitter frequency
is cycled over user specified values, with a typical frequency
switching interval of 10 seconds. The pointing functions
(handled by NURAD2) consist of initial
specification of an ephemeris for the observed object,
followed by periodic updates to the antenna position for
Transmit and Receive phases. A binary ephemeris file on disk
containing coordinates, round-trip times and Doppler shifts at
minute intervals is used by NURAD to calculate
times for transmit and receive phases, and by
NURAD2 to issue pointing coordinates to the
antenna. A calibration noise source can be switched on at
specified intervals under program control to measure continuum
background contributions.
Typical receiver bandwidths are a few kHz for small asteroids, and about 40kHz for the Galilean satellites. Hence sampling requirements are well within the capacity of the Adage. Each IPP, a buffer of sampled data is passed to the online Array Processor, where it is Fourier-transformed and accumulated. The contents of the accumulator are retrieved and written to tape after each frequency switching interval. The AP120B Array Processor can currently handle complex transforms having a maximum length of 8K words. Real-time processing speed in the AP120B is limited to about 10 us/word. Data transfer time between the AP and host computer is about 1 us/word. These figures correspond to a maximum data rate of 80 kilowords/s. Since there are always two polarization channels, the bandwidth of each individual channel is limited to about 40Khz. When 4-frequency switching is used, the bandwidth of the target is limited to less than 10Khz. The average tape output rate is typically less than a kiloword per second.
An ephemeris file can be generated using the program
RADR*GEPHEMR, which reads an ephemeris tape for a
specified range of dates. The file should be generated under
the 120RAD qualifier, and its name should be
EPHXXX, where XXX denotes the
three-character name of the target to be observed. Up to 210
minutes' worth of ephemeris information per specified day is
copied in binary into the disk file. This information
consists of coordinates (azimuth, elevation, RA and Dec),
round-trip times and Doppler shifts at 1-minute intervals.
Instructions for running program GEPHEMR are in
Appendix 2.
The following hardware is used or controlled by program
NURAD:
HP synthesizer in Carriage House 2 (for S-band transmitter only)
HP #1 synthesizer in receiver room (for 430MHz transmitter only)
HP #2 synthesizer in receiver room (for S-band or 430MHz LO drive)
Adage interface
Timing rack thumbwheels for IPP, Gate Width and Gate delay, Date, Run, Observer and Experiment number.
Array Processor AP5210 ("New AP")
Any one or two of the tape drive pdns 11 (STC 6740), 13 and 14 (STC 6720), 16 and 17 (STC 6730).
H800 computer.
The following additional software is required:
The PANEL pointing programs.
The CH2 synthesizer control program SPEC*SENDHP2
VOS operating system (6.1 or later)
The user has the option of preparing a file containing values
of program parameters, instead of modifying the program menu
afresh each time. The file should be named
NURADXXX, where XXX is the
three-character target identifier. Parameters are defined by
<name> <value> pairs. Recognised <name>s
are the same as those in the program menu, and are explained
below. Comments may be included in the command file by
placing a "$ " (dollar space) at the beginning of the comment.
The NURAD program is generally run from the
Beehive (H8675) terminal PDN 23 in the control room. Sign on
to the H800 and type UCD RADR to switch qualifiers.
Then type NURAD. With no arguments after this
word, the default feed number chosen for pointing will be feed
2 (2380MHz). If you want to specify a particular feed
instead, type NURAD FEED <feed #>. The
program will resource the Adage and the Array Processor, and
complain if these are not ready or available. The program
SENDHP2 (CH2 synthesizer control) will be started
up. The program NURAD2 (pointing control) will
be started up if not already running, in which case the
PANEL program will also be stopped and restarted.
The user will first be prompted for a three-character target
name. Simply typing <XMIT> retrieves
parameters from the last run of NURAD. Typing
TES (test) specifies that a 120-second run is
desired, with a test set of linearly decreasing Doppler shift
values.
The program next displays the menu with existing parameter values, At this point the user may change any of the parameters, including the target name and those set from the thumbwheels. These parameters are described below:
DATEIPPIGWIGDTARGETTES, the round trip time is set to 120 seconds,
and the Doppler shifts are calculated according to the
formula 120RAD*EPHXXX must exist, and is searched for
the current date.
NDATPTFREQ1FRSTEPFREQ1
and NFREQS (see below) determines the
frequencies which will be used to program the HP synthesizer
in Carriage House 2 (for S-band runs), or the HP#1
synthesizer in the receiver room (for 430MHz runs).
NFREQSFRTIMEBANDWDCALTIMNFREQS greater than or
specified value (includes zero). If equal to the
specified value (includes zero). If CALTIM is
specified value (includes zero). If zero, the CAL
output is always low (no calibration). Typically, asteroid
observations with short round trip times will not use this
calibration. It is more useful during observations of the
Galilean satellites, which are affected by the radio
continuum background from Jupiter. The calibration pulse is
turned ON for NFREQS*FRTIME time, i.e for a full frequency
cycle.
MAGTAPE1MAGTAPE2DENSITYRESTARTY or
specified value (includes zero). If N (used to
recover from a crash). If N, this is a normal run (no
restart). If Y, the program will prompt the
specified value (includes zero). If user for a
transmitter start time, which must be entered manually (hours,
minutes and seconds with spaces separating). This time will
then be used, along with the round trip time, to determine
either
NURADWhen the menu is satisfactory, the user may hit the
XMIT key. The program will then che2ck
availability of the specified specified value (includes zero).
If tape drive(s), and initialise the appropriate transmitter
drive synthesizer (CH2 or HP1) to the starting frequency
FREQ1. The tape drive(s) should be ON LINE and
the synthesizer should be switched to COMPUTER
control. If the Carriage House 2 synthesizer cannot be
initialised, the program will wait for corrective action
before proceeding; other errors at this stage will cause it to
halt. If all goes well the program will wait for the user to
push the Adage START button. At this point, it
may be aborted by pushing Adage STOP.
The start of the transmit phase is always on a ten-second
tick of the station clock. The user should push Adage
START around the previous five-second tick. The
transmitter start and stop times will be displayed at the
bottom of the program menu. Every FRTIME seconds
after the start of the transmit phase, the transmitter drive
frequency will be seen to change on the synthesizer digital
readout. To abort the program during the transmit phase, the
system-defined ABORT key may be used. (This is ALT-\ or
CONTROL-\ on the Beehive terminals.) The transmitter STOP
time is always 2 seconds before the start of the receive
phase, which is calculated by the program as one round trip
interval after the start of the transmit phase. At the
transmitter STOP time, the S-band transmitter
frequency will be switched to an off-band value (or the 430TX
will be set at 430MHz).
During the receive phase, the LO drive synthesizer (HP#2 under the EECO clock) frequency is updated every IPP to a value interpolated from the Doppler shift table in the ephemeris file, using a fourth-order polynomial fit. The interpolation algorithm uses five equally spaced points from the table, chosen to afford the maximum time coverage not greater than the duration of the receive phase (i.e the round trip time). Samples from two Adage channels are sent to the Array Processor every IPP for Fourier transformation, squaring and accumulation. At the end of every frequency switching interval after the start of the receive phase, the accumulated power spectrum is retrieved from the Array Processor and written to tape. The algorithm for computing starting and ending times of accumulation intervals is described in Appendix 3.
The receive phase may be terminated at any time by pushing Adage STOP. Other conditions which could cause the program to stop abnormally are parity/timing errors in reading from the Adage interface, physical end of tape or lost Adage interrupts. Normal end occurs at the computed end of the receive phase; a double end of file mark is written on the tape, and the tape is positioned backwards over the last EOF to permit further runs.
NURAD2This program performs automatic antenna-pointing functions
for NURAD, but normally does this transparently.
It may however be commanded from a separate terminal (usually
the ADDS PDN 24). The program accepts several types of
commands, and may be run independently of NURAD
if desired. When started up, NURAD will check if
NURAD2 is running, and will start it up if not
running. NURAD2 will stop and restart the
PANEL pointing programs when first started up;
hence a "panel interrupt" must be supplied at this time (by
pressing any switch on the pointing console) to actually begin
tracking. NURAD2 initially uses a "dummy
ephemeris" to keep the antenna stationary, and will wait for
further commands either from NURAD or from PDN
24. When a new ephemeris is supplied, the program calculates
two tables (for transmit and receive ephemerides), and (if
pointing control is enabled) commands the antenna to the first
position in the transmit ephemeris.
Terminal commands to NURAD2 have the form <Ctrl-X>
<command>, where the <command> is usually a single
letter followed by an argument. For example, if the automatic
pointing feature is desired, the user must first enable it by
hitting <Ctrl-X> P <return> on PDN 24. The full
list of available commands is as follows:
NURAD2-controlled pointing (via a file) and
panel-controlled pointing (i.e via thumbwheels). If no
argument is supplied, the current state will be toggled.
Initial state is MANUAL, i.e., the automatic pointing
feature is NOT used.
NURAD and NURAD2, hence must
be named "EPHXXX" where "XXX" is the 3-character target
name. If the word DUMMY is used as argument, a dummy
ephemeris is generated. This is for an imaginary source
which has coordinates derived from the current antenna
position, and moves 60min in Right Ascension per hour,
remaining fixed in Declination: so the antenna does not
move.
NURAD2 will wait for the specified
time before issuing the pointing command. If the PANEL
program is not in FILE mode, and/or automatic pointing is
not enabled, no actual command will be issued, but the
appropriate coordinates will be printed out on the terminal
for verification.
The NURAD2 program does NOT automatically stop
when NURAD stops. This allows multiple restarts
of NURAD without interfering with the pointing
programs, and consumes minimal resources. However it is
advisable to stop the program when datataking is complete, in
order to free the command terminal (PDN 24) and remove the
program from the system scheduler tables. A <Ctrl-X> E
<return> achieves this gracefully.
ANALYZ functions are available to perform
on-line monitoring of NURAD spectra. These are
in the ANALYZ library RADR*AGVLIB
which must be ATTACHed to use them. The procedure is as
follows:
The output tape produced by NURAD may contain
several files. Each file consists of a single header record
followed by multiple data records. The last file on the tape
is empty, i.e., the end of data is signalled by a double EOF.
| WORD(S) | NAME | DESCRIPTION | TYPE |
|---|---|---|---|
| 1-2 | PROGRM | Program name i.e "NURAD" | CHARACTER |
| 3-4 | TNAME | TARGET name e.g "TES" | CHARACTER |
| 5 | IDD | UT day of observation | INTEGER |
| 6 | IMM | UT month of observation | INTEGER |
| 7 | IYY | UT year of observation | INTEGER |
| 8-9 | FREQ1 | First transmitted frequency in MHz | REAL |
| 10-11 | FRSTEP | Frequency step in MHz | REAL |
| 12 | NFREQS | Number of frequencies | INTEGER |
| 13-14 | FRTIME | Frequency switching interval in seconds | REAL |
| 15 | NCHAN | Number of Adage channels (always 2) | INTEGER |
| 16-17 | BANDWD | Sampling bandwidth in KHz | REAL |
| 18 | NDATPT | Samples per channel per IPP | INTEGER |
| 19 | NCPOL | Number of switching intervals between cals. Will always be a multiple of NFREQS. 0 ==> no cals are inserted. For other values, the first block (NFREQS*FRTIME) always has a cal inserted. | INTEGER |
| 20 | IGW | Gate width in microseconds (<=9999) | INTEGER |
| 21 | IGD | Gate delay in microseconds (<=9999) | INTEGER |
| 22 | IPP | IPP in microseconds (<=999999) | INTEGER |
| 23 | IRUN | Run number read from thumbwheels | INTEGER |
| 24 | IEXP | Expt number read from thumbwheels | INTEGER |
| 25 | IOB | Observer number read from thumbwheels | INTEGER |
| 26-27 | XSTART | Transmitter start time in seconds | REAL |
| 28-29 | XSTOP | Transmitter stop time in seconds | REAL |
| 30-31 | RTIME | Receiver start time in seconds | REAL |
| 32 | IRESTR | Restart indicator: "Y" or "N" | CHARACTER |
| 33 | MT1 | Physical device number of first magtape. | INTEGER |
| 34 | MT2 | Physical device number of second magtape. | INTEGER |
| 35 | IDENS | Magtape density in bpi | INTEGER |
| 36 | ILO | Local oscillator drive code: 0 = 45MHz (S-band), 1 = 30MHz (430TX) | INTEGER |
Each data record consists of spectra from two channels
averaged over FRTIME seconds, followed by a
16-word tag (8 real numbers). There are NDATPT
real numbers for the first channel followed by an equal number
for the second channel, NDATPT being the length
of the transform. Hence the record length in words is
NDATPT * 2 + 16. The significance of the tag
words is as follows (the word numbers give the position within
the tag section):
| WORD(S) | NAME | DESCRIPTION | TYPE |
|---|---|---|---|
| 1-2 | CUMGO | Start time of accumulation in seconds | REAL |
| 3-4 | CUMEND | Stop time of accumulation in seconds | REAL |
| 5-6 | COUNT | Number of IPPs averaged for this record If a cal was inserted, this number is negative. | REAL |
| 7-8 | CYCLE | Position within frequency cycle (0 to NFREQS-1) | REAL |
| 9-10 | ELEVATION | Elevation in degrees | REAL |
| 11-12 | AZIMUTH | Azimuth in degrees | REAL |
| 13-14 | RTT | Round trip time in seconds at start of the accumulation | REAL |
| 15-16 | DF | Doppler shift in KHz/s at start of the accumulation | REAL |
The program RADR*GEPHEMR can be used to create
ephemeris files on disc for the NURAD programs,
using as input tapes of ephemeris information generated either
at the Arecibo Observatory or at MIT Lincoln Labs. Tapes from
these two sources differ slightly in format. The MIT tapes
are written in EBCDIC and contain Right Ascension and
Declination, while the AO tapes are in ASCII and contain
derivatives of Doppler shift and Round Trip Time. MIT
ephemerides are exclusively used for asteroids and the
Galilean satellites of Jupiter.
The following procedure should be followed to run When all information is in order the program will read the
tape and print out the first two (header) records for
verification. PEP (MIT) ephemeris tape headers generally
carry the target name and an indication if the following file
contains Transmit ephemerides. The The IPP "frame sync" pulse is not, however, synchronised to
the frequency-switching times during the receive phase; hence
there is an unavoidable loss of data when a frequency-switch
occurs in the middle of an IPP. Up to one IPP's worth of data
can be lost on either side of a frequency switch. The
The Array Processor code used to accumulate Fourier
transforms is written in the Vector Function chainer language
supported on FPS systems. Explanations of library function
calls are given below (see AP Math Library manuals for more
info):
Last update: 1996 February 2.
GEPHEMR/code>:
120RAD account.
RS 30=INPUT WA [ EBC ]
where the EBC (for EBCDIC tapes only) is optional.
NURAD programs; hence the tape
position should be properly specified if both Transmit and
Receive ephemerides are supplied.
GEPHEMR will read
through the tape, storing information in 2103-word disc file
records, until the last day required is reached, or the end of
the tape file. The tape will be left positioned after the
last record read.
GEPHEMR may be run on either the H800 or the H1000.
If the latter, the file should be transferred to the H800
(datataking computer) before running NURAD.
APPENDIX 3 - POWER SPECTRUM ACCUMULATION INTERVALS
Timing of the receive phase
NURAD program begins receiving on the
nearest one-second tick of the station clock before the actual
computed time of return of the echo. The program cannot read
the station clock while datataking is in progress, hence it
uses periodic interrupts from the Adage interface to reckon
time.
Fences
NURAD program sets two "fences" for each
frequency switching interval, which demarcate the IPPs which
will actually be accumulated. These fences are set one IPP
before and after the corresponding switching instants.
Specifically, if T1 and T2 are consecutive frequency-switching
instants, the fences are
CUMGO = T1 + IPP
CUMEND = T2 - IPP
where CUMGO is the fence for start of accumulation
and CUMEND is the fence for the end of
accumulation. Accumulation begins on the first interrupt after
CUMGO, and terminates on the first interrupt after
CUMEND.
APPENDIX 4 - ARRAY PROCESSOR COMPUTATIONS
VMOVNNSPLIT2CFFTSCJMAVSMUL
DEFINE XRADAR(MODE,NSPP,NSPP2,APCNT,APCUM)
"
" ACCUMULATES SPECTRA FROM TWO POLARIZATIONS IN ARRAY PROCESSOR
" MODE = 0 FOR ACCUMULATION
" = 1 FOR DIVISION
" NSPP = NUMBER OF COMPLEX SAMPLES / POLARIZATION / IPP
" NSPP2 = 2 * NSPP
" APCUM = ADDRESS OF ACCUMULATED SPECTRA
" APCNT = ADDRESS OF COUNT
"
IF MODE > 0 GOTO DIVID
SPLIT: CALL VMOVNN(1,2,NSPP2,1,NSPP)
CALL VMOVNN(0,2,0,1,NSPP)
CALL SPLIT2(0,0,NSPP)
CALL SPLIT2(NSPP2,NSPP2,NSPP)
CALL CFFT(0,NSPP,1)
CALL CFFT(NSPP2,NSPP,1)
CALL SCJMA(0,2,APCUM,1,APCUM,1,NSPP2)
GOTO RET
DIVID: CALL VSMUL(APCUM,1,APCNT,APCUM,1,NSPP2)
RET: END