---
title: Carrier Phase Differential GNSS (CDGNSS)
url: https://www.emergentmind.com/topics/carrier-phase-differential-gnss-cdgnss
type: topic
---

# Carrier Phase Differential GNSS (CDGNSS)

Searching arXiv for recent and foundational papers on Carrier Phase Differential GNSS (CDGNSS).
Carrier Phase Differential GNSS (CDGNSS) denotes the family of high-precision GNSS techniques that use carrier-phase observables, typically in differential form, to estimate position, velocity, baseline, or attitude with much higher precision than code-only methods. In recent GNSS estimation literature, CDGNSS problems are commonly formulated with state variables that include position, velocity, receiver clock terms, and carrier-phase ambiguities, while real-world vehicular experiments in dense urban conditions have reported **17-cm-accurate 3D urban positioning (95% probability)** with **solution availability greater than 87%** without inertial, electro-optical, or odometry aiding [2502.08158][1906.09539].

## 1. Differential carrier-phase observation model

The defining feature of CDGNSS is the use of carrier phase rather than only pseudorange. For a receiver \(k\) and satellite \(p\), one low-cost interferometric formulation writes the carrier phase as
\[
\Phi_{p,k}(t) = \Phi_p^{(t)} - \Phi_{k}^{(t)} + N_{p,k} + S_{p,k} + f_p t_p + f_k t_k - B_{\text{iono}} + \text{Strop},
\]
where the measurement contains an unknown integer ambiguity \(N_{p,k}\), receiver and satellite clock terms, propagation effects, and noise [1707.08478].

Differencing is central because it suppresses common-mode errors. A single difference between two receivers \(k\) and \(m\) for satellite \(p\),
\[
SD_p = \Phi_{p,k}(t) - \Phi_{p,m}(t),
\]
eliminates satellite clock bias and reduces atmospheric effects to first order. A double difference between satellites \(p\) and \(q\),
\[
DD_{pq} = SD_p - SD_q = \frac{ (\mathbf{b} \cdot (\mathbf{e}_p - \mathbf{e}_q)) }{ \lambda } + \Delta N_{pq} + \Delta S_{pq},
\]
further eliminates receiver clock terms and leaves a baseline-geometry term, an integer ambiguity term, and residual noise [1707.08478].

A recent factor-graph-oriented CDGNSS model uses the double-differenced carrier phase
\[
\lambda \nabla \Delta \Phi_{i}^{kl} = \nabla \Delta r_{\mathbf{x},i}^{kl} + \lambda \nabla \Delta B_{i}^{kl} + \nabla \Delta \epsilon_{i}^{kl},
\]
where \(\lambda\) is the carrier wavelength, \(\nabla \Delta \Phi_{i}^{kl}\) is the double-differenced observation between satellites \(k\) and reference \(l\), \(\nabla \Delta r_{\mathbf{x},i}^{kl}\) is the double-differenced geometric range, \(\nabla \Delta B_{i}^{kl}\) is the integer ambiguity, and \(\nabla \Delta \epsilon_{i}^{kl}\) is measurement noise [2502.08158]. In this formulation the ambiguity is estimated as a float value inside the estimator and fixed afterward.

This differential structure also appears in related formulations based on time rather than space. Time-differential carrier phase and time-relative RTK-GNSS treat the displacement between epochs as an RTK-like baseline, preserving the same carrier-phase precision while changing the differencing topology [2312.02448][2312.02424].

## 2. Integer ambiguity as the central estimation problem

The principal algorithmic difficulty in CDGNSS is integer ambiguity resolution. In one recent implementation, the carrier-phase factor for CDGNSS is written as
\[
e_{\mathrm{B}^{kl}}(\delta\mathbf{x}_i, \nabla \Delta B_{i}^{kl}) =
\mathbf{H}_{\mathbf{x}_0}^{kl} \delta \mathbf{x}_i -
\left(\lambda \nabla \Delta \Phi_{i}^{kl} - \nabla \Delta r_{\mathbf{x}_0,i}^{kl} - \lambda \nabla \Delta B_{i}^{kl}\right),
\]
so that both the position error state and the ambiguity state appear explicitly in the residual [2502.08158]. The associated CDGNSS objective for position and ambiguity estimation combines double-differenced pseudorange and carrier-phase factors, and an extended model can also include Doppler and motion factors [2502.08158].

A standard workflow is to estimate float ambiguities first and then apply integer least-squares. In `gtsam_gnss`, integer least-squares methods such as LAMBDA are applied after optimization using the float ambiguity estimate, its covariance, and a ratio test, with the threshold typically set at **2.0** [2502.08158]. In a visual-inertial EKF formulation, the ambiguity vector is likewise fixed after a float solution, with **MLAMBDA** used for the integer search and a ratio test that accepts a fixed solution if the ratio exceeds a threshold, typically **3** [2303.01291].

Alternative formulations address the same integer structure differently. For ultra-short-baseline attitude determination, a quaternion-based model
\[
\Phi = G R F + \lambda Z + V,\quad \text{Cov}(\mathrm{vec}(V)) = Q
\]
is combined with Monte Carlo sampling to build an empirical ambiguity probability density and then with LAMBDA plus candidate screening; experiments reported a **100% ambiguity resolution success rate** for ultra-short baselines, including cases with as few as **4 satellites** and without code measurements or prior attitude information [1701.01792]. In another attitude-oriented line of work, constrained wrapped least squares estimates attitude parameters directly from ambiguous carrier-phase observations, without requiring prior ambiguity fixing, and is reported to outperform the ambiguity function method, constrained LAMBDA, and multivariate constrained LAMBDA [2112.14813].

Across these formulations, the recurring pattern is the same: CDGNSS accuracy depends on how sharply the float solution and its covariance restrict the admissible integer lattice. Richer kinematic or geometric constraints generally improve that restriction.

## 3. Estimation architectures and software realizations

CDGNSS has been implemented in least-squares, Kalman, batch-optimization, and factor-graph frameworks. A recent open-source package, `gtsam_gnss`, uses GTSAM as its backend and defines pseudorange, Doppler, and carrier-phase observations as graph factors. Its design separates preprocessing from optimization: satellite position computation, tropospheric and ionospheric corrections, measurement differencing, and line-of-sight calculations are performed outside the graph, while the graph receives preprocessed residuals and Jacobians as generic inputs [2502.08158]. This separation is intended to simplify the transition from ordinary least-squares positioning to factor graph optimization and to make user-specific GNSS research easier to implement [2502.08158].

Tightly coupled filtering remains prominent. A visual-inertial fusion system uses a loosely coupled EKF in which VIO incremental pose and covariance drive the prediction step and double-differenced GNSS carrier-phase and pseudorange equations are used in the update step; the same system also solves an antenna-to-IMU extrinsic calibration problem to align VIO to the ECEF frame [2303.01291]. For deep-urban multi-antenna navigation, a matrix-Lie-group unscented Kalman filter tightly couples CDGNSS with a low-cost MEMS IMU and vehicle dynamics constraints; its unscented linearization is designed to support integer least-squares ambiguity resolution while implicitly enforcing known-baseline-length constraints and exploiting inter-baseline correlations [2201.11776].

Sliding-window formulations have also been developed. SRI-GVINS deeply fuses pseudorange, Doppler shift, single-differenced pseudorange, and double-differenced carrier phase with visual-inertial measurements inside a square-root inverse sliding window filter, while also performing online GNSS-IMU extrinsic calibration [2405.10874]. For particle methods, the Multiple Update Particle Filter addresses the sharp-peaked likelihoods created by carrier-phase observables by applying likelihoods sequentially from broad to narrow and resampling between updates; in static testing it reported **1.64 cm 3D RMS error** and **100% fixed rate after 20 epochs**, and in an urban vehicle test it achieved **80.3\%** of epoch errors within **0.5 m** versus **63.9\%** for RTKLIB [2403.03394].

These architectures differ in numerical strategy, but they converge on a common CDGNSS design principle: the carrier phase is most effective when processed jointly with dynamics, geometry, and carefully modeled uncertainty rather than as an isolated measurement stream.

## 4. Attitude determination and single-receiver relative formulations

A major branch of CDGNSS concerns attitude determination. In multi-antenna settings, the baseline geometry is known in the body frame and the carrier-phase observations constrain the vehicle rotation. The quaternion-based model
\[
\Phi = G R(q) F + \lambda Z + V
\]
treats \(R(q)\) as the attitude matrix and \(Z\) as the integer ambiguity matrix, with ambiguity particles generated by Monte Carlo sampling and screened after LAMBDA search through consistency with the GNSS-attitude model [1701.01792]. For low-cost hardware, a two-receiver “GNSS Differential Interferometer” based on double-difference processing reported azimuth standard deviations as low as **0.57 degrees** for a **2 m** baseline, with one field test reporting mean **47.18°** and standard deviation **0.5752°** [1707.08478].

Another important extension replaces spatial differencing between a base and a rover with temporal differencing at a single receiver. Time-Relative RTK-GNSS uses time-differential carrier phase between current and past epochs to create loop-closure constraints in a pose graph, and kinematic UAV tests reported trajectory estimation with approximately **3 cm accuracy** using only a stand-alone GNSS receiver [2312.02448]. A related “GNSS Odometry” approach uses time differences of carrier phase together with explicit cycle-slip estimation in factor graph optimization; by estimating and correcting slip integers, UAV experiments reported trajectory accuracy of **5 to 30 cm** using only a single GNSS receiver and no external sensors [2312.02424].

Windowed carrier-phase methods generalize the two-epoch TDCP idea. Instead of differencing only neighboring epochs, the Window Carrier-Phase formulation stacks carrier-phase measurements across a window that shares a common ambiguity and applies a left null space matrix to eliminate that ambiguity, thereby correlating multiple receiver states inside a factor graph [2109.00683]. In two urban canyons in Hong Kong, this approach achieved mean positioning errors of **1.76 meters** and **2.96 meters**, respectively, with an automobile-level GNSS receiver [2109.00683]. Although these results are not differential RTK fixes in the conventional short-baseline sense, they show that carrier-phase temporal structure can be used as a robust relative constraint even without a reference receiver.

## 5. Application domains and reported performance

Reported CDGNSS performance varies strongly with geometry, aiding, and environment. Representative results from the cited literature are summarized below.

| Domain | Reported result | Source |
|---|---|---|
| Unaided deep-urban vehicle positioning | 17-cm-accurate 3D positioning (95%) with availability greater than 87% | [1906.09539] |
| FGO CDGNSS with Doppler/velocity | Fix rate 40.8% \(\rightarrow\) 51.4% | [2502.08158] |
| VIO-aided carrier-phase GNSS, light-blocked urban canyon | RMSE 0.033 m, FSR 92.9% | [2303.01291] |
| Deep-urban multi-antenna CDGNSS + consumer/industrial IMU | 96.6% / 97.5% integer fix availability; 12.0 cm / 10.1 cm 95th-percentile horizontal error | [2201.11776] |
| SRI-GVINS with Ddcp | 0.143 m mean position RMSE | [2405.10874] |
| Distributed space systems post-IAR relative navigation | 1.79 mm RMS relative position; 0.040–0.041 mm/s RMS relative velocity | [2508.18246] |

In urban vehicular CDGNSS without aiding, performance sensitivity is dominated by signal tracking quality and infrastructure. A detailed Austin, Texas study found that navigation data bit wipeoff for fully modulated GNSS signals and a dense reference network are key to high-performance urban RTK positioning [1906.09539]. Disabling data bit prediction caused a “catastrophic drop,” with \(P_S\) falling from **84.8%** to **54.4%** and \(P_F\) rising from **2.4%** to **25%**; increasing the reference baseline to **15 km** reduced \(P_S\) to **78.9%** and increased \(P_F\) to **7.7%** [1906.09539].

Sensor fusion changes both accuracy and fix behavior. In `gtsam_gnss`, adding Doppler and velocity factors to the CDGNSS graph improved fix rate from **40.8%** to **51.4%**, raised ratio-test values, and reduced 3D position error through better float ambiguity estimation [2502.08158]. In real-world urban canyons, a VIO-aided carrier-phase GNSS system improved fixed solution rate from **39.4%** to **50.8%** in one environment and from **8.1%** to **36.5%** in another, while also outperforming RTKLIB in simulated light-blocked conditions with **0.033 m** RMSE versus **0.78 m** for RTKLIB [2303.01291]. For deep-urban multi-antenna navigation, tight inertial coupling with consumer-grade and industrial-grade IMUs achieved **96.6%** and **97.5%** integer fix availability, respectively, with **12.0 cm** and **10.1 cm** overall 95th-percentile horizontal error [2201.11776].

CDGNSS is not restricted to terrestrial vehicles. On UAV datasets, tightly coupled double-differenced carrier phase in SRI-GVINS yielded **0.143 m** mean position RMSE, versus **0.410 m** for VIO+Dopp+Dpsr and **0.595 m** for VIO+Dopp+Psr [2405.10874]. For distributed space systems, a flight-ready software architecture using float ambiguities with integer resolution where possible reported **1.79 mm RMS** post-IAR relative position accuracy and **0.040–0.041 mm/s RMS** relative velocity on VISORS-like tests [2508.18246]. This broad application range shows that CDGNSS is best viewed as a measurement and estimation paradigm rather than a single terrestrial RTK workflow.

## 6. Integrity, spoofing, and relation to emerging carrier-phase systems

Because CDGNSS resolves integers and enforces strong dynamical consistency, its internal residuals are also useful for integrity monitoring. One tightly coupled CDGNSS-IMU spoofing detector defines a carrier-phase fixed-ambiguity residual cost \(\epsilon_{\phi k}\) and a windowed sum
\[
\Psi_k = \sum_{n=k-l+1}^{k} \epsilon_{\phi n},
\]
called the Windowed Fixed-Ambiguity Residual Cost (WFARC) [2203.00140]. Using vehicle data from Austin, Texas, the study reported that artificial worst-case spoofing attacks were detected within **two seconds**, and in shallow urban conditions the most subtle attacks were detected within **1 second** with an industrial-grade IMU and within **two seconds** with a consumer-grade IMU [2203.00140].

A second line of work uses short-time inertial tracking of deliberate high-frequency antenna motion and checks whether the carrier phases from different satellites exhibit the spatial diversity expected from real transmitters rather than the collapsed geometry of a single-antenna spoofer. In laboratory and Jammertest 2024 evaluations, this method reported accuracy of up to **90%** in correctly identifying spoofing, or the lack of it, using mass-production-grade INS typical for mobile phones and without modification to the receiver structure [2502.03870].

Related carrier-phase positioning systems have begun to appear outside GNSS. In 3GPP Release-18, carrier phase positioning is standardized for the first time in 5G NR, with differential bias-cancellation logic that the literature explicitly compares to CDGNSS; the basic measurement is written as
\[
d=\lambda N + \phi_{DL}, \qquad \phi_{DL}=\hat\phi+\phi_r-\phi_t,
\]
and differential processing with a Positioning Reference Unit is used to cancel hardware phase biases [2401.17594]. In LEO-based NR-NTN research, joint delay-and-carrier-phase positioning has been compared directly with GNSS: simulations reported **cm-level accuracy** with convergence times on the order of a few seconds for LEO, whereas GNSS remained limited to **meter-level accuracy** over comparable short observation windows [2603.18360]. These developments do not replace CDGNSS in the cited literature, but they show that integer ambiguity resolution, differencing, and phase-continuity management are becoming general positioning principles across multiple radio-navigation domains.

Source: https://www.emergentmind.com/topics/carrier-phase-differential-gnss-cdgnss