Research Article | Open Access
Instantaneous Triple-Frequency GPS Cycle-Slip Detection and Repair
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.
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 , (b) a high order between-epoch phase differences , (c) Kalman filter prediction , (d) phase combinations [4, 5], (e) phase/code combination , and (f) quality control [6, 7]. In Table 1, these methods are categorized according to the application scenarios.
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 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  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 Detection
2.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 , where denotes the cycle-slip value on the signal.
The carrier phase observation equation for each signal at epoch can be expressed as
where (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; is the integer ambiguity in units of cycles; is the wavelength; is the ionospheric delay; is the tropospheric delay; is the satellite orbit bias; is the satellite clock bias; is the receiver clock bias; is the thermal noise contained in the carrier phase data in units of cycles; is the multipath error. All terms except for , , and are given in units of length.
Suppose that a cycle-slip arises on the signal at the next epoch . We have
where the operator represents the differencing between epochs and .
For triple-frequency GPS signals, a linear combination of between-epoch observation equations can be expressed as
where , , and are scalars. The core idea of cycle-slip detection is to derive the relation between the phase measurement ( terms) and the cycle-slip values ( terms). For this purpose, the nondispersive error term and the dispersive error term need to be cancelled from (4). The term can be eliminated by assuring that the sum of the scalars , , and equals zero, that is, by forming a geometry-free phase combination. The term 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 term is eliminated, and neglecting the between-epoch ionospheric error and multipath error in , (4) can be rewritten as
The carrier phase noise is assumed to be white Gaussian noise. It is further assumed that the signals have the same resolution in units of cycles, that is, . Applying the variance propagation law yields the noise of the left-hand side of (5), expressed by :
where reflects the between-epoch differencing.
By choosing a proper confidence level, we have a critical value to test the occurrence of the cycle-slips, where the scalar denotes the multiplication factor of and is always chosen as (% confidence level) or (% 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:
2.2. The Construction of Optimized Geometry-Free Combinations
For triple-frequency GPS, there are theoretically an infinite number of scalar groups 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 can be converted to their integer counterparts through the following relation:
As the term 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 , 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 having no common divisor. For example, as the effect of the scalar group is equivalent with and , we only take into account.
In order to clearly interpret the minimization of the term , a rigorous expression of (7) should be formulated first by taking the term into account:
Formula (9) reveals that the term to be minimized is actually not itself but divided by the term . After substituting the expression of 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 to denote in the following.
The reduction of thermal noise can be formulated as
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 can be replaced by the corresponding standard deviations. According to the prior assumptions that each signal has the same phase resolution, the relation
should hold true, implying that should be assigned with possibly small values.
The ionospheric delay can be minimized through the following relation:
The between-epoch ionospheric error on a single carrier signal is usually at millimeter level between two close-spaced epochs with high data rate , 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 should be small, and therefore we fix the search range of each from to 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).
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:
It can be understood that the insensitive cycle-slip groups are related to the scalars , 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:
We define the cycle-slip groups in (14) as the most insensitive cycle-slip groups.
The insensitive cycle-slip groups ranging from to cycles belonging to the combination 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.
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.
By comparison, we will use the geometry-free combinations constructed by the scalars and 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 , 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 as shown in Table 6.
|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 and . 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: 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):
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 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 at epoch are assumed to fit an order polynomial expressed by
The coefficients can be estimated using least-squares principle based on the previous phase data of at least 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: where 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 .
4.2. Using Combined Code/Phase Data for Cycle-Slip Determination
Using the code data, the term can be calculated from the following relation:
where the symbol represents the between-epoch code data on the signal; stands for ; 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 . 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 ) and that of cycle-slips (denoted as ) read
where is the variance of and depends on the measurement used; is the covariance matrix of the carrier phase data on the three signals; is a three-dimensional identity matrix; the factor 2 in the expression of reflects the between-epoch differencing; the shorthand notations , and are introduced in model (16).
The estimated float cycle-slips can be obtained according to the least-squares principle:
In LAMBDA, the three-dimensional cycle-slip search space is defined as
where is the float cycle-slip estimate on signal, and 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 . The change of the cofactor matrix and the motion of the ellipsoid center after a specific number of transformations (denoted as ) are expressed as
where the operator reflects the motion of search space center due to the matrix transformation. The construction of the transformation matrix is discussed in . The fixed true cycle-slip value needs to be retransformed by multiplying .
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 . Thus, we only consider the use of LAMBDA technique in this study.
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 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 and 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, value is a constant value. The numbers marked close to the red points represent the epochs. The motion is described in Table 7.
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.
Some parameters need to be specified before establishing the simulation. In formula (7), we set as , meaning that a sigma standard deviation is adopted here. In the cycle-slip determination based on the predicted phase data, we use order polynomial, that is, in formula (17). In (19), we assume that code is available. The standard deviation of the code error is related to that of carrier phase by for low code noise and for high code noise, where is the fundamental GPS frequency of MHz, and is the carrier frequency on signal. For example, in case of the low code noise, equals on signal. For C/A code, this value should be enlarged depending on the technology used. In (17), is so set that the search space contains two cycle-slip candidates. The sampling rate of the observation is 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.
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 to cycles, that is, from to , have been added to the phase data starting from the epoch with the interval of epochs. Figure 4 shows the detection values of these cycle-slip groups using only the first optimal phase combination. Since and cycles as stated before, the threshold in (7) is then cycles.
Except for the cycle-slip group at the 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 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.
From the Figure 6(b) it can be seen that the detection values from the second optimal phase combination apparently exceed the threshold of . 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.
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 and epochs. At epoch, the antenna is changed from a sinuous motion to a straight line motion. At epoch, the antenna has just made a sharp turn between two straight line motions. Since we use a order polynomial fitting, once the antenna has undergone a significant change of the motion direction in the past 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 to into the original phase data with the interval of 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 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.
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 , and 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.