Introduction

The GPS pseudorange measurements contain offsets between P1 and P2, often referred to as Differential Code Biases (DCB), inherent to receiver and satellite hardware. The problem of additional hardware code biases has to be handled when addressing absolute Total Electron Content (TEC) determination. Absolute GPS TEC estimates can be obtained only when hardware biases are effectively removed. It results in the necessity of DCB estimation together with TEC. There exist different methods developed to obtain accurate TEC and DCB values. Some of the methods consider DCB estimation in the context of regional or global TEC mapping for ionospheric studies (Komjathy and Langley 1996; Goodwin and Breed 2001; Otsuka et al. 2002; Brunini et al. 2005). Another group of methods aimed at developing accurate ionospheric correction models for current and future Wide Area RTK systems. (Kee and Yun 2002; Hernandez-Pajares et al. 2004). In all such methods, satellite and receiver DCBs are included as additional unknowns into mathematical models for TEC determination. Polynomials or spherical harmonics can be used to model variations of TEC in space and time (Coco et al. 1991; Bishop et al. 1996; Jakowski et al. 1996; Kee and Yun 2002; Chen et al. 2004). Data from either GPS networks or single receivers are used. In the latter case, only receiver DCBs are normally determined, whereas satellite DCB code biases are supposed to be known, e.g., from the navigation message. Kalman filter is often used to estimate DCBs (Sardon et al. 1994; Anghel et al. 2009; Carrano et al. 2009). A method of DCB estimation by using neural networks is considered in Ma et al. (2005). Correctness of DCB estimation in such methods depends on how accurately TEC can be derived from GPS measurements. In turn, the accuracy of TEC determination can be degraded for disturbed ionosphere and for some ionosphere regions. Accuracy analysis of DCB determination from GPS measurements over some regions was carried out in the study by Zhang et al. 2010. The effect of considering ionosphere morphology, in particular, the influence of the plasmasphere on the accuracy of GPS TEC and DCB estimation were discussed, e.g., in the study by Lunt et al. 1999; Mazzella et al. 2002. The influence of geomagnetic storms on the estimation of DCBs was discussed in the study by Zhang et al. 2009.

Recently, accurate DCB values can be taken from the Global Ionosphere Maps (GIM) of the International GNSS Service (IGS). Most of the IGS DCB biases are the combinations of DCB solutions from the following four Analysis Centres (AC): CODE (University of Bern, Switzerland), ESA (European Space Agency, Germany), JPL (Jet Propulsion Laboratory, USA), and UPC (Technical University of Catalonia, Spain). However, whereas the IGS ionosphere products provide accurate DCB values for all GPS satellites, the receiver DCBs are available for a limited number of IGS stations only. Because of this, DCB values for an arbitrary stand-alone GPS receiver have to be computed using the GIM vertical TEC (VTEC) gridded estimates. Reliable stand-alone receiver DCB estimation could be useful, for instance, for Precise Point Positioning (PPP). In particular, it can make PPP models using raw code and carrier phase measurements practical for most GNSS users. One algorithm of receiver DCB estimation using GIM VTEC data called IONOLAB-BIAS is described in Arikan et al. (2008). It computes receiver DCB values for each satellite and each observation epoch. Finally, all individual DCBs are averaged over, e.g., 24-h time intervals. In this study, a new algorithm for single receiver DCB computation is proposed. Instead of simple averaging, we consider a possibility to estimate single receiver DCBs and vertical ionospheric delays using the least squares approach with linear constraints. Like IONOLAB-BIAS, our algorithm computes receiver DCBs using GIM VTEC values and can be considered for online use. Meanwhile, as shown below, it is able to provide a better agreement with IGS DCB values.

A new algorithm for single receiver DCB estimation

In this chapter, a detailed description of the proposed algorithm for single receiver DCB estimation is given. All essential parts of the algorithm are presented.

Theoretical description

We follow the standard approach and consider the geometry free combination of the carrier phase-smoothed code measurements \( \tilde{P}_{4} \):

$$ \tilde{P}_{4} = \tilde{P}_{1} - \tilde{P}_{2} $$
(1)

where \( \tilde{P}_{1} \) and \( \tilde{P}_{2} \) are the carrier phase-smoothed code measurements on the L1 (1,575.42 MHz) and L2 (1,227.60 MHz) frequencies. This combination removes all common geometry-dependent errors. The only parameters remaining in the mathematical model for \( \tilde{P}_{4} \) are ionospheric delay, and satellite and receiver DCB. In case data from cross-correlation style receivers are used, an additional P1-C1 term appears. Omitting the P1-C1 term without losing generality, the mathematical model for \( \tilde{P}_{4} \) reads:

$$ E\left\{ {\tilde{P}_{4} } \right\} = - \left( {\frac{{f_{1}^{2} - f_{2}^{2} }}{{f_{2}^{2} }}} \right)F\left( z \right) \cdot I_{r} + c \cdot \Updelta b^{s} + c \cdot \Updelta b_{r} $$
(2)

where \( E\left\{ \cdot \right\} \) is the expectation operator; f 1 and f 2 are the L1 and L2 carrier frequencies; Δb s is the Differential Code Bias for satellite s; Δb r is the Differential Code Bias for receiver r; I r is the vertical ionospheric delay at the location of receiver r, which is the following function of the vertical TEC:

$$ I_{r} = \frac{40.3}{{f_{1}^{2} }} \cdot VTEC $$
(3)

F is the ionospheric mapping function depending on the zenith distance z of satellite s. In this research, we used a modified single layer mapping function as presented in Grejner-Brzezinska et al. (2004):

$$ F\left( z \right) = \frac{1}{{\cos \left( {z'} \right)}}\quad {\text{with}}\quad \sin \left( {z'} \right) = \frac{R}{R + H}\sin \left( {\alpha \cdot z} \right) $$
(4)

where z′ is the zenith distance at the ionospheric pierce point; R is the mean earth radius (= 6,371 km); H is the ionospheric single layer height (= 450 km); α is the correction factor (= 0.9782). The vertical ionospheric delay can be computed from (3) using IGS VTEC gridded values. IGS satellite DCB values can be taken from IGS Global Ionosphere Maps as well. Therefore, using (2), one can obtain receiver DCB estimates for each satellite measurement and for each measurement time. Such instant estimates can be subsequently averaged over a required time interval. This approach is used in the IONOLAB-BIAS algorithm. In our algorithm, the vertical ionospheric delay in the model (2) is considered as unknown parameter to be estimated together with the receiver DCB using least squares estimation. More precisely, it is assumed that vertical ionospheric delays derived from IGS VTEC estimates contain errors, and therefore, residual vertical ionospheric delays, that will be referred to as residual ionospheric delays below, remain to be estimated. In doing this assumption, the following basic considerations were taken into account. In order to compute vertical ionospheric delay for a given time moment and location, IGS VTEC values have to be interpolated first in space and time. This introduces interpolation errors in the resulting VTEC values for a local receiver and, consequently, in the corresponding ionospheric delays. Moreover, the presence of traveling ionospheric disturbances produces a local non-linear behavior of the ionosphere, which may result in larger VTEC interpolation errors. These errors, in turn, can affect the accuracy of time averaged receiver DCB estimates. The proposed approach is expected to be less sensitive to such kind of errors, as the vertical ionospheric delay is not held fixed, but residual delays are estimated instead at each epoch.

Therefore, in our algorithm, we perform least squares estimation of the residual delays and the receiver DCBs. The observation equation based on the model (2) read

$$ E\left\{ y \right\} = - \left( {\frac{{f_{1}^{2} - f_{2}^{2} }}{{f_{2}^{2} }}} \right)F\left( z \right) \cdot \Updelta I_{r} + c \cdot \Updelta b_{r} $$
(5)

where we lumped into the vector y all known parameters:

$$ y = \tilde{P}_{4} + \left( {\frac{{f_{1}^{2} - f_{2}^{2} }}{{f_{2}^{2} }}} \right)F\left( z \right) \cdot I_{r} - c \cdot \Updelta b^{s} $$
(6)

As stated above, the geometry free carrier phase-smoothed code pseudoranges (1) are used as observables. To do code pseudoranges smoothing, we apply a recursive algorithm described in Hofmann-Wellenhof et al. (2008). The parameters are estimated on a daily basis. Receiver DCBs are determined as constant over daily time intervals. Residual ionospheric delays are estimated for each time moment.

It should be pointed out that by solving the observation equation (5) only relative receiver DCB estimates can be obtained due to 100% correlation with the mean of ionospheric delays. That is, any changes in a receiver DCB estimate can be compensated by shifting all the corresponding ionospheric delay estimates by the same amount. To circumvent this problem, we impose additional constraint on the mean of residual ionospheric delay estimates

$$ \frac{1}{L}\sum\limits_{i = 1}^{L} {\Updelta I_{r,i} } = \bar{\rm I} $$
(7)

where L is the number of measurement epochs; \( \Updelta I_{r,i} \) is the residual ionospheric delay at epoch i for receiver r and \( \Updelta I_{r} = \left\{ {\Updelta I_{r,i} } \right\} \) where i = 1,…,L. The parameter \( \bar{I} \) is a measure of biasedness of estimated residual ionospheric delays. The absence of the subscript r in \( \bar{I} \) indicates that this parameter is receiver-independent, that is, the same value of \( \bar{I} \) is used for each receiver. The parameter \( \bar{I} \) will be referred to as mean residual delay throughout the rest of the paper.

The system of observation equation (5) subject to the constraint (7) can be solved in the framework of the least squares problem with linear constraints. The solution of the constrained least squares problem can be obtained by using conditional least squares adjustment (Xu 2003). Applying this method to our problem, an estimator for the unknown parameters can be derived by finding the minimum of the following functional:

$$ \Im \left( {\Updelta b_{r} ,\Updelta I_{r} } \right) = V \cdot P^{ - 1} \cdot V + K \cdot \left( {\frac{1}{L}\sum\limits_{i = 1}^{L} {\Updelta I_{r,i} } - \bar{I}} \right) $$
(8)

where K is Lagrange multiplier; P is the variance–covariance matrix of the geometry free carrier phase-smoothed code measurements \( \tilde{P}_{4} \); the vector of residuals V is formed using the observation equation (5) and can be written as follows:

$$ V = y - \left[ { - \left( {\frac{{f_{1}^{2} - f_{2}^{2} }}{{f_{2}^{2} }}} \right)F\left( z \right) \cdot \Updelta I_{r} + c \cdot \Updelta b_{r} } \right] $$
(9)

For simplification, let us lump the unknowns into the vector \( X = \left[ {\Updelta I_{r,1} , \ldots ,\Updelta I_{r,L} ,\Updelta b_{r} } \right]^{T} \) and formally write (5) as \( E\left\{ y \right\} = A \cdot X \) and the constraint (7) as \( C \cdot X = L \cdot \bar{I} \) with C = [1,…,1,0]. Then we can write the estimator for the unknowns X as follows:

$$ X = - \left( {A^{T} P^{ - 1} A} \right)^{ - 1} \left( {C^{T} K - A^{T} P^{ - 1} y} \right) $$
(10)

where

$$ K = \left( {C\left( {A^{T} P^{ - 1} A} \right)^{ - 1} C^{T} } \right)^{ - 1} \left( {C\left( {A^{T} P^{ - 1} A} \right)^{ - 1} A^{T} P^{ - 1} y - L\bar{I}} \right) $$
(11)

Because only one additional constraint is applied, the algorithm is computationally easy to implement and not time consuming. Normally, it takes about 20 s to compute the DCB and residual ionospheric delay estimates from (10) on MATLAB from 1-day RINEX data.

Determination of the mean residual delay \( \bar{I} \)

In order to let this algorithm work in practice, the mean residual delay \( \bar{I} \) in (11) needs to be determined. There are no possibilities to compute the exact value of \( \bar{I} \) theoretically. Instead, we used the following approach. We omitted the constraint (7) and applied the standard least squares to those IGS stations, for which accurate DCB values are available from IGS GIMs (combined ionosphere maps were used). By doing so, we obtained sets of unconstrained residual ionospheric delays and receiver DCBs. From the observation equation (5), it follows that DCB estimates are linearly related to daily-averaged residual ionospheric delays. Therefore, we used Simple Linear Regression to model the relationship between the mean values of 24-h residual ionospheric delays and the differences between the least squares DCB estimates and the IGS DCBs. The intercept, that is, the value of the mean of residual ionospheric delays when the DCB difference turned to 0, is then the desired value of the parameter \( \bar{I} \).

We took two IGS GIMs for May 10 and May 15, 2009 (DOY 130 and 135, GPS week 1531). The first selected day was the ionospherically disturbed day according to the classification of the Ionospheric Dispatch Center in Europe established as an initiative of COST 251 action IITS (Improved Quality of Ionospheric Telecommunication Systems Planning and Operation). In opposite, the second day was the ionospherically quiet day. We looked for IGS stations with the lowest DCB RMS errors. It was assumed that low RMS errors indicate a good agreement between individual DCB solutions provided by all 4 ACs therefore suggesting a high reliability of the corresponding combined DCBs. We considered IGS receiver DCBs with RMS less than 0.2 ns, but not equal to zero. Zeroed RMS errors for IGS DCBs mean that individual DCB solutions for some ACs are missing. Besides, we excluded stations having less than 50% measurement epochs available. By using these criteria, we found 154 IGS stations for the first selected day and 152 IGS stations for the second selected day (in total, DCB solutions were available for 380 IGS stations for the both days). We then applied our algorithm to code data from all these stations and plotted the mean of residual ionospheric delays as function of the DCB difference. The results are presented in Fig. 1.

Fig. 1
figure 1

The mean of residual ionospheric delays shown as function of the difference between the least squares receiver DCB estimates (LSE) and the IGS DCB values (IGS). The results are for May 10, 2009, (a) and May 15, 2009 (b)

The vertical and horizontal dashed lines mark the DCB difference = 0 and the corresponding residual ionospheric delay means (their values are displayed on the plots). The solid lines are the lines of best fit as estimated by linear regression. Their slopes are similar, as they represent the conversion factor from nanoseconds to meters and roughly equal to 0.3 (the speed of light divided by 109). One can note a good agreement to within 1 cm between the estimates of \( \bar{I} \) for the two different days (−0.135 m for the first day and −0.142 m for the second day). In order to draw firmer conclusions about the behavior of \( \bar{I} \) as function of time, we repeated the computations for the whole week (May 10–16, 2009, DOY 130–136).

The results shown in Table 1 reveal some evidence that the mean residual delay \( \bar{I} \) is essentially different from 0, although we could expect that least squares residual ionospheric delay estimates are unbiased as we use consistent DCB and ionosphere data obtained from the same IGS ionosphere estimation process (Feltens 2003). Besides, the daily estimates of \( \bar{I} \) demonstrate excellent day-to-day repeatability, the mutual agreement being within 2 cm regardless of the state of the ionosphere. This allows computing a preliminary value of \( \bar{I} \) by simply taking the mean of the daily values. In doing so, we get \( \bar{I} = - 0.136 \pm 0.006{\kern 1pt} {\text{m}} \). This value, however, can only be applied to some limited time interval around the week under consideration. Therefore, long time stability of the obtained estimate remains to be assessed. That is why we next considered the interval spanning approximately 4 years from January 2006 to December 2009. The parameter \( \bar{I} \) was computed for 92 days chosen so as to cover uniformly and sufficiently densely the whole time interval. In doing so, we have one estimate of \( \bar{I} \) per 15–20 days. The results, including those for GPS week 1531 obtained in the previous test, are presented in Fig. 2.

Table 1 The results of the determination of the mean residual delay \( \bar{I} \) for GPS week 1531
Fig. 2
figure 2

The results of the determination of the mean residual delay \( \bar{I} \) for the time interval spanning 4 years from January 2006 to December 2009

Encircled by ellipse are the estimates for GPS week 1531. The red points mark ionospherically disturbed days. The green points mark ionospherically quiet days. The dashed line represents the mean value of \( \bar{I} \) over the whole time interval (its value is displayed on the plot). As seen, most of daily estimates are consistent within approximately 1 dm. The estimates of \( \bar{I} \) in Fig. 2 range from −0.034 m (August 2009) to −0.202 m (January 2008). In general, the obtained values of \( \bar{I} \) remain stable at the decimeter level over nearly 4 years regardless the state of the ionosphere. At the same time, they exhibit an irregular behavior. There at least 2 cases of noticeable short-time changes of \( \bar{I} \) occurred (the peaks in the middle of 2008 and 2009 seen on the plot in Fig. 2). In the latter case, the parameter \( \bar{I} \) changed drastically from −0.13 to −0.03 m during approximately 2-month time interval. Systematic decrease in \( \bar{I} \) by approximately 0.05 m was observed during 2007. Meanwhile, the results in Fig. 2 reveal no evidence of any systematic trend; the parameter \( \bar{I} \) appeared to vary around the same value for the 4-year time interval considered. This allowed us to set the value of \( \bar{I} \) that we wanted to determine to the mean of all the 99 values. Then we get

$$ \bar{I} = - 0.132 \pm 0.034{\kern 1pt} {\text{m}} $$
(12)

We adopted this value for subsequent comparisons with other algorithms for single receiver DCB computation.

Implementation aspects

Knowing the value of the mean residual delay \( \bar{I},\) makes it possible to apply the least squares approach with linear constraints as explained above. However, when using least squares, of importance is to avoid significant loss of measurement information. That is why we considered measurements at low elevation angles, bearing in mind a quite possible situation that only few, down to 4–5, satellites are visible in the sky. In this study, we used 10° cut-off elevation angle. In order to mitigate the multipath error affecting code measurements at low elevation angles, the standard measurement weighting scheme with the cosecant of the satellite elevation angle was employed.

Anomalous ionospheric delays caused by, e.g., local ionospheric disturbances can significantly affect the accuracy of the least squares estimates obtained using the observation model (5), unless such anomalous delays are effectively detected and discarded. Therefore, a special attention must be paid to the selection of outlier detection rules. This problem becomes more complicated in our case, because, to be able to use the algorithm online, we want to detect outliers using measurements from one epoch only. As a result, no more than 12 measurements each time are available. Bearing this in mind, we considered the median, which is a more robust estimator than the mean in the presence of outliers. In particular, the biweight midvariance estimator was used instead of the standard deviation as a measure of the variability of data samples. The biweight midvariance is known to be resistant and robust of efficiency estimator (Mosteller and Tukey 1977). It is defined as follows:

$$ s_{bi}^{2} = \frac{{n \cdot \sum\nolimits_{i = 1}^{'n} {\left( {x_{i} - Q} \right)^{2} \left( {1 - u_{i}^{2} } \right)^{4} } }}{{\left( {\sum\nolimits_{i = 1}^{'n} {\left( {1 - u_{i}^{2} } \right)\left( {1 - 5u_{i}^{2} } \right)} } \right)^{2} }}\quad {\text{with}}\quad u_{i} = \frac{{x_{i} - Q}}{9 \cdot MAD} $$
(13)

where \( \sum^{\prime } \) means summation for \( u_{i}^{2} \le 1 \) only; x 1,…,x n is a sample of volume n; Q is the sample median; MAD is the median absolute deviation given by

$$ MAD = median_{i} \left( {\left| {x_{i} - median_{j} \left( {x_{j} } \right)} \right|} \right) $$
(14)

The \( u's \) in (13) act as weights used to downweight distant data points. Finally, a measurement x * is marked as outlier when

$$ \left| {x^{ * } - Q} \right| > s_{bi} $$
(15)

Detection of outliers in our algorithm is performed once before proceeding to least squares estimation. In our computations considered below, the number of rejected observations in general did not exceed 4 (less than 45% assuming 9–10 observations per epoch).

Detection of outliers was the last essential part of our algorithm that needed consideration. A summary of all the main steps of the receiver DCB computation shown below in flowchart in Fig. 3 ends this chapter.

Fig. 3
figure 3

Flowchart of the algorithm proposed

Results

In this chapter, we provide some results demonstrating the performance of our algorithm by comparing it with two other algorithms for receiver DCB estimation. Besides, the results of evaluation of sensitivity of the algorithm to changes of the mean residual delay are presented.

Comparison to other algorithms

In order to assess the performance of our algorithm, we compared it with two other algorithms for receiver DCB estimation. The first algorithm, IONOLAB-BIAS, has already been presented above. The second algorithm that we consider here was introduced in Ma and Maruyama (2003). In the framework of the algorithm by Ma and Maruyama (2003), DCB values are searched in a given range with some pre-defined step. Each receiver DCB candidate is used to compute the standard deviation of VTEC values from each satellite visible in the sky. The candidate that yields the minimum of the standard deviation of VTEC for the whole measurement period (defined as the sum of VTEC standard deviations at each measurement epoch) is the desired receiver DCB solution. VTEC values are not taken from IGS products. Instead, they are obtained using slant TECs derived from the differences between the code pseudoranges and the differences between the carrier phases. In our implementation, the receiver DCB search procedure was organized in four runs, in order to reduce computation time. The first run was a coarse searching within the range from −50 to 50 ns with 1 ns step. Next, three fine searching runs with 0.05-, 0.01-, and 0.001-ns steps, respectively, were performed in the range between the best and the second best candidates found at the previous search run. We used measurements from satellites above 30° cutoff elevation angle and did not apply elevation-dependent weighting. This algorithm requires cycle slips repair. In our implementation, a Kalman filter approach was used.

Our implementation of the IONOLAB-BIAS algorithm is essentially the same as that described in Arikan et al. (2008), except that we used different code smoothing algorithm. IONOLAB-BIAS uses Chebyshev filters. Because of the absence of necessary details about Chebyshev filter design used in that work, we applied the code smoothing algorithm by means of phase pseudoranges from Hofmann-Wellenhof et al. (2008) bearing in mind that it allows to determine the epoch-to-epoch change of code pseudoranges with the precision of phase pseudoranges (in the order of millimeters). Even if we concede that Chebyshev filters provide a better quality of smoothing, the expected additional error in DCB estimates due to our choice of code smoothing algorithm could be at the millimeter level, which is insignificant to affect the performance of the IONOLAB-BIAS algorithm. Because of this, we refer our implementation of the algorithm described in Arikan et al. (2008) to as “IONOLAB-BIAS.”

Of all the 99 test days used to determine the mean residual delay \( \bar{I} \), see “Determination of the mean residual delay \( \bar{I} \) ,” we selected 8 days representing large differences between the daily estimates of \( \bar{I} \) and the adopted value (12). It was done to assess the performance of our algorithm in a possible case when a value of the mean residual delay is not optimal for a given day therefore introducing additional biases in receiver DCB estimates. We then added 2 days with a good agreement between the daily estimates of \( \bar{I} \) and the adopted value to assess the performance under the best conditions of optimality. The assessment was performed by comparing DCBs obtained by means of the three algorithms with IGS DCB values. To select IGS stations for each day, we used the same criteria described in “Determination of the mean residual delay \( \bar{I} \) .” We had to exclude the high-latitude IGS station ALRT (Alert, Canada), as there were no satellites above 60° elevation angle (used as the cutoff angle by IONOLAB-BIAS), so we were unable to use the IONOLAB-BIAS algorithm in this case. A short summary of the days selected is given in Table 2 and the comparison results are demonstrated in Fig. 4.

Table 2 Summary of the days selected for the inter-model comparison
Fig. 4
figure 4

Summary statistics of the comparison between the proposed algorithm and the IONOLAB-BIAS and Ma and Maruyama algorithms. Presented are the mean (a), the standard deviation (b), the minimum and maximum values of the differences between the estimated receiver DCBs and the IGS DCBs (c), and the number of stations, for which one of the algorithms showed the best agreement with the IGS DCBs (d)

Figure 4a and b shows the mean and standard deviation of the differences between the DCBs obtained by the three different algorithms and the IGS DCBs for each day under consideration. Figure 4c shows the minimum and the maximum values of the differences. The plots in Fig. 4a,b,c reveal that the proposed algorithm shows a better agreement with the IGS DCB values compared with the other two algorithms in all but one cases analyzed. Typically, the IGS DCBs were reproduced with a mean error of 0.1–0.2 ns and a standard deviation of about 0.1 ns. This level of agreement was observed for the overwhelming majority of the stations even for the days with not optimal \( \bar{I} \). For one day (2009, DOY 226) having the largest value of \( \Updelta \bar{I} \) in our dataset, the mean error reached 0.3 ns. The IONOLAB-BIAS algorithm shows typically a larger mean error (up to 0.5 ns). For one day (2007, DOY 250), a noticeable deterioration of the IONOLAB-BIAS algorithm performance was observed, see Fig. 4a and b. It was due to an anomalous receiver DCB estimate for station PENC in Hungary (the actual DCB error was about 7 μs). We did not investigate the reason for such an erroneous estimate. It may be caused by outliers in computed vertical ionospheric delays, as the IONOLAB-BIAS does not perform outlier detection. Like our least-squares algorithm, the Ma-Maruyama algorithm shows a very good agreement on average with the IGS DCBs (about 0.1 ns), but the precision of the DCB estimates is considerably poorer (about 1 ns). The discrepancies in the DCB estimates for some stations exceed ±4 ns, see Fig. 4c.

The plot in Fig. 4d presents the number of cases of the best agreement with the IGS DCBs per day for all the three algorithms. This plot reveals a better performance of the proposed algorithm in all but two cases. Typically, our algorithm provided the best agreement with the IGS DCBs for up to 80% of the stations, with two exceptions (2008, DOY 133 and 2009, DOY 226) when this number was less than 50%. The latter case is a good example revealing limitations in the performance of our algorithm. From the results presented in Table 2 and Fig. 4a, b, c, d, it can be concluded that our algorithm begins to be noticeably outperformed by IONOLAB-BIAS, as the value of \( \Updelta \bar{I} \) approaches 1 dm. The results presented above provide some evidence that such occurrences are rather exceptional, although additional computations are needed in order to draw firmer conclusions. Besides, we did not observe any considerable degradation of the results for the day with the largest value of \( \Updelta \bar{I} \) (2009, DOY 226), in terms of the mean and standard deviation, see Fig. 4a and b.

Evaluation of sensitivity of the algorithm to changes of the mean residual delay

As follows from the results presented in the previous section, the magnitude of the differences between the adopted mean residual delay value (12) and daily estimates is important and can be critical for the performance of our algorithm. Therefore, we carried out some additional tests to evaluate its sensitivity to changes of the mean residual delay \( \bar{I} \).

As can be easily established from (10) and (11), DCB estimates are linearly dependent on the value of the mean residual delay \( \bar{I} \). Therefore, to evaluate the algorithm sensitivity, it is sufficient to compare DCB estimates for two different values of \( \bar{I} \). The results presented above give some insight into this matter. For the 99 test days selected for the computations, variations of the daily values of mean residual delay typically did not exceed a few centimeters (see Fig. 2). As seen from Fig. 4, this did not affect the performance of our algorithm significantly. In order to evaluate sensitivity of the algorithm performance to larger changes, we selected 6 days, for which the adopted and the daily values agree at a mm level. We set \( \bar{I} \) to 0 and repeated the receiver DCB computations. The results as the mean of the estimated minus IGS DCB differences are presented in Fig. 5.

Fig. 5
figure 5

Sensitivity evaluation of the algorithm performance

The means of the estimated minus IGS DCB values are shown for 6 days for two different values of the mean residual delay \( \bar{I} \) (MRD): for the adopted value (12) (blue bars) and for \( \bar{I} = 0 \) (brown bars). As clearly seen, changing the value of \( \bar{I} \) by 13 cm leads to shifting all DCB estimates by about 0.5 ns. This demonstrates that, in order to achieve agreement with IGS DCB estimates at 0.1–0.2 ns level, the value of mean residual delay used in (11) should be accurate at least to within several cm. As showed in this study that is the case of the mean residual delay value (12) adopted for our algorithm.

Summary and conclusion

We proposed a new algorithm for single receiver DCB estimation. It uses the least squares approach with linear constraints to estimate receiver DCBs together with vertical ionospheric delays. We imposed additional constraint on the mean of daily residual ionospheric delays to estimate absolute values of receiver DCBs. We computed daily values of the mean residual delay in the constraint (7) for 99 days over a 4-years time interval and showed that they remain stable at the decimeter level. This allowed obtaining the value of the mean residual delay that can be taken for the use over the whole time interval without significant deterioration of the algorithm performance. Moreover, due to the stability of the daily values, this adopted value (12) can be used for DCB computations beyond the 4-year time interval what make it possible to use the algorithm for online single receiver DCB estimation. Bearing our results in mind, we expect that the value (12) of the mean residual delay remains valid for at least a few years. A longer-term use of our algorithm will most likely require a re-computation of the mean residual delay.

The performance of the proposed algorithm was assessed by comparing the estimated receiver DCBs with those provided by the IGS. We did the same comparisons using two algorithms for receiver DCB estimation described in literature. It has been demonstrated that the proposed algorithm is capable of reproducing the IGS DCB values at the level of 0.1–0.3 ns, which turned out to be better than the level of agreement observed for the other two algorithms. We expect that our algorithm can provide receiver DCBs at a similar level of accuracy for any single receiver using the IGS ionosphere products. Here, we use the term “accuracy” to refer to reproducibility of IGS DCB estimates. That is, we expect that if a DCB estimate for such an arbitrary receiver had been provided by the IGS as part of their global ionosphere solutions, our algorithm would have reproduced that value at the level of 0.1–0.3 ns. For each day considered, data from more than 100 IGS stations were used for the comparisons. This guarantees that all major regions of the world are covered. Besides, both ionospherically quiet and disturbed days were considered. Therefore, our results provide some evidence that the performance of our algorithm is significantly sensitive neither to geographical region nor to the state of the ionosphere. In order to draw firmer conclusions, a thorough analysis of the residual ionospheric delays estimated together with the receiver DCBs in our algorithm needs to be carried out, which will be a part of the future work.

There is one problem exists, which require some further investigation. In this study, we used the modified single layer mapping function (4). The ionospheric single layer height was chosen to be 450 km, although the height of 506.7 km was shown to give the best fit with the JPL Extended Slab Model mapping function (Todorova et al. 2008). We did only preliminary investigations on how this can influence our DCB estimation results. Our first tests showed that setting the single layer height to 506.7 km in (4) results in an insignificant change of the DCB estimates (within a few mm). Meanwhile, some further tests are necessary to determine the sensitivity of our algorithm performance to the choice of a model of the ionosphere as it highly affects estimated receiver DCBs (Hong et al. 2008).

One interesting issue comes out from our results. As explained above, we imposed constraint on the mean of daily residual ionospheric delays, to be able to estimate absolute receiver DCBs. Assuming that we use consistent IGS products (VTEC and receiver and satellite DCBs), one could expect estimated residual delays to have zero mean. However, our results indicate the presence of a noticeable positive bias of about 0.15 m (≈1 TECU) between IGS VTECs and receiver DCBs. As our analyses show, its value remains stable within a 1 dm over nearly 4 years, although it seems to be prone to noticeable drastic changes. Therefore, it allows asserting that the bias that we have detected is real. A further understanding of its origin requires detailed investigation and goes beyond the scope of this paper. Meanwhile, our results suggest that apparently this bias has to be taken into account by any algorithm dealing with receiver DCB estimation using the IGS ionosphere products.