Skip to main content

Module lambda

Module lambda 

Source
Expand description

GNSS carrier-phase integer ambiguity resolution — the LAMBDA approach (Teunissen 1995): integer least-squares with a decorrelating integer (Z) transform and a closed-form bootstrapped success rate.

Carrier-phase positioning needs the integer cycle ambiguities z ∈ ℤⁿ. A float solution gives a real-valued estimate â with covariance Q (symmetric positive definite). The maximum-likelihood integer estimate is the integer least-squares (ILS) solution

  ž = argmin_{z ∈ ℤⁿ} (z − â)ᵀ Q⁻¹ (z − â).

Because Q is typically highly correlated (elongated search ellipsoid), the search is slow in the original coordinates. LAMBDA first applies an integer, volume-preserving (|det Z| = 1, so Z and Z⁻¹ are both integer) transformation z' = Zᵀ z that decorrelates the ambiguities — here the integer-Gauss size-reduction step that drives the off-diagonal correlations below ½ — and then searches in the transformed, nearly spherical space before mapping the integer solution back, ž = Z⁻ᵀ ž'. The ILS search itself is an exact Schnorr–Euchner depth-first branch-and-bound over the Q = L D Lᵀ factorization (sequential conditional rounding with search-shrinking), so the returned ž is the exact minimiser, independent of how well the transform decorrelated Q.

The bootstrapped success rate — the probability that sequential conditional rounding lands on the correct integers — has the closed form P_s = ∏ᵢ [2Φ(1/(2σ_{î_i|I})) − 1], where the σ²_{î_i|I} are the conditional variances D[i] of the factorization and Φ is the standard normal CDF. It is a sharp lower bound on the ILS success rate and rises as the decorrelation makes the conditional variances smaller, which is the quantitative payoff of the Z-transform.

Scope (honest): the decorrelation implemented here is the integer-Gauss size-reduction part of LAMBDA — it reduces the off-diagonal correlations and is a genuine volume-preserving Z-transform — but the conditional-variance reordering permutations of the full LAMBDA reduction are out of scope (they only speed the search further; they change neither the exact ILS answer nor the bootstrapped rate of the transformed problem). It is a MODELLED capability whose reference tests check the Z-transform invariants, the exact ILS against brute-force enumeration, and the bootstrapped rate against Monte-Carlo — internal-consistency oracles, not an external dataset.

References:

  • P. J. G. Teunissen, “The least-squares ambiguity decorrelation adjustment: a method for fast GPS integer ambiguity estimation,” J. Geodesy 70 (1995).
  • P. de Jonge & C. Tiberius, “The LAMBDA method for integer ambiguity estimation,” LGR-Series 12, TU Delft (1996).
  • X.-W. Chang, X. Yang, T. Zhou, “MLAMBDA: a modified LAMBDA method for integer least-squares estimation,” J. Geodesy 79 (2005).

Structs§

AmbiguityFix
The result of an ambiguity resolution.

Functions§

back_transform
Map a decorrelated-space integer solution z' back to the original ambiguities ž = Z⁻ᵀ z', i.e. solve Zᵀ ž = z'. Z is integer unimodular, so ž is integer.
bootstrap_success_rate
Closed-form bootstrapped success rate P_s = ∏ᵢ [2Φ(1/(2σ_{î_i|I})) − 1] from the conditional variances D[i] of the L D Lᵀ factorisation of q. Returns None if q is not positive definite.
decorrelate
Integer-Gauss decorrelation. Returns the integer transform Z (with |det Z| = 1) and the decorrelated covariance Q_z = Zᵀ Q Z. The transformed float ambiguities are ẑ = Zᵀ â (transform_float).
ils
Exact integer least-squares solution for a_hat with covariance q, in the SAME coordinates as the inputs. Returns the integer vector minimising (z − a_hat)ᵀ q⁻¹ (z − a_hat).
ldlt
L D Lᵀ factorisation of a symmetric positive-definite q: unit lower-triangular L and positive diagonal d, with q = L · diag(d) · Lᵀ. Returns None if q is not positive definite.
resolve
Full LAMBDA resolution: decorrelate, solve the integer least-squares in the transformed space, map back to the original ambiguities, and report the ratio test and the (decorrelated) bootstrapped success rate. Returns None if q is not positive definite or the search budget is exhausted before a candidate is found.
transform_float
Transformed float ambiguities ẑ = Zᵀ â.

Type Aliases§

Mat
A dense row-major real matrix.