Amsat-NA Logo

Oscar News (UK) 1997 Oct No. 127 p 34-37
The Amsat Journal (USA) Vol 20 No.5, Sep/Oct 1997
Amsat-DL Journal (D), Jg.25, No.1, Mar/May 1998
Jamsat Newsletter (JA) No. 197, 2000 Oct

Phase III Ranging System


James Miller G3RUH


Ranging is the process of measuring the distance from a station to a satellite. Ranges made at different times, and from several locations are used to determine the specifics of an orbit and compute Keplerian elements. P3D, like its predecessors P3A, Oscar-10 and Oscar-13 is supported by ground station software and hardware to enable this.

Why ranging?

Immediately after launch, P3D's position will be known by everybody because ArianeSpace, ESA and NORAD work together to track it throughout launch and after.

Soon after launch Amsat will fire the on-board rocket at apogee in order to raise perigee height, and possibly alter the inclination.

Now the problem begins. What are our new orbital elements? We know more or less what they ought to be, and that will do for rough tracking for a day or two. But we really need to re-compute P3D's new elements right away, especially if there has been any problem with the burn.

But why cannot we simply get the new elements from NORAD? The answer is that they won't have them. If we change the satellite's orbit at apogee, P3D will come around the Earth at perigee totally out of position as far as NORAD are concerned. They will fail to acquire P3D with their tracking systems. That is to say, they will lose us. It is up to Amsat to tell NORAD where we are again.

So it is important that we have a totally independent ranging system for P3D, just as it was for Oscar-13, Oscar-10 and P3A before.


Ranging is basically the opposite of tracking; if you know a satellite's orbit you calculate its range using a tracking program. The other side of the coin is that if you can measure its range, then you can calculate its orbit.


Figure 1. In principle, 6 range measurements enable computation of six orbital elements, such as the set <Rx,Ry,Rz,Vx,Vy,Vz> or <a,i,e,ma,wp,ra> at epoch. In practice many more measurments are made to reduce the effects of noise and poor geometry.

Obviously you cannot determine the orbit from just one range. You have to make a number of measurements at different times through the orbit, on different orbits, and on orbits when the view varies, such as to the East or West or equally take ranges from different stations scattered around the world.

By collecting maybe a couple of dozen time and range pairs, spread over say 5 days, one has enough raw data to determine the orbital elements with sufficient accuracy to perform normal tracking again.

How is Ranging performed?

The principle is simple enough. We've all done this at one time or other via a satellite; when you tap the microphone, it sends out a pulse, and a moment later the echo comes back. So if you measure the round-trip time, multiply by the speed of light, that's the round-trip distance; halve it and you've got range.

Single Pulse Ranging

Figure 2. Ranging is based on measuring the round-trip-time of a pulse transmitted to the satellite and received back on the ground. Overlapping returns place a limit on performance.

Notice several things about a single returned pulse. First; only the leading and trailing edges carry timing information. So a longer pulse simply wastes interim power that could perhaps be put to better use. Second, due to the audio channel bandwidth, the shortest practical pulse duration is of order 1/Bandwidth. Third, the maximum repeat rate is set by the round-trip-time. Send any faster, and the returned pulses overlap, creating ambiguity.

So, though simple, the single pulse approach has limitations. Ideally we would like to send pulses continuously. This would provide a continuous supply of timing edges; so we would be making the most of the available power and channel bandwidth. The overlap ambiguity caused by repeated identical pulses is simply resolved by encoding the bit stream into a sufficiently long repeated message.

Coded Pulse Ranging

Figure 3. A longer pulse can be broken into a sequence of short pulses. By proper choice of the sequence, overlapping returns can be distinguished, and transmission is continuous.

Here, for clarity, is a coded sequence 1010011, 7 elements long. You can see how the delayed return sequence can be identified, giving the desired measure of range.

Pattern Matching

Figure 4. Searching the received sequence for the pattern 1010011 by sliding a local replica along the received signal. This is correlation.

Searching the received sequence for the pattern 1010011 is done by comparing the received stream with a local replica. The replica is "slid" along the received pattern looking for maximum agreement, or correlation.

Here you can see that if received data and local replica are aligned, there are 7 matches, and no mismatches, a "score" of 7. If the replica is now slid along one unit of time, the score falls away to near zero.

PRN Correlation

Figure 5. The complete graph of score versus alignment shows peaks of 7 corresponding to alignment, and the fall to -1 with misalignment. An erroneous received bit has negligible effect on the peak.

Plotting the complete graph of score versus alignment shows the peak of 7 corresponding to alignment, and the fall to -1 with misalignment.

The strength of this technique is its tolerance to errors. Suppose one received bit is corrupted; then the score will fall to 5, which is still very distinct from the baseline -1.

Of course the peculiar property of negligible self-correlation when more than one bit out of alignment is no accident. The sequence is one of a family of maximal length pseudo-random number (PRN) sequences, and is exactly 2n - 1 elements long. Here n=3. It can be created by software or hardware from an n-bit shift register with its output exclusive-ored with one or more intermediate stages and fed back to the register's input. This is called a linear feedback shift register (LFSR), and forms the foundation of many digital communication systems, such as the Global Positioning System, data scrambling, wireless LANs, pagers, spread spectrum systems, radar and as here, ranging,

P3 System Hardware

We now define the P3 system. The range maximum is of order 50,000 km, a round-trip-time of typically 1/3 s, so the sequence needs to be 1/3s or longer.

The bit rate is chosen to be 400 bps. Now 400 x 1/3 = 133 bits; choosing the power of 2 just larger gives code length of 28 - 1 = 255 bits. This repeats every 0.64 seconds, offering a maximum range of 96,000 km. Coarse resolution, 1 bit, is 375 km, and the 400 bps bit timing can be resolved to about 200 ns (30m).

Ranging Hardware

Figure 6. Typical P3 ranging system. P3D will probably use 1.3/2.4 GHz to reduce ionospheric delay effects.

400 bps is used for two important reasons. First, hardware; something is needed to create uplink bits and decode them from the downlink. It already exists as the P3 command uplink modulator and P3 PSK telemetry downlink demodulator [1]. They run at at 400 bps.

Second, the discussion so far assumed that the spacecraft's transponder would be turned on to return an echo. But that will not necessarily be the case. So how do we get an echo if there's no transponder? Well, the P3 flight computer has an echo mode. The uplinked bit stream is demodulated by the command system, and re-modulated onto the telemetry beacon, so providing a simple digital transponder.

Ranging Software

Software is needed to generate the 255 bit stream, to receive the decoded stream, compare the two streams, extract their relative phases, display range and diagnostics and save the results to disc.

Software Screenshot

Figure 7. Live screenshot ranging via the Oscar-10 mode-B transponder. Station is at 0.057°E, 52.208°N.

The screenshot shows a live ranging session via Oscar-10's transponder It shows twinkling numbers and four slider bars. The first of these shows that perfect bit detection is being achieved, whilst the second indicates that bit lock has low jitter.

The last two sliders show the relative phase of received signal compared with transmitted signal. It's 110 + 1411/2500 = 110.5644 bits or 0.276411 seconds which equates to a range distance of 41,433 km. From this the software has subtracted out the static delay due to hardware of 1446 km to give the displayed actual range of 39987 km.

The raw timing data arrives at 400 measurements/s, and is noisy (jittery) partly due to hardware, but mainly due to radio propagation. This timing information is processed by a second order filter which yields range, range-rate and an indication of accuracy. The filter noise equivalent bandwidth is 0.3 Hz.

With a 255 bit sequence, the error rate can be very high. Statistically, a match of at least 170 agreements is certain to indicate that a ranging signal is being received. That implies 85 bit errors, or a 1 in 6 bit error rate (allowing for the differential modulation format). This in turn corresponds to an Eb/No = -3 db. That's a signal strength some 20x weaker (-13 db) than the weakest one would used for normal telemetry. Thus ranging is perfectly possible despite the signal being virtually inaudible. This high sensitivity is important because during manoeuvres the spacecraft's attitude is rarely benign enough to point its antennas at Earth.


Random errors are introduced by each element in the range path. Typical RMS contributions in metres are:
         Source                  RMS (m)
   Modulator+Demodulator+Software    10
   Radio TX + RX (local signals)     30
   Propagation (strong signals)      50
       ..      (weakest signals)    350
Static instrumentation errors (biases) are calibrated out, leaving only propagation effects, mainly caused by ionospheric delay variations. Typical zenith errors at 145 MHz are 0.4 km by night, 2 km by day depending on the total integrated electron count over the ray path. These values are doubled at 30° elevation, and typically tripled at the horizon.

Range residuals based on two week's ranging AO-10 (mostly at elevations less than 30°, are typically 5 km RMS. However a plot of fitted range error vs elevation clearly shows the residual errors to be biased.

To some extent this bias can be removed by modelling, leaving worst case residual bias uncertainties of order 0.5 km. However since these errors reduce as (1/f)2 a better approach would be to reduce them 100-fold by using radio links at L and S-bands. [2,3]

In any event, the range biases are small in the context of the orbit determination program to which range measurements are subsequently delivered.

Orbit Determination

When a series of range measurements has been collected, they are then processed by the OrbitFit software. This is based on a program originally written by Stefan Eckart DL2MDL in 1988 for use with P3C/Oscar-13.

The number-crunching principle used is the same as with all navigation or estimation systems.

You start with a guess at the orbit, and calculate the expected ranges at each of the times you made the measurements. Then you compare the measured ranges with the expected ranges, and the small differences are used to adjust the orbital elements slightly to produce a new set of elements. The process is repeated until the elements don't change any more. Finally the new elements are output in various styles, such as the familiar 2-line format.


By way of specific example, we consider the first motor burn of Oscar-13, which took place on 1988 Jun 22 @ 1858 utc. I have re-run all the calculations, done by Eckart and myself at the time, to illustrate the process.

The table shows four sets of keplerian elements. The first set (1) were provided by NORAD soon after launch. The planned first motor burn of delta-V = 136 m/s along direction Alon 75 Alat -55, Orbit 16 @ MA 180 was added to it to generate a predicted element set for post-burn (2).

After the burn had taken place, command stations in Germany, Australia and New Zealand performed a total of 20 range measurements over the next five days. These ranges were then run through the OrbitFit program which generated the third set of data (3). This set was was then passed to NORAD and they immediately acquired AO-13 and provided a final set of data (4) which, for this table, has been worked backwards to match the epoch time of the third set.

Comparing the set calculated by Amsat Ranging (3), and the set (4) subsequently obtained from NORAD, shows excellent agreement.

Comparing Range and velocities versus time using set (1) and set (4) shows that they intersect at Day 1988/174 T=1857 utc. The difference in velocities at that moment is a delta-V of 150 m/s along a direction Alon=75. 1, Alat=-56.2. That attitude compares well with the pre-burn attitude estimate made using the on-board Sun and Earth sensors. The increased delta-V was due to programming a burn of longer duration than advertised. This information was also used to calibrate the motor thrust.

                        (1)           (2)            (3)             (4)
                    Post Launch    Post Burn      Post Burn      Post Burn
                      NORAD        Predicted     After Ranging     NORAD
 Epoch time:        88171.24031   88174.78919    88174.78919    88174.78919
 Inclination:            9.9753     13.796394        14.1441        14.3010
 RA of node:           243.3977      243.0702       242.8089       243.2583
 Eccentricity:        0.7303521     0.7028709      0.7014365      0.7012999
 Arg of perigee:       181.1498      183.1604       183.4078       183.0315
 Mean anomaly:       174.981788     178.80542       178.1484       178.1585
 Mean motion:         2.2581620     2.2050733     2.20044346     2.20041400
 Epoch rev:                   8            16             16             16
 Semi major axis:     24546.726     24938.175      24973.083      24973.177


Amateur radio ranging has a long pedigree. Many years ago Karl Meinzer developed a ranging system for the early ARTOB balloons in Germany. It was successfully used to find the balloons when they came down. Much easier and faster than using "fox hunting" methods. Reference [4] describes ranging Oscar-6 in 1973 using Slow-Scan TV Equipment. And of course it was used in a similar embodiment to that described in this article during the post launch phase of Oscar-13 in 1988. The current system uses the pre-existing uplink/downlink hardware, and the software runs on an Acorn Risc Computer [5] via the parallel printer port. It has been exercised via Oscar-20 and Oscar-10 and works perfectly. It now awaits its calling by Phase IIID. [Added: ranging P3D/AO-40 worked perfectly].


1. P3 400 bps PSK Telemetry Demodulator. PCB available.

2. Spilker, J.J., GPS Signal Structure and Performance Characteristics, Journal of the Institute of Navigation (USA), Vol. 25 No. 2, 1978.

3. Spilker, J.J., Digital Communications by Satellite, Prentice Hall, 1977

4. Meinzer, K., Range Measurements with OSCAR-6, QST May 1973.

5. Acorn Risc Computer [ 2023 update; only second-hand machines nowadays! ]

Feedback on these pages to Webmaster. Feedback on the article should be sent to James Miller

Created: 1995 Jan 15 -- Last modified: 2023 Apr 23