I decoded a recording I made with the Allen Telescope Array. I used an IQ sample rate of 3.84 Msps when doing this recording because I wanted to see if there were any ranging signals. Usually, ranging signals have a bandwidth of 1.5 MHz or less in baseband, so after phase modulation, approximately 3 MHz are used. Thus, 3.84 Msps gives enough bandwidth to record the typical ranging signals.

After looking at the waterfall of the recording carefully, I saw that there are sequential ranging signals present almost all the time. This is expected. Since the recording was done 7 hours after the first correction manoeuvre, the DSN would be doing ranging to compute accurate ephemerides. Often, ranging signals are not used every time that a spacecraft is tracked, but only when the ephemerides need to be refined, such as when planning a manoeuvre or shortly after executing one.

In this post I analyse these sequential ranging signals. I still haven’t had time to publish the recordings in Zenodo. After seeing that the wideband recording is of interest, due to the presence of these signals, I’m planning to publish a shorter segment of the wideband recording (the full recording is 241 GB per polarization) and publish a decimated version of the full recording where only around 100 kHz of spectrum are present (which is enough for the telemetry signal).

Sequential ranging, as performed by the DSN, is described in this module of the Telecommunications Link Design Handbook. Briefly speaking, it involves including a tone (either a sinusoid or square wave) in the phase-modulated uplink signal, which then gets remodulated into the downlink by the spacecraft transponder, and finally its phase is measured when the downlink arrives back at a groundstation. This serves to measure two-way (or three-way) light-time delay through the spacecraft transponder.

However, since phase measurements are ambiguous, there is an ambiguity of an integer number of wavelengths in the measurement. To solve this ambiguity, rather than using a tone of a single frequency, a sequence of tones of different frequencies are transmitted successively. The frequency of each tone in the sequence is half of that of the previous tone, so the ambiguity (in distance units) is twice as large. The sequence contains as many tones as needed so that the frequency of the last tone is low enough that the ambiguity it gives is larger than the a-priori estimate on the light-time delay. This allows solving the ambiguities of all the tones and producing an unambiguous measurement. Only the first tone, which has the highest frequency, and hence the highest “resolution”, is used to produce the final measurement. The remaining tones are only used to solve the ambiguities.

Another important detail is that if we were to produce the sequential ranging signal exactly as I have described, at some point the frequency of the tones would get too low and they would interfere with the telecommand and telemetry signals. To avoid this, chopping is used after some point in the sequence. This consists in sending the product of a fixed tone in the sequence, called the chop component, and the tone that should be sent. This produces tones at the sum and difference frequencies. If the frequency of the chop component is high enough, then the resulting frequencies are also high and do not interfere with the telecommand and telemetry. Often, the first tone in the sequence, which is called the range clock, is used as chop component.

The frequency of the range clock, and hence of all the other tones, is locked coherently to the uplink carrier frequency. This is done so that the tones on the downlink are coherent with the downlink carrier (since the spacecraft uses a coherent transponder). On the groundstation receiver, the phase information from the PLL that locks to the downlink carrier can be used to derive an accurate frequency reference for the ranging tones and integrate them coherently for several seconds.

This implies that the frequencies of the tones are not nice round values. In fact, for an S-band uplink, as is the case of JWST, their frequencies are of the form fn=2−7−nfUfn=2−7−nfU, where n≥0n≥0 and fUfU is the uplink frequency. Often, n=4n=4 is chosen for the range clock to give a range clock frequency of approximately 1 MHz. The next tones in the sequence are then approximately 500 kHz, 250 kHz, etc.

The sequential ranging tones in the recording of JWST are rather weak. The waterfall below, done with inspectrum shows the spectrum around the ranging clock frequency in the phase demodulated downlink. We can see the ranging clock towards the right side of the plot. It lasts for ~8 seconds. Before it, we see the the last components of the previous sequence. These are chopped with the ranging clock, so they appear as two tones symmetric above and below the ranging clock frequency. They are harder to see because the power is split among the two tones. These components lasts for ~4 seconds.

The duration of the ranging clock is chosen to give the desired ranging precision, according to the ranging clock frequency and the SNR of the ranging tone. The duration of the remaining components is chosen long enough to give a high probability of solving the ambiguities correctly. Usually, the ranging clock is longer than the other components.

Since it is hard to see the ranging tones in the waterfall, I have made a GNU Radio flowgraph to make them easier to process and see. This flowgraph extracts a 100 Hz spectrum slice around each of the tone frequencies. The output of the flowgraph can then be processed with the appropriate FFT parameters to make the tones more visible.

The flowgraph is a bit cumbersome, because there are many tone frequencies. JWST uses n=4n=4 as ranging clock (~1 MHz) and the ranging sequence goes up to n=17n=17 (~125 Hz). All the components starting with the second (n=5n=5) are chopped with the ranging clock, so they produce two tones. Thus, there is a total of 27 tone frequencies.

To generate the local oscillators for the tone frequencies, I start with the lowest frequency one (~125 Hz) and successively square it to double its frequency until I arrive at the ranging clock. This ensures that all the local oscillators are coherent. If for instance, different Signal Source blocks were used for each of the frequencies, then rounding errors could make them non-coherent. Although in this post we will not use this coherence, because we will not measure the phase of the tones, this property could be interesting for a future study.

After mixing with the appropriate local oscillator, each of the tones is decimated from 3.84 Msps to 100 sps by using two FIR filters, performing decimation by 384 and 100.

The output of the flowgraph is processed in this Jupyter notebook. To show the ranging tones we use a 32 point FFT, giving a frequency resolution of ~3 Hz. A waterfall of each of the tones near the start of the recording is shown here.

Note that all the tones are shown with the same vertical spacing in this plot, but this is just for practicality. In reality the frequency separation between each successive tone is halved, so they follow exponential curves in the waterfall, as shown above in the inspectrum plot.

We see that the full ranging sequence lasts 60 seconds. The ranging clock lasts ~8 seconds, and the remaining 13 components last ~4 seconds each. We will look at the timing more precisely below. Another thing to notice is that the upper chop tone of the second component, f4+f5f4+f5, which is approximately 1.5 MHz, is quite weak. We will look at the power of each of the tones later, and see that this is probably due to a low-pass filter in the transmitter and/or spacecraft transponder.

The plot shown above is not appropriate to show the data for the full recording, since the tones would be so short that they won’t be visible. To be able to show the full recording in one plot, we take advantage of the 60 second measurement cycle. First we use a 10 point FFT and use the 3 central bins to measure the power of each of the tones. Then we can plot this power in a 2D plot where each of the lines represents one minute of data and the x axis corresponds to the second within the minute. The plot for the ranging clock is shown here.

We see that the ranging clock happens at the start of the minute until approximately 10:25 UTC. Then there are no ranging clocks for some minutes, until at around 10:35 the ranging clock appears again, but now starting at ~:45 seconds in the minute. The measurement sequence is still 60 seconds long. These tones are rather weak, but then there are some very strong tones. Next, at 10:45 the position of the ranging clock shifts to :30 seconds in the minute. There are also a few very strong tones around 10:55, and the ranging continues in this manner until the spacecraft sets for ATA. The plots for the remaining tones in the sequence can be seen in the Jupyter notebook. They are similar to this one, except that each tone starts in its corresponding position in the sequence.

I think that the stop at 10:30 is due to the hand off between Goldstone and Canberra. However, it is quite interesting that the ranging timing has moved from the start of the minute.

The interesting part between approximately 10:35 UTC and 11:00 is shown below. It is apparent that there are large changes in the power of the ranging tones and that at 10:47 the sequence changes timing.

Using the data from these plots, we can measure the power of each of the tones quite accurately, using the first hour of data to average. The results are shown below. The power of all the tones except for the ranging clock has been multiplied by two to account for the fact that the total power is split in two due to chopping. We see that the power of the tones decreases with frequency, so apparently there is a low-pass filter, which is quite common.

Now let us look to the timing of the ranging tones more in detail. Keen readers might have observed in the plot of the ranging clock that its start time is moving slightly to the right. In fact, if we zoom in to the first second in the minute of this plot, this is clear, even though we only have a resolution of 100 ms in this plot.

According to the ephemerides from NASA HORIZONS, at 07:30 UTC, JWST was at 182831 km from Goldstone and 183168 km from the ATA, giving a two-way light-time of 1.221 seconds (here we are ignoring the relative motion of the spacecraft and groundstations during the signal travel time for simplicity).

In Section in the sequential ranging documentation, the timing of the ranging signal is described. The ranging clock always starts at an integer second. Actually it starts one second before the intended transmit time XMITXMIT, so that the ranging clock is already present when its reception starts (which is also done at an integer second). This matches what we see, because we are seeing the ranging clock arriving at ~0.2 seconds in the minute, so it must have been set to an intended transmission time of 0 seconds in the minute, and actually start at 59 seconds in the minute.

Four hours later, at 10:30 UTC, the distance between JWST and Goldstone was 204223 km, and the distance between JWST and ATA was 204150 km. This gives a light-time delay of 1.362 seconds, which represents an increase of 141 ms in the light-time delay. Even though we only have 100 ms resolution in the plot above, we can see that the plot is in-line with what the ephemerides describe.

Sequential ranging measures the light-time delay not by detecting when the tones start (as we are seeing here, it is not possible to do this with good resolution when the signal is weak), but rather by measuring their phase. Still, I think that the plot above is a nice demonstration of how the light-time delay increases as the spacecraft travels away from Earth.

Regarding the timing of the remaining tones, the documentation states that the ranging clock is present from XMIT–1XMIT–1 to XMIT+T1+1XMIT+T1+1 and that then at some point within that second the next component starts. As we have seen, XMITXMIT must be 0 seconds in the minute (in the first part of the recording, when Goldstone is transmitting). Since the ranging clock duration is somewhat short of 8 seconds, we see that T1=5T1=5 seconds. The second component lasts until at least XMIT+T1+T2+2XMIT+T1+T2+2, and then changes to the next component at some point within the following second. Since this component lasts approximately 4 seconds, we see that T2=3T2=3 seconds. The formula for the cycle timeT1+3+(nL−nRC)⋅(T2+1)T1+3+(nL−nRC)⋅(T2+1)checks out, because with these values and nL=17nL=17, nRC=4nRC=4 we get 60 seconds.

To summarize, the parameters used by the JWST sequential ranging in this recording are the following.

Ranging clock component nRCnRC4
Last component nLnL17
Ranging clock transmit time XMITXMIT:00, :45 and :30
Ranging clock duration T1T15 seconds
Other components duration T2T23 seconds
Cycle time60 seconds
Chop component4
First chopped component5