# Real-time cycle slip detection in triple-frequency GNSS

## Authors

- First Online:

- Received:
- Accepted:

DOI: 10.1007/s10291-011-0237-5

- Cite this article as:
- de Lacy, M.C., Reguzzoni, M. & Sansò, F. GPS Solut (2012) 16: 353. doi:10.1007/s10291-011-0237-5

- 16 Citations
- 795 Views

## Abstract

The modernization of the global positioning system and the advent of the European project Galileo will lead to a multifrequency global navigation satellite system (GNSS). The presence of new frequencies introduces more degrees of freedom in the GNSS data combination. We define linear combinations of GNSS observations with the aim to detect and correct cycle slips in real time. In particular, the detection is based on five geometry-free linear combinations used in three cascading steps. Most of the jumps are detected in the first step using three minimum-noise combinations of phase and code observations. The remaining jumps with very small amplitude are detected in the other two steps by means of two-tailored linear combinations of phase observations. Once the epoch of the slip has been detected, its amplitude is estimated using other linear combinations of phase observations. These combinations are defined with the aim of discriminating between the possible combinations of jump amplitudes in the three carriers. The method has been tested on simulated data and 1-second triple-frequency undifferenced GPS data coming from a friendly multipath environment. Results show that the proposed method is able to detect and repair all combinations of cycle slips in the three carriers.

### Keywords

Triple-frequency GNSSCycle slipsMinimum-noise combinations## Introduction

A cycle slip is a discontinuity of an integer number of cycles in the phase observable, caused by a temporary loss of lock in the receiver carrier tracking loop. This discontinuity is generally due to poor reception, or to the presence of obstacles in the path of satellite signals; its amplitude varies from one to millions of cycles.

Cycle slip detection and correction is an important part of GPS data processing. Therefore, algorithms specifically dedicated to cycle slip analysis in dual-frequency GPS observations were developed and implemented. Methods to detect and repair cycle slips using double differenced observations can be found in Bisnath and Langley (2000), Kim and Langley (2001) and Lee et al. (2003). Over the recent years, Precise Point Positioning (PPP) methods have become a powerful tool for estimating station positions. Therefore, techniques to detect and correct cycle slips on undifferenced observations are needed. The first technique to detect cycle slips on undifferenced observations was the approach called Turbo Edit (Blewitt 1990). It is implemented in scientific programs that process undifferenced observations such as GIPSY-OASIS II (Lichten et al. 1995) and BERNESE 5.0 (Beutler et al. 2006). Lacy et al. (2008) faced the cycle slip problem for single GNSS receivers by exploiting Bayesian theory. The method is based on the original signal and can be modeled by a multiple polynomial regression. Banville and Langley (2010) developed a method for instantaneous cycle slip correction in real-time PPP applications. Liu (2011) has presented a method to detect and repair cycle slips that employs the ionospheric total electron content rate (TECR).

The space vehicles of the forthcoming GNSS satellite constellations will add additional frequencies and therefore making new linear combinations of observations available. Recently, several authors have proposed new combinations that can be used to eliminate or mitigate individual sources of error (Richert and El-Sheimy 2007). New combinations are used to face different problems. For instance, all possible triple-frequency geometry-free carrier phase combinations that retain the integer nature of the ambiguities are studied in Cocard et al. (2008). The ambiguity resolution problem in this new context is analyzed in several works (Teunissen and Odijk 2003; Ji et al. 2007; Feng 2008; Feng and Rizos 2009; Li et al. 2010). The ionosphere modeling in studied by optimal ionosphere-free combinations for triple-frequency GPS observations in Odijk (2003). Finally, some methods have developed to deal with cycle slips from a multifrequency point of view. For example, Zhen et al. (2008) presented a real-time algorithm to determine cycle slips for triple-frequency GNSS data which can be applied in PPP data processing. Dai et al. (2009) developed a real-time algorithm to detect, determine and validate cycle slips for triple-frequency GPS applying two geometry-free phase combinations along with LAMBDA technique to search for cycle slip candidates.

We present a new method for cycle slip analysis based on linear combinations of triple-frequency undifferenced GNSS observations. Section 2 describes the multifrequency GNSS observation equations. In Sect. 3, the approaches for detection of cycle slip epochs and the determination of slip amplitudes are illustrated. Section 4 describes numerical experiments to assess the performance of the method. The data consists of simulated and real 1-second triple-frequency GPS data that seem to be free of strong multipath variations since the pseudorange code noises are close to 15 cm for the first and second carrier and 10 cm for third one for all observation session. The procedure could be also used with Galileo observations; in this case, the approach should be much easier due to the lower nominal noise level of code observations, as outlined at the end of this study.

## Multifrequency GNSS observation equations

Basic GPS (L) and Galileo (E) signal frequencies

Carrier | Frequency (MHz) | Wavelength (m) |
---|---|---|

L1 | 1,575.42 | 0.190 |

L2 | 1,227.60 | 0.244 |

L5 | 1,176.45 | 0.254 |

E2-L1-E1 | 1,575.42 | 0.190 |

E5b | 1,207.14 | 0.248 |

E5a | 1,176.45 | 0.254 |

*t*is the following:

*i*= 1,2,3. The symbols

*P*

_{i}and

*L*

_{i}are the code pseudoranges and the carrier phase observations expressed in distance units at frequency

*f*

_{i}, respectively; ε

_{P}and ε

_{L}are the corresponding measurement noise, including the multipath effect. All parameters in the above equations are generally biased. The term

*D*is the non-dispersive delay. It is interpreted as the distance traveled by the signal and is biased by clock terms and the tropospheric delay. The ionospheric group delay

*I*at frequency

*f*

_{1}is explicitly accounted for in (1) and it is multiplied by

*k*

_{1i}= (

*f*

_{1}/

*f*

_{i})

^{2}to get the corresponding delay at frequency

*f*

_{i}. It is a dispersive delay biased by the Differential Code Biases (DCB). The term

*B*

_{i}is formed by joining the non-zero initial phase and the integer carrier phase ambiguity

*N*

_{i}, i.e., the initial carrier phase ambiguity at frequency

*f*

_{i}is biased by initialization constants and generally is not an integer. Furthermore, both equations (1) are known to be biased by the travel time of the signal through the circuitries of the receiver and satellite.

### The proposed method

The problem of cycle slip detection and correction can be reduced to finding discontinuities in a noisy time series of a regularly sampled smooth signal. The processed time series are here linear combinations of phase observations, denoted as *L*_{1}, *L*_{2}, *L*_{3} and expressed in range units, and code pseudorange observations denoted as *P*_{1}, *P*_{2}, *P*_{3}. The GPS observations are assumed to have the realistic noise of \( \sigma_{{L_{1} }} = \sigma_{{L_{2} }} = \sigma_{{L_{3} }} = 0.002\;{\text{m}} \), \( \sigma_{{P_{1} }} = \sigma_{{P_{2} }} = 0.15\,{\text{m}} \) and \( \sigma_{{P_{3} }} = 0.10\,{\text{m}} \). The respective carrier wavelengths are λ_{1} ≈ 19.0 cm, λ_{2} ≈ 24.4 cm and λ_{3} ≈ 25.5 cm. The integer cycle slip amplitudes are denoted as δ*N*_{1}, δ*N*_{2}, δ*N*_{3}.

### Epoch detection procedure

The proposed method is based on five linear combinations of GNSS code and phase observations used in three cascading steps. In the first one, the phase and code observations are combined to detect “big” jumps, i.e., with amplitudes much higher than the data combination noise. After that GNSS phase observations are used to detect “small” cycle slips. Finally, a further linear combination of phase observations is considered to look for the remaining undetected discontinuities.

#### Big jumps

*a*

_{ii}= 1,

*b*

_{i1}=

*b*

_{i2}= −4/17 and

*b*

_{i3}= −9/17 for all

*i*= 1,2,3. Such coefficients are derived by imposing the following conditions:

*Y*

_{i}, denoted by \( \sigma_{{Y_{i} }} \), is at the 7 cm level. The condition

*a*

_{ii}= 1 acts as a normalization condition, avoiding the amplification of unmodeled bias terms (Teunissen and Bakker 2009). Substituting (1) into (2), the combinations

*Y*

_{1},

*Y*

_{2},

*Y*

_{3}can be expressed as the sum of the initial ambiguities, the ionospheric effect

*I*multiplied by constants

*M*

_{i}and random noise. The constants

*M*

_{i}are given by

*i*= 1,2,3, respectively. The main advantage of the combinations (2) is that simultaneous cycle slips on different carriers are not mixed and therefore, a “big” jump in one carrier cannot be compensated by jumps on the others.

The cycle slip detection test is based on the computation of the time differences Δ*Y*_{i} between two consecutive epochs of *Y*_{i}. In particular, Δ*Y*_{i} is considered a random variable with non-constant mean δ*N*_{i}λ_{i}, which is different from zero in case of a cycle slip, and with variance depending on the noise STD \( \sigma_{{Y_{i} }} \) and on the ionospheric variation between two consecutive epochs.

*I*. It has been computed from the function (

*L*

_{1 }−

*L*

_{2})/(

*k*

_{12 }− 1). This figure is based on 1-second dual-frequency GPS data obtained from a GPS station located at Como (Italy). The receiver and antenna placed at Como are TPS ODYSSEY-E and TPSCR3_GGD CONE, respectively. GPS data correspond to the day December 2, 2007. The maximum value is at 1 cm level. The corresponding histogram is shown in Fig. 2, indicating a normal distribution with mean zero and STD of about 3 mm/s. These values prove the low impact of the ionospheric effect in differences in time of

*Y*

_{i}under general atmospheric conditions.

*I*as a random variable with zero mean and STD \( \sigma_{\Updelta I} = 3\,{\text{mm}} \) and is independent from the measurement noise, the variance of Δ

*Y*

_{i}is

It turns out that \( \sigma_{{\Updelta Y_{i} }}^{2} \cong 10\,{\text{cm}} \) for *i* = 1,2,3.

*Y*

_{i}is normally distributed around its mean value δ

*N*

_{i}λ

_{i}, the hypothesis

*H*

_{0}is not rejected, this does not mean that there are no cycle slips. A alternative hypothesis test is setup by computing, for different integer values δ

*N*

_{i}> 0, the probability of missed detection as

*H*

_{0}is incorrectly not rejected when actually \( \delta N_{i} \ne 0 \) (Fig. 3).

*Y*

_{1},

*Y*

_{2},

*Y*

_{3}for δ

*N*

_{1}, δ

*N*

_{2}, δ

*N*

_{3}varying from 1 to 5 (higher slips are surely detected) is shown in Fig. 4. It turns out that only the cycle slips represented by dots in Fig. 4 have a probability β < 0.01% that we consider acceptable; this limit value of β is computed from (8) for

*i*= 2 and δ

*N*

_{2}= 3. The other cycle slips, corresponding to the cases \( \left| {\delta N_{1} } \right| = 1,2,3,\left| {\delta N_{2} } \right| = 1,2 \) and \( \left| {\delta N_{3} } \right| = 1,2 \), are called from here on “small jumps” and are represented by stars in Fig. 4. They are considered non-detectable by the combinations (2) and therefore have to be submitted to a further testing procedure.

#### Small jumps

*a*

_{41}= 14/65,

*a*

_{42}= −79/65 and

*a*

_{43}= 1, derived from the following conditions:

The resulting noise STD \( \sigma_{{Y_{4} }} \) is at the 3 mm level, much lower than the one of combinations (2).

*Y*

_{4}is an ionosphere-free combination and assuming again that the measurement noise is independent in time, the variance of the time variation Δ

*Y*

_{4}can be simply computed as:

*Y*

_{4}is normally distributed, the hypothesis

*Y*

_{4}for all the possible combinations of three cycle slips that are not yet detectable are shown in Fig. 5. The number of slip combinations (δ

*N*

_{1}, δ

*N*

_{2}, δ

*N*

_{3}) under test, for \( \left| {\delta N_{1} } \right| \le 3,\left| {\delta N_{2} } \right| \le 2,\left| {\delta N_{3} } \right| \le 2 \) and excluding the no-slip case (0, 0, 0), is equal to 7×5×5−1 = 174. The only slip combinations that are not seen by Δ

*Y*

_{4}are (−2, −2, −2), (−1, −1, −1), (+1,+1,+1) and (+2, +2, +2), i.e., simultaneous cycle slips with the same amplitude in all three carriers (δ

*N*

_{1 }= δ

*N*

_{2}= δ

*N*

_{3}=−2, −1,1,2). Note that β ≈ 0 for all other detected cycle slips.

#### Particular cases

*N*

_{1}= δ

*N*

_{2}= δ

*N*

_{3}= δ

*N*), a tailored linear combination of phase observations is finally introduced:

The resulting noise STD \( \sigma_{{Y_{5} }} \) is at the 2.5 mm level. Therefore, since a cycle slip equal to (+1, +1, +1) produces a jump of 8 cm, all cycle slips with the same amplitude in the three carriers should be detected if the ionosphere variation between two consecutive epochs is less than 7 cm, which is a very high value under general atmospheric conditions.

### Amplitude determination procedure

*i*= 1, 2, 3.

(−2, −2) that could be confused with (+2, +1)

(−2, −1) that could be confused with (+2, +2)

The same uncertain cases can be found for \( (\delta n_{1} ,\delta n_{3} ) \) as a consequence of the close values of \( \lambda_{2} \) and \( \lambda_{3} \).

(−2, −2, −2) versus (+2, +2, +1)

(−2, −1, −2) versus (+2, +2, +1)

(+2, +1, +2) versus (−2, −2, −1)

(+2, +2, +2) versus (−2, −1, −1)

This means that \( Y_{6} \) is a geometry-free combination that maximizes the ratio of the squared difference between two uncertain cycle slips and the variance of the data time variations. The resulting noise STD \( \sigma_{{Y_{6} }} \) is close to 1 cm.

### Application to the case of Galileo

The expected nominal noise level of the Galileo code pseudorange observations is lower than that for the modernized GPS. In particular, in case of Galileo, we are expected to have \( \sigma_{{P_{1} }} = 0.07\,{\text{m}} \) and \( \sigma_{{P_{2} }} = \sigma_{{P_{3} }} = 0.04\,{\text{m}} \) (O’Keefe et al. 2005, B. Arbesser-Rastburg, personal communication).

As a consequence of the STD of these pseudorange observations, the noise STD of the combinations \( Y_{1} ,Y_{2} ,Y_{3} \) becomes \( \sigma_{{Y_{1} }} = 2.6\,{\text{cm}} \). This means that, in principle, the presence and the amplitude of cycle slips on \( L_{2} \) and \( L_{3} \) can be directly detected by using *Y*_{2} and \( Y_{3} \), respectively. In the case of \( L_{1} \), we need also the combination \( Y_{4} \) to identify slips of one cycle only; since the amplitude estimated by \( Y_{1} \) has an uncertainty of ±1, we can determine the right number of integer cycles slipped on \( L_{1} \) with the support of \( L_{12} \) or \( L_{13} \). It is clear that the procedure is much easier in case of Galileo, provided that this nominal accuracy is confirmed with real data in the future.

## Numerical tests

The capability of the method to detect and repair cycle slips has been tested in two different situations: simulated data with cycle slips and real triple-frequency GPS data with artificial cycle slips.

### Simulated data

*Y*

_{1},

*Y*

_{2}and

*Y*

_{3}is shown in Fig. 8. It can be seen that the discontinuity is quite embedded into these linear combinations and cannot be detected by time differentiation (Fig. 9). On the other hand, the jump is clearly revealed in

*Y*

_{4}thanks to the improved signal-to-noise ratio (Fig. 10). Figure 11 shows the values of differencing

*Y*

_{4}in time. The linear combination

*Y*

_{5}is displayed in Fig. 12 for the sake of completeness, but it is not used in the cycle slip epoch detection.

Δ

*Y*_{1}(τ) = 30.3 cm > 41.3 cmΔ

*Y*_{2}(τ) = 4.4 cm > 41.4 cmΔ

*Y*_{3}(τ) = 4.3 cm > 41.4 cmΔ

*Y*_{4}(τ) = 5.5 cm > 1.8 cmΔ

*Y*_{5}(τ) = 26.0 cm > 1.7 cm

This means that the jump is detected by \( Y_{4} \) at the correct epoch \( \tau = 1,250 \).

\( \min \left[ {\phi_{12} (\tau )} \right] = 1.4\;{\text{cm}} \) for \( (\delta n_{1} ,\delta n_{2} ) = ( + 2, + 2) \)

\( \min \left[ {\phi_{13} (\tau )} \right] = 1.3\;{\text{cm}} \) for \( (\delta n_{1} ,\delta n_{3} ) = ( + 2, + 2) \)

\( \phi_{6} (\tau ) = 5.4\;{\text{cm}} \) for \( (\delta n_{1} ,\,\delta n_{2} ,\,\delta n_{3} ) = ( + 2, + 2, + 2) \)

\( \phi_{6} (\tau ) = 3.2\;{\text{cm}} \) for \( (\delta n_{1} ,\,\delta n_{2} ,\,\delta n_{3} ) = ( - 2, - 1, - 1) \)

The method has been tested on 1,000 cases by adding cycles slips at random positions and with random amplitudes. All the cases have been correctly detected.

### Real triple-frequency GPS data

Artificial cycle slips in real GPS data

True epoch | True amplitude | Estimated epoch | Jump class | Difference in time (m) | Estimated amplitude |
---|---|---|---|---|---|

57 | (1, 1, 1) | 57 | Particular case | Δ | (1, 1, 1) |

152 | (2, 2, 2) | 152 | Particular case | Δ | (2, 2, 2) |

332 | (1, 0, 1) | 332 | Small | Δ | (1, 0, 1) |

392 | (0, 0, 1) | 392 | Small | Δ | (0,0,1) |

408 | (3, 3, 3) | 408 | Big | Δ | (3, 3, 3) |

Δ | |||||

Δ | |||||

408 | (3, 3, 2) | 408 | Big | Δ | (3, 3, 2) |

Δ | |||||

Δ | |||||

408 | (3, 2, 2) | 408 | Small | Δ | (3, 2, 2) |

511 | (2, 1, 1) | 511 | Small | Δ | (2, 1, 1) |

511 | (1, −1, 0) | 511 | Small | Δ | (1, −1, 0) |

515 | (5, 5, 5) | 515 | Big | Δ | (5, 5, 5) |

Δ | |||||

Δ | |||||

517 | (3, 2, 2) | 517 | Big | Δ | (3, 2, 2) |

Δ | |||||

Δ | |||||

517 | (1, 3, 2) | 517 | Big | Δ | (1, 3, 2) |

Δ | |||||

Δ | |||||

517 | (−1, 0, 0) | 517 | Small | Δ | (−1, 0, 0) |

517 | (−2, −1, −1) | 517 | Small | Δ | (−2, −1, −1) |

517 | (0, −1, −1) | 517 | Small | Δ | (0, −1, −1) |

We would like to mention that 30-second triple-frequency GPS data belonging to the satellite PRN25 and acquired from station UNB3 (University of New Brunswick, Canada) are also available in the above cited ftp-server. However, this data set has not been analyzed because it contains strong variations of pseudorange noise (Bakker et al. 2011) which are not expected from future modernized GPS signals.

## Conclusions

Tailored linear combinations of GNSS triple-frequency observations are defined to solve cycle slip detection and correction in undifferenced GNSS observations. The method can be applied in real time because it is computationally easy and requires only comparisons between values of two consecutive epochs. The method has been tested on modernized GPS simulated data, showing that all combinations of simultaneous cycle slips in the three carriers can be detected and repaired under the considered hypothesis. Moreover, in the rare event that a false alarm happens, i.e., a cycle slip is detected but is not present in the data, a zero amplitude is always correctly estimated. Furthermore, the method has been tested on 1-second real triple-frequency GPS data with levels of pseudorange noise close to 15 cm for the first and second carrier and close to 10 cm for the third one. All artificial jumps added to real data have been correctly detected and estimated. As for the Galileo satellites, the nominal noise level of the code observations is expected to be lower than that assumed in our method. Consequently, the procedure will be even easier, requiring only a smaller number of combinations.

As to future work, the method will be checked with other programs that deal with the cycle slip problem if available. Similar linear observation combinations could be also used to deal with the problem of integer ambiguity resolution.

## Acknowledgments

This study has been funded by the Spanish Government through the Research Project entitled ``Nuevos algoritmos para el futuro sistema GNSS multifrecuencia’’ with reference AYA2008-02948.