Introduction

Cycle slip is one of the most important issues for highly precise global navigation satellite system (GNSS) applications when using carrier phase measurements. Cycle slips are caused by loss-of-lock in signal tracking under various conditions and can be small or even contain millions of cycles. Cycle slips cannot be ignored since one cycle slip on BDS B1 frequency may cause a 19-cm range error.

New cycle slip detection and repair methods have been researched in the past few years, and several classical methods have been proposed for cycle slip processing of dual-frequency GNSS observations. The TurboEdit method (Blewitt, 1990), which uses the Hatch–Melbourne–Wübbena (HMW) (Hatch 1982) combination and geometry-free (GF) combination, is one of the most popular algorithms. Considering the ionospheric influence, some scholars have modified the TurboEdit method. Liu (2011) proposed the ionospheric total electron contents rate (TECR) method with great performance for processing 1-s sampling rate data. Cai et al. (2013) developed the algorithm that combines the HMW function and the second-order, time-difference phase ionospheric residual (STPIR) method, where STPIR means the GF phase combination is differenced twice with carrier phase data among consecutive three epochs. Banville and Langley (2013) used least-squares adjustment to repair the cycle slip, and their method can process the cycle slips with 30 s observations well in the case of ionospheric disturbance. Ji et al. (2013) proposed a method using geometry dependent carrier phase linear combination with differencing between satellites to deal with the cycle slip under ionospheric disturbance for dual-frequency data.

Compared with dual frequency, the advantage of triple-frequency observations is that it can form more high-performance observation combinations. Dai et al. (2009) used three linear combinations and the LAMBDA algorithm to derive cycle slips on triple-frequency data. Li et al. (2011) analyzed the selection of optimized combination coefficients by using three pseudorange minus phase combinations. Huang et al. (2012) studied the method using two pseudorange minus phase combinations and one GF carrier phase combination to repair cycles with simulated cycles on real BDS data. Although there are residual ionospheric delays in linear combinations, the triple-frequency cycle slip processing methods described above do not take the ionospheric delay into account. So, these methods cannot be applied to the conditions under ionospheric scintillation, and they cannot be applied to low sample rate data, such as 30 s data, because the big sampling interval may result in the big ionospheric delay variation.

Therefore, a further study is needed to resolve the cycle slip detection and repair problem for the low-frequency undifferenced data under ionospheric scintillation. de Lacy et al. (2012) used five GF linear combinations to repair cycle slip in three cascading steps, but the performance of the method was only tested with simulated 1 s GPS data. Zhao et al. (2015) developed a triple-frequency repair method combing extra-wide lane, wide lane, and narrow lane combinations, which is a transformation of three-carrier ambiguity resolution (TCAR) method (Li et al. 2010). But the ionospheric compensation is only applied to the rounding of narrow lane combination, which means the wide lane combination still suffers from the residual ionospheric delay. Zhang and Li (2016) used least-squares adjustment method to obtain the real values of cycle slips and fix them by the LAMBDA algorithm. The ionospheric delay is considered and estimated, and the method is more general and optimal theoretically, but the method is not tested with real data in ionospheric disturbance periods. Xiao et al. (2018) researched an enhanced algorithm for identifying the specific carrier frequency on which cycle slips occur, which can also contribute to the cycle slip processing of undifferenced observations, though the ionospheric disturbance is not considered.

Ionospheric disturbance is a main factor causing cycle slips occurring. When using specific observation combinations to detect and repair cycle slips, the difficulty is how to handle the ionospheric delay and observation noise appropriately, and how to process the insensitive cycle slips. This study proposes a new method to process the cycle slip of low sample rate data under ionospheric scintillation. First, using two geometry-free and ionospheric-free (GFIF) linear combinations with low noise factor for cycle slip detection, which can eliminate the influence of the ionospheric delay, and then the searching method and integer bootstrapping method are combined to determinate the cycle slips on the original carrier phase observations. In the validation step, a rigorous verification rule is used for ensuring the reliability of the fixed cycle slips.

In the following, the cycle slip detection processing method is described. Then, cycle slip estimation strategy and validation step are presented, and the repair of particular slip combinations is given. A subsequent section describes the experimental design and results based on BDS real data. Finally, conclusions and summary are illustrated.

Cycle slip detection

If a cycle slip occurs, the functional model of time-differenced carrier phase and pseudorange observation can be formulated as (de Lacy et al. 2012; Zhang and Li 2012)

$$\delta P_{i} = \delta p + u_{i} \delta I + \delta e_{i}$$
(1)
$$\delta L_{i} = \lambda_{i} \delta \varphi_{i} = \delta p - u_{i} \delta I + \lambda_{i} \delta N_{i} + \lambda_{i} \delta \varepsilon_{i}$$
(2)

where the subscript \(i\left( {i = 1,2,3} \right)\) refers to a specific frequency, and \(\delta\) denotes the time difference between two consecutive epochs; \(P\) and \(L\) are pseudorange and carrier phase measurements in meters, respectively; \(\varphi\) is carrier phase measurement in cycles; \(p = \rho + c(\text{d} t_{r} - \text{d} t^{s} ) + T\) is the non-dispersive delay component that contains the distance \(\rho\) between the phase centers of satellite and receiver antennas, the receiver clock error \(c{\text{d}}t_{r}\)(where c is the speed of light), the satellite clock error \(c{\text{d}}t^{s}\), and the tropospheric delay \(T\). The ratio \(u_{i} = f_{1}^{2} /f_{i}^{2}\) is the ionospheric delay coefficient of \(f_{i}\); \(I\) is the first-order ionospheric group delay on the B1 frequency; \(N_{i}\) is the integer ambiguity of \(f_{i}\), and \(\delta N_{i}\) is the cycle slip at the frequency \(f_{i}\). Finally, \(e_{i}\) is the pseudorange observation noise measured in the meter, and \(\varepsilon_{i}\) is the carrier phase observation noise measured in the cycle. The empirical values of \(e_{i}\) and \(\varepsilon_{i}\) used the 0.6 m and 0.01 cycle, respectively (Wanninger and Beer 2015; Wang et al. 2016).

Equations (1) and (2) are the original time-differenced equations of processing cycle slips. For the triple-frequency signals, there are six observation equations and five unknown parameters \((\delta p,\delta I,\delta N_{1} ,\delta N_{2} ,\delta N_{3} )\). Based on multi-frequency combination theory (Cao and Wang 2014; Yao et al. 2014), following combinations are derived

$$\delta Y_{{\left( {\alpha ,\beta ,\gamma ,i,j,k} \right)}} = i\delta \varphi_{1} + j\delta \varphi_{2} + k\delta \varphi_{3} - (\alpha \delta P_{1} + \beta \delta P_{2} + \gamma \delta P_{3} )/\lambda$$
(3)
$$\delta Y_{{\left( {l,m,n} \right)}} { = }l\delta L_{1} + m\delta L_{2} + n\delta L_{3}$$
(4)

where \(\alpha\), \(\beta\) and \(\gamma\) are the pseudorange combination coefficients, \(i\), \(j\) and \(k\) are the carrier phase combination coefficients of \(\delta Y_{{\left( {\alpha ,\beta ,\gamma ,i,j,k} \right)}}\). \(\lambda = 1/(i/\lambda_{1} + j/\lambda_{2} + k/\lambda_{3} )\) is the combination wavelength of \(\delta Y_{{\left( {\alpha ,\beta ,\gamma ,i,j,k} \right)}}\). \(l\), \(m\) and \(n\) are the combination coefficients of \(\delta Y_{{\left( {l,m,n} \right)}}\). We assume that \(i\), \(j\), \(k\) are integers and other coefficients are real numbers.

First detection combination

Considering that the pseudorange noise is greater than the carrier phase noise, the GFIF carrier phase combination is chosen as the first detection combination \(\delta Y_{1}\).

$$\delta Y_{1} = l\delta L_{1} + m\delta L_{2} + n\delta L_{3}$$
(5)

If we take the threefold standard deviation (STD) of \(\delta Y_{1}\) as detection threshold, then the condition of cycle slip occurring is

$$\frac{{l\delta L_{1} + m\delta L_{2} + n\delta L_{3} }}{{\sqrt {2[(l\lambda_{1} )^{2} + (m\lambda_{2} )^{2} + (n\lambda_{3} )^{2} ]} }} \ge 3\sigma_{\varphi }$$
(6)

where \(\sigma_{\varphi }\) is the STD of the carrier phase observation noise in units of cycles. In order to cancel the geometry term and the first-order ionospheric delay, and to minimize the combination noise, the coefficients are derived by imposing the following conditions

$$\left\{ {\begin{array}{*{20}l} {l + m + n = 0} \hfill \\ {\eta_{1} = l + mf_{1}^{2} /f_{2}^{2} + nf_{1}^{2} /f_{3}^{2} = 0} \hfill \\ {\hbox{min} :\sigma_{{\delta Y_{1} }} = \sqrt {2[(l\lambda_{1} )^{2} + (m\lambda_{2} )^{2} + (n\lambda_{3} )^{2} ]\sigma_{\varphi }^{2} } } \hfill \\ \end{array} } \right.$$
(7)

where \(\eta_{1}\) is the combination coefficient of the first-order time-differenced ionospheric delay, and \(\sigma_{{\delta Y_{1} }}\) is the STD of \(\delta Y_{1}\) which only contains the carrier phase noise. Obviously, with the first two conditions in (7), the coefficients \((l,m,n)\) in (6) can be eliminated, which means the selection of combination coefficients is irrelevant to cycle slip detection. As a consequence, we take the value of coefficient \(l_{1}\) on B1 frequency equal to \(1/(5\lambda_{1} )\) (for ensuring that the absolute values of \((l,m,n)\) are in the range of 1 to 5), and then the values of m1 and n1 can be derived by (7). Therefore, the combination coefficients (1.0415, 3.3927, − 4.4342) are chosen as the first combination, and the threefold STD is taken as detection threshold.

Second detection combination

In order to eliminate the influence of the first-order ionospheric delay, the GFIF pseudorange minus phase combination is used as the second detection combination,

$$\delta Y_{2} = i\delta \varphi_{1} + j\delta \varphi_{2} + k\delta \varphi_{3} - (\alpha \delta P_{1} + \beta \delta P_{2} + \gamma \delta P_{3} )/\lambda .$$
(8)

In order to cancel the geometry term and the first-order ionospheric delay, and to minimize the combination noise, the imposing conditions are

$$\left\{ {\begin{array}{*{20}l} {\alpha + \beta + \gamma = 1} \hfill \\ {\eta_{2} = - \frac{1}{{\lambda_{1} }}\left( {i + \frac{{j\lambda_{2} }}{{\lambda_{1} }} + \frac{{k\lambda_{3} }}{{\lambda_{1} }}} \right) - \left( {\alpha + \beta \frac{{f_{1}^{2} }}{{f_{2}^{2} }} + \gamma \frac{{f_{1}^{2} }}{{f_{3}^{2} }}} \right)/\lambda = 0} \hfill \\ {i + j + k = 0} \hfill \\ {\hbox{min} :\sigma_{{\delta Y_{2} }} = \sqrt {2[(i^{2} + j^{2} + k^{2} )\sigma_{\varphi }^{2} + (\alpha^{2} + \beta^{2} + \gamma^{2} )\sigma_{P}^{2} /\lambda^{2} ]} } \hfill \\ \end{array} } \right.$$
(9)

where \(\eta_{2}\) and \(\sigma_{{\delta Y_{2} }}\) is the combination coefficient of the first-order time-differenced ionospheric delay and STD of the combination \(\delta Y_{2}\), respectively. The first and third formulas aim to cancel the geometry term, and the second formula aims to cancel the first-order ionospheric delay. The fourth formula, namely the STD of the combination, is used to obtain the optimized combination coefficients.

With the constraint condition of (9), the optimal combination coefficients \(\left( {i_{2} ,j_{2} ,k_{2} ,\alpha_{2} ,\beta_{2} ,\gamma_{2} } \right)\) of \(\delta Y_{2}\) can be derived as (0, − 1, 1, 0.0199, 0.5525, 0.4274) (Huang et al. 2015), as shown in Table 1. The value of the STD \(\sigma_{{\delta Y_{2} }}\) is within 0.13 cycles, which is well suited for rounding the combination \(\delta Y_{2}\) directly, and the value of the cycle in \(\delta Y_{2}\) is also an integer. \(\delta Y_{2}\) is chosen as the second combination with the detection threshold being the threefold STD of \(\delta Y_{2}\).

Table 1 All combination coefficients and relevant parameters of combinations \(\delta Y\)

Third detection combination

When the two GFIF combinations described above are jointly used for cycle slip detection, there are still many undetected cycle slip combinations that need to be processed. The combination coefficients of \(\delta Y_{1}\) and \(\delta Y_{2}\) have been derived, and both the values of \(\delta Y_{1}\) and \(\delta Y_{2}\) are equal to 0 when an undetected cycle slip occurs, so these undetected slips \((\delta N_{1} ,\delta N_{2} ,\delta N_{3} )\) can be expressed as follows:

$$\left\{ {\begin{array}{*{20}l} {\delta Y_{1} = 1.0415\delta N_{1} + 3.3927\delta N_{2} - 4.4342\delta N_{3} = 0} \hfill \\ {\delta Y_{2} = - \delta N_{2} + \delta N_{3} = 0} \hfill \\ \end{array} } \right.$$
(10)

Obviously, the undetected cycle slip combinations are in a straight line. Figure 1 shows these undetected cycle slip combinations when searching in the range of (0, 500) on three carriers. The axis in the three directions, \(\delta N_{1}\), \(\delta N_{2}\) and \(\delta N_{3}\) stand for the cycle slips on the frequency B1, B2, and B3, respectively. The segmental straight line denotes the undetected slip combinations in the range of (0, 500) on three carriers. It can be calculated that the maximum combination in the first segment (color in red) is (14, 14, 14) and the minimum combination in the second segment (color in blue) is (24, 23, 23). This means the difference value between the first and second segment is big. Also, if the value of cycle slip is of a certain size, i.e., more than 10, it is relatively easy to detect and repair the cycle slip. Hence, the undetected slip combinations are divided into two types:

Fig. 1
figure 1

Undetected slip combinations of the two GFIF combinations in the range (0, 500) on each frequency, respectively, including the first (blue) and second (red) class of undetected slip combinations

The first class (I) of undetected slip combinations, whose absolute values on the three carriers are equal to or greater than (24, 23, 23), are called the big undetected slip combinations.

The second class (II) of undetected slip combinations, whose absolute values on the three carriers are less than (15, 15, 15) with the same size on each frequency, are called the small undetected slip combinations.

Estimation of ionospheric delay variation

Since the class (I) undetected cycle slips are big numbers, the pseudorange minus phase combination is chosen for detection. The combination will contain residual ionospheric delay inevitably, so the estimated ionospheric delay variation is used to compensate the linear combination.

Figure 2 shows the time series of the first- and second-order time-differenced ionospheric delays at the Multi-GNSS Experiment (MGEX) station JFNG on October 4, 2015. Obviously, the second-order, time-differenced phase ionospheric residual (STPIR) in the bottom panels of the figure, calculated by differencing GF linear combinations twice with carrier phase data of consecutive epochs, is very small, and the ionospheric influence is almost submerged by the carrier phase noise. So, with a slight variation for the STPIR, the linear combination containing the first-order ionospheric delay can be compensated by deriving the first-order ionospheric delay variation using the previous epoch data.

Fig. 2
figure 2

Ionospheric delay of the first- (top panels) and second- (bottom panels) order time differences collected by station JFNG on October 4, 2015

If cycle slips do not occur at the previous two epochs, the GF carrier phase combination coefficients can be optimized by imposing the following conditions to derive the first-order ionospheric delay variation,

$$\left\{ {\begin{array}{*{20}l} {\delta I_{\text{bef}} = \left( {l\delta L_{1} + m\delta L_{2} + n\delta L_{3} } \right)/\eta_{\text{I}} } \hfill \\ {\hbox{min} : \, \sigma_{{\delta I_{\text{bef}} }} = \sigma_{{\delta Y_{\text{I}} }} /\eta_{\text{I}} } \hfill \\ {\eta_{I} > 0.1} \hfill \\ \end{array} } \right.$$
(11)

where the formulas of \(\sigma_{{\delta Y_{\text{I}} }}\) and \(\eta_{\text{I}}\) are the same as \(\sigma_{{\delta Y_{ 1} }}\) and \(\eta_{1}\). The optimal coefficients ± (− 0.99, 0.62, 0.37) can be derived from (11) by searching the coefficient values in the range of (− 5, 5) with a 0.05 stepsize, and then the estimated ionospheric delay variation can be derived from the previous epoch data.

Detection of the first class (I) of undetected slip combinations

The values on each frequency for the class (I) undetected slip combinations are not equal completely, so the pseudorange minus phase combination with \(i + j + k \ne 0\) is chosen to detect the class (I) cycles,

$$\delta Y_{3}^{\text{I}} = i\delta \varphi_{1} + j\delta \varphi_{2} + k\delta \varphi_{3} - \, (\alpha \delta P_{1} + \beta \delta P_{2} + \gamma \delta P_{3} )/\lambda - \eta_{3}^{\text{I}} \delta I_{\text{bf}}$$
(12)

where the formula of \(\lambda\) is similar to (8), and the formulas of \(\eta_{3}^{\text{I}}\) and \(\sigma_{{\delta Y_{3}^{\text{I}} }}\) are the same as for \(\eta_{2}\) and \(\sigma_{{\delta Y_{2} }}\).

\(\delta Y_{3}^{\text{I}}\) with the carrier phase coefficients (4, − 2, − 3) and pseudorange coefficients (1/3, 1/3, 1/3) is selected to detect the class (I) undetected slip combinations. The threefold STD is taken as detection threshold. The relevant parameters are listed in Table 1. The combination coefficient of the first-order time-differenced ionospheric delay is greater than 11 cycles, so the combination \(\delta Y_{3}^{\text{I}}\) has been compensated by the estimated ionospheric delay variation.

Detection of the second class (II) of undetected slip combinations

Cycle slips on the original three-carrier phase observations are equal for class (II), which contain the least sensitive cycles ± (1, 1, 1). Based on the analysis in the section on estimation of ionospheric delay variation, it can be found that the STPIR changes are stable even when the ionosphere is acute, while the STPIR still contains cycle slips (Cai et al. 2013). So, the STPIR method is used to process the second class of undetected slip combinations.

The second-order, time-differenced ionospheric delay can be calculated based on GF carrier phase combination,

$$\delta_{\text{II}} Y_{3}^{\text{II}} = l\delta_{\text{II}} L_{1} + m\delta_{\text{II}} L_{2} + n\delta_{\text{II}} L_{3}$$
(13)

where \(\delta_{\text{II}}\) denotes the second-order, time difference between epochs. The formula for the STD \(\sigma_{{\delta_{\text{II}} Y_{3}^{\text{II}} }}\) of \(\delta_{\text{II}} Y_{3}^{\text{II}}\) is

$$\sigma_{{\delta_{\text{II}} Y_{3}^{\text{II}} }} = 2\sqrt {\left[ {(l\lambda_{1} )^{2} + (m\lambda_{2} )^{2} + (n\lambda_{3} )^{2} } \right]\sigma_{\varphi }^{2} }$$
(14)

In order to enhance the stability for the detection of the particular small slips, two GF carrier phase combinations \(\delta_{\text{II}} Y_{31}^{\text{II}}\) and \(\delta_{\text{II}} Y_{32}^{\text{II}}\), with respective coefficients (1, − 1, 0) and (1, 0, − 1), are chosen to detect the slip combinations of class (II). The two combinations are collectively called the third detection combination \(\delta_{\text{II}} Y_{3}^{\text{II}}\). Still, we take the threefold STD as detection threshold.

Figure 3 shows the flowchart of cycle slip detection algorithm. It should be noted here that when the cycle slips are not detected by the first and second detection combinations, \(\delta Y_{3}^{\text{I}}\) is first used to judge whether there are undetected cycle slips. If \(\delta Y_{3}^{\text{I}}\) still does not detect any cycle slips, then \(\delta_{\text{II}} Y_{3}^{\text{II}}\) is used to test whether there is the second class of undetected cycle slips.

Fig. 3
figure 3

Flowchart of cycle slip detection and repair

Methodology for cycle slip repair

In this section, we present the cycle slip estimation and validation method. First, the steps of cycle slip estimation are given. Then the validation method is described. Finally, the processing of particular slip combinations is discussed.

Cycle slip estimation

We process cycle slips satellite by satellite by constructing three linear independent combinations. Previous methods estimated cycle slips by rounding three linear combinations and adopting matrix inversion algorithm (Dai et al. 2009). However, incorrect rounding of some linear combination is likely to occur when choosing three linearly independent combinations that all emit the first-order ionospheric delay. Also, the coefficient matrix derived from the three combinations could be ill-conditioned in the processing of matrix inversion. Considering these disadvantages, a more reliable algorithm is proposed. Similarly, three linear combinations are chosen to estimate cycle slips, but the searching method and integer bootstrapping method are combined to determinate the cycle slips on the original three-carrier phase observations.

The two GFIF combinations analyzed above are selected as the first and second repairing combinations, and then a pseudorange minus phase combination with B3 carrier phase observations is brought in as the third repairing combination \(\delta Y_{4}\),

$$\delta Y_{4} = \delta \varphi_{3} - (\delta P_{1} + \delta P_{2} + \delta P_{3} )/(3\lambda_{3} ) - \eta_{4} \delta I_{\text{bf}}$$
(15)

where the formula of \(\eta_{4}\) is the same as \(\eta_{2}\). The combination coefficient \(\eta_{4}\) of the first-order time-differenced ionospheric delay is greater than 12 cycles, so the combination \(\delta Y_{4}\) is compensated by the estimated ionospheric delay variation. The function of \(\delta Y_{4}\) is to search the B3 cycles. In order to expand the search range, the variance of residual ionospheric variations is taken into account the STD of \(\delta Y_{4}\),

$$\sigma_{{\Delta Y_{4} }} = \sqrt {\sigma_{{\delta Y_{4} }}^{2} + (\eta_{4} \sigma_{{\delta {\text{I}}}} )^{2} }$$
(16)

where the formulas of \(\sigma_{{\delta Y_{4} }}\) is the same as \(\sigma_{{\delta Y_{2} }}\). \(\sigma_{{\Delta Y_{4} }}\) denotes the STD of the third repair combination \(\delta Y_{4}\), and \(\sigma_{{\delta {\text{I}}}}\) is the STD of the time-differenced ionospheric delay. The value of \(\sigma_{{\delta {\text{I}}}}\) is selected as 0.5 m considering the influence of ionospheric disturbance (Liu and Chen 2009). In (15), the carrier phase coefficients of \(\delta Y_{4}\) are (0, 0, 1), and pseudorange coefficients are (1/3, 1/3, 1/3). The threefold STD is chosen as the searching threshold.

In the proposed method, the B3 cycle is first derived in a searching zone, and then B2 and B1 cycles are obtained by sequential rounding the two GFIF combinations with both the STDs less than 0.13 cycles. The estimation algorithm steps are listed as follows:

  1. 1.

    \(\delta Y_{4}\) only contains the cycle slip on B3 frequency. So, with the rounding value of \(\delta Y_{4}\) as the center, the B3 cycle slip \(\delta N_{3}\) can be obtained by searching the integer in the range

    $$( - 3\sigma_{{\Delta Y_{4} }} + \delta Y_{4} ,3\sigma_{{\Delta Y_{4} }} + \delta Y_{4} )$$
    (17)

    The STD \(\sigma_{{\Delta Y_{4} }}\) of \(\delta Y_{4}\) contains both of residual ionospheric variation and observation noise. With the threshold of threefold STD, the B3 cycle slip \(\delta N_{3}\) contains in the range of (17). Hence, the probability of successfully deriving the B3 cycle slip is \(P_{1} = 100\%\).

  2. 2.

    Because the carrier phase coefficients (0, − 1, 1) in \(\delta Y_{2}\) are all integers, the combined cycle slip contained in \(\delta Y_{2}\) is also an integer. The residual ionospheric variation in \(\delta Y_{2}\) has been removed, and the STD of \(\delta Y_{2}\) is small enough to round the \(\delta Y_{2}\) directly. So, the combined cycle slip \(\left[ {\delta Y_{2} } \right] = round(\delta Y_{2} )\), where “\([ {} ]\)” denotes rounding operation. Then the B2 cycle slip \(\delta N_{2}\) can be derived

    $$\delta N_{2} = \delta N_{3} - \left[ {\delta Y_{2} } \right]$$
    (18)

    We reasonably assume that the cycle slip in combination \(\delta Y_{2}\) is normally distributed with zero mean and standard deviation at 0.123 cycles (Li et al. 2011). Thus, the probability of successfully estimating the cycle slip in combination \(\delta Y_{2}\) is

    $$P_{2} = P(|\delta Y_{2} - [\delta Y_{2} ]| < 0.5) = 99.995\%$$
    (19)
  3. 3.

    Having derived the values of \(\delta N_{2}\) and \(\delta N_{3}\) on B2 and B3 frequency, respectively, the cycle slip \(\delta N_{1}\) on the B1 frequency can be obtained by using the first combination \(\delta Y_{1}\). The coefficients of cycle slip on each frequency are \((l_{1} \lambda_{1} , \, m_{1} \lambda_{2} , \, n_{1} \lambda_{3} )\), respectively, and \(\delta N_{1}\) can be derived as

    $$\delta N_{1} = round[(\delta Y_{1} - m_{1} \lambda_{2} \delta N_{2} - n_{1} \lambda_{3} \delta N_{3} )/(l_{1} \lambda_{1} )]$$
    (20)

    It can be seen in (20) that the STD of rounding \(\delta N_{1}\) is equal to \(\sigma_{{\delta Y_{1} }} /(l_{1} \lambda_{1} )\), and the STD is a constant and less than 0.0961. So, the probability of successfully estimating \(\delta N_{1}\) is

    $$P_{3} = P(|\delta N_{1} - [\delta N_{1} ]| < 0.5) = 99.99998\%$$
    (21)
  4. 4.

    Since the cycle slip candidate \(\left( {\delta N_{1} ,\delta N_{2} ,\delta N_{3} } \right)\) has been obtained, the cycle slip validation method will be used to test whether the candidate is correct. If the validation is not passed, then one needs to go back to the first step until deriving the correct candidate. The specific validation method will be introduced in the below.

From the (19) and (21), it can be seen that the formal success probability of resolving the cycle slips on the original three carriers is

$$P_{0} = P_{1} \times P_{2} \times P_{3} = 99.995\%$$
(22)

It should be noted here that this is only the probability of successfully deriving the cycle slips in the estimation step.

Cycle slip validation

The proposed method uses a more rigorous validation rule to ensure the reliability of the fixed cycle slips. Two kinds of validation strategies are combined to test the cycle slip candidate.

First, the repaired combinations updated by the candidate must pass the threshold test. The linear combination observations \(\delta Y_{1}\), \(\delta Y_{2}\), \(\delta Y_{3}^{\text{I}}\) and \(\delta_{\text{II}} Y_{3}^{\text{II}}\) are repaired by the cycle slip candidate. These repaired combination observations must meet the condition that the values do not exceed the detection thresholds, accordingly,

$$\delta \tilde{Y}_{1} < 3\sigma_{{\delta Y_{1} }} ,\delta \tilde{Y}_{2} < 3\sigma_{{\delta Y_{2} }}$$
(23)
$$\delta_{\text{II}} \tilde{Y}_{3}^{\text{II}} < 3\sigma_{{\delta_{\text{II}} Y_{3}^{\text{II}} }}$$
(24)
$$\delta \tilde{Y}_{3}^{\text{I}} < 3\sigma_{{\delta Y_{3}^{\text{I}} }}$$
(25)

where \(\delta \tilde{Y}\) denotes the value of repaired combination, which means the cycle slip in combination has been corrected.

It is worth mentioning that considering the ionospheric factor \(\eta_{4}\) of the third repairing combination \(\delta Y_{4}\) is greater than one cycle (listed in Table 1), the \(\delta Y_{4}\) is not used to confirm the repairing values \(\left( {\delta N_{1} ,\delta N_{2} ,\delta N_{3} } \right)\).

Second, the minimum of the one norm, namely the sum of the three repaired combinations \(\delta \tilde{Y}_{1}\), \(\delta \tilde{Y}_{2}\) and \(\delta \tilde{Y}_{3}^{\text{I}}\), is used to validate the correct cycle slip candidate,

$$\hbox{min} :M = |\delta \tilde{Y}_{1} | + |\delta \tilde{Y}_{2} | + |\delta \tilde{Y}_{3}^{\text{I}} |$$
(26)

Equation (26) indicates that the value \(M\) consists of the three repaired combination values. Again (26) does not contain \(\delta \tilde{Y}_{4}\), which has a big noise factor and is easy to result in misjudgment. However, the noise factors of \(\delta \tilde{Y}_{1}\), \(\delta \tilde{Y}_{2}\) and \(\delta \tilde{Y}_{3}^{\text{I}}\) are far less than 1 cycle.

Particular slip combinations repair

There are two classes of undetected slip combinations, namely the particular slip combinations, which cannot be discovered by the first and second detection combination. For the first class of undetected slip combinations, the method described above is still used to derive the correct slip combination.

As for the second class of undetected slip combinations, there is a specific trait in that the original cycle slips are equal, namely \(\delta N_{1} = \delta N_{2} = \delta N_{3}\). In this case, the slip combinations can be derived by searching in the range of \(( - 15,15)\) directly with the same range on each frequency. The repaired combination values also need to meet the conditions of (23) to (25), and the one norm \(M\) is the minimum value.

The flowchart of the proposed cycle slip detection and repair algorithm is summarized in Fig. 3. The function of seven combinations is given in Fig. 4.

Fig. 4
figure 4

Function of seven combinations in the proposed method

Experimental results and analysis

In order to test the performance of the proposed algorithm, two experiments with simulated and real cycle slips are implemented. Before the tests, the noise level of five detection combinations is analyzed by using 18 MGEX stations with BDS triple-frequency observations. Then the experiments with simulated cycle slips of different magnitude are conducted. Finally, we select an MGEX station with many 1-cycle slips on observations to further test the performance of the new method. In addition, the method proposed by Zhao et al. (2015) is used for comparative analysis in the experiment.

Noise level of combinations

Before testing the performance of the algorithm, the noise level of the five detection combinations \((\delta Y_{1} ,\delta Y_{2} ,\delta Y_{3}^{\text{I}} ,\delta_{\text{II}} Y_{31}^{\text{II}} ,\delta_{\text{II}} Y_{32}^{\text{II}} )\) is first assessed. The detection thresholds of these five linear combinations, namely the threefold STDs, are 5.8 cm, 0.37 cycle, 0.26 cycle, 2.51 cm and 2.44 cm, respectively. We select 18 MGEX stations with BDS triple-frequency observations on March 18, 2015 to test the performance of combinations. The root-mean-square (RMS) values of the linear combinations for the three types of satellite, the GEO (C01–C05), IGSO (C06–C10), and MEO (C11–C14), are calculated for every station.

Table 2 gives the statistics of the five linear combinations. It can be seen that none of the combinations exceeds the corresponding threefold STD. The two GFIF combination values are less than the corresponding STD 1σ, while the other three linear combination values are more than their 1σ at some stations, especially for the MEO satellites. The ionospheric delay variation estimated by the GF combination can be more than 0.3 m at some stations, like KZN2 and MAYG, but it has a slight influence on \(\delta Y_{1}\) and \(\delta Y_{2}\). Specifically, it can be found that the performance of the two GFIF combinations is excellent for the three types of BDS satellite. \(\delta Y_{2}\) is slightly better than the \(\delta Y_{1}\). The reason may be the empirical pseudorange noise of 0.6 m in \(\delta Y_{2}\) is slightly large. In general, the five combinations are suitable to detect cycle slip, and the constant prior noise information chosen in our method is reasonable and can be applied to most situations.

Table 2 RMS statistics of five linear combinations on three types of BDS satellite at 18 stations

Simulated cycle slip tests

In this part, the new method is validated by adding simulated cycle slips to the observations. First, 13 groups of random cycle slips are chosen to test the method, and then the particular slip combinations added to the observations every six epochs are used to analyze the reliability and efficiency of the proposed method.

The ionospheric active state can be judged by Kp indices which indicate the disturbance degree of geomagnetism (Cai et al. 2013). According to the released Kp value at the Web site http://www.swpc.noaa.gov/products/planetary-k-index, we can find that the ionospheric variation was active on October 4, 2015. The observations at three MGEX stations, C07 satellite of JFNG, C14 satellite of KZN2, and C01 satellite of XMIS, are selected as experimental data for that day. The three stations are located in quite different latitudes, and cycle slips do not occur on the original data.

Repairing with 13 groups of random slip combinations

Table 3 gives the simulated cycle slips with the total of 13 groups, and the repair results by showing the minimum \(M\) and the second minimum \(M_{2nd}\) of the one norm. JFNG C07 observations suffered the most dramatic ionospheric disturbance at the epoch 431 (see Fig. 2). So, the least sensitive slip combination (1, 1, 1) is added at that epoch. It can be seen that all simulated cycle slips are repaired successfully. The second minimum \(M_{2nd}\) of the one norm exists in some solutions, but it does not exist in others solutions because only a cycle slip candidate meets the criterion of cycle slip validation. The difference between \(M\) and \(M_{2nd}\) is close to an order of magnitude, and there is substantial number of solutions where the \(M_{2nd}\) does not exist, which can avoid erroneous repair with great probability. Figure 5 shows the time series of combinations at station JFNG.

Table 3 Simulated cycle slips epoch, repairing results, and values of the one norm
Fig. 5
figure 5

Time series of six combinations of JFNG C07 observations. The \(\delta Y_{1}\), \(\delta_{\text{II}} Y_{31}^{\text{II}}\) and \(\delta_{\text{II}} Y_{32}^{\text{II}}\) are carrier phase combinations in meters. The \(\delta Y_{2}\), \(\delta Y_{3}^{\text{I}}\) and \(\delta Y_{4}\) are pseudorange minus phase combinations in cycles. The horizontal blue dashed lines of the six panels indicate that the threefold STD of the corresponding combination only contains noise. The horizontal green dashed lines in the bottom left panel indicate that the threefold STD of \(\delta Y_{4}\) contains noise and residual ionospheric variations

Repairing particular slip combinations

Simulated particular slip combinations are added to the three stations every six epochs, which are (15, 15, 15) in JFNG C07, (1, 1, 1) in KZN2 C14, and (24, 23, 23) in XMIS C01 on triple-frequency data, respectively.

Table 4 gives the statistics of repairing success rate. All cycle slips are repaired successfully in stations JFNG and XMIS. Two failed repairs occur in station KZN2 when the satellite starts to emerge, with repairing rate 98.7 percent. However, the cycle slips are all detected. Figure 6 shows the scatter series of the minimum one norm \(M\). It can be found that the values \(M\) of the only two failed repairs are greater than normal conditions. In addition, JFNG C07 and XMIS C01 are also tested with the least sensitive slip combination (1, 1, 1) added to the observations every six epochs. There are one and two failed repairs, respectively, and the repairing rates are 99.7 and 99.5% correspondingly.

Table 4 Number of epochs of added cycle slips and repairing results
Fig. 6
figure 6

Scatter series of the minimum \(M\) of the one norm, where □ denotes failure case

The method proposed by Zhao et al. (2015) is analyzed. All cycle slips (15, 15, 15) in JFNG C07 and (24, 23, 23) in XMIS C01 on triple-frequency data are fixed successfully. There are five groups of cycle slips in JFNG C07 being repaired erroneously, whereas two failed repairs are the same as our method.

Real cycle slip tests

Ju et al. (2017) show that there are 32 groups real cycle slips in the dual-frequency C03 observations of station REUN over a period of 24 h for September 1, 2015. Most of these cycle slips are (± 1, 0), (0, ± 1) or ± (1, 1), which is convenient to verify the reliability of our method. With triple-frequency signals in this station, C03 observations of REUN are selected to analyze the performance of the new method. Figure 7 shows the experimental results. It can be seen that in the case of triple-frequency observations, 44 groups of small slip combinations are all detected successfully by \(\delta Y_{1}\) and \(\delta Y_{2}\). Seven groups of insensitive slip combinations ± (1, 1, 1) are detected by the GF linear combination using the STPIR method, like linear combination \(\delta_{\text{II}} Y_{31}^{\text{II}}\) in the bottom panel of the figure. All these real slip combinations are repaired successfully. In the case of dual-frequency observations, it can be found that there are 32 groups of slip combinations on B1 and B2 observations, which are consistent with the results reported in Ju et al. (2017). From the figure, it can be seen that the values of \(\delta Y_{1}\) and \(\delta Y_{2}\) are extremely abnormal when cycle slips occur, which indicates that the repairing results are reliable.

Fig. 7
figure 7

Real cycle slip repairing results of the REUN C03 observations. \(\delta Y_{1}\) (red) and \(\delta Y_{2}\) (green) are the two GFIF combinations, and \(\delta_{\text{II}} Y_{31}^{\text{II}}\)(blue) is the GF carrier phase combination with coefficients (1, − 1, 0). The top panel contains 44 groups slip combinations, and the slip combinations ± (1, 1, 1) of the other 7 groups are given in the bottom panel

The method proposed by Zhao et al. (2015) has been analyzed, and the partial repairing results are shown in Fig. 8. There are 2 groups of cycle slips (− 1, − 1, − 1) and (1, 1, 1) in the REUN C03 observations being repaired erroneously at epochs 2550 and 2551, respectively, while the cycle slips do not exist at those epochs. However, the two groups of cycle slips do not pass the verification in our method because of the rigorous validation rule. Consequently, the reliability of our method is further tested.

Fig. 8
figure 8

Real cycle slip repairing results of the REUN C03 observations using the method by Zhao et al. (2015). The mark indicates that the cycle slips are repaired erroneously, where the value of \(\Delta N(2, - 1,0)\) is equal to − 1.35 and 1.66 at epochs 2550 and 2551, respectively

Conclusions

We propose a new method to repair cycle slips of BDS triple-frequency undifferenced real-time observations under ionospheric disturbance. In the detection step, since the undetected slip combinations of the two GFIF combinations are divided into two types, the detection problem can be resolved appropriately. Using the estimated ionospheric delay variation with data from the previous epoch to compensate the linear combinations, the performance of cycle slip detection and repair is enhanced. In the estimation step, by directly rounding the two GFIF combinations with both STDs of less than 0.13 cycles, the disadvantages of matrix inversion can be avoided. In the real-data experiments with simulated and real cycle slips, the results show that the method can repair all kinds of cycle slips in real-time with high reliability because of the rigorous validation rule. Several failed repairs may occur with slip combinations ± (1, 1, 1), but these cycle slips can be detected, and the minimum of the one norm is greater than normal conditions. It should be noted here that the noise STD values for pseudorange and carrier phase are assumed constant in the proposed method, which means that the application areas of the method may be restricted in some cases.

Observation data processing is a system work. We just develop a new method to repair the cycle slip. Many other problems are not considered, such as receiver clock jump, gross error, pseudorange-phase jump, and missing observations on some frequencies. The further work is to add other algorithm modules and finally obtain reliable and clean data. Meanwhile, other data such as high-dynamic airborne data and simulated LEO observations can also be tested.