A COMPUTATIONALLY EFFICIENT AMBIGUITY
RESOLUTION TECHNIQUE
Ron Hatch, Tenny Sharpe, NavCom Technology, Inc.
BIOGRAPHY
Ron Hatch is the Director of Navigation Systems at
NavCom Technology, a company of which he was a cofounder. He has developed a number of innovative
techniques for processing GPS measurements and has
obtained more than a dozen patents related to GPS. Ron is
currently the president of the Institute of Navigation, is a
Fellow of the ION and has received the Kepler and
Thurlow awards from the ION.
Mr. Tenny Sharpe is Director of Advanced Development
at NavCom Technology Inc. Mr. Sharpe received a B.S.
in Physics from Case Institute of Technology and a M.S.
in Computer Science from the University of California,
Los Angeles. Mr. Sharpe has over 30 years experience in
the development of aerospace and industrial electronics.
His specializations are software and systems design for
GPS navigation systems.
ABSTRACT
A new method of carrier-phase ambiguity resolution is
described. The new technique is a variation of the leastsquares residual search technique in the ambiguity
domain. It uses a very efficient algorithm to compute the
residuals associated with each potential combination of
ambiguities to be tested. Several other techniques are
employed to simplify the calculations and to enhance the
probability of identifying the correct ambiguity vector.
The intent is to minimize the number of data epochs
required to correctly identify the integer ambiguity values.
The capability of the technique to rapidly identify the
correct ambiguity vector is illustrated by plotting the
results of scoring runs which exercise the search
algorithms using recorded field data taken over different
rover-to-base separation distances. To maximize the
number of searches exercised in these runs, as soon as the
ambiguity vector is identified, the results are cleared and a
new search is initiated with all navigation parameters reinitialized. Some navigation results are also shown which
are typical of RTK carrier-phase navigation results.
INTRODUCTION
The RTK ambiguity resolution technique implemented
within the NavCom dual-frequency receiver has several
unique features designed to minimize the computational
task while ensuring that a minimal data collection interval
is required. The fundamental approach is similar to
several least-squares residual search techniques which
have been employed by others. [1-4]
The first unique feature is that the base station transmits
corrections rather than the raw data, which most RTK
implementations transmit. This has several advantages:
1) it offloads part of the computation from the user
receiver to the base station receiver; 2) it allows code
smoothing of the base station data to occur even before
the user receiver is turned on, which ensures a more
accurate initial code solution; 3) it simplifies the
processing algorithms because no differencing across
receivers is required.
The second unique feature is a simplified computational
technique to generate the residuals resulting from
candidate ambiguity vectors. This technique is the main
subject of the paper and will be explored in some detail.
The search process is a two-stage process which depends
upon the availability of dual-frequency measurements at
both the base-station receiver and the user receiver. First a
wide-lane search is performed and up to 10 ambiguity
vectors, which meet specific requirements (e.g. residuals
less than a threshold value) are saved for further
processing. In the second stage, each of the ambiguity
vectors determined in the first stage are tested by
searching each satellite (except the first to avoid
redundant clock solutions) across the two narrow-lane
ambiguity values which result in a narrow-lane measured
range closest to the corresponding wide-lane measured
range. Those narrow-lane combinations, which meet a
number of specific criteria, are scored and if more than
one are acceptable their relative score is used to determine
whether or not one of them can be declared the correct
ambiguity vector.
INITIAL CODE SOLUTION
The primary motivation in the initial code solution is to
obtain the most accurate code solution possible with as
few measurement epochs as possible. Since the baseline
distances over which the ambiguities can be easily
resolved are typically less than 15 kilometers, it is
assumed that the ionospheric refraction effects can be
modeled at both base station and user with sufficient
accuracy that the residual ionospheric errors are almost
negligible. This means that the largest errors, which will
affect the differential code solution, will be the multipath
effects upon the dual-frequency code measurements. The
combination of code measurements which has the
minimum multipath error (or at least very close to the
minimum) is the frequency-weighted sum of the code
measurements. This combination also has the advantage
that it is exactly matched in ionospheric refraction effects
by the wide-lane difference carrier-phase measurement.
This means that it can be smoothed by the wide-lane
carrier-phase measurement with an increasing time
constant, i.e. the multipath error will become smaller and
smaller as the satellite is continuously tracked.
Because the base-station receiver is typically put in
operation long before the user receiver, our choice of
generating the code and carrier phase corrections at the
base-station receiver allows the base-station code
measurements to be smoothed such that most of the
multipath error is removed before the code corrections are
generated. This means that the multipath noise
contributed by the base station receiver is largely
eliminated. This represents a substantial advantage over
the normal practice of sending raw base-station
measurements to the user.
The frequency weighted combined measurement is:
+
PfPf
where f represents the frequency and P the pseudorange
code measurement
The carrier-phase measurement which is affected by the
same amount of ionospheric refraction error is:
where N is the integer ambiguity,
measurement and
By setting equation (1) equal to equation (2) and solving
for the wide-lane ambiguity, N
floating ambiguity can be computed each epoch.
N
=
P
.
NC
λ
the wavelength.
=
w
+
+
)(
ff
21
2211
+
PfPf
2211
λ
w
(1)
ff
21
)(
−+= (2)
ww
21
φ
is the carrier-phase
, a new value for the
w
)(
φφ
−−
(3)
21
This value for the wide-lane floating ambiguity value can
be improved each epoch by computing the recursive
average over all epochs up to the present time. This
smoothed value of N
equation (2) to give a smoothed carrier-phase
pseudorange:
One can use the process represented by equations (1)
through (4) at both the base-station receiver and at the
user receiver. At the base station the smoothed carrierphase pseudorange is differenced with the true range to
yield a pseudorange correction which, after removing the
common clock effect, is sent to the user receiver. At the
user receiver the correction is applied to the combined
frequency-weighted code measurement as represented by
equation (1). A wide-lane carrier-phase correction is also
generated at the base station by arbitrarily selecting a
whole-lane integer in equation (2) and differencing it with
the true range. The whole-lane error, which is made by
arbitrarily selecting the ambiguity value at the base station
is absorbed into the whole-lane ambiguity value at the
user receiver. After clock removal, this carrier-phase
correction is sent to the user receiver and applied to the
wide-lane carrier-phase measurement as represented by
equation (2). The significant advantage to this process, as
indicated above, is that, due to the separate smoothing, the
multipath corruption of the base station measurements is
usually largely removed even before the user receiver is
turned on. This means that the initial smoothed code
measurements at the user receiver are more accurate and a
more accurate code solution will be obtained.
At the user receiver, the corrected and smoothed value of
equation (4) for each satellite is now used in a leastsquares process to obtain an initial code solution.
WIDE-LANE SEARCH
While the process described above, i.e. equation (4), gave
us a set of floating (non-integer) ambiguity values for
each satellite, a better set (fewer degrees of freedom) can
be obtained from the initial code solution. Also we note
that given a set of integer ambiguities, a second set,
differing from the first by a constant integer value for
each satellite, will result in the same identical spatial
position but with a different clock value. Because our
clock solution is of no interest and can be selected
arbitrarily, this means that we can constrain one of the
ambiguity values arbitrarily. In our process, we choose to
use the highest elevation satellite as the reference satellite
and force its ambiguity value to zero. Using the initial
code position solution, we can compute a range, R, to
each satellite and set it equal to the measurement
represented by equation (2). Solving the result for the
ambiguity value and subtracting the ambiguity value of
the highest elevation satellite gives:
can then be substituted back into
w
NC
λφφ
)(
−+= (4)
ww
21
2
)()(/)(
w
rii
RRN
w
rrii
φφφφλ
−+−−−= (5)
2121
where the superscript, i, represents each satellite in turn
and the superscript, r, represents the reference satellite—
in this case the highest elevation satellite.
Our initial wide-lane carrier-phase RTK solution involves
rounding the floating ambiguities so obtained to their
integer values, substituting these values into equation (4)
and computing a new least-squares position solution. The
floating ambiguity given by equation (5) is used in the
search process to sequentially select the closest integer
values over the selected search range.
We have found that searching over the four closest values
is almost always sufficient to include the true ambiguity
value. Given n satellites this means that there will be 4
n-1
permutations of the ambiguity vector. Thus, there will be
1024 permutations when six satellites meet the
appropriate elevation criterion and 4096 when seven
satellites are available. With each ambiguity permutation
a set of wide-lane carrier-phase measurement residuals
can be computed. It is these residuals which play a
prominent role in determining the correct set of integer
ambiguity values. However, obtaining the residuals by recomputing a least-squares solution for each permutation is
computationally prohibitive. A much faster way to
compute the residuals is to use a residual sensitivity
matrix, S.
RESIDUAL SENSITIVITY MATRIX
Given the linearized measurement equation:
where H is the sensitivity matrix (i.e. the direction cosines) of
the state vector (position and clock corrections), x, to the
innovations (difference between the measurements and their
expected value), z.
zHx = (6)
Equation (6) can be expanded to include a set of position
and clock corrections corresponding to a set of
innovations:
= (7)
Now if we want to see the separate effect on the position
of a single whole-cycle change in the ambiguity value of
each satellite, Z will become the identity matrix (or
depending on units, the identity matrix times the scalar
wavelength).
= (8)
The least-squares solution for X is then:
TT
1
= (9)
−
HHHX
)(
For a weighted least-squares solution this becomes:
111
−−−
= RHHRHX
TT
)(
(10)
where R is the measurement covariance matrix.
Note that the left hand side of equation (9) or (10) can be
pre-computed and when multiplied by the appropriate
column of the identity matrix (or scaled identity matrix)
gives the appropriate column of X, which is the associated
change in the position and clock caused by the integer
ambiguity change.
Multiplying equation (9) by H tells us how much that
change in position will affect the innovations.
TT
1
= (11)
−
HHHHHX
)(
Now if we subtract this change in the innovations from
the input value of the innovations (I) we get the effect on
the residuals of a whole cycle change in the ambiguity
value for each satellite. This is called the residual
sensitivity matrix, S, and is given by:
TT
1
−= (12)
−
HHHHIS
)(
The residual sensitivity matrix, S, for a weighted least
squares solution is:
111
−−−
−= RHHRHHIS
The S matrix has a number of interesting properties. It is
symmetric. It is idempotent, i.e. S=S
TT
)(
2=S3
=… The sum of
(13)
any row or column equals zero, i.e. residuals are zero
mean. The length of any row or column is equal to the
square root of the associated diagonal element. Since the
solution vector, x, has four elements, the rank of S is n-4
where n is the number of satellites.
The residuals of the initial RTK solution, described in the
prior section are updated by adding the product of the S
matrix and the matrix formed by scaling the identity
matrix diagonal elements by the specific permutation of
changes in the integer ambiguity values to be tested. The
ten permutations with the smallest root-sum-square (rss)
of residuals are saved for further narrow-lane processing
if their rss residuals is less than an acceptable threshold
value.
STEPPING TO THE NARROW-LANE
Assuming the differential ionospheric refraction is
negligible allows us to equate the narrow-lane range to
the wide-lane range. Thus:
Solving equation (14) for the L
9
4
17
NN
ambiguity value gives:
1
9
NN (15)
3(
w
17
)()(
−+
−+=
21111
9
4
17
(14)
ww
)
φφ
211
It is interesting to note that the deviation from an integer
value obtained for N
in equation (15) is identical in
1
3