Computational Aspects of the LAMBDA
Method for GPS Ambiguity Resolution
P.J. de Jonge, C.C.J.M. Tiberius, and P.J.G. Teunissen, Geodetic Computing Centre, Delft University of Technology
BIOGRAPHY
Peter Teunissen is professor in Mathematical Geodesy
and Positioning. Paul de Jonge and Christian Tiberius1
both graduated at the Faculty of Geodetic Engineering of
the Delft University of Technology. They are currently
engaged in the development of mathematical models for
GPS data processing in surveying and geodesy.
ABSTRACT
Precise relative positioning based on a short observation time span yields ambiguities that are heavily correlated, together with position estimates of poor precision. For an efficient estimation of the integer values of
the GPS double difference ambiguities, the LAMBDA
method has been developed and applied since 1993. In
the context of the LAMBDA method, from a computational point of view, there are various ways to arrive
at the so-called ‘fixed solution’, in which the ambiguities are constrained to their integer values. Depending
on the application at hand, it will be shown which way
is most appropriate. This will be demonstrated with the
help of a number of examples, both static and kinematic.
The results show that efficient ambiguity resolution can
be achieved very fast, on-the-fly (OTF), in a variety of
cases, such as with roving receivers and in network scenarios.
1. INTRODUCTION
Precise relative positioning based on a short observation
time span yields carrier phase ambiguities that are heavily correlated, together with position estimates of poor
precision. In order to achieve an acceptable precision
level (typically 1-2 cm for up to 10 km baselines), one
has to constrain the ambiguity parameters to their integer values. The estimation of these values has proven to
be a particularly hard and time consuming problem.
Since 1993, the LAMBDA method (Least-squares
AMBiguity Decorrelation Adjustment) has been developed and applied for efficiently estimating the integer
1 Under contract
Rijkswaterstaat.
with
the
Survey
Department
of
the
values of the GPS double difference ambiguities. By a
decorrelating transformation, the existing large correlation between the ambiguities is reduced to a great extent,
thereby making the discrete search for the integer ambiguity vectors much more efficient. A prominent role in
the method is played by the aforementioned transformation, usually materialized in the so-called Z -matrix. The
construction of this matrix – either implicitly, or explicitly – is the most time consuming part of the method (albeit still very modest compared with other methods for
ambiguity resolution).
In this contribution, first the overall procedure for parameter estimation in GPS positioning will be reviewed
and it is shown how the LAMBDA method for integer
ambiguity estimation is embedded therein. Then a number of methods to realize the decorrelating transformation will be examined and compared in section 3. Two
basic ways will be shown to come to the so-called ‘fixed
solution’, in which the ambiguities are constrained to
their integer values. The computational aspects will be
discussed and timing results will be presented in section
4.
2. PARAMETER ESTIMATION
In this section we will review the full procedure for parameter estimation based on the model of double difference GPS observations, with particular attention to the
integer ambiguity estimation. Note however, that integer estimation is not restricted to the double difference
model; it can be applied as well in the models of undifferenced or single differenced observations with the
rank defect properly taken into account. Also note, that
many viable alternatives do exist for the overall procedure for parameter estimation. One may think of e.g. a
recursive estimation (Kalman filter) as opposed to the estimation in batch described here.
Observation equations
Although the LAMBDA method is not restricted to it, in
this paper we use a simple mathematical model, appropriate for short baselines. Two types of unknowns occur: baseline coordinates (collected in the vector b) and
double difference ambiguities (collected in a). Other unknowns, like e.g. atmospheric delay parameters can be
included in b as well. We assume to have available at
least carrier phase observations. Code observations can
also be included, but they are not related to the ambiguity terms.
The linearized double difference observation equations are collected in the following linear system of
equations, see also [2]:
y = Bb + Aa + e
(1)
where:
y the vector of observed minus computed double difference measurements; y ∈ R m
b the vector that contains the increments of the p baseline coordinates
a the vector of n double difference ambiguities
B the m × p design matrix for the baseline coordinates
A the m × n design matrix for the ambiguities
e the vector of unmodelled effects and measurement
noise
The m × ( p + n) design matrix [ B A ] is assumed
to have full rank equal ( p + n), i.e. enough observations
have been made to determine the baseline coordinates
and the double difference ambiguities. The variancecovariance matrix of the observables y is Q y ; the matrix is symmetric and positive definite. The double difference ambiguities are placed at the end for reasons of
computational efficiency, as will be shown further on.
Estimation criterion
The least-squares principle is used to compute estimates
for the baseline coordinates and the integer double difference ambiguities:
min ky − Bb − Aak2Q −1 with b ∈ R p and a ∈ Z n (2)
b,a
y
The parameter estimation is carried out in three steps,
see [2]. The steps are the float solution, the integer ambiguity estimation and the fixed solution.
Float solution
The minimization (2) is carried out with b ∈ R p , a ∈
R n . The estimates for the double difference ambiguities
are real valued.
Usually the full rank least-squares problem is solved
via normal equations, see section 5.3 in [4]. The system
of normal equations, with N the normal matrix and r the
right hand side, for (1) reads
T −1
T −1 B Q y B B T Q −1
B Qy y
b
y A
(3)
=
T −1
AT Q −1
B
A
Q
A
a
AT Q −1
y
y
y y
or
|
Nb
Nab
{z
Nba
Na
}
N
b
a
=
rb
ra
| {z }
(4)
r
The normal matrix N is square, with dimension p + n,
symmetric, and positive definite. Due to its symmetry,
only the upper- or the lower- triangle needs to be computed. The Cholesky factorization of the normal matrix
is made, section 4.2 in [ibid]: N = CC T , with matrix
C a full rank ( p + n) lower triangular matrix; it can be
computed in-place. The system
b
=r
(5)
CC T
a
is then solved by for- and backward substitution and results in the estimates b̂ and â. The estimates and the
variance-covariance matrix are denoted as:
Q b̂ Q b̂â
b̂
,
(6)
Q â b̂ Q â
â
In the integer ambiguity estimation we will use
the Cholesky factor of the inverse of the variancecovariance matrix Q â . This is why the unknowns have
been put in the order: first baseline coordinates and then
double difference ambiguities. The Cholesky factor C
in (5) is partitioned as
Cb
0
C=
(7)
Cab Ca
with Ca a lower triangular matrix of dimension n, for
which holds that Q −1
= Ca CaT . The Cholesky factor
â
Ca becomes available at no extra cost in the float solution. In figure 1, the full ( p + n) Cholesky factor C is
first inverted. The part for the ambiguities, Ca−1 , is then
used in the decorrelation step, which is carried out, prior
to the actual integer estimation.
The variance-covariance matrix of the fixed baseline
coordinates can easily be obtained in-place with the
lower triangular matrix Cb−1 of dimension p. For the ambiguities absent case, we namely have:
y − Aǎ = Bb + e
(8)
with ǎ the integer least-squares estimate for the vector
of ambiguities, and consequently Q b̂|ǎ equals Cb−T Cb−1 .
This matrix will be denoted as Q b̌ , see [2].
The variance-covariance matrix (6) of the float solution can also be cheaply computed using the submatrices of C −1 . This triangular matrix reads:
Cb−1
0
(9)
C −1 =
−Ca−1 Cab Cb−1 Ca−1
As Q equals C −T C −1 :
Cb−T Cb−1 +
Q b̂ Q b̂â
−T
= Cb Cba Ca−T Ca−1 Cab Cb−1
Q â b̂ Q â
−Ca−T Ca−1 Cab Cb−1
−Cb−T Cba Ca−T Ca−1
(10)
Ca−T Ca−1
Matrix Q b̂â can be written as
Q b̂â = −Cb−T Cba Ca−T Ca−1
(11)
It will be needed in one of the computations schemes of
section 3. Its transpose, Q â b̂ , can be computed in-place
using the sub-matrices of C −1 ; in this way −Ca−1 Cab Cb−1
is replaced row-by-row by Q â b̂ .
Integer ambiguity estimation
The second step consists of
min kâ − ak2Q −1 with a ∈ Z n
a
(12)
â
This minimization yields the integer least-squares estimate for the vector of ambiguities: ǎ.
For this step we use the LAMBDA method. It has
been introduced in [1]. The two main features of the
LAMBDA method are
1. the decorrelation of the ambiguities, realized
by a reparametrization, or as we call it, a Z transformation, of the original ambiguities a to
new ambiguities z = Z T a, and
ǎ = Z −T ž
(15)
The integer least-squares estimates for the ambiguities
are explicitly computed.
The squared distance (or norm) between the real valued â and the integer estimate ǎ, measured in the metric
Q −1
â ,
t (ǎ) = kâ − ǎk2Q −1
(16)
â
may be used for validation purposes. The computation
of this norm, and possibly t (ǎ 0 ) is integrated in the integer minimization. It can be computed very easily at
the moment the grid point is encountered in the search,
[6]. Hence it is based on the transformed ambiguities:
t (ǎ) = t (ž).
Fixed solution
2. the actual integer ambiguity estimation
Through the Z -transformation the variancecovariance matrix is transformed accordingly:
Q ẑ = Z T Q â Z . The efficiency of the method comes
from the decorrelation step and has been explained in
detail by analysis of the precision and correlation of the
GPS double difference ambiguities in [3] and [5].
The actual integer minimization is then made upon the
transformed ambiguities. In practice, the minimization
(12) amounts to a search over grid points inside the ndimensional ambiguity hyper-ellipsoid, defined by the
variance-covariance matrix of the ambiguities [6]
2
(ẑ − z)T Q −1
ẑ (ẑ − z) ≤ χ
In the final solution b̌, the ambiguities are fixed to their
integer least-squares estimates ǎ. The final estimates for
the baseline coordinates follow from the first p equations of system (3) in which the vector of integer estimates ǎ has been substituted for a. Note that the
Cholesky factor of matrix Nb is already available: it is
the lower triangular matrix Cb . Estimate b̌ is then easily obtained via for- and backward substitution, or via
b̌ = Q b̌ (rb − Nba ǎ). The variance-covariance matrix,
Q b̌ , was computed with the help of the inverse Cholesky
factor. The least-squares estimates b̌ and ǎ are the solution to the constrained minimization (2).
(13)
The volume of the ellipsoid (and the number of candidates) can be controlled by setting the value for χ 2 [7].
The input for the integer ambiguity estimation are
the vector of real valued ambiguity estimates â and the
Cholesky factor Ca . Factor Ca is then ‘split’ into L and
T
T
D, such that Q −1
â = Ca Ca = L DL , where D is diagonal and L is unit lower triangular.
Prior to the integer estimation, the ambiguities are
decorrelated by application of the Z -transformation.
The Z -transformation, which is discussed in section 3,
works directly on the inverse of the factors D and L:
D −1
L −1 → Z -transformation →
â
matrix Q â . Matrix Q â is not explicitly transformed into
Q ẑ , but implicitly via L and D ( L̃ and D̃).
The actual integer minimization is then carried out on
the transformed ambiguities, see [6]. The output consists of ž and possibly the second best ž 0 together with
their respective norms. Using the Z -matrix, they can be
transformed back to the original ambiguities
Z or Z
D̃ −1
L̃ −1
ẑ
−T
(14)
such that Q −1
= L̃ D̃ L̃ T . Note that the factors L and
ẑ
D represent the information of the variance covariance
3. COMPUTING THE Z -TRANSFORMATION
One can divide the methods for computing the fixed solution in two groups: (i) those that need explicit computation of the integer least-squares estimates ǎ, and (ii)
methods that do not. This influences the way the decorrelating Z -transformation is computed. It is either computed explicitly as Z or Z −T (see (14)) to be used for
(17) or in (24), or implicitly, viz. as Q b̂ẑ (or Nbz ), see (21)
or (22).
Explicit computation of ǎ
The original double difference ambiguities a are transformed into ambiguities z, that are less correlated. The
construction of the n x n transformation matrix Z (or
Z −T ) follows from a sequence of 1. integer Gauss transformations and 2. permutations. The ambiguities are
pair-wise decorrelated and interchanged. At start the
transformation is trivial: Z = I . The above two types
of transformation work out as linear operations on, each
time two columns of what is matrix Z so far. Once no
further decorrelation is possible, the construction terminates and matrix Z (or Z −T ) is available. See [6] for the
algorithmic details.
The most efficient way, if one wants to have available
the values of ǎ explicitly, is to compute directly Z −T .
The original integer ambiguities are then computed from
the decorrelated ambiguities using (15). Starting from
here, two routes are possible to obtain the fixed solution.
First there is the explicit computation by constraining
the, now considered known, integer ambiguities:
b̌ = b̂ − Q b̂ â Q −1
â − ǎ
(17)
â
The second method starts from the normal matrix system
of (4) in which the ambiguities are no longer unknown
parameters. Substituting ǎ into the first p equations of
(4), we get
Nb b̌
= rb − Nba ǎ
(18)
Note that in the first scheme Q b̂â needs to be stored, and
Q −1
â has to be computed. In the second scheme Nba
(part of the normal matrix for the float solution) has to
be stored (before computing the float solution), and Cb
(baseline part of the Cholesky factor of the normal matrix), or Q b̌ . The scheme depicted in figure 1 at left is
based on (18).
Implicit computation of ǎ
If we look at the complete system, i.e. the baseline coordinates and the ambiguities, the following transformation is applied on the parameters when using the
LAMBDA method:
I
b
b
=
(19)
z
ZT
a
End of inter mezzo
Starting from equation (21) we can make a distinction
between the following two cases:
1. p < n
In the normal case the number of ambiguity parameters
is larger than the number of baseline coordinates. Then,
instead of transforming a matrix of unity to Z , it is more
efficient to transform Q b̂â directly to Q b̂ ẑ . This saves
memory since Z becomes now superfluous. It also saves
CPU time, since the column dimension of Q b̂â equals
the number of baseline coordinates p, whereas the column dimension of Z equals the number of ambiguities
n. The row dimension of both matrices is equal. Since
the construction of Z , (or Q b̂ ẑ ) is essentially a sequence
of column manipulations, less operations are needed and
CPU time will be saved. CPU time is also saved because
the matrix product Q b̂â Z does not need to be evaluated
explicitly anymore. In this way, the decorrelating transformation is computed implicitly.
b̌
= b̂ − Q b̂ ẑ Q −1
ẑ (ẑ − ž)
= b̂ − Q b̂ ẑ ( L̃ D̃ L̃ T )(ẑ − ž)
(23)
2. p > n
If the number of non-ambiguity parameters is larger than
the number of ambiguity parameters, it is more efficient
to compute Z explicitly and use it to transform Q b̂â into
Q b̂ ẑ . The fixed baseline coordinates are then computed
as
b̌
= b̂ − Q b̂ ẑ Q −1
ẑ (ẑ − ž)
= b̂ − (Q b̂ â Z )( L̃ D̃ L̃ T )(ẑ − ž)
(24)
Applying this transformation on the variance-covariance
matrix of (6) gives:
Q b̂
Q b̂â Z
Q b̂ Q b̂ ẑ
=
(20)
Z T Q â b̂ Z T Q â Z
Q ẑ b̂ Q ẑ
Again we need to have stored Q b̂â . (This situation will
not occur often, the only occasion we can think of, is a
batch solution with a roving receiver).
Using (15), equation (17) can now be re-written as
4. TIMING RESULTS
b̌
= b̂ − Q b̂ â Q −1
â (â − ǎ)
= b̂ − Q b̂ â Z Z
−1
−T
Q −1
â Z
= b̂ − Q b̂ ẑ Q −1
ẑ (ẑ − ž)
Z (â − ǎ)
T
(21)
To show the performance of the alternatives proposed in
the previous section, we applied them to a number of different measurement scenarios. The following comparisons are made
This shows that it is not necessary to explicitly compute matrix Z or its inverse. The fixed solution is computed with the transformed ambiguities. The computation scheme based on (21) is shown in figure 1 at right.
1. Single baseline versus a 4-station Network
Inter mezzo
4. Static versus Kinematic
As an alternative, one can operate upon Nba instead of
on Q b̂ â . With (18) we obtain:
Nb b̌
= rb − Nba ǎ
= rb − Nba Z −T Z T ǎ
= rb − Nbz ž
(22)
2. Dual frequency versus Single frequency
3. Phase-only versus Phase-and-code
In all experiments we used two epochs of data, while
varying the observation time span (from instantaneous
to 300 seconds). As shown in [10] it is the time span that
largely influences the amount of correlation between the
ambiguities, and therefore the CPU time needed for their
decorrelation. Enlarging the sample rate has a much
YP09
▲
YP01-BR01 : 10.4 km
DE18 : 6.0 km
YP09 : 2.3 km
YP01
▲
52o N
▲
DE18
▲
BR01
4o24’ E
Single baseline, dual frequency
In figure 3 the two main schemes for computing the
decorrelating transformation are compared for the single static baseline using dual frequency phase measurements. The white bars show the time for computing the
Z −T -matrix, the super imposed hatched bars, the time
for directly transforming Q b̂â . In this figure and in the
ones that follow, CPU time is only shown if indeed the
correct integer ambiguities were found; so in this figure the one second time span is left blank. The correctness of the integer estimation was checked using a validated ground truth obtained with a time span of 15 minutes. The figure shows that by enlarging the time span,
the time needed for decorrelation of the ambiguities decreases. The larger the time span, the more the receiversatellite geometry does change. The original double difference ambiguities are then less correlated. The figure
also demonstrates that working directly upon the, in this
Figure 3: CPU time in milliseconds for decorrelation,
for a varying time span and two epochs of data. Dual
frequency, phase-only, static baseline.
30
28
26
24
22
20
18
16
14
12
10
8
6
4
2
0
300 s
240 s
180 s
120 s
90 s
60 s
45 s
30 s
20 s
15 s
10 s
5s
4s
3s
2s
1s
smaller effect. The ambiguity search ellipsoid is characterized by its elongation and the ambiguity decorrelation
number, [ibid.].
The same 7 satellites, all with elevation above 10 degrees, were tracked in all experiments. The weight for
the phase observables was chosen to be equal (in meters)
for both the L 1 as the L 2 frequency. When code observables were included, their weight relative to that of the
phase observable was set to 1/10000.
The measurements were made at Ypenburg in the
Netherlands (φ = 52o N, λ = 4o 240 E), on May 5,
1994, between 20:00 and 20:05 (GPS time) using Trimble 4000 SSE receivers. The length of the baseline used
for the single baseline experiments (YP01-BR01) is approximately 10.4 km, while the inter-site distances for
the network experiments vary between 2.3 and 10.4 km
(see figure 2).
Timing was done on a 66 MHz-PC under MS-DOS.
The implementation was in Fortran 77 using the Microsoft Power station compiler with maximum optimization applied.
300 s
240 s
180 s
120 s
90 s
60 s
45 s
30 s
20 s
15 s
10 s
5s
4s
3s
2s
1s
Figure 2: Configuration of the stations involved in the
experiments
30
28
26
24
22
20
18
16
14
12
10
8
6
4
2
0
Figure 4: CPU time in milliseconds for decorrelation,
for a varying time span and two epochs of data. Dual
frequency, phase-only, kinematic baseline.
case 3-by-12 Q b̂ â matrix takes less time than computing the full 12-by-12 Z −T -matrix. The time is approximately 20-25 % less.
Figure 4 shows the results for the same experiments
as in figure 3, but now for a roving receiver. Allowing
one of the stations to be moving from epoch to epoch
increases the correlation between the ambiguities and
therefore the CPU time needed for decorrelation. Again
we see the beneficial effect on the correlation of an enlarged time span. As we have now a roving receiver, matrix Q b̂â has dimension 6-by-12, (there are 2 times 3 coordinates). The reduction in CPU time as compared with
computing Z −T explicitly, is therefore less than for the
static case (now about 15 %).
In figure 5 the results of the same experiments as in
figure 4 are plotted, but now using also code observations. The inclusion of the code observables has two
effects on the correlation. Firstly it lowers the abso-
300
280
260
240
220
200
180
160
140
120
100
80
60
40
20
0
300 s
240 s
180 s
120 s
90 s
60 s
45 s
30 s
20 s
15 s
10 s
5s
4s
3s
2s
1s
300 s
240 s
180 s
120 s
90 s
60 s
45 s
30 s
20 s
15 s
10 s
5s
4s
3s
2s
1s
0s
30
28
26
24
22
20
18
16
14
12
10
8
6
4
2
0
Figure 6: CPU time in milliseconds for decorrelation,
for a varying time span and two epochs of data. Dual
frequency, phase-only, static network of 4 stations.
lute level, and secondly it removes to a large extent
the effect of enlarging the observation time span. As a
consequence the CPU time for decorrelation is almost
equal for all experiments; enlarging the time span, only
slightly decreases the CPU time. The reduction of the
CPU time when operating on Q b̂â instead of constructing Z −T explicitly, is of the same order as without code,
since the dimensions of Q b̂â did not change. There is one
exception, viz. for the instantaneous case (0 s). Then the
dimension of Q b̂â is 3-by-12. Here we see a reduction of
the same order as we saw for the static scenario.
300
280
260
240
220
200
180
160
140
120
100
80
60
40
20
0
Network, dual frequency
Figure 7: CPU time in milliseconds for decorrelation,
for a varying time span and two epochs of data. Dual
frequency, phase-only, kinematic network of 4 stations.
300
280
260
240
220
200
180
160
140
120
100
80
60
40
20
0
300 s
240 s
180 s
120 s
90 s
60 s
30 s
20 s
15 s
10 s
5s
4s
3s
2s
1s
0s
Now we will show the results obtained for a small network of 4 stations. All data from the four stations were
processed together, while taking inner-station correlation due to the differencing scheme fully into account.
Experiments were done in static as well as in kinematic
mode. In the kinematic mode, 3 of the 4 stations were
allowed to be roving.
In figure 6 the results for the static case are shown.
With the 7 satellites tracked on two frequencies, we have
a total of 36 ambiguities, i.e. 3 times as much a for the
single baseline case. The time needed for decorrelation
is roughly 15 times the time needed for one baseline.
The gain when using Q b̂ â is larger than for the single
baseline case (about 30 %).
The network counterpart of the kinematic baseline,
figure 4, is given in figure 7. A gain of approximately 20
% is observed. Figure 8, the dual frequency phase and
code case with roving receivers, can be compared to figure 5. The average gain using Q b̂ â is equal to the one we
saw in figure 7. Again the instantaneous case forms an
exception, for the same reason as given for the baseline
case. The CPU time needed for decorrelation is almost
equal for all experiments.
300 s
240 s
180 s
120 s
90 s
60 s
45 s
30 s
20 s
15 s
10 s
5s
4s
3s
2s
1s
Figure 5: CPU time in milliseconds for decorrelation,
for a varying time span and two epochs of data. Dual
frequency, phase-and-code, kinematic baseline.
Figure 8: CPU time in milliseconds for decorrelation,
for a varying time span and two epochs of data. Dual
frequency, phase-and-code, kinematic network of 4 stations.
1
1
0
0
300 s
240 s
180 s
120 s
90 s
60 s
45 s
30 s
20 s
15 s
10 s
5s
4s
3s
2s
1s
0s
2
300 s
240 s
180 s
120 s
90 s
60 s
45 s
30 s
20 s
15 s
10 s
5s
4s
3s
2s
1s
2
Figure 9: CPU time in milliseconds for decorrelation,
for a varying time span and two epochs of data. Single
frequency, phase-only, 7 satellites tracked, static baseline.
Figure 10: CPU time in milliseconds for decorrelation,
for a varying time span and two epochs of data. Single frequency, phase-and-code, 7 satellites tracked, kinematic baseline.
Single baseline, single frequency
For the dual frequency cases, the decorrelation takes between 60 % and 80 % of the total time.
In figure 9 only observation time spans larger than or
equal to 45 seconds are considered. With single frequency phase observations on a 10.4 km baseline, it
was not possible to obtain the correct integer vector for
shorter time spans. Comparison with figure 3, the dual
frequency case, directly reveals that the CPU times are
very little. In the single frequency case there are only 6
ambiguities, whereas there are 12 in the dual frequency
case. Furthermore, the ambiguities, on the input, are less
correlated in the single frequency than in the dual frequency case, see [10]. The average gain when using Q b̂ â
is about 15 %.
Figure 10 shows the case with single frequency phase
and code for the kinematic baseline. Here we see almost no gain since Z −T and Q b̂ â have the same dimension of 6-by-6. The little improvement that can be seen
stems from the fact that no initialization is needed for the
Z −T -matrix when working with Q b̂â . Note again that for
the instantaneous case where Q b̂â has dimension 3-by-6
there is on improvement of about 15%.
Overall procedure
To place the timing results in perspective, we will consider for all cases, the time needed for the full procedure
of parameter estimation for the implicit scheme, see table 1. We give the experiment with the shortest and with
the longest observation time span. The latter is limited
to 300 seconds.
The normal equations (3) were taken as a point of departure. The column ‘Total CPU time’ is the time needed
for computing the float solution, doing the decorrelation
plus the integer estimation, and computing the fixed solution; thus the full procedure. The two constituents of
the second step are also specified on an individual basis.
5. CONCLUSIONS
This paper treated the computational aspects of the parameter estimation for precise relative GPS positioning.
We herein focused on the integer estimation of the double difference carrier phase ambiguities. In order to circumvent the intricacies of the integer estimation with
GPS, the LAMBDA method has been used. Prior to the
actual integer minimization, the search, the ambiguities
are decorrelated by means of the Z -transformation. As a
result, an ellipsoidal ambiguity search space is obtained,
that is very much sphere-like; it can be searched through
for grid points very efficiently. On the aspect of computation time, we can draw the following conclusions:
• The computation of the decorrelating transformation is by far the most time consuming task in the
computation of the float and fixed solution.
• This is however no drawback for the LAMBDA
method, since the CPU time gained in the integer estimation by decorrelating the ambiguities, exceeds the time needed to compute it by orders of
magnitude.
• For a dual frequency phase and code kinematic
baseline, the CPU time for the overall procedure is
at the 10 ms level, and thus very fast anyway. Approximately 70 % is taken by the decorrelation.
• The time needed for the decorrelation of the ambiguities, depends on
1. The number of ambiguities n, i.e. the dimension of the problem
CPU time for
Integer estimation
Total CPU time
Reduction of CPU time
operating on Q b̂â
CPU time for
Decorrelation
Time span (s)
Total CPU time
CPU time for
Integer estimation
CPU time for
Decorrelation
Time span (s)
6.2
10.0
5.3
7.1
0.2
0.2
0.2
0.2
9.2
13.9
8.3
11.1
21-23 %
13-16 %
85.8
144.7
84.7
127.4
3.1
0.9
1.7
1.9
124.5
201.8
122.1
185.8
27-35 %
20-23 %
0.7
1.2
0.7
0.8
0.1
0.1
0.1
0.1
2.4
2.9
1.9
2.6
11-17 %
Baseline, Dual frequency
L1L2
L1L2
L 1 L 2 P1 P2
L 1 L 2 P1 P2
static
kinematic
static
kinematic
2
10
0
0
17.5
14.7
8.7
8.7
0.4
0.2
0.2
0.2
20.7
18.6
11.7
11.7
300
300
300
300
13-16 %
4-station Network, Dual frequency
L1L2
L1L2
L 1 L 2 P1 P2
L 1 L 2 P1 P2
static
kinematic
static
kinematic
1
5
0
0
221.3
253.4
134.4
134.4
16.4
8.9
1.8
1.8
271.0
315.5
170.6
170.6
300
300
300
300
19-21 %
Baseline, Single frequency
L1
L1
L 1 P1
L 1 P1
static
kinematic
static
kinematic
45
1.2
0.1
1.9
0
0
1.0
1.0
0.1
0.1
2.3
2.3
300
300
300
300
7-15 %
0-5 %
Table 1: CPU times in milliseconds for decorrelation of the ambiguities, integer estimation and overall procedure. Reduction in CPU time when operating on Q b̂â instead of working on Z −T .
2. The amount of correlation of the original double difference ambiguities (the correlation in
the input situation). Important factors that influence this, are the inclusion of code observations, kinematic versus static, and the observation time span.
hundreds or thousands. (Try to compute the space
needed for the Z -matrix alone: 1000 ambiguities:
1000 × 1000 × 4 bytes is approximately 4 Mb; 4
bytes suffice per integer entry in principle). Using
the implicit scheme the whole process of decorrelation, integer estimation and fixing can be done inplace (with the help of a number of small help vectors). For ordinary single baseline cases, the difference between explicit or implicit computation is not
large.
From a practical point of view, the need for the decorrelating Z -transformation is clearly there [8,9]. In kinematic and navigation applications, positioning results
must become available in real-time. Therefore also the
hard part of the parameter estimation – the ambiguity
resolution – has to be done on-the-fly.
Basically two alternative ways to realize the decorrelation transformation were distinguished. The transformation can be computed either explicitly or implicitly.
• For a dual frequency phase and code 4-station kinematic network (i.e. 3 roving receivers) a fixed solution is computed in less than 0.2 seconds.
• The ‘implicit’ scheme is more efficient; both in
terms of CPU time as in terms of the use of core
memory. This seems trivial in a time where computer memory is becoming abundant, but it will
prove its usefulness when treating large networks,
where the number of ambiguities easily can reach
A detailed description of the LAMBDA algorithms
is available from the authors [6]. For further information concerning the LAMBDA method we refer to our
WWW-site http://www.geo.tudelft.nl/mgp/lambda
6. REFERENCES
[1] Teunissen, P.J.G. (1993). Least-squares estimation
of the integer GPS ambiguities. Invited lecture, section
IV Theory and Methodology. IAG General Meeting,
Beijing, China, August 1993. Also in Delft Geodetic
Computing Centre LGR-series No. 6.
[2] Teunissen, P.J.G. (1995). The least-squares ambiguity decorrelation adjustment: a method for fast GPS integer ambiguity estimation. Journal of Geodesy, Vol. 70,
No. 1-2, pp. 65-82.
[3] Teunissen, P.J.G. (1996). GPS Carrier Phase Ambiguity Fixing Concepts. Lecture Notes in Earth Sciences,
No. 60, Kleusberg, A. and P.J.G. Teunissen (Eds.),
Springer Verlag, Berlin. International School GPS for
Geodesy. Chapter 8, pp. 263-336.
[4] Golub, G.H. and C.F. van Loan (1989). Matrix computations, Second edition, The Johns Hopkins University Press, Baltimore, Md, US.
[5] Teunissen, P.J.G., P.J. de Jonge and C.C.J.M.
Tiberius (1994). On the spectrum of the GPS DDambiguities. Proceedings of ION GPS-94, Salt Lake
City, Utah, US, September 20-23, 1994, pp. 115-124.
[6] Jonge, P.J. de and C.C.J.M. Tiberius (1996). The
LAMBDA method for integer ambiguity estimation:
implementation aspects. Delft Geodetic Computing
Centre, LGR-series No. 12, 5+49 pp.
[7] Teunissen, P.J.G., P.J. de Jonge and C.C.J.M.
Tiberius (1996). The volume of the GPS ambiguity
search space and its relevance for integer ambiguity
resolution. Paper presented at ION GPS-96. Kansas
City, Missouri, US. September 17-20, 1996.
[8] Han, S. (1995) Ambiguity resolution techniques using integer least squares estimation for rapid static or
kinematic positioning. Presented at the Satellite Navigation Technology: 1995 and beyond. Brisbane, Australia,
June 26-28, 1995. 10 pp.
[9] Hein, G.W., B. Eisfeller, J. Pielmeier, U. Rossbach,
W. Werner. (1995) New developments in high precision satellite navigation at IfEN. The Fourth International Conference on Differential Satellite Navigation
Systems (DSNS95). Bergen, Norway. April 24-28. Paper no. 28, 10 pp.
[10] Teunissen, P.J.G. (1994). A new method for
fast carrier phase ambiguity estimation. Proceedings
IEEE Position, Location and Navigation Symposium
PLANS’94. Las Vegas, NV. April 11-15. pp. 562-573.
Explicit computation, via (18)
rb
r
-N
N
Implicit computation, via (21)
ba
r
N
Cholesky
?
?
r
for-/backward
substitution
b̂
Cholesky
triangular
inversion
?
for-/backward
substitution
?
C −1
â
b̂
triangular
inversion
decorrelation
D̃ −1 , L̃ −1
Q b̂ẑ
triangular/
diagonal
inversion
? D̃,?L̃
?
? Z?
−T
rb
ž
? D̃
ẑ
−1
, L̃ −1
triangular/
diagonal
inversion
? D̃,?L̃
ẑ
integer
estimation
ẑ
? N?
Q b̌
ba
?
b̂
?
Q b̂ẑ
integer
estimation
?
D̃, L̃, ẑ − ž
Q b̌ (rb − Nba Z −T ž)
b̂ − Q b̂ẑ L̃ D̃ L̃ T (ẑ − ž)
b̌
b̌
?
?
transport
?
in-place operation
?
Q b̂ â D −1 , L −1 Q b̌
â
decorrelation
?
split
Ca−1
? ?
?
D −1 , L −1 Q b̌
Z −T ẑ
?
C −1
â
compose
? ?
?
C
?
split
Ca−1
â
?
?
r
C
?
- extract
Figure 1: Computation schemes for the GPS relative positioning float/fixed solution
© Copyright 2026 Paperzz