Keywords

1 Introduction

Cheap crystal oscillator provides the internal time reference of most surveying GNSS receiver. Due to the poor stability of such kind of oscillator, the receiver clock offset grows fast. To synchronize the receiver and GPS time reference, the receiver has to adjust the internal clock offset to keep it within a certain limitation. The clock jump is the abrupt clock value added to receiver clock offset to control its variation range [3].

When the receiver clock offset is introduced, the continuity of corresponding raw observation series or time tag is broken. If the clock jump happens on both the phase and pseudorange observation, the consistency of them remains. However, when it only happens on pseudorange observation, the consistency of phase and pseudorange observation is broken. As a result, the clock jump may be mistakenly detected as cycle slip by phase and pseudorange combination method. Different from cycle slip, the clock jump influences every satellite observation of the same epoch. If the clock jump left undetected, the positioning result will be re-initialized frequently and the accuracy and reliability of positioning result can no longer be guaranteed [6]. Unfortunately, we find that frequent millisecond level clock jumps are not rare in observations output by some current BDS/GPS receivers.

In this paper, a BDS preprocessing method that is resistant to clock jump impact is introduced. By using virtual phase observation composed of raw phase observation, the second-order ionosphere delay is canceled to improve the accuracy of clock jump detection. Validated by real BDS observation, this method can effectively repair the frequent millisecond level clock jump and prevent its influence on cycle slip detection. After preprocessing BDS observation with this method, the frequent re-initialization of ambiguity parameter can be avoided, which lays a good foundation for further positioning estimation.

2 Classification of BDS Clock Jump

The clock steering mechanism varies between different receiver manufacturers. However, according to its influence on time tag, pseudorange and phase observation, the receiver clock jump can be classified as four types defined in Table 15.1 [4].

Table 15.1 Four types of clock jump

All the BDS data used in this paper are collected by COMPASS Experimental Tracking Network (CETN) established by the GNSS Research Center, Wuhan University. All the stations of CETN are equipped with UR240 dual-frequency BDS/GPS receivers manufactured by Unicore Communications Incorporation. Even though the receiver types of all the stations are the same, the firmware version may vary, which results in different clock offset steering mechanism. Therefore, the clock jump behavior of same type receiver may be different.

As shown in Fig. 15.1, the B1 phase observation series of LASA station in day of year (DOY) 93, 2013 has a smooth variation trend, meanwhile the pseudorange observation abruptly jumps nearly every 1,500 s. The corresponding clock offset value derived with pseudorange observations resets at exactly same epoch of observation jump. When the receiver clock offset value reaches ±0.5 ms, a 1 ms abrupt clock jump is introduced to keep the absolute value of clock offset within 0.5 ms. Because the value jump that happens to pseudorange observation does not occurs to phase observation, it is a type 3 clock jump illustrated in Table 15.1.

Fig. 15.1
figure 1

B1 pseudorange and phase observation and corresponding receiver clock offset series of C01 satellite for LASA station

Different from the clock steering method within receiver used in LASA station, as illustrated in Fig. 15.2, both the phase and pseudorange raw observation of HRBN station in DOY 93, 2013 are adjusted to leave a room for the type four clock jump. The frequent clock jumps cause a sawtooth signature of the observation. After analyzing observations from all the CETN stations, we find that except for LASA and HRBN station, the type two and four millisecond level clock jump exist in some other stations. In this paper, we focus on handling those types of clock jump.

Fig. 15.2
figure 2

B1 pseudorange and phase observation and corresponding receiver clock offset series of C06 satellite for HRBN station

3 Influence of BDS Observation Clock Jump on Cycle Slip Detection

The influence of clock jump on cycle slip detection depends on the type of clock jump. In general, the raw GNSS pseudorange and phase observation can be represented as Eqs. (15.1)–(15.3):

$$ \Phi _{\text{i}} (t) = g(t) - I_{\text{i}} (t) + \lambda_{\text{i}} N_{\text{i}}^{\text{j}} (t) + \varepsilon_{{\Phi , {\text{i}}}} $$
(15.1)
$$ P_{\text{i}} (t) = g(t) + I_{\text{i}} (t) + \varepsilon_{\text{P,i}} $$
(15.2)
$$ g(t) = \rho (t) + c \cdot dt_{\text{r}} (t) - c \cdot dt^{\text{s}} (t) + T(t) $$
(15.3)

where \( \Phi _{\text{i}} (t) \) and \( P_{\text{i}} (t) \) are i frequency phase and pseudorange observation at epoch \( t \) separately, g(t) includes satellite-to-station geometry distance and other frequency-irrelevant delay like receiver antenna phase center offset and troposphere delay, \( dt_{\text{r}} (t) \) is receiver clock offset, \( dt^{\text{s}} (t) \) is satellite clock offset, \( T(t) \) is troposphere delay, \( I_{\text{i}}^{{}} (t) \) is second-order ionosphere delay for frequency i, \( N_{\text{i}}^{\text{j}} (t) \) is ambiguity for satellite j and frequency i, \( \varepsilon_{{\Phi , {\text{i}}}} \) and \( \varepsilon_{\text{P,i}} \) are the corresponding phase and pseudorange observation noise separately.

For duo-frequency observation, the ionosphere delay on different frequency can be converted using following relationship:

$$ I_{2} (t) = \gamma I_{1} (t) $$
(15.4)

where \( \gamma = \tfrac{{f_{1}^{2} }}{{f_{2}^{2} }} \), \( f_{\text{i}} \) is the frequency value for frequency i.

In general, the cycle slip detection uses certain type of cycle slip detection observation computed with raw observation. The cycle slip is detected by checking the time difference of cycle slip detection observation. Most cycle slip detection methods eliminate or decrease other observation series variety influence like satellite-station geometry distance and satellite clock offset by observation combination or time difference. Different combinations of raw observation e.g. ionosphere residual method, geometry-free method and MW combination method may output different cycle slip detection result [9]. Moreover, single cycle slip detection observation has certain insensitive cycle slip, so it is wise to use different observation combinations for cycle slip detection simultaneously.

Depend on the selection of cycle slip detection observation, the cycle slip detection methods also have different sensibility to clock jump. For example, when applying geometry-free method to cycle slip detection for a duo-frequency receiver, corresponding cycle slip detection observation is composed as Eq. (15.5):

$$ \Delta L_{\text{GF}} = {\Delta \Phi }_{1} - {\Delta \Phi }_{2} =\Delta N_{1} -\Delta N_{2} + \varepsilon_{\text{GF}} $$
(15.5)

where, ∆ is time difference operator, \( \varepsilon_{\text{GF}} \) is corresponding geometry-free combination noise. Only phase observation is used in this combination and receiver clock has been eliminated, so clock jump will cause no trouble to this cycle slip detection method.

For another common cycle slip detection method MW combination method, the cycle slip detection observation is computed as followings:

$$ \Delta L_{\text{MW}} = \lambda_{\text{w}} (\Delta N_{ 1} -\Delta N_{ 2} ) +\Delta g_{\text{sum}} + \varepsilon_{\text{MW}} $$
(15.6)
$$ \Delta g_{\text{sum}} =\Delta g_{\Phi } -\Delta g_{P} $$
(15.7)

where \( \lambda_{\text{w}} \) is wavelength of widelane combination, \( \Delta g_{\Phi } \) and \( \Delta g_{P} \) are the time difference of \( g(t) \) for phase and pseudorange observation separately, \( \Delta g_{\text{sum}} \) is the sum of those two items, \( \varepsilon_{\text{MW}} \) is noise of MW combination observation. Type one and four clock jump will do no harm to cycle slip detection because the jump value caused by clock jump is eliminated by combination process. In general, the \( \Delta g_{\text{sum}} \) value should be around zero. However, when type two and three clock jump happen, because the consistency of phase and code observation is broken up, the \( \Delta g_{\text{sum}} \) value series will have an abrupt jump, which makes the clock jump mistakenly detected as cycle slip.

The Fig. 15.3 demonstrates the MW combination cycle slip detection result without clock jump detection for LASA station in DOY 93, 2013. For cycle slip detection, the cycle slip tag one represents there is a cycle slip detected and zero represents normal observation. All the clock jumps have been detected as cycle slips. Different from cycle slip, the clock jump occurs to all the observations at same epoch. The false cycle slip detection result will cause frequent initialization of ambiguity parameter and influence the result stability and accuracy in further processing. Because the MW combination is sensitive to type two and three clock jump, it needs to detect and repair clock jump firstly to improve the correctness and reliability of cycle slip detection [1].

Fig. 15.3
figure 3

Cycle slip detection result using original MW combination for LASA station

4 BDS Data Preprocessing Method Immune to Clock Jump

Guo [3] pointed out that the receiver clock jump has two basic characteristics. Frist, the same amount of steep jump value contributed to receiver clock jump can be seen in all satellites observations of the same epoch. Second, for millisecond level clock jump, the value of clock jump is an integer number by millisecond. The general idea of our method is to exploit these two characteristics to distinguish clock jump from cycle jump and repair them correctly.

4.1 BDS Clock Jump Detection Method

For our observation reprocessing method, two virtual phase observation are built firstly, the virtual phase observation for frequency \( i \) is \( L_{\text{i}}^{{*{\text{j}}}} \) [8]:

$$ \begin{aligned} L_{ 1}^{{*{\text{j}}}} & = (1 + \alpha )L_{1} - \alpha L_{2} \\ & = g(t) + I_{1} (t) + (1 + \alpha )\lambda_{1} N_{ 1}^{\text{j}} (t) - \alpha \lambda_{2} N_{ 2}^{\text{j}} (t) \\ \end{aligned} $$
(15.8)
$$ \begin{aligned} L_{ 2}^{{*{\text{j}}}} & = \beta L_{1} - (\beta - 1)L_{2} \\ & = g(t) + I_{2} (t) + \beta \lambda_{1} N_{1}^{\text{j}} (t) - (\beta - 1)\lambda_{2} N_{2}^{\text{j}} (t) \\ \end{aligned} $$
(15.9)

where, \( \alpha \) and \( \beta \) are conversion coefficient, \( \alpha = \tfrac{2}{\gamma - 1} \), \( \beta = \tfrac{2\gamma }{\gamma - 1} \). After conversion of Eqs. (15.8) and (15.9), the sign of ionosphere delay in virtual observation is same as that of pseudorange observation. When \( L_{\text{i}}^{{*{\text{j}}}} \) minus corresponding pseudorange, the second-order ionosphere delay and its influence on clock jump detection can be mitigated.

After acquiring the virtual phase observation \( L_{\text{i}}^{{*{\text{j}}}} \), the clock jump detection observation \( S_{\text{i}}^{\text{j}} (t) \) can be formed as Eq. (15.10):

$$ S_{\text{i}}^{\text{j}} (t) = \frac{{\Delta P_{\text{i}}^{\text{j}} -\Delta L_{\text{i}}^{{*{\text{j}}}} }}{{c_{\text{S}} }} = \frac{{ -\Delta N_{\text{s}} +\Delta g + \varepsilon_{\text{S}} }}{{c_{\text{S}} }} $$
(15.10)

where \( c_{\text{S}} \) is the unit conversion coefficient form meter to millisecond, \( c_{\text{S}} = c \times 10^{3} \), \( c \) is the speed of light, \( \Delta N_{\text{s}} \) is the time difference of \( L_{\text{i}}^{{*{\text{j}}}} \) ambiguity, \( \Delta g \) is other frequency-irrelevant delay that has not been eliminated, \( \varepsilon_{\text{S}} \) is clock jump detection observation noise. Because the second-order ionosphere delay is eliminated during the combination process, the abrupt change of ionosphere delay like ionosphere scintillation will not influence the clock jump detection. Moreover, when clock jump happens, all the clock jump detection observations at same epoch will have a sudden jump and we can make use of this character to distinguish cycle slip from clock jump.

Every clock jump detection observation at certain epoch should be checked with following equation:

$$ \left| {S_{\text{i}}^{\text{j}} (t)} \right| < k_{ 1} $$
(15.11)

\( k_{ 1} \) is the detection threshold, \( k_{ 1} = 10^{ - 3} \;c - 3\sigma \), \( \sigma \) reflects the noise level of detection observation, the value is 3–5 m [4]. If the Eq. (15.11) is met, then Eq. (15.12) will be used to test if all satellites are influenced.

$$ n = Na $$
(15.12)

where, \( n \) is the number of clock jump detection observation meeting Eq. (15.11), \( Na \) is the number of the valid clock jump detection observation at certain epoch.

To confirm there is a clock jump in current epoch, other two detection value \( h_{ 1} \) and \( h_{ 2} \) have to be checked [2]:

$$ h_{ 1} = \frac{{{\text{arctan(}}q_{ 1} /q_{ 2} )}}{2\pi } $$
(15.13)
$$ q_{ 1} = \sum\limits_{{}}^{n} {\sin (S_{\text{i}}^{\text{j}} (t))} $$
(15.14)
$$ q_{ 2} = \sum\limits_{{}}^{n} {\cos (S_{\text{i}}^{\text{j}} (t))} $$
(15.15)

where, \( h_{ 1} \) is the fractional part of clock jump detection observation. The computation method is initially come up by Gabor and Nerem to compute the fractional cycle bias (FCB).

Other detection observation \( h_{ 2} \) is used to test if all the clock jump detection observation \( S_{\text{i}}^{\text{j}} (t) \) can be reasonably rounded to same integer. Equation (15.16) tells the definition of \( h_{ 2} \):

$$ h_{ 2} = \sum\limits_{i = 2}^{n} {\left| {S_{i} - {\text{round(}}S_{1} )} \right|} $$
(15.16)

where \( S_{1} \) is the first detection observation and \( n \) is the number of observations at current epoch. When all the two conditions in Eq. (15.17) are satisfied, the existence of clock jump can be confirmed.

$$ \left\{ {\begin{array}{*{20}c} {h_{ 1} < k_{ 2} } \\ {h_{ 2} < k_{ 3} } \\ \end{array} } \right. $$
(15.17)

The values of two detection threshold \( k_{ 2} \) and \( k_{ 3} \) should reflect the noise level of pseudorange observation and account for the reliability of detection results. In this paper, the \( k_{ 2} \) is set as 10−5 ms and \( k_{ 3} = \sqrt {n - 1} \cdot k_{2} \), n is the number of valid clock jump detection observation.

When a clock jump is detected, we should first determine the size of clock jump and then try to repair it. Through test of Eq. (15.17), all the clock jump detection observation can be rounded to same integer value. Because the clock jump has integer value characteristic, we can acquire the exact value of clock jump value \( M \) by simply round the first clock jump detection observation \( S_{1} \) to its nearest integer:

$$ M = {\text{round(}}S_{1} ) $$
(15.18)

After determining the value of clock jump, the consistency of phase and pseudorange observation can be recovered by add the clock jump value to original phase observation [5].

$$ \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{L} = L + M \cdot c_{\text{S}} $$
(19)

4.2 BDS Data Reprocessing Scenario

An effective BDS observation preprocessing method has to consider insensitive cycle slip of different cycle slip detection observation and to arrange the order of different preprocessing procedure accordingly. If possible, both the clock jump and cycle slip should be detected and repaired to avoid their influence on further data processing.

Figure 15.4 shows the preprocessing data flow come up by this paper, every observation of same epoch is looped over. Firstly, the geometry-free combination observation that is insensitive to clock jump is used to detect obvious blunder and cycle slip. And then the observations will be detected for clock jump with the method proposed in Sect. 15.3. When there is a clock jump detected, the phase observation will be adjusted to recover the consistency of phase and pseudorange observation. At last, the MW combination will be used to detect the remaining cycle slip which is insensitive to geometry-free combination. Because clock jump has been detected and repaired, the reliability of cycle slip detection procedure is improved.

Fig. 15.4
figure 4

Flowchart of BDS observation preprocessing

5 Results and Analysis

Figure 15.5 shows the comparison of MW combination observation series for station LEID before and after clock jump detection. The blue and red curves represent original and repaired MW combination observation series separately. The LEID station also belongs to CETN mentioned in Sect. 15.2. Because frequent clock jumps undermine the consistency of pseudorange and phase observation, the blue original MW combination observation series decrease by a constant step-wise value introduced by clock jump and the steadiness of MW combination is lost. After applying clock jump repairing, the red repaired MW combination series can keep stable, which means no clock jump will be detected as fault cycle slip any more.

Fig. 15.5
figure 5

Original and repaired MW combination observation series for station LEID and C05 satellite

To test the preprocessing method proposed by this paper, we compare this method with the common preprocessing method that does not consider the influence of clock jump. Kinematic precise point positioning (PPP) method is carried out to test the influence of different preprocessing scenario on final positioning results. In our experiment, first preprocessing scenario just uses geometry-free combination and MW combination for cycle slip detection. The second scenario uses the preprocessing method introduced in Sect. 15.4. Other estimation configurations are identical between two scenario. The cut-off angle is set as 10° and the position state is modeled as Gauss white noise [7]. The BDS satellite precise ephemeris is provided by GNSS research center, Wuhan University.

As illustrated in Fig. 15.6, without clock jump repairing, the phase observations for LASA station in DOY 93, 2013 are detected as cycle slip about every 20 min, which leads to frequent re-initialization of ambiguity. The positioning result cannot converge at all and the average positioning accuracy is only at meter level.

Fig. 15.6
figure 6

Kinematic PPP positioning result before clock jump repairing for station LASA

The Fig. 15.7 demonstrates that after clock jump detection and repairing, the positioning accuracy of LASA station is improved. The clock jump repairing process can make the MW combination steadier and not interrupted by clock jump. The frequent re-initialization is avoided, so after the convergence period, the positioning accuracy can keep within 30 cm at most of time.

Fig. 15.7
figure 7

Kinematic PPP positioning result after clock jump repairing for station LASA

Comparing the positioning result of Figs. 15.6 and 15.7, we can safely conclude that the clock jump detection and repairing procedure is necessary for specific GPS/BDS receivers. Only after mitigating the influence of clock jump on cycle slip detection, the reliable and accuracy positioning results can be expected.

6 Conclusions

An effective data preprocessing scenario is a precondition for further observation processing and utilizing. In this paper, to avoid the influence of frequent clock jump on cycle slip detection and improve the positioning accuracy, an observation preprocessing method that resistant to clock jump is come up. After detecting and repairing of clock jump, reliability of the cycle slip detection is guaranteed, which lays a good foundation for positioning estimation.

Limited by observation data volume we collected, the method proposed by this paper mainly focus on duo-frequency observation preprocessing. Further research will study adapting this method for triple-frequency observation preprocessing.