A real-time algorithm to detect, determine, and validate the cycle-slips for triple-frequency GPS is proposed. The cycle-slip detection is implemented by simultaneously applying two geometry-free phase combinations in order to detect more insensitive cycle-slips, and it is applicable for high data rate applications. The cycle-slip determination adaptively uses the predicted phase data and the code data. LAMBDA technique is applied to search for the cycle-slip candidates. The cycle-slip validation provides strict test criteria to identify the cycle-slip candidates under low phase noise. The reliability of the proposed algorithms is tested in different simulated scenarios.
1. Introduction
Failure of the GPS receiver, signal interruption, low signal-to-noise ratio, and high receiver dynamics can cause a sudden jump of a specific integer number of cycles in the carrier phase measurement, which is referred to as cycle-slip. Cycle-slips may occur independently on each carrier frequency per GPS satellite and remain in the phase data.
The handling of cycle-slips is conventionally composed of four sequential stages: ( 1) cycle-slip detection, which checks the occurrence of cycle-slips, ( 2) cycle-slip determination, which quantifies the sizes of cycle-slips, ( 3) cycle-slip validation, which tests whether the cycle-slips are correctly resolved, and ( 4) cycle-slip removal, which removes the cycle-slips from the phase measurement.
The occurrence of cycle-slips is a random event, and therefore the cycle-slip detection should be applied epoch-by-epoch. For this reason, it should be a rapid algorithm with small computational burden. Cycle-slip determination and validation will be performed for the phase data contaminated by the cycle-slips. After the cycle-slip values are fixed and pass the validation, the final stage, namely, cycle-slip removal, can be simply realized by mathematical subtraction.
The processing of cycle-slips can be either applied to stand-alone positioning with only one receiver used or to differential positioning (DGPS) where two or more receivers are involved. In each case, the cycle-slip detection and determination can be further categorized according to the number of available signals. Listed below are the commonly used cycle-slip detection and determination methods, including: (a) polynomial fitting [1], (b) a high order between-epoch phase differences [2], (c) Kalman filter prediction [3], (d) phase combinations [4, 5], (e) phase/code combination [2], and (f) quality control [6, 7]. In Table 1, these methods are categorized according to the application scenarios.
Application scenarios of different cycle-slip detection/determination algorithms.
Stand-alone positioning
Differential positioning
Single frequency
Dual frequency
Single frequency
Dual frequency
(a) (b)
(a) (b) for each frequency; (c) (d) (e)
(a) (b) for differenced phase data
(a) (b) for each frequency; (c) (d) (e) (f)
The methods (a) and (b) are based on the phase data of the previous epochs, and normally 4 or more observation epochs are needed. Therefore, they are applicable in static or low dynamic applications, where the phase data show a smoothed curve when plotted with time. But if the antenna is undergoing a complex motion, the phase is hard to be predicted, and therefore these methods might fail. In comparison with the single-frequency approach, the dual-frequency methods are superior as they do not rely on the motion of the antenna and are very sensitive to detect the small cycle-slips. There are, however, some specific cycle-slip pairs which cannot be readily detected by using the dual-frequency phase combination. The detection of these cycle-slip pairs is still an issue for dual-frequency GPS.
Due to the introduction of the new GPS L5 signal, the traditional approaches dealing with cycle-slip problems should be expanded to triple-frequency case. Literature regarding triple-frequency cycle-slip detection and correction is still scarce, and this motivates us to make an investigation in this field. As the algorithms suitable for stand-alone positioning can also be applied to differential-positioning, our approach is then oriented to the single GPS receiver in order to have a wide range of application scenarios. For cycle-slip detection, we mainly refine the approach based on the geometry-free phase combination [2] and expand it to the triple-frequency case. Major modifications are implemented based on the fact that there are more geometry-free combinations in case of triple-frequency signals. The number of insensitive cycle-slips is decreased with respect to the dual-frequency case by properly choosing two geometry-free combinations. In comparison with the single-frequency method, the proposed triple-frequency approach also has the advantage that it better fits dynamic applications. Considering that the cycle-slips and carrier phase ambiguities have a similar integer nature, we apply the LAMBDA technique to search for the cycle-slip candidates in the cycle-slip determination. Besides that, an efficient cycle-slip validation approach is also introduced.
In Sections 2, 3, and 4, the cycle-slip detection, validation, and determination will be presented, respectively. In Section 5, simulations are carried out to test the performance of the algorithms in various scenarios.
2. Cycle-Slip Detection2.1. Cycle-Slip Detection Model
We first define the cycle-slips occurred on the triple-frequency signal of a GPS satellite as cycle-slip groups(ΔNL1,ΔNL2,ΔNL5), where ΔNLi denotes the cycle-slip value on the Li signal.
The carrier phase observation equation for each signal at epoch t0 can be expressed as
λLiΦLi(t0)=ρ(t0)+λLiNLi-λLi2λL12IL1(t0)+T(t0)+S(t0)+tr(t0)+ts(t0)+λLieLi(t0)+MLi(t0),
where Li (subscript) indicates the corresponding signal; Φ is the carrier phase observable in cycles; ρ is the geometric distance from the GPS receiver's antenna phase center at the epoch of signal reception to the GPS satellite's antenna phase center at the epoch of signal transmission; N is the integer ambiguity in units of cycles; λ is the wavelength; I is the ionospheric delay; T is the tropospheric delay; S is the satellite orbit bias; ts is the satellite clock bias; tr is the receiver clock bias; ei is the thermal noise contained in the carrier phase data in units of cycles; M is the multipath error. All terms except for Φ, N, and ei are given in units of length.
Suppose that a cycle-slip ΔNLi arises on the Li signal at the next epoch t1. We have
λLiΦLi(t1)=ρ(t1)+λLi(NLi+ΔNLi)-λLi2λL12IL1(t1)+T(t1)+S(t1)+tr(t1)+ts(t1)+λLieLi(t1)+MLi(t1).
By differencing (1) and (2) the between-epoch observation equation is obtained as
λLiΔΦLi=Δρ+λLiΔNLi-λLi2λL12ΔIL1+ΔT+ΔS+Δtr+Δts+λLiΔeLi+ΔMLi,
where the operator Δ represents the differencing between epochs t0 and t1.
For triple-frequency GPS signals, a linear combination of between-epoch observation equations can be expressed as
w1λL1ΔΦL1+w2λL2ΔΦL2+w5λL5ΔΦL5=(w1+w2+w5)(Δρ+ΔT+ΔS+Δtr+Δts)︸f(d)+(w1λL1ΔNL1+w2λL2ΔNL2+w5λL5ΔNL5)+[w1w2w5][-ΔIL1+λL1ΔeL1+ΔML1-λL22λL12·ΔIL1+λL2ΔeL2+ΔML2-λL52λL12·ΔIL1+λL5ΔeL5+ΔML5]︸f(e),
where w1, w2, and w5 are scalars. The core idea of cycle-slip detection is to derive the relation between the phase measurement (ΔΦ terms) and the cycle-slip values (ΔN terms). For this purpose, the nondispersive error term f(d) and the dispersive error term f(e) need to be cancelled from (4). The term f(d) can be eliminated by assuring that the sum of the scalars w1, w2, and w5 equals zero, that is, by forming a geometry-free phase combination. The term f(e) is difficult to be eliminated but can be possibly minimized by a proper choice of the scalars. The selection of the scalars will be discussed later, and we will first introduce the cycle-slip detection principle.
Assuming that the f(d) term is eliminated, and neglecting the between-epoch ionospheric error and multipath error in f(e), (4) can be rewritten as
w1λL1(ΔΦL1-ΔeL1)+w2λL2(ΔΦL2-ΔeL2)+w5λL5(ΔΦL5-ΔeL5)=w1λL1ΔNL1+w2λL2ΔNL2+w5λL5ΔNL5.
The carrier phase noise ΔeLi is assumed to be white Gaussian noise. It is further assumed that the signals have the same resolution in units of cycles, that is, σL1,cycle=σL2,cycle=σL5,cycle [8]. Applying the variance propagation law yields the noise of the left-hand side of (5), expressed by σc:
σc=2·w12·λL12+w22λL22+w52λL52·σL1,cycle,
where 2 reflects the between-epoch differencing.
By choosing a proper confidence level, we have a critical value fσc to test the occurrence of the cycle-slips, where the scalar f denotes the multiplication factor of σc and is always chosen as 3 (99.7% confidence level) or 4 (99.9% confidence level) in GPS applications. Based on the prior discussions, once the following inequality holds true, we can conclude that a cycle-slip group arises on this satellite:
|w1λL1ΔΦL1+w2λL2ΔΦL2+w5λL5ΔΦL5|2·w12·λL12+w22λL22+w52λL52≥f·σL1,cycle.
2.2. The Construction of Optimized Geometry-Free Combinations
For triple-frequency GPS, there are theoretically an infinite number of scalar groups wi∣i=1,2,5 which can be used to form the geometry-free combinations, and therefore we need to give some constraints for the choice of the scalars. Firstly, the scalars can be either integer values or float values. However, the float values (wif∣i=1,2,5) can be converted to their integer counterparts wi∣i=1,2,5 through the following relation:
{wi∣wi=wif·10p;i=1,2,5;wi∈ℤ;p∈ℤ;wi∈ℝ}.
As the term 10p will exist on both sides of (4), it will not affect the cycle-slip detection. In this sense, the float scalars are equivalent to the integer scalars, we therefore only consider the integer scalars. The second case to be avoided arises when there is an integer common divisor contained in each scalar group wi∣i=1,2,5, because the common divisor can be canceled simultaneously from the both sides of (4). Summarizing the discussions above, we should only consider the integer scalars wi∣i=1,2,5 having no common divisor. For example, as the effect of the scalar group (-1,-1,2) is equivalent with (-0.01,-0.01,0.02) and (-2,-2,4), we only take (-1,-1,2) into account.
In order to clearly interpret the minimization of the term f(e), a rigorous expression of (7) should be formulated first by taking the term f(e) into account:
|w1λL1ΔΦL1+w2λL2ΔΦL2+w5λL5ΔΦL5-f(e)|2·w12·λL12+w22λL22+w52λL52≥f·σL1,cycle.
Formula (9) reveals that the term to be minimized is actually not f(e) itself but f(e) divided by the term w12·λL12+w22λL22+w52λL52. After substituting the expression of f(e) given in (4) into formula (9), we can start discussing the minimization of the ionosphere term, the thermal noise term, and the multipath term, respectively. For simplicity, we use Scomb to denote w12·λL12+w22λL22+w52λL52 in the following.
The reduction of thermal noise can be formulated as
(w12λL12ΔeL12+w22λL22ΔeL22+w52λL52ΔeL52)Scomb→min.
The magnitude of thermal noise depends on the carrier signals and varies with time. As we have assumed the thermal noise to be white Gaussian noise, the term ΔeLi∣i=1,2,5 can be replaced by the corresponding standard deviations. According to the prior assumptions that each signal has the same phase resolution, the relation
(w12·λL12+w22λL22+w52λL52)Scomb→minorScomb→min
should hold true, implying that wi∣i=1,2,5 should be assigned with possibly small values.
The ionospheric delay can be minimized through the following relation:
(w1+w2·λL22/λL12+w5·λL52/λL12)Scomb→min.
The between-epoch ionospheric error on a single carrier signal is usually at millimeter level between two close-spaced epochs with high data rate [9], and furthermore, the selected phase combination can guarantee that the combined ionospheric error is ignorable.
The multipath error reduction is more difficult in comparison with the thermal noise and ionospheric error reduction, since the multipath error depends on the environment nearby and generally cannot be modeled as a Gaussian distribution. For these reasons, we will not explore the effect of multipath on the cycle-slip detection mathematically. The performance of cycle-slip detection under high multipath environment will be shown later using simulations.
According to the constraints given before, we can choose the scalars to construct the geometry-free combinations. The thermal noise reduction requires that wi∣i=1,2,5 should be small, and therefore we fix the search range of each wi from -4 to +4 cycles. Within this range, the scalars presented in Table 2 yield the geometry-free combinations having relatively small ionospheric residuals, where the “ionospheric residuals” represents the result of the left-hand side of (12).
Geometry-free combinations having small ionospheric residuals.
(w1,w2,w5)
Ionospheric residuals
(w1,w2,w5)
Ionospheric residuals
(-1,4,-3)
0.166ΔIL1
(-2,3,-1)
1.328ΔIL1
(-1,3,-2)
0.388ΔIL1
(-3,4,-1)
1.547ΔIL1
(-1,2,-1)
0.859ΔIL1
(-1,-1,2)
1.576ΔIL1
(-1,-3,4)
0.971ΔIL1
(-2,-1,3)
1.951ΔIL1
(-1,-2,3)
1.171ΔIL1
(-3,-1,4)
2.116ΔIL1
It should be stressed that the scalars should be nonzero values. A zero-valued scalar implies that the cycle-slip detection on the corresponding signal is excluded.
2.3. The Selection of Two Optimized Geometry-Free Combinations
The geometry-free combinations formed by the scalars given in Table 2 can be used to detect the cycle-slips. However, there are some special cycle-slip groups which cannot be readily detected using a single geometry-free phase combination. We define them as insensitive cycle-slip groups, which usually fulfill the following inequality:
|w1λL1ΔΦL1+w2λL2ΔΦL2+w5λL5ΔΦL5|2·w12·λL12+w22λL22+w52λL52<f·σL1,cycle.
It can be understood that the insensitive cycle-slip groups are related to the scalars wi∣i=1,2,5, and hence there exist different insensitive cycle-slip groups depending on the scalars used. Nevertheless, the following cycle-slip groups are always undetectable as they are proportional to their individual frequencies:
{(ΔN1,ΔN2,ΔN5)∣ΔN1=154a,ΔN2=120a,ΔN5=115a,a∈ℕ}.
We define the cycle-slip groups in (14) as the most insensitive cycle-slip groups.
The insensitive cycle-slip groups ranging from 0 to 10 cycles belonging to the combination (w1=-1,w2=-1,w5=2) are given in Table 3. Some statistical results of the insensitive cycle-slip groups within different ranges are presented in Table 4, where the occurrence probability means the ratio of the insensitive cycle-slip groups to all cycle-slip groups.
Insensitive cycle-slips groups corresponding to (w1=-1,w2=-1,w5=2).
Cycle-slip groups (ΔNL1,ΔNL2,ΔNL5)
Detection values (<fσc=0.03)
(0,2,1)
0.0213
(3,4,3)
0.0188
(3,6,4)
0.0025
(3,8,5)
0.0237
(4,1,2)
0.0139
(6,10,7)
0.0163
(7,5,5)
0.0048
(7,7,6)
0.0164
(8,0,3)
0.0066
(10,9,8)
0.0236
Total number and occurrence probability of insensitive cycle-slip groups.
ΔNL1
ΔNL2
ΔNL5
Total number of the insensitive cycle-slip groups
Occurrence probability
≤10
≤10
≤10
10
0.75%
≤50
≤50
≤50
254
0.19%
≤200
≤200
≤200
4001
0.05%
In case of dual-frequency GPS, these insensitive cycle-slips are usually ignored due to their low probability. In triple-frequency GPS, the number of insensitive cycle-slips can be reduced due to the fact that the insensitive cycle-slip groups corresponding to a specific geometry-free combination could be detected by applying other geometry-free combinations. Nevertheless, it is not computationally efficient to apply many geometry-free combinations simultaneously for cycle-slip detection. Our goal is then to detect maximal number of cycle-slip groups using minimal number of geometry-free combinations. From the study we found out that all the cycle-slip groups except for the most insensitive ones can be detected by properly choosing two geometry-free combinations from Table 2. These dual-combinations are presented in Table 5, where the last column shows the sum of the ionospheric residuals.
Two geometry-free phase combinations for cycle-slip detection.
Number
First combination (w1,w2,w5)
Second combination (w1,w2,w5)
Sum of ionospheric residuals
1
(-1,-1,2)
(-1,4,-3)
1.7414ΔIL1
2
(-1,2,-1)
(-1,-3,4)
1.9639ΔIL1
3
(-1,-1,2)
(-1,3,-2)
1.8295ΔIL1
4
(-1,2,-1)
(-1,-2,3)
2.0305ΔIL1
By comparison, we will use the geometry-free combinations constructed by the scalars (-1,-1,2) and (-1,4,-3) simultaneously for cycle-slip detection, because they contribute the smallest ionospheric residuals. We define them as the first optimal phase combination and the second optimal phase combination, respectively.
2.4. TCAR for Cycle-Slip Detection
The Three Carrier Ambiguity Resolution (TCAR), as described in [10], sequentially applies the dual-frequency ambiguity resolution technique based on geometry-free phase combinations. Due to the use of the geometry-free combinations, TCAR is also applicable for cycle-slip detection in triple-frequency GPS. The basic idea is then to sequentially detect the cycle-slips on each combined dual-frequency signal. The procedure canalso be expressed using the scalar groups wi∣i=1,2,5as shown in Table 6.
TCAR for cycle-slip detection.
Number
First combination (w1,w2,w5)
Second combination (w1,w2,w5)
Sum of ionospheric residuals
Number of insensitive cycle-slips within 200 cycles*
1
(1,0,-1)
(1,-1,0)
4.5839ΔIL1
1
2
(1,-1,0)
(0,1,-1)
2.5042ΔIL1
1
3
(1,0,-1)
(0,1,-1)
2.9089ΔIL1
3
4
(1,-1,0)
(-1,4,-3)
2.2554ΔIL1
1
5
(1,0,-1)
(-1,4,-3)
2.6600ΔIL1
1
6
(1,-1,0)
(-1,3,-2)
2.4779ΔIL1
1
*Number “1” implies that only the most insensitive cycle-slip group is undetectable.
Note that the zero-valued scalar in each scalar group makes the triple-frequency phase combination be equivalent to the dual-frequency combination. The first three rows contain only the dual-frequency phase combinations, whereas each row of the last three rows is composed of a dual-frequency combination and a triple-frequency combination. From the last column we know that it is still possible to detect all cycle-slip groups except for the most insensitive ones using TCAR. Nevertheless, TCAR contributes larger ionospheric delay in comparison with the optimal combinations (-1,-1,2) and (-1,4,-3). For this reason, we still use the aforementioned two optimal combinations for cycle-slip detection.
3. Cycle-Slip Validation
Traditionally, the cycle-slip validation is the next step following the cycle-slip determination. But in this study, the cycle-slip validation is embedded into the cycle-slip determination to test the cycle-slip candidates. Thus we will first introduce the cycle-slip validation in this section and then the cycle-slip determination in the next section.
The aforementioned cycle-slip detection approach can serve as the cycle-slip validation approach with a slight modification, as follows:
|w1λL1ΔΦL1repair+w2λL2ΔΦL2repair+w5λL5ΔΦL5repair|2·w12·λL12+w22λL22+w52λL52<f·σL1,cycle.
In comparison with formula (9), the difference of (15) lies in the superscript “repair”, which implies that the carrier phase data are already corrected by subtracting the calculated cycle-slip values from the original phase data. Once the repaired phase data fail in the test, it means that this cycle-slip candidate under test cannot be the true value.
4. Cycle-Slip Determination
Once the cycle-slips on a satellite have been detected, the next step is then to quantify the integer cycles of the slips. A general model for cycle-slip determination can be formulated by rewriting the between-epoch phase observation equations expressed in (4):
[λL1ΔΦL1-ΔρλL2ΔΦL2-ΔρλL5ΔΦL5-Δρ]︸l=[λL1000λL2000λL5]︸A[ΔNL1ΔNL2ΔNL5]︸x+e,
where the nondispersive errors, including tropospheric delay, satellite, and receiver clock bias, are put into the Δρ term since they contribute the same amount to all phase observables; column vector e includes the measuring noise, multipath error, and the remaining ionospheric error after being differenced. By comparing (16) with (4) it can be seen that the term Δρ is shifted to the left-hand side of the equation as a known value in order to avoid an underdetermined model. However, term Δρ is still unknown and should be fixed a priori using additional measurement immune to cycle-slips. Then the estimated float cycle-slips and the corresponding covariance matrix will be obtained, so that a search space for the integer cycle-slip candidates can be defined. The true cycle-slip value can be identified by testing all the candidates using the cycle-slip validation procedure.
For a single receiver, the following data can be employed to estimate Δρ: (a) predicted phase data based on a polynomial fitting, (b) code/phase combination, and (c) Doppler frequency data.
The Doppler frequency data, however, are not available for some receivers. As the Doppler data reflect the instantaneous phase rate between two adjacent epochs, they can also be treated as a first order polynomial fitting. For these reasons, we mainly focus on the first two types of measurement in the following text.
4.1. Using Predicted Phase Data for Cycle-Slip Determination
The phase data f(t) at epoch t are assumed to fit an n order polynomial expressed by
f(t)=antn+an-1tn-1+⋯+a1t+a0.
The coefficients ai∣i=0,…,n can be estimated using least-squares principle based on the previous phase data of at least n+1 epochs. The residuals of the least-squares estimation reflect the quality of the polynomial fitting and can be used as the variance of Δρ. Using the calculated coefficients, the term Δρ is calculated from:
Δρ=f(tc)-Φtc-1,
where tc represents the current epoch. The phase prediction based on polynomial fitting is the most commonly used cycle-slip detection and determination method for single-frequency receivers. As stated before, it provides high-quality phase estimation in static or low dynamic case and is less affected by multipath error, so that the estimated float value is very close to the true value. But once the antenna is undergoing a complex motion, this method might provide unexpected results. Similar as the predicted phase data, it is also hard to acquire the Doppler frequency data with sufficient accuracy for moving antennas [11].
4.2. Using Combined Code/Phase Data for Cycle-Slip Determination
Using the code data, the term Δρ can be calculated from the following relation:
[ΔRL1ΔRL2ΔRL5]=I3×1Δρ+ecode,
where the symbol ΔRLi represents the between-epoch code data on the Li signal; I stands for [111]T; ecode contains the thermal noises of the code data.
The model (19) employs the code data on three signals. Actually, only the code data on a single signal enough to calculate Δρ. The Δρ can be obtained according to the least-squares principle once the covariance matrix of code data is assigned a priori.
The Δρ resulted from the code data is not affected by the motion status of the antenna, but using code data will cause the problems in the following two aspects. Firstly, the high noise of the code data will result in a less accurate float estimate of the cycle-slips and a large search space, somehow degrading the efficiency. Secondly, in the rich-multipath environment, the multipath error contained in the code data will bias the estimated float cycle-slip values to a large extent. Consequently, the origin of the search space will be significantly deviated from the true value, and the true value might not exist inside the search space.
4.3. The Search of the Cycle-Slip Candidates
The search of cycle-slip candidates can be implemented by applying the LAMBDA technique [12]. Although the LAMBDA technique is related to the ambiguity resolution, it is still reasonable for the cycle-slip determination as the cycle-slips and the phase ambiguities are both integers. A slight difference lies in the validation of the candidates. The ambiguity candidates are ranked according to their least-squares residuals, and the best candidate should offer significantly lower least-squares residuals than the second best one. But in this study, the cycle-slip validation can identify the cycle-slip candidates rapidly and sensitively, and hence each candidate can be tested by directly invoking the cycle-slip validation. In other words, we only use the decorrelation and searching functions of LAMBDA, but not the selection criteria.
Two parameters are needed in order to invoke the LAMBDA technique: the covariance matrix of the cycle-slips and the estimated float cycle-slip values. In (16), the covariance matrix of known values (denoted as Ql) and that of cycle-slips (denoted as Qx) read
Ql=2·AQΦAT+Iσρ2,Qx=(ATQl-1A)-1,
where σρ2 is the variance of Δρ and depends on the measurement used; QΦ is the covariance matrix of the carrier phase data on the three signals; I is a three-dimensional identity matrix; the factor 2 in the expression of Ql reflects the between-epoch differencing; the shorthand notations A, l, and x are introduced in model (16).
The estimated float cycle-slips x̂ can be obtained according to the least-squares principle:
x̂=[ΔN̂L1ΔN̂L2ΔN̂L5]T=QxATQl-1l.
In LAMBDA, the three-dimensional cycle-slip search space is defined as
C={x∣(x-ΔN̂)TQx-1(x-ΔN̂)≤χ2,x=[xL1xL2xL5]T∈ℤ3,ΔN̂=[ΔN̂L1ΔN̂L2ΔN̂L5]T∈ℝ3},
where ΔN̂Li is the float cycle-slip estimate on Li signal, and Qx is the corresponding covariance matrix. The decorrelation of the search space is achieved by iteratively applying the integer approximations of the conditional least-squares transformations [12]. The change of the cofactor matrix and the motion of the ellipsoid center after a specific number of transformations (denoted as Zc) are expressed as
Q′=ZcQxZcT,[NL1′ΔNL2′ΔNL5′]T=Zc·[ΔN̂L1ΔN̂L2ΔN̂L5]T,
where the operator NLi′ reflects the motion of search space center due to the matrix transformation. The construction of the transformation matrix is discussed in [7]. The fixed true cycle-slip value needs to be retransformed by multiplying Zc-1.
4.4. Summary of Cycle-Slip Determination
The proposed cycle-slip determination is composed of three steps. The first step is to calculate the term Δρ using either the predicted phase data or phase/code combination. The second step is then to search for the cycle-slip candidates using LAMBDA technique. The third step is to test each the cycle-slip candidate using the cycle-slip validation.
The predicted phase value and the code/phase combination can be adaptively used to calculate Δρ. The first choice is the predicted carrier phase data. If only one candidate passes the validation, we can say that the cycle-slip value has been successfully determined. If this is not the case, the code data can be used instead to calculate Δρ. If the true cycle-slip value is still not resolvable, it can be concluded that the cycle-slip determination is not capable of offering reliable cycle-slip estimation, and hence the phase data of current epoch cannot be further used for positioning. In this case, the handling of cycle-slips should be shifted to the next epoch.
TCAR technique can also be applied for the cycle-slip determination. However, LAMBDA will always perform better or at least as good as TCAR, in a sense that it offers the highest probability of success [13]. Thus, we only consider the use of LAMBDA technique in this study.
5. Simulation
Some simulations are carried out to test the algorithms. The code and carrier phase data are generated using the commercial GNSS software simulator SatNav Toolbox 3.0 for MATLAB® by GPSoft®. In this software simulator, the error-free phase and code data are generated first according to the simulated satellite coordinates and the antenna location. Then the errors are added to the phase and code data, where the thermal noise on the phase and code data is produced as white Gaussian noise. The other errors including the ionospheric error, tropospheric error, and multipath error are generated according to the corresponding parameters.
We assume that the antenna is undergoing a movement along a trajectory illustrated in Figure 1. Given in the axes are the coordinates in Xand Y direction in an Earth-Centered-Earth-Fixed frame. We assume that the antenna is always moving at the ellipsoidal height of 360 m; that is, Zvalue is a constant value. The numbers marked close to the red points represent the epochs. The motion is described in Table 7.
Description of the antenna motion.
Epoch
Motion description
1–10
A constant velocity linear motion with the velocity of 30m/s along X-axis
11–70
Sinusoidal motion with a constant X velocity of 30 m/s. The motion covers a 2π period, and the magnitude of the change in Y-axis is 60 m
71–80
A constant velocity linear motion with the velocity of 30 m/s along X-axis and 1 m/s along Y-axis
81–90
A constant velocity linear motion with the velocity of 30 m/s along X-axis and -1 m/s along Y-axis
91–104
A constant velocity linear motion with the velocity of 30 m/s along X-axis
Motion trajectory of the antenna.
The multipath error generated by the software GPS simulator is depicted in Figures 2 and 3, respectively. Figure 2 shows the multipath error contained in the carrier phase data and the code data in low multipath environment, whereas Figure 3 shows the multipath error in high multipath environment. Both have the same pattern but different magnitude.
Low multipath error in carrier phase and code data.
High multipath error in carrier phase and code data.
Some parameters need to be specified before establishing the simulation. In formula (7), we set f as 3, meaning that a 3-sigma standard deviation is adopted here. In the cycle-slip determination based on the predicted phase data, we use 3-order polynomial, that is, n=3 in formula (17). In (19), we assume that P-code is available. The standard deviation of the P-code error is related to that of carrier phase by σRLi/σΦLi=fLi/f0 for low code noise and σRLi/σΦLi=3·fLi/f0 for high code noise, where f0 is the fundamental GPS frequency of 10.23 MHz, and fLi is the carrier frequency on Li signal. For example, in case of the low code noise, σRL1/σΦL1 equals 154 on L1 signal. For C/A code, this value should be enlarged depending on the technology used. In (17), X2 is so set that the search space contains two cycle-slip candidates. The sampling rate of the observation is 1 second. Note that in the following figures, the notation “Detection value” represents the result of the left-hand side of formula (7).
We designed different scenarios to test the proposed approaches. A comparison of these scenarios is given in Table 8.
Comparison of different simulation scenarios.
Scenario
Remarks
Related sections
Low phase noise
σLi,cycle=0.01 cycles
Sections 5.1, 5.2, 5.3, 5.4, 5.7, 5.8
High phase noise
σLi,cycle=0.05 cycles
Sections 5.5, 5.6
Low multipath
Shown in Figure 2
Sections 5.1, 5.2, 5.5, 5.6, 5.7, 5.8
High multipath
Shown in Figure 3
Sections 5.3, 5.4
Low code noise
σRLi/σΦLi=fLi/f0
Sections 5.1, 5.2, 5.3, 5.4, 5.8
High code noise
σRLi/σΦLi=3·fLi/f0
Sections 5.5, 5.6, 5.7
The original phase data are confirmed as cycle-slip free, and hence some cycle-slip groups should be added to the original carrier phase data to test the algorithm. After the cycle-slips are fixed, they will be removed directly from the raw phase data and hence will not affect the following epochs any more. Therefore, even when the cycle-slips occur epoch-by-epoch, the algorithm still works properly.
5.1. Cycle-Slip Detection in Low Multipath Environment
Small cycle-slips ranging from 0 to 2 cycles, that is, from (0,0,1) to (2,2,2), have been added to the phase data starting from the 2nd epoch with the interval of 4 epochs. Figure 4 shows the detection values of these cycle-slip groups using only the first optimal phase combination. Since f=3 and σL1,cycle=0.01 cycles as stated before, the threshold f·σL1,cycle in (7) is then 0.03 cycles.
Cycle-slip detection for small cycle-slips using the first optimal phase combination.
Except for the cycle-slip group (0,2,1) at the 26th epoch, the detection values of the other small cycle-slip groups exceed thethreshold; therefore this detection algorithm can be regarded as a sensitive algorithm for small cycle-slips.
Problems with detection are shown by using the cycle-slip groups from Table 3. According to the previous analysis, these cycle-slips cannot be detected by using the first optimal phase combination. This also explains why the cycle-slip group (0,2,1) lies within the thresholds in Figure 4. We add these insensitive cycle-slips into the original phase data at the epochs marked in Figure 5. Figure 6 demonstrates the different detection values when detecting cycle-slips using the aforementioned two optimal phase combinations.
Epochs when the insensitive cycle-slips arise.
Cycle-slip detection using two geometry-free combinations.
From the Figure 6(b) it can be seen that the detection values from the second optimal phase combination apparently exceed the threshold of ±0.03. This implies that these cycle-slip groups insensitive to the first optimal phase combination have been detected by using the second optimal phase combination.
5.2. Test of Cycle-Slip Determination in Low Multipath Environment
We use the cycle-slip groups in Table 3 again to test the cycle-slip determination and add them to the phase data at the epochs given in Figure 5. The results obtained from the phase prediction and from the code/phase combination are given in Table 9, respectively. Multipath error is illustrated in Figure 2.
Cycle-slip determination results under low multipath environment.
Epoch
True value
Float value (phase prediction)
Float value (phase/code)
Integer value (phase prediction)
Integer value (phase/code)
7
0,2,1
0.015,1.953,0.925
3.442,4.678,3.560
0,2,1
0,2,1
17
3,4,3
3.007,4.020,2.984
1.734,3.023,2.063
3,4,3
3,4,3
25
3,6,4
3.020,6.047,4.090
2.336,5.489,3.508
3,6,4
3,6,4
36
3,8,5
2.948,7.994,5.085
6.224,10.508,7.425
3,8,5
3,8,5
40
4,1,2
3.991,1.055,2.047
2.923,0.183,1.230
4,1,2
4,1,2
50
6,10,7
6.064,9.990,6.945
6.338,10.236,7.216
6,10,7
6,10,7
60
7,5,5
6.957,4.966,5.017
11.495,8.505,8.376
7,5,5
7,5,5
72
7,7,6
-27.197,-19.627,-19.565
-0.426,1.207,0.438
None
7,7,6
77
8,0,3
7.897,-0.093,2.918
9.215,0.957,3.910
8,0,3
8,0,3
82
10,9,8
15.084,13.039,11.830
1.513,2.390,1.658
None
10,9,8
In Table 9, the notation “None” implies that the cycle-slip value cannot been correctly determined, or in other words, none of the results outputted from LAMBDA has passed the cycle-slip validation procedure. It can be seen that the method based on the phase prediction fails at the 72nd and 82nd epochs. At 72nd epoch, the antenna is changed from a sinuous motion to a straight line motion. At 82nd epoch, the antenna has just made a sharp turn between two straight line motions. Since we use a 3-order polynomial fitting, once the antenna has undergone a significant change of the motion direction in the past 4 epochs, the phase prediction will probably provide a wrong result. However, the incorrectly estimated cycle-slip values can be still filtered out by the cycle-slip validation.
As discussed before, the cycle-slip determination based on the phase/code combinations is independent of the motion status of the antenna. Under the low multipath environment, the multipath error on the code data will not severely bias the float cycle-slip estimate, so that the LAMBDA technique will provide the correct integer cycle-slip values. The results listed in the last column of Table 9 reveal that these cycle-slips are correctly identified since the estimated integer values equal the corresponding true values.
5.3. Test of the Cycle-Slip Detection in High Multipath Environment
The multipath error on the carrier phase data is several orders of magnitude lower than that contained on the code data. The detection part is mainly carrier phase related and hence less affected by the multipath.
We first use insensitive cycle-slips given in Table 3 to check the different detection values in different multipath environments. The detection results using the first optimal phase combination are depicted in Figure 7. Although different multipath errors yield different detection values, these detection values are still limited within the thresholds. Figure 8 shows the detection values when adding small cycle-slips ranging from (0,0,1) to (2,2,2) into the original phase data with the interval of 4 epochs. Comparing it with the results given in Figure 4 we can see similar detection values in low and high multipath environments, and also, all the cycle-slips, except for the insensitive cycle-slip at the 26th epoch, are detectable. The results obtained from Figures 7 and 8 agree with our analysis that the multipath error does not affect the cycle-slip detection significantly.
Comparison of cycle-slip detection under low/high multipath environments.
Cycle-slip detection for small cycle-slips under high multipath.
5.4. Test of the Cycle-Slip Determination in High Multipath Environment
The method based on the predicted phase data is less affected by the multipath, as only the phase data are involved. Once the phase/code combinations are employed to determine the cycle-slips, the term Δρ will be severely affected by the large multipath error on the code data. A significant change of multipath error on coda data between close-spaced epochs will bias the center of the search space to a large extent, so that the initial search scope might not contain the true cycle-slip values.
We add the same insensitive cycle-slips used in lowmultipath environment into the phase data. The multipath error is depicted in Figure 3. The determination results are given in Table 10. By comparing Tables 9 and 10 we can see that the cycle-slip determination based on the phase prediction shows a similar performance in low and high multipath environments. When using the phase/code combinations for cycle-slip determination, the cycle-slips at the 7th, 36th, and 40th epoch cannot be fixed in high multipath environment, whereas these cycle-slips can be correctly identified in the low multipath environment as shown in Table 9.
Cycle-slip determination under high multipath environment.
Epoch
True value
Float value (phase prediction)
Float value (phase/code)
Integer value (phase prediction)
Integer value (phase/code)
7
0,2,1
0.038,1.971,0.939
26.081,22.334,20.464
0,2,1
None
17
3,4,3
2.967,4.036,2.983
3.097,4.089,3.094
3,4,3
3,4,3
25
3,6,4
2.989,6.063,4.122
18.039,17.741,15.238
3,6,4
3,6,4
36
3,8,5
2.946,8.010,5.106
24.371,24.653,20.988
3,8,5
None
40
4,1,2
4.014,1.033,2.046
-20.327,-17.950,-16.158
4,1,2
None
50
6,10,7
6.017,10.013,6.907
21.938,22.402,18.875
6,10,7
6,10,7
60
7,5,5
6.946,4.980,4.971
27.186,20.740,20.095
7,5,5
7,5,5
72
7,7,6
-27.114,-19.593,-19.551
-5.201,-2.526,-3.108
None
7,7,6
77
8,0,3
7.892,-0.093,2.896
1.297,-5.210,-2.021
8,0,3
8,0,3
82
10,9,8
15.092,13.051,11.819
-1.531,0.013,-0.628
None
10,9,8
5.5. Test of the Cycle-Slip Detection with High Phase Noise
In formula (7), the threshold of the cycle-slip detection depends not only on the confidence level used (the term f) but also on the standard deviation of the carrier phase noise, namely, the term σLi,cycle. The effect of the phase noise on the cycle-slip detection can be analyzed by assigning different values to the term σLi,cycle. Depicted in Figure 9 is a comparison between the detection values under low phase noise (σLi,cycle=0.01 cycles) and high phase noise (σLi,cycle=0.05 cycles) when using the first optimal phase combination to detect small cycle-slips.
Cycle-slip detection under high phase noise.
Figure 9(a) is actually identical to Figure 4. From the Figure 9(b) we can see that the number of undetectable cycle-slips is increased under high phase noise, meaning that the cycle-slip detection becomes less sensitive in this case.
5.6. Test of the Cycle-Slip Determination with High Phase and Code Noise
High phase and code noise result in a large search space for cycle-slip candidates, and more important, the sensitivity of the cycle-slip validation is degraded as it is based on the similar approach as cycle-slip detection. Consequently, more cycle-slip candidates might pass the cycle-slip validation, including the true cycle-slip values and the wrong cycle-slip values. Once more than one candidate exists, these candidates should be ranked in order to select the best one. The candidate having the minimal least-squares residuals obtained from LAMBDA technique can be considered as the best estimate of the cycle-slip value. However, such a ranking cannot guarantee that the selected candidate is the true value. This can be seen from the following example.
We also use the insensitive cycle-slips to test the cycle-slip determination but add high noises specified in Table 8 to the phase and code measurement. The determination results are presented in Table 11.
Cycle-slip determination under high phase and code noise. SR is the squared norm of residuals outputted from LAMBDA.
Epoch
True value
Using phase prediction
Using phase/code combination
Integer value (phase prediction)
Total Candidates (phase prediction)
Candidate number 1
Candidate number 2
SR number 1
SR number 2
SR number 2/SR number 1
7
0,2,1
0,2,1
1
27,23,21
31,26,24
3.401
5.060
1.488
17
3,4,3
3,4,3
1
3,4,3
-1,1,0
1.308
4.230
3.234
25
3,6,4
3,6,4
1
3,6,4
-1,3,1
0.605
4.046
6.689
36
3,8,5
3,8,5
1
3,8,5
7,11,8
1.500
1.803
1.202
40
4,1,2
4,1,2
1
4,1,2
0,-2,-1
2.098
5.426
2.586
50
6,10,7
6,10,7
1
5,9,6
6,10,7
3.133
4.773
1.524
60
7,5,5
7,5,5
1
7,5,5
39,30,29
4.224
4.246
1.005
72
7,7,6
None
0
7,7,6
3,4,3
2.208
5.263
2.384
77
8,0,3
8,0,3
1
8,0,3
4,-3,0
0.531
2.518
4.740
82
10,9,8
None
0
10,9,8
6,6,5
1.287
1.607
1.249
When using phase prediction technique, the algorithm provides similar results as Section 5.2. The column labeled by “Total candidates” reveals that there is maximal one candidate which can pass the validation. As only the phase data is employed in the phase prediction technique, the search scope is very limited and contains only a small number of candidates. Consequently, it does not likely happen that more candidates lying in the search scope can pass the cycle-slip validation.
In comparison with phase prediction technique, the phase/code combination leads to a significantly enlarged search scope with much more candidates existing inside. According to our settings, the LAMBDA searches for the first two candidates having the minimal least-squares residuals. Due to the degraded sensitivity of the cycle-slip validation, both candidates can pass the validation. The values of the candidates are given in the columns labeled by “Candidate number 1” and “Candidate number 2”. The least-squares residuals of both candidates and the ratio of the residuals are also presented in the last three columns, respectively. It can be observed that the cycle-slips occurred at the 7th and 50th epochs are not correctly resolved using phase/code combination. At the 7th epoch, the correct cycle-slips values are excluded from the two candidates, whereas at the 50th epoch, the true candidate has the second minimal least-squares residuals. We can see from the last column that most ratios of the least-squares residuals are lower than 2, including the epochs when the cycle-slip determination failed. Based on the experience from the phase ambiguity validation, such a ratio implies that the candidate with the minimal least-squares residuals cannot be confirmed as the true value from the statistical point of view. Based on the previous discussions we can see that the cycle-slip determination is more challenging under high phase and code noise. However, we can still evaluate the reliability of the cycle-slip determination by checking the ratio of the least-squares residuals.
It should be stressed that as the GPS receiver technique improves, the carrier phase resolution has already achieved a level of 1% or even 0.1% of the wavelength [2]. This means that the high phase noise as assumed here does not likely happen in the triple-frequency receiver.
5.7. Test of the Cycle-Slip Determination with High Code Noise and Low Phase Noise
Not like Section 5.6, we consider the cycle-slip determination under high code noise and low phase noise. The determination results are given in Table 12.
Cycle-slip determination results under high code noise and low phase noise.
Epoch
True value
Float value (phase prediction)
Float value (phase/code)
Integer value (phase prediction)
Integer value (phase/code)
7
0,2,1
0.015,1.953,0.925
9.776,9.613,8.290
0,2,1
0,2,1
17
3,4,3
3.007,4.020,2.984
-1.038,0.863,-0.006
3,4,3
3,4,3
25
3,6,4
3.020,6.047,4.090
4.663,7.302,5.245
3,6,4
3,6,4
36
3,8,5
2.948,7.994,5.085
7.289,11.338,8.220
3,8,5
3,8,5
40
4,1,2
3.991,1.055,2.047
0.273,-1.882,-0.748
4,1,2
4,1,2
50
6,10,7
6.064,9.990,6.945
7.666,11.270,8.207
6,10,7
6,10,7
60
7,5,5
6.957,4.966,5.017
7.563,5.440,5.444
7,5,5
7,5,5
72
7,7,6
-27.197,-19.627,-19.565
5.733,6.004,5.043
None
7,7,6
77
8,0,3
7.897,-0.093,2.918
16.790,6.847,9.541
8,0,3
8,0,3
82
10,9,8
15.084,13.039,11.830
-1.810,-0.227,-0.812
None
10,9,8
In comparison with Table 9 it can be observed that since we do not change the phase noise, the results based on phase prediction technique are identical in both of the high or low code noise cases. The high code noise is reflected in the 4th column as different float cycle-slip values have been obtained in comparison with Table 9. Nevertheless, all the cycle-slips are still correctly identified. There are mainly two reasons behind this. Firstly, although both of the code noise and multipath error in code data will bias the cycle-slip search center, the effect of the former is much smaller than the latter, and hence the true cycle-slip value still exists in the search scope. Secondly, since the phase noise is not changed, the cycle-slip validation has the same sensitivity and can still provide the strict test criterion to identify the cycle-slip candidates.
5.8. Test of the Cycle-Slip Detection with Long Observation Interval
The cycle-slip detection criterion is established based on the assumption that the ionospheric delay changes slightly between the adjacent epochs. This assumption is valid for short observation interval. For a long observation interval, the change of the ionospheric delay can be large and will remarkably affect the cycle-slip detection. We designed a static scenario to show effects of the observation interval on the ionospheric delay and the cycle-slip detection, where the antenna is fixed at the initial position as given in Figure 1, and the observation takes 60 epochs. The ionospheric delay on L1 signal under different observation intervals is plotted versus time in Figure 10. As we are only interested in the changes of the ionospheric delay over time, the presented results are actually obtained with respect to the value of the initial epoch. In Figure 11, the detection results based on the first optimal phase combination are depicted.
Ionospheric delay under different observation intervals.
Cycle-slip detection values under different observation intervals.
Figure 10 shows that the between-epoch ionospheric delay achieves a centimeter level with the observation interval of 30 seconds. With the increasing observation intervals, the detection values approach the threshold. For the observation interval of 30 seconds, some detection values even override the threshold, resulting in a wrong judgment on the cycle-slip occurrence. In this sense we can say that the proposed cycle-slip detection method is only applicable under high data rate.
6. Flowchart
The entire algorithm for cycle-slip detection, determination, and validation is presented inFigure 12.
Flowchart.
7. Conclusion
An entire algorithm to tackle the cycle-slip problem for triple-frequency GPS is presented. The algorithm is designed for a single GPS receiver and suitable for real-time static or dynamic applications.
The cycle-slip detection is implemented using two geometry-free phase combinations constructed by the scalars w1=-1, w2=-1, w5=2 and w1=-1, w2=4, w5=-3 in order to detect more insensitive cycle-slips. The proper performance of the cycle-slip detection relies on the slight change of ionospheric delay between two adjacent epochs, and hence this approach is only valid for the applications with a high data rate. In some extreme cases, for example, magnetic storm, the detection approach may provide unexpected results. Multipath error will not affect the cycle-slip detection significantly, but if the phase noise is high, the sensitivity of the cycle-slip detection will be degraded.
In the cycle-slip determination, the float cycle-slip values can be estimated from two different sources, either from the phase prediction technique or from the code/phase combination. The phase prediction technique is less affected by the multipath error but will probably fail in a complex motion. The code/phase combination is independent of the antenna motion but will be contaminated by the high multipath error on the code data. In order to improve the robustness, both techniques can be adaptively applied. The phase prediction can be used first. If this fails, then the phase/code combination can be used instead.
The sensitivity of the cycle-slip validation is mainly affected by the phase noise. With the improvement of the GPS receiver technology, a phase noise of 1% cycles or even lower than that can be achieved. At such a noise level, the cycle-slip validation provides strict test criteria to identify the cycle-slip candidates. Once the phase noise is high, more than one candidate could pass the validation when using code/phase combinations for cycle-slip determination. In this case, the candidates can be first ranked according to the least-squares residuals outputted from LAMBDA. Moreover, the ratio of the least-squares residuals between the best and second best candidates can be used to determine whether the best candidate is acceptable.
Acknowledgment
This work was funded in part by the German Research Foundation (DFG) under Grant no. KN 876/1-2, which is gratefully acknowledged.
BeutlerG.Some theoretical and practical aspects of geodetic positioning using carrier phase difference observations of GPS satellites1984New Brunswick, CanadaUniversity of New BrunswickHofmann-WellenhofB.2001Wien, AustriaSpringerDe JongC. D.Real-time integrity monitoring, ambiguity resolution and kinematic positioning with GPSProceedings of the 2nd European Symposium1998Toulouse, FranceVIII07/1VIII07/7BisnathS.LangleyR. B.Automated cycle-slip correction of dual-frequency kinematic GPS dataProceedings of the 47th Annual Conference of the Canadian Aeronautics and Space Institute2000Ottawa, Canada121125BlewittG.An automatic editing algorithm for GPS data1990173199202EID2-s2.0-0025224428KimD.LangleyR. B.Instantaneous real-time cycle-slip correction of dual frequency GPS dataProceedings of the International Symposium on Kinematic Systems in Geodesy, Geomatics and Navigation2001Banff, Canada255264TeunissenP. J. G.KleusbergA.1998Berlin, GermanySpringerLeickA.2004New York, NY, USAJohn Wiley & SonsBorreK.The easy suite—matlab code for the GPS newcomer200374751VollathU.An analysis of three-carrier ambiguity resolution (TCAR) technique for precise relative positioning in GNSS-2Proceedings of the 11th International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GPS '98)1998Nashville, Tenn, USA417426LippA.GuX.Cycle-slip detection and repair in integrated navigation systemsProceedings of the IEEE Position Location and Navigation Symposium1994681688EID2-s2.0-0028090934TeunissenP. J. G.The least-squares ambiguity decorrelation adjustment: a method for fast GPS integer ambiguity estimation1995701-2658210.1007/BF00863419EID2-s2.0-32644452469TeunissenP.A comparison of TCAR, CIR and LAMBDA GNSS ambiguity resolutionProceedings of the 15th International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GPS '02)2002Portland, Ore, USA27992808