Introduction

A cycle slip generally occurs due to the failure of phase tracking of the GNSS receiver under conditions of signal interruption, low signal-to-noise ratio or high receiver dynamics. There are many methods to detect and repair cycle slips in traditional applications of double-differenced (DD) navigation and positioning, such as phase differencing over time, Doppler integration, phase–phase ionospheric residuals and phase–code comparisons (Xu 2007). All these methods have limitations: The phase–phase ionospheric residual method is insensitive to special cycle slips and unable to check on which frequency the cycle slips occur; phase–code comparison methods do not succeed in detecting some of the small cycle slips. However, since precise point positioning (PPP) has become increasingly popular during the past decade (Zumberge et al. 1997; Kouba and Héroux 2001; Ge et al. 2008; Geng and Bock 2014), cycle slip fixing should be attempted for a single receiver. Considering the requirement of real-time navigation services, a method that can effectively detect and repair single-receiver undifferenced (UD) cycle slip in real time is desired. The TurboEdit approach may have been the first one developed for UD cycle slip detection (Blewitt 1990), and Bayesian detection is also applied to UD cases (Lacy et al. 2008). However, the TurboEdit method and Bayesian detection require several minutes of continuous phase data before and after a cycle slip in order to satisfy the criteria for phase connection; thus, it is not suitable for real-time PPP (Zhang and Li 2012). The integration method of GPS and INS data is also used for UD cycle slip detection (Lee et al. 2003), but the cost of an INS system significantly constrains its feasibility in many applications. Liu (2011) and Cai et al. (2013) specially study the UD cycle slip detection and correction under high ionospheric activity condition but without considering the triple frequency. Dai et al. (2009) studied a method for instantaneous triple-frequency GPS cycle slip detection and correction and used the classical LAMBDA technique to calculate the cycle. However, since only two combinations were used to detect cycle slips, there still remain some cycle slips undetectable. Teunissen and de Bakker (2013) researched multi-frequency GNSS models for single-receiver multi-frequency outliers, slips and ionospheric disturbances and derived uniformly most powerful invariant test statistics for spikes and slips. Their detection capabilities are described by means of minimal detectable biases (MDBs). More recent studies on triple-frequency carrier phase cycle slip detection can be found in Wu et al. (2010), Xu and Kou (2011) and de Lacy et al. (2011).

We present a cycle slip detection and determination method for UD, triple-frequency GNSS data applicable to real-time processing. We combine the methods of geometry-free phase and geometry-free pseudorange minus phase linear combinations to process the triple-frequency cycle slips. At first, we select geometry-free phase combinations that are characterized by lower noise and low ionospheric impact. Then, we use two geometry-free phase combinations to detect the cycle slip simultaneously in order to decrease the number of insensitive cycle slip groups. For detecting and fixing any cycle slip, a geometry-free pseudorange minus phase linear combination is added and a search algorithm is used to search cycle slip candidates. Finally, the least squares minimum principle is used to validate the correctness of the cycle slip detection and correction.

In the following, we will present first the implementation of cycle slip detection and correction. Then, BDS triple-frequency data with simulated cycle slips are used to test the performance of the new algorithm.

Cycle slip detection using triple-frequency geometry-free phase combinations

The carrier phase and code observations at epoch \(t_{0}\) can be expressed as:

$$P_{i} (t_{0} ) = \rho (t_{0} ) + t_{\text{r}} (t_{0} ) - t^{\text{s}} (t_{0} ) + b_{{{\text{r}},i}}^{\text{s}} (t_{0} ) + T(t_{0} ) + \beta_{i} I^{{\prime }} (t_{0} ) + \varepsilon_{{{\text{p}}i}} (t_{0} )$$
(1)
$$\lambda_{i} \varphi_{i} (t_{0} ) = \rho (t_{0} ) + t_{\text{r}} (t_{0} ) - t^{\text{s}} (t_{0} ) + B_{{{\text{r}},i}}^{\text{r}} (t_{0} ) + T(t_{0} ) + \lambda_{i} (N_{i} (t_{0} ) - \eta_{i} I(t_{0} )) + \varepsilon_{\varphi i} (t_{0} )$$
(2)

with

$$\eta_{i} = \lambda_{i} /\lambda_{1}^{2}$$
(3)
$$\beta_{i} = f_{1}^{2} /f_{i}^{2}$$
(4)

where λ, φ and P refer to carrier phase wavelength, carrier phase observation and code observation, respectively. The symbols ρ, \(t_{\text{r}}\), \(t^{\text{s}}\) and T denote the topocentric satellite distance, receiver clock error, satellite clock error and troposphere delay, respectively, and \(b_{{{\text{r}},i}}^{\text{s}}\) and \(B_{{{\text{r}},i}}^{\text{r}}\) denote the code and phase hardware delays, respectively. The ionospheric delay on the B1 signal scaled to cycles and meters is denoted by I and \(I^{{\prime }}\), respectively, N is the integer ambiguity, \(\eta_{i}\) and \(\beta_{i}\) are amplification factors, and \(\varepsilon_{\varphi }\) and \(\varepsilon_{\text{p}}\) denote the respective phase and code noise, respectively. The subscript i (i = 1, 2, 3) denotes the signal, and f is the signal frequency.

Based on the triple-frequency data combination theory (Cocard et al. 2008; Li et al. 2014), assuming that the scalars α, β and γ satisfy the condition \(\alpha + \beta + \gamma = 0\), the triple-frequency geometry-free carrier phase combination observation equation at epoch \(t_{0}\) can be expressed as:

$$\begin{aligned} &\alpha \lambda_{1} \varphi_{1} (t_{0} ) + \beta \lambda_{2} \varphi_{2} (t_{0} ) + \gamma \lambda_{3} \varphi_{3} (t_{0} ) = - \eta I(t_{0} ) + \alpha \lambda_{1} N_{1} (t_{0} ) \\ &\quad + \beta \lambda_{2} N_{2} (t_{0} ) + \gamma \lambda_{3} N_{3} (t_{0} ) + B(t_{0} ) + \varepsilon (t_{0} ) \\ \end{aligned}$$
(5)

with

$$\eta = \alpha \lambda_{1} + \beta \lambda_{2} f_{1} /f_{2} + \gamma \lambda_{3} f_{1} /f_{3}$$
(6)
$$B(t_{0} ) = \alpha b_{{{\text{r}},1}}^{\text{s}} (t_{0} ) + \beta b_{{{\text{r}},2}}^{\text{s}} (t_{0} ) + rb_{{{\text{r}},3}}^{\text{s}} (t_{0} )$$
(7)
$$\varepsilon (t_{0} ) = \alpha \lambda_{1} \varepsilon_{1} (t_{0} ) + \beta \lambda_{2} \varepsilon_{2} (t_{0} ) + r\lambda_{3} \varepsilon_{3} (t_{0} )$$
(8)

where η denotes amplification factor of the combination, B is the hardware delays of the combination observation and ε is the combination error.

The condition \(\alpha + \beta + \gamma = 0\) cancels the geometry term and the other non-dispersive terms, such as the tropospheric delay, satellite orbit bias and clock bias, as well as receiver clock bias. The combination observation is only affected by the ionospheric delay residuals, equipment delays and noises.

Assuming that a cycle slip group (\(\Delta N_{1}\), \(\Delta N_{2}\), \(\Delta N_{3}\)), where \(\Delta N_{i}\) denotes a cycle slip value on the \(\varphi_{i}\) signal, occurs at next epoch \(t_{1}\), we have:

$$\begin{aligned} &\alpha \lambda_{1} \varphi_{1} (t_{1} ) + \beta \lambda_{2} \varphi_{2} (t_{1} ) + \gamma \lambda_{3} \varphi_{3} (t_{1} ) = - \eta I(t_{1} ) + \alpha \lambda_{1} (N_{1} (t_{1} ) + \Delta N_{1} ) \\ &\quad + \beta \lambda_{2} (N_{2} (t_{1} ) + \Delta N_{2} ) + \gamma \lambda_{3} (N_{3} (t_{1} ) + \Delta N_{3} ) + B(t_{1} ) + \varepsilon (t_{1} ) \\ \end{aligned}$$
(9)

Differencing (5) and (9), the between-epoch observation equation is obtained as:

$$\alpha \lambda_{1} \Delta \varphi_{1} + \beta \lambda_{2} \Delta \varphi_{2} + \gamma \lambda_{3} \Delta \varphi_{3} = - \eta \Delta I + \alpha \lambda_{1} \Delta N_{1} + \beta \lambda_{2} \Delta N_{2} + \gamma \lambda_{3} \Delta N_{3} + \Delta B + \Delta \varepsilon$$
(10)

where the operator \(\Delta\) represents differencing between epochs.

Since the equipment delays usually vary slowly with time, the equipment delays of the above observation combination are small enough to be omitted compared with the observation noise. Because (10) is only affected by the ionospheric delay \(- \eta \Delta I\) and noise \(\Delta \epsilon\), this combination can be used to detect cycle slip in kinematic applications using UD phase observations. If we further assume that \(\epsilon_{1} = \epsilon_{2} = \epsilon_{3}\) and that \(\Delta I\) is constant when the ionosphere is quiet, the combined ionospheric error and combined noise depend on the scalars α, β and γ. A good detection combination should reduce the ionospheric error and noise as much as possible; hence, the scalars should be selected such that \(\alpha \lambda_{1} + \beta \lambda_{2} f_{1} /f_{2} + \gamma \lambda_{3} f_{1} /f_{3} \to 0\) and \((\alpha \lambda_{1} )^{2} + (\beta \lambda_{2} )^{2} + (\gamma \lambda_{3} )^{2} \to 0\). When the ionosphere is quiet, the change in ionospheric delay between a satellite and a receiver is mainly a function of the satellite elevation angles, which changes slowly (Banville and Langley 2013). In this case, the \(\Delta I\) can be ignored.

Assuming that the carrier phase signals have the same standard deviation σ, the standard deviation \(\sigma_{(\alpha ,\beta ,\gamma )}\) of (10) is obtained as:

$$\sigma_{(\alpha ,\beta ,\gamma )} = \sqrt 2 \sqrt {\left( {\alpha \lambda_{1} } \right)^{2} + \left( {\beta \lambda_{2} } \right)^{2} + \left( {\gamma \lambda_{3} } \right)^{2} } \sigma$$
(11)

where \(\sqrt 2\) results from differencing the epochs. Since \(\sigma_{(\alpha ,\beta ,\gamma )}\) is generally supposed to be a normally distributed error, we can use the following inequality to judge whether a cycle slip arises at the current epoch:

$$\left| {\alpha \lambda_{1} \Delta \phi_{1} + \beta \lambda_{2} \Delta \phi_{2} + \gamma \lambda_{3} \Delta \phi_{3} } \right| \ge \kappa \sigma_{(\alpha ,\beta ,\gamma )}$$
(12)

where \(\kappa\) is a coefficient. Usually, we can take \(\kappa = 3\) (99.7 % confidence level) or 4 (99.9 % confidence level) as the threshold coefficient of cycle slip. If the condition (12) is satisfied, one concludes that a certain cycle slip group has occurred. If the condition of (12) is not satisfied, we cannot simply draw a conclusion that the carrier phase data are free of cycle slips. There are certain special cycle slip groups which cannot be readily detected using (12), similar to the case of the dual-frequency ionospheric residual method. We also define cycle slip groups whose slips are insensitive to (12), similarly as those in Dai et al. (2009).

Selection of optimal geometry-free phase combinations

According to the above discussion, an ideal geometry-free phase detection combination should satisfy these conditions:

$$\begin{aligned} \alpha + \beta + \gamma = 0 \\ \,\hbox{min} ((\alpha \lambda_{1} )^{2} + (\beta \lambda_{2} )^{2} + (\gamma \lambda_{3} )^{2} ) \\ \quad\hbox{min} (\alpha \lambda_{1} + \beta \lambda_{2} f_{1} /f_{2} + \gamma \lambda_{3} f_{1} /f_{3} ) \\ \end{aligned}$$
(13)

It should also be emphasized that the larger the scalars α, β and γ, the larger the value \(\kappa \sigma_{(\alpha ,\beta ,\gamma )}\). If \(\kappa \sigma_{(\alpha ,\beta ,\gamma )}\) is too large for some combinations, certainly the small cycle slips cannot be detected by such combinations. Therefore, the scalar values are searched within the range of −4 to 4 in order to reduce the noise. We assume the \(\sigma = 0.01\) cycle and \(\kappa = 4\). The optimal BDS geometry-free phase combinations constructed and selected are given in Table 1. The frequency values of three carrier signals of BDS are: B1 1561.098 MHz, B2 1207.14 MHz and B3 1268.52 MHz. The number of the insensitive cycle slip groups of every combination is counted within the range of 0–10 cycles and shown as the fifth column ‘\({<}4\sigma_{(\alpha ,\beta ,\gamma )}\)’ in Table 1.

Table 1 BDS optimal triple-frequency geometry-free phase combinations

Table 1 shows that the noises of all the combinations are less than 0.02 cycles, which is much smaller than 1 cycle. Therefore, the smallest cycle slip of size 1 can be detected by a respective combination given in the table. The combinations 1, 2 and 3 are the dual-frequency ionospheric residual combinations. Their noises are smaller than those other triple-frequency combinations, but they can only detect the cycle slip on two signals. Since they cannot detect the cycle slip that occurs only on the third signal, the number of the insensitive cycle slip groups of the combinations 1, 2 and 3 is larger than the number of other combinations. In this case, the inequality \(\alpha \beta \gamma \ne 0\) should be enforced to get a triple-frequency cycle slip detection combination in order to reduce the number of the insensitive cycle slip groups. Combination 4, which is the least insensitive cycle slip group, is the best one. Since the noise of combinations 5 and 6 is larger than other combinations, while the ionospheric delays are smaller than other combinations, these can be used for cycle slip detection in ionospheric active cases. We can find that each combination in the table has some insensitive cycle slip groups, but different combinations have different insensitive cycle slip groups. Therefore, two combinations are adopted to detect cycle slip simultaneously in order to reduce the insensitive cycle slip groups.Any two combinations in Table 1 are selected to yield the joint combinations, which are given in Table 2. The numbers of the most insensitive cycle slip groups of the combinations within the range (0,0,0) to (10,10,10) and (0,0,0) to (100,100,100) are also counted and analyzed under the condition (6), respectively.

Table 2 Joint combinations for cycle slip detection and number of insensitive groups

Table 2 shows that all the smaller cycle slips within the range (0,0,0) to (10,10,10) cycles can be detected by most of the joint combinations, but there are still several insensitive cycle slip groups undetectable within the range (0,0,0) to (100,100,100) cycles. Since there are larger noises in the combinations [1, 3, −4], [1, 2, −3] and [2, 1, −3], these contain more insensitive cycle slip groups. However, the joint combinations highlighted in bold have only one insensitive cycle slip group within the range (0,0,0) to (100,100,100) cycles, so it is possible to say that nearly all cycle slips can be detected. Since any three of the triple-frequency geometry-free phase combinations are linear dependent, there always remain some insensitive cycle slip groups no matter how many geometry-free phase combinations are used to detect the cycle slip. To solve this problem, a triple-frequency geometry-free combination which is linearly independent with geometry-free phase combinations must be found. According to the above analysis, a pseudorange minus phase linear combination is chosen to detect the cycle slip, which is similar to the HMW (Hatch 1983; Melbourne 1985; Wübbena 1985) combination of TurboEdit approach. Moreover, most of the insensitive cycle slip groups are generally large enough to be easily detected by the phase–code comparison method and other methods.

Cycle slip detection using pseudorange minus phase linear combination

The triple-frequency code and phase combination observation equations can be expressed as:

$$P_{lmn} = lP_{1} + mP_{2} + nP_{3} = \rho + \beta_{lmn} I^{\prime } + T + (c_{\rm s} - c_{\rm r} ) + b_{lmn} + \varepsilon_{lmn}$$
(14)
$$\lambda_{ijk} \varphi_{ijk} = \lambda_{ijk} (i\varphi_{1} + j\varphi_{2} + k\varphi_{3} ) = \rho + T + (c_{\rm s} - c_{\rm r} ) + \lambda_{ijk} (N_{ijk} - \eta_{ijk} I) + B_{ijk} + \varepsilon_{ijk}$$
(15)

with

$$b_{lmn} = lb_{{\rm r},1}^{s} + mb_{{\rm r},2}^{s} + nb_{{\rm r},3}^{s}$$
(16)
$$\varepsilon_{lmn} = l\varepsilon_{{{\text{p}}1}} + m\varepsilon_{{{\text{p}}2}} + n\varepsilon_{{{\text{p}}3}}$$
(17)
$$B_{lmn} = iB_{{{\text{r}},1}}^{\text{s}} + jB_{{{\text{r}},2}}^{\text{s}} + kB_{{{\text{r}},3}}^{\text{s}}$$
(18)
$$\varepsilon_{ijk} = i\varepsilon_{\varphi 1} + j\varepsilon_{\varphi 2} + k\varepsilon_{\varphi 3}$$
(19)

where m, n and l are the code combination scalars (\(l,m,n \in \varvec{R}\), \(l + n + m = 1\)); i, j and k are the phase combination scalars (\(i,j,k \in \varvec{N}\)).

Differencing (14) and (15), the observation equation of the pseudorange minus phase linear combination is obtained as:

$$N_{ijk} = \varphi_{ijk} - \frac{{P_{lmn} }}{{\lambda_{ijk} }} + \zeta I + \varepsilon^{\prime}$$
(20)

where \(N_{ijk}\) is the combination integer ambiguity, \(\zeta\) is the amplification factors and \(\varepsilon^{{\prime }}\) is the noise. Differencing (20) over the epoch, we have:

$$\Delta N_{ijk} = N_{ijk} (t_{1} ) - N_{ijk} (t_{0} ) = \Delta \phi_{ijk} - \frac{{\Delta P_{lmn} }}{{\lambda_{ijk} }} + \zeta \Delta I + \Delta \epsilon^{{\prime }}$$
(21)

Since the equipment delays usually vary slowly with time, the presumed stability of the equipment delay means they will cancel in the time difference. If the wavelength \(\lambda_{ijk}\) is long enough, Eq. (20) can be used to detect the cycle slip. Assuming that \(\sigma_{\text{p}}\) is the code noise and that \(\sigma_{\text{p1}} = \sigma_{{{\text{p}}2}} = \sigma_{{{\text{p}}3}} = \sigma_{\text{p}}\), the noise \(\sigma_{{\Delta N_{ijk} }}\) of (21) can be obtained as follows:

$$\sigma_{{\Delta N_{ijk} }} = \sqrt 2 \sqrt {(i^{2} + j^{2} + k^{2} )\sigma_{\phi }^{2} + (l^{2} + m^{2} + n^{2} )\sigma_{p}^{2} /\lambda_{ijk}^{2} }$$
(22)

where \(\sqrt 2\) results from differencing the epochs. We also define \(4\sigma_{{\Delta N_{ijk} }}\) to justify the occurrence of the cycle slips. The smaller the noise \(\sigma_{{\Delta N_{ijk} }}\), the higher the detection sensitivity. To minimize \(\sigma_{{\Delta N_{ijk} }}\), the factor \(l^{2} + m^{2} + n^{2}\) should be decreased, while \(\lambda_{ijk}^{{}}\) should be increased. In addition, when selecting the scalars i, j and k, the pseudorange minus phase linear combination must be linearly independent with the other two geometry-free phase combinations. Therefore, all cycle slips can be detected by using the three combinations. Some optimal combinations are also selected and given in Table 3. Assuming that the code noise is 0.3 m, and because of the relation \(l^{2} + m^{2} + n^{2} \ge 3lmn\), since \(m + n + l = 1\) as given in (14), so we set \(m = n = l = 1/3\) to minimize the code noise.

Table 3 BDS pseudorange minus phase linear combinations

Table 3 shows that all the three-frequency pseudorange minus phase linear combinations have an extra-wide lane and all of their noises are smaller than 0.2 cycle, which can be used to detect the small cycle slip.

A new cycle slip correction method

After the cycle slip detection, the size of the cycle slips should be calculated. First, the combination observation \(\varvec{L}^{{\prime }}\) can be computed as follows:

$$\varvec{L}_{3 \times 1}^{{\prime }} = \varvec{B}_{3 \times 6} \varvec{L}_{6 \times 1}$$
(23)

with

$$\varvec{B} = \left[ {\begin{array}{*{20}c} {\alpha_{1} \lambda_{1} } & {\beta_{1} \lambda_{2} } & {\gamma_{1} \lambda_{3} } & 0 & 0 & 0 \\ {\alpha_{2} \lambda_{1} } & {\beta_{2} \lambda_{2} } & {\gamma_{2} \lambda_{3} } & 0 & 0 & 0 \\ i & j & k & {\frac{ - 1}{{l\lambda_{ijk} }}} & {\frac{ - 1}{{m\lambda_{ijk} }}} & {\frac{ - 1}{{n\lambda_{ijk} }}} \\ \end{array} } \right]$$
(24)
$$\varvec{L} = [\begin{array}{*{20}c} {l_{{\varphi_{1} }} } & {l_{{\varphi_{2} }} } & {l_{{\varphi_{3} }} } & {l_{{p_{1} }} } & {l_{{p_{2} }} } & {l_{{p_{3} }} } \\ \end{array} ]^{\text{T}}$$
(25)

where \(l_{{\varphi_{i} }}\) and \(l_{{p_{i} }}\) denote the raw code and carrier measurements, respectively, (\(\alpha_{1}\), \(\beta_{1}\), \(\gamma_{1}\)) and (\(\alpha_{2}\), \(\beta_{2}\), \(\gamma_{2}\)) are the scalars of two geometry-free phase combinations and (i, j, k) and (\(\frac{ - 1}{{l\lambda_{ijk} }},\frac{ - 1}{{m\lambda_{ijk} }},\frac{ - 1}{{n\lambda_{ijk} }}\)) are the phase combination scalars and code combination scalars of pseudorange minus phase linear combination, respectively.

The linear equations for cycle slip determination are constructed as:

$$\varvec{AX} = \varvec{L}^{{\prime }}$$
(26)

with

$$\varvec{A} = \left[ {\begin{array}{*{20}c} {\alpha_{1} \lambda_{1} } & {\beta_{1} \lambda_{2} } & {\gamma_{1} \lambda_{3} } \\ {\alpha_{2} \lambda_{1} } & {\beta_{2} \lambda_{2} } & {\gamma_{2} \lambda_{3} } \\ i & j & k \\ \end{array} } \right]$$
(27)
$$\varvec{X} = [\begin{array}{*{20}c} {\Delta N_{1} } & {\Delta N_{2} } & {\Delta N_{3} } \\ \end{array} ]^{\text{T}}$$
(28)

The 3 × 3 covariance matrix Q of \(\bf{L}^{\prime}\) can be expressed as

$$\bf{Q} = {\bf{BQ}}_{0} \bf{B}^{{\mathbf{T}}}$$
(29)

with

$${\bf{Q}}_{0} = {\text{diag}}(q_{{\varphi_{1} }} ,q_{{\varphi_{2} }} ,q_{{\varphi_{3} }} ,q_{\rm {p_{1} }} ,q_{\rm {p_{2} }} ,q_{\rm {p_{3} }} )$$
(30)

where \(q_{{\varphi_{i} }}\) and \(q_{{{\rm p}_{i} }}\) refer to the variance of phase and code observation, respectively. The least squares estimate for \(\hat{\varvec{X}}\) is

$$\bf{\hat{X} = }\text{(}\varvec{A}^{\text{T}} {\mathbf{PA}}\text{)}^{ - 1} \varvec{A}^{\text{T}} {\mathbf{PL}}^{{\prime }} \,{\rm \bf{P}} = {\rm \bf{Q}}^{ - 1}$$
(31)

Since A is a non-singular matrix of dimension 3 × 3, this estimate can be written as

$$\hat{\varvec{X}} = {\rm \bf{A}}_{3 \times 3}^{{^{ - 1} }} {\rm \bf{L}}_{3 \times 1}^{{\prime }}$$
(32)

Equation (32) shows that the covariance matrix Q does not contribute to the adjustment result since the system is not overdetermined, and therefore, the correlation of the detection combinations does not contribute either. We can directly round the float cycle slip of (32), but the cycle slip value may not be correct because of the influence of the observation error. The larger the condition number of A, which will lead to the near colinearity of the three detection combinations, the larger the influence of observation error on the solution. So search methods like LAMBDA are used to find the correct cycle slip group (Teunissen 1995). The search space can be defined by the following equation

$$(\hat{\bf{X}} - \bf{X}){\bf Q_{\bf {X}}} (\hat{\varvec{X}} - \varvec{X})^{\text{T}} \le \chi^{\rm 2}$$
(33)

with

$$\varvec{Q}_{\rm {\bf{X}}} = (\varvec{A}^{\text{T}} {\rm \bf{Q}}^{ - 1} {\rm \bf{A}})^{ - 1}$$
(34)

where \(\chi^{2}\) defines the size of search space. We set \(\chi^{2} = 5\) empirically.

In order to improve the search efficiency, LAMBDA uses the integer Gaussian decorrelation transformation,

$${\rm \bf{N}}^{{\prime }} = {\rm\bf{ZX}}\quad{\rm \bf{Q}}_{{\hat{{\rm {N}}}^{{\prime }} }} = {\rm \bf{ZQ}}_{X} {\rm \bf{Z}}^{\text{T}}$$
(35)

where Z is the transformation matrix with \(\det ({\rm \bf{Z}}) = 1\) and \({\rm \bf{Q}}_{{\hat{N}^{{\prime }} }}\) is covariance matrix after transformation. The optimization of LAMBDA search satisfies the following condition

$$({\hat{\mathbf{N}}} - {\mathbf{N}}^{{\prime }} )^{\text{T}} {\mathbf{Q}}_{{N^{{\prime }} }}^{ - 1} ({\hat{\mathbf{N}}} - {\mathbf{N}}^{{\prime }} ) = \hbox{min}$$
(36)

Equation (36) means that the integer vector X of cycle slips has the minimum distance to the float solution vector \({\hat{\mathbf{X}}}\). Equation (36) does not guarantee the correct ambiguities have been found. But the correct cycle slip correction X must satisfy the following condition

$${\mathbf{V}}^{\text{T}} {\mathbf{PV}} = \hbox{min}$$
(37)

where \({\mathbf{V}} = {\mathbf{AX}} - {\mathbf{L}}^{{\prime }}\). If the cycle slip correction X is not correct, then V will be much larger and \({\mathbf{V}}^{\text{T}} {\mathbf{PV}} \ne \hbox{min}\). Therefore, Eq. (37) can be used to select the correct cycle slip correction. The cycle slip X can be obtained from \({\mathbf{X}} = {\mathbf{Z}}^{ - 1} {\mathbf{N}}^{{\prime }}\).

Data test and analysis

Static triple-frequency data of BDS observations of May 5, 2011, are used as an example. The data sampling interval is 15 s. The satellite elevation cutoff angle is set to 15° to make the reduce multipath. In order to test the validity of the method, simulated artificial cycle slips are added. The two triple-frequency geometry-free phase joint combinations [1,1,−2] and [1,−2,1] (which has the least insensitive cycle slip groups in Table 2) and the wide lane pseudorange minus phase linear combination [1,3,−4] (whose ionospheric delays is smallest in Table 1) are selected randomly to detect and repair the cycle slips in this experiment, which are called combinations 1, 2 and 3 below. Threshold coefficient of cycle slip detection is set as 4. The cycle slip search is used to be sure that the cycle slip can be repaired correctly.

Figure 1 shows that the fluctuation range of the geometry-free phase combinations [1,1,−2] and [1,−2,1] after differencing is ±0.02 cycles, which are smaller than that of the pseudorange minus phase linear combination [1,3,−4] (±0.2 cycles). So we conclude that the small cycle slip detection capability of phase combination is better than that of the pseudorange minus phase linear combination.

Fig. 1
figure 1

Differencing value of the cycle slip detection combinations when no cycle slip occurs

As done in Dai et al. (2009), the small cycle slips from (0,0,1) to (2,2,2) with an interval of 15 epochs are added in turn to the phase data, and the added cycle slips are given in Table 4. The results of the cycle slip detection and correction are shown in Fig. 2 and listed in Table 4. The red line means the threshold of cycle slip detection in Fig. 2.

Table 4 Comparing the cycle slip correction results by the condition \(({\hat{\mathbf{N}}} - {\mathbf{N}}^{{\prime }} )^{\text{T}} {\mathbf{Q}}_{{N^{{\prime }} }}^{ - 1} ({\hat{\mathbf{N}}} - {\mathbf{N}}^{{\prime }} ) = \hbox{min}\) and \({\mathbf{V}}^{\text{T}} {\mathbf{PV}} = \hbox{min}\)
Fig. 2
figure 2

Differencing value of the three cycle slip detection combinations

Figure 2 shows that most of the cycle slips can be detected simultaneously by three detection combinations; for example, the differencing value of three cycle slip detection combinations has all exceeded the threshold of cycle slip detection (shown as the red dotted line) when the cycle slip [0,0,1] occurs. However, there still remain some insensitive cycle slip groups undetectable by one or two detection combinations; for example, the insensitive cycle slip groups (0,1,2) and (0,2,1) cannot be detected by detection combination 2 and 1, respectively, and the cycle slip groups [1,1,1] and [2,2,2] cannot be detected by both detection combinations 1 and 2. But if only the cycle slip can be detected by one detection combination, the cycle slip can be corrected. The example shows that the cycle slip groups [1,1,1] and [2,2,2] cannot be detected by detection combinations 1 and 2, but detection combination 3 can detect the cycle slip, so cycle slip groups 1 and 2 can be detected and corrected. The results show that the algorithm derived can detect and correct not only the small cycle slips in Table 4 but also the insensitive ones. Table 4 shows that there are eight cycle slips not validated correctly by the principle \(({\hat{\mathbf{N}}} - {\mathbf{N}}^{{\prime }} )^{\text{T}} {\mathbf{Q}}_{{{\mathbf{N}}^{{\prime }} }}^{ - 1} ({\hat{\mathbf{N}}} - {\mathbf{N}}^{{\prime }} ) = \hbox{min}\), but all of the cycle slips can be validated by the least squares minimum principle \({\mathbf{V}}^{\text{T}} {\mathbf{PV}}\), which is outlined in (37). From this, we can find that the new cycle slip correction method validated by the condition \({\mathbf{V}}^{{\mathbf{T}}} {\mathbf{PV}} = \hbox{min}\) can get a more accurate correction result than the other method validated by the principle \(({\hat{\mathbf{N}}} - {\mathbf{N}}^{{\prime }} )^{\text{T}} {\mathbf{Q}}_{{{\mathbf{N}}^{{\prime }} }}^{ - 1} ({\hat{\mathbf{N}}} - {\mathbf{N}}^{{\prime }} ) = \hbox{min}\).

Conclusions

The proposed algorithm is derived for a single receiver without differencing observations between satellites. Since the GNSS geometry-free phase combination is only affected by the phase noise and the ionospheric delay, it can be used to detect the small cycle slip while there still remain some undetectable special insensitive cycle slip groups. However, if two proper geometry-free phase combinations are simultaneously used to detect cycle slips, nearly all of the cycle slip groups are detectable except for the most insensitive ones. When the three-frequency pseudorange minus phase linear combination is added, which is linearly independent from the other phase combinations, one can be sure that all of the cycle slip groups are detected. During calculation and processing of the cycle slip, the decorrelation search based on the LAMBDA algorithm can significantly reduce the search space and improve the calculation efficiency, and the correct cycle slip candidates can be identified by the least square adjustment principle. The major limitations that the data should be obtained in low multipath condition and the minor changes in the ionospheric delay between two adjacent epochs must still be addressed. In some extreme cases, the detection approach may lead to false results, which need to be further analyzed and studied.