It is well known that carrier phase ambiguities are integer values. Intuitively, this is hard to understand with a common counter-argument progressing along these lines: even if the receiver measures the instantaneous phase of the incoming signal (thus removing any fractional cycle component at the receiver end), the phase of the signal at the satellite cannot be guaranteed to be zero, so how can the ambiguity be integer?

In this article we explain why the carrier phase ambiguities are indeed integer.

It is well known that carrier phase ambiguities are integer values. Intuitively, this is hard to understand with a common counter-argument progressing along these lines: even if the receiver measures the instantaneous phase of the incoming signal (thus removing any fractional cycle component at the receiver end), the phase of the signal at the satellite cannot be guaranteed to be zero, so how can the ambiguity be integer?

In this article we explain why the carrier phase ambiguities are indeed integer.

To keep things simple, we begin by assuming the propagation errors (ionosphere, troposphere, etc.) and clock errors are zero. This is not limiting but greatly simplifies the analysis and interpretation because it only leaves geometric terms (i.e., range and range rate).

**Geometric Interpretation of Carrier Phase**

Before getting into too many details, it can be instructive to give a geometrical understanding of the carrier phase.

Recall that carrier phase observations are obtained by integrating the measured Doppler shift of the signal (details in the next section). This is why the term *accumulated Doppler range *(ADR) is often used to describe the same observation. In the absence of errors, the Doppler shift, *f _{Doppler}*, of the received signal is

Equation** (1)** *(see inset photo, above right)*

where *λ* is the carrier phase wavelength and *ρ̇* is the geometric range rate between the receiver and satellite (the over-dot represents the time-derivative of the geometric range, *ρ*).

Integrating the Doppler over time gives the carrier phase observation at time *t*, *ϕ(t)*, as

Equation **(2)** *(see inset photo, above right)*

where *t*_{0} is the start of the integration period (usually when the signal is first acquired), is the change in range over the integration period, and *ρ(t*_{0}*)* is the initial range and represents the integration constant. Equation (2) also shows that the carrier phase observation is a measure of the *change* in range over time.

Setting *t = t*_{0} in equation gives

Equation **(3)**

because the change in the range over zero time interval is zero. Of course, the initial range is generally unknown (after all, that is what the receiver is trying to measure) and thus can be loosely interpreted as being ambiguous. This is the geometric analogy to the carrier phase ambiguity.

**Carrier Phase Generation**

**Figure 1** *(at the top of this article) *shows a high-level diagram of a GNSS receiver-tracking loop. The purpose of the loop is to ultimately have the numerically controlled oscillator (NCO) generate a signal with the same frequency and phase as the incoming signal (after down-conversion). This image is included to help clarify the notation used below.

The Doppler shift of the received signal is given by

*f _{Doppler}* =

*f*−

_{dc}*f*

_{IF}**(4)**

where *f _{dc}* is the frequency of the signal after down-conversion, and

*f*is the nominal intermediate frequency (IF). The down-converted frequency is given by

_{IF}
*f _{dc}* =

*f*−

_{Rx}*f*

_{LO}**(5)**

where *f _{Rx}* is the received signal frequency, and

*f*is the frequency of the receiver’s local oscillator (after being mixed up or down from its fundamental frequency).

_{LO}The IF is given by

*f _{IF}* =

*f*−

_{SV}*f*

_{LO}**(6)**

where *f _{SV}* is the nominal signal frequency (e.g., 1,575.42 MHz for GPS L1).

Using a frequency lock loop (FLL), the receiver’s NCO tries to generate a frequency, *f _{NCO}*, that matches the down-converted frequency as closely as possible. The error (discriminator output),

*δ f*, is passed to the loop filter that computes the feedback to NCO. The carrier phase equivalent of the equation (4) is

_{NCO}
*ϕ*(*t*) = *ϕ _{dc}*(

*t*) −

*ϕ*(

_{IF}*t*)

**(7)**

where the term on the left is the carrier phase observation, *ϕ _{dc}* is the phase of the signal

*after down-conversion in the front-end*, and

*ϕ*is the phase of the receiver’s IF signal.

_{IF}
For convenience, we assume that *f _{IF}* = 0 such that

*ϕ*is constant. From equation (6), this is equivalent to

_{IF}*f*=

_{SV}*f*(ignoring relativistic effects). In this case, and assuming the receiver’s oscillator is phase synchronized with the satellite (recall our initial assumption of perfect clocks), it follows that

_{LO}*ϕ*= 0.

_{IF}Let us now consider the signal phase after down-conversion, which is given by

*ϕ _{dc}*(

*t*) =

*ϕ*(

_{Rx}*t*) −

*ϕ*(

_{LO}*t*)

**(8)**

where *ϕ _{Rx }*is the phase of the signal at the receive antenna (i.e., before down-conversion), and

*ϕ*is the receiver’s locally generated phase. Analogous to the FLL, a phase lock loop (PLL) tries to drive the NCO phase to the down-converted phase.

_{LO}
Accounting for tracking errors, *δϕ _{NCO}*, we can write

*ϕ _{NCO}* =

*ϕ*+

_{dc}*δϕ*

_{NCO}**(9)**

Since the receiver does not know *ϕ _{dc}*, it instead uses

*ϕ*as its best estimate. In other words, equation (7) can be approximated and then simplified (using equation [9] then [8] and

_{NCO}*ϕ*= 0) as follows:

_{IF}
*ϕ*(*t*) ≈ *ϕ _{NCO}*(

*t*) −

*ϕ*(

_{IF}*t*)

**(10)**

=

*ϕ*(

_{dc}*t*) +

*δϕ*(

_{NCO}*t*)

=

*ϕ*(

_{Rx}*t*) −

*ϕ*(

_{LO}*t*) +

*δϕ*(

_{NCO}*t*)

=

*ϕ*(

_{Rx}*t*) −

*ϕ*(

_{SV}*t*) +

*δϕ*(

_{NCO}*t*)

where *ϕ _{SV}* is the phase of the satellite (equivalent to the receiver’s phase for the assumptions made). We can break this down further by realizing that the received phase is equal to the phase of the satellite when the signal was transmitted. Knowing that the time of propagation of the signal is

*T = ρ/c*, we can write

Equation **(11)** *(see inset photo, above right)*

Substituting equation (11) into (10) gives

Equation **(12)** *(see inset photo, above right)*

This shows us that the carrier phase observation under ideal conditions equals the true range plus tracking errors. The latter is zero mean with typical noise and multipath contributing approximately one millimeter and two to three centimeters of error, respectively.

But where’s the carrier phase ambiguity, you ask? To answer this, we need to recognize that the NCO is really only concerned with matching the phase of the local and received signals *within one cycle*. More specifically, the carrier phase discriminators in the tracking loops (not shown) cannot distinguish between one cycle and another and thus converge to the nearest cycle.

In other words, while the previously described development implicitly assumed ϕNCO = *ϕ _{dc}*, in reality

*ϕ _{NCO}* = mod(

*ϕ*,1 cycle)

_{dc}**(13)**

where mod(*a,b*) is the modulus (remainder) of *a / b*. Practically, this means the NCO phase is ambiguous by an integer number of cycles and explains why the ambiguity is integer.

Also worth noting is that the carrier phase ambiguities are determined when the signal is first acquired. After this time, the change in range/phase is captured by integrating the measured Doppler shift. In other words, with reference to equation (2), the integration constant is determined at *t*_{0}.

**Discussion**

Carrier phase measurements can, in theory, be generated using an FLL only. In this case however, the phase tracking error, *δϕ _{NCO}*, will not, in general, be zero. This is because the FLL is only concerned with matching the frequency of the received and generated signals. If this is done perfectly, the phase tracking error would be a (generally non-zero) constant. In practice, tracking jitter in the frequency loop causes the phase tracking error to exhibit random walk effects.

Ultimately, the ambiguity term will absorb any mean error in phase tracking error. With a PLL, these errors are zero-mean and thus are not problematic. For an FLL, the non-zero tracking error would be absorbed.

We should also note that the IF phase of the receiver plays a role in the “integer-ness” of the ambiguities. Earlier, we assumed the receiver phase was synchronized with the satellite’s phase; however, this is not true in general, and any offset will be absorbed by the ambiguity term. This error is effectively random at turn-on (due to the random nature of the oscillator’s phase) and thus cannot be easily compensated. This is part of the challenge of ambiguity resolution with precise point positioning (PPP) algorithms. Fortunately, for double difference processing, this effect cancels.

Similar to the IF phase, any unaccounted for delays in the receiver hardware (e.g., inter-channel delays, etc.) will affect the integer-ness of the ambiguities. Fortunately, many of these effects can be calibrated with proper techniques.

Finally, although the previously described development ignored error sources, including these in the development is relatively straightforward and the same conclusion results. The only difference is that equation (12) would include all of the normal error terms and, of course, the ambiguity!