Introduction

To provide precise positioning services based on state space representation (SSR), such as precise point positioning (PPP) and PPP-real-time kinematic (PPP-RTK), precise satellite orbits and clocks should be estimated and broadcast to users in real time (Wübbena et al. 2005; Ge et al. 2012). At present, the International GNSS Service (IGS) is providing ultra-rapid orbit products, including 24-h observation orbits and 24-h forecast orbits (http://www.igs.org).

IGS initiated the Real-Time Pilot Project through a call-for-participationFootnote 1 in June 2007. Currently, the IGS provides GPS and GLONASS real-time precise clock products with an accuracy of 0.3–0.8 ns (Hadas and Bosy 2015). The utilization of frequency-division multiple access (FDMA) communication causes the GLONASS pseudorange and carrier phase observations to suffer from variable levels of inter-frequency bias (IFB) (Song et al. 2014; Chen et al. 2018a). Moreover, different IGS ACs eliminate the GLONASS code IFBs (cIFBs) impact in different ways, leading to significant biases in the satellite- and AC-specific offsets in the GLONASS precise clocks. Furthermore, the GLONASS cIFBs also lead to day-boundary jumps between consecutive days in the GLONASS precise clock for the same AC (Song et al. 2014).

A series of achievements have been attained by optimizing and improving the traditional real-time clock estimation model. Based on the precise clock products with 5-min sampling intervals obtained in the precise orbit determination process, the Center for Orbit Determination in Europe (CODE) has achieved real-time clock broadcasting by fixing the station coordinates, Earth rotation parameters and tropospheric parameters (Bock et al. 2009). A combined dual-thread algorithm, consisting of an undifferenced engine and an epoch-differenced engine, enables real-time precise clock estimation and can achieve a root mean square (RMS) of about 0.2 ns (Zhang et al. 2011). By using undifferenced pseudorange and epoch-differenced carrier phase together, Ge et al. (2012) introduced a computationally efficient mixed-differenced model for real-time absolute precise clock estimation. Zhang et al. (2016) designed a joint GPS/BeiDou real-time clock estimation model by introducing an inter-satellite single-differenced process based on the mixed-differenced model. The clock accuracy is approximately 0.6 ns RMS and 0.1 ns standard deviation (STD) and estimation efficiency per epoch is less than 0.4 s based on a 100-station network (Zhang et al. 2016). A modified mixed-differenced model proposed by Chen et al. (2018c) achieved multi-GNSS real-time clocks STDs of approximately 0.1–0.4 ns and RMSs of 0.4–2.3 ns, where GLONASS and BeiDou clocks have a large systematic bias.

The satellite-dependent code bias has been included in the satellite clock products provided by the IGS based on ionospheric-free combined observations (Montenbruck et al. 2017) and is generally considered ignorable in ionospheric-free combined PPP using IGS precise products (Schaer et al. 1998). However, in precise clock solutions based on four independent global networks composed of Javad-only, Leica-only, Trimble-only and Septentrio-only receivers, Hauschild et al. (2019) found that there were different clock offset biases. These biases exhibit long-term consistency in inter-manufacturer network solutions and the differences can reach several nanoseconds, which will directly cause the absolute accuracy of a precise clock to degrade.

On the receiver side, pseudorange signals of GNSS satellites are subject to individual chip shape distortions. Similar to the effect of multipath signal reflections, these distortions lead to different shifts of the correlator's tracking point for each PRN, which then results in a different inter-satellite code biases (ISCBs) for each satellite (Hauschild et al. 2019; He et al. 2020). Pseudorange observations tracked by receivers with different correlator- and/or front-end design exhibit different ISCBs. Hauschild and Montenbruck (2016) verified the existence of inter-receiver code biases based on different receiver types for zero baselines and found that the inter-receiver differences of the GLONASS cIFBs and code-division multiple access (CDMA) ISCBs could reach 1–2 m. Notably, the receiver-dependent ISCB of each manufacturer remains stable over a long time; the STDs for GPS and Galileo are at the centimeter level. For GLONASS is at the decimeter level (Shi et al. 2013; Chen et al. 2018a).

With the construction of BeiDou and Galileo, more navigation satellites have been introduced into the combined estimation process. Especially because of the FDMA characteristics of GLONASS signals, for multi-GNSS high-precision fusion applications, it is necessary to study how to eliminate the systematic biases in clock offset estimation and efficiently obtain real-time absolute precise clock products. We present a multi-GNSS real-time precise clock estimation approach considering ISCB correction. On the basis of using undifferenced pseudorange and epoch-differenced carrier phase observations to eliminate ambiguity parameters, an ISCB correction process is additionally introduced to eliminate these systematic biases. Then, we analyze the performance of real-time precise clock estimation model considering ISCB correction.

Methodology

For the convenience of methodological description, we first introduce the observations considering ISCBs and then analyze the features of current undifferenced and epoch-differenced models. The principal acronyms used are summarized at the end.

Observations considering ISCBs

GNSS dual-frequency ionospheric-free (IF) combined observations considering satellite- and receiver-dependent ISCBs can be expressed as follows:

$$ \left\{ {\begin{array}{*{20}l} {P_{{r,{\text{IF}}}}^{{s,G_{i} }} = \rho_{r}^{{s,G_{i} }} + {\text{d}}t_{r} + b_{{r,P,{\text{ISCB}}}}^{{s,G_{i} }} - \left( {{\text{d}}t0^{{s,G_{i} }} + {\text{d}}t^{{s,G_{i} }} } \right) - B_{P}^{{s,G_{i} }} + M_{r}^{{s,G_{i} }} \cdot {\text{zwd}} + \varepsilon_{P}^{{s,G_{i} }} } \hfill \\ {\Phi_{{r,{\text{IF}}}}^{{s,G_{i} }} = \rho_{r}^{{s,G_{i} }} + {\text{d}}t_{r} + b_{r,\Phi }^{{s,G_{i} }} - \left( {{\text{d}}t0^{{s,G_{i} }} + {\text{d}}t_{{}}^{{s,G_{i} }} } \right) - B_{\Phi }^{{s,G_{i} }} + N_{r}^{{s,G_{i} }} + M_{r}^{{G_{i} }} \cdot {\text{zwd}} + \varepsilon_{\Phi }^{{G_{i} }} } \hfill \\ {P_{{r,{\text{IF}}}}^{{s,R_{j} }} = \rho_{r}^{{s,R_{j} }} + {\text{d}}t_{r} + b_{{r,P,{\text{ISCB}}}}^{{s,R_{j} }} - \left( {{\text{d}}t0^{{s,R_{j} }} + {\text{d}}t_{{}}^{{s,R_{j} }} } \right) - B_{P}^{{s,R_{j} }} + M_{r}^{{s,R_{j} }} \cdot {\text{zwd}} + \varepsilon_{P}^{{s,R_{j} }} } \hfill \\ {\Phi_{{r,{\text{IF}}}}^{{s,R_{j} }} = \rho_{r}^{{s,R_{j} }} + {\text{d}}t_{r} + b_{r,\Phi }^{{s,R_{j} }} - \left( {{\text{d}}t0^{{s,R_{j} }} + {\text{d}}t_{{}}^{{s,R_{j} }} } \right) - B_{\Phi }^{{s,R_{j} }} + N_{r}^{{s,R_{j} }} + M_{r}^{{R_{j} }} \cdot {\text{zwd}} + \varepsilon_{\Phi }^{{R_{j} }} } \hfill \\ {P_{{r,{\text{IF}}}}^{{s,C_{k} }} = \rho_{r}^{{s,C_{k} }} + {\text{d}}t_{r} + b_{r,P,ISCB}^{{s,C_{k} }} - \left( {{\text{d}}t0^{{s,C_{k} }} + {\text{d}}t_{{}}^{{s,C_{k} }} } \right) - B_{P}^{{s,C_{k} }} + M_{r}^{{s,C_{k} }} \cdot {\text{zwd}} + \varepsilon_{P}^{{s,C_{k} }} } \hfill \\ {\Phi_{{r,{\text{IF}}}}^{{s,C_{k} }} = \rho_{r}^{{s,C_{k} }} + {\text{d}}t_{r} + b_{r,\Phi }^{{s,C_{k} }} - \left( {{\text{d}}t0^{{s,C_{k} }} + {\text{d}}t_{{}}^{{s,C_{k} }} } \right) - B_{\Phi }^{{s,C_{k} }} + N_{r}^{{s,C_{k} }} + M_{r}^{{C_{k} }} \cdot {\text{zwd}} + \varepsilon_{\Phi }^{{C_{k} }} } \hfill \\ {P_{{r,{\text{IF}}}}^{{s,E_{m} }} = \rho_{r}^{{s,E_{m} }} + {\text{d}}t_{r} + b_{{r,P,{\text{ISCB}}}}^{{s,E_{m} }} - \left( {{\text{d}}t0^{{s,E_{m} }} + {\text{d}}t_{{}}^{{s,E_{m} }} } \right) - B_{P}^{{s,E_{m} }} + M_{r}^{{s,E_{m} }} \cdot {\text{zwd}} + \varepsilon_{P}^{{s,E_{m} }} } \hfill \\ {\Phi_{{r,{\text{IF}}}}^{{s,E_{m} }} = \rho_{r}^{{s,E_{m} }} + {\text{d}}t_{r} + b_{r,\Phi }^{{s,E_{m} }} - \left( {{\text{d}}t0^{{s,E_{m} }} + {\text{d}}t_{{}}^{{s,E_{m} }} } \right) - B_{\Phi }^{{s,E_{m} }} + N_{r}^{{s,E_{m} }} + M_{r}^{{E_{m} }} \cdot {\text{zwd}} + \varepsilon_{\Phi }^{{E_{m} }} } \hfill \\ \end{array} } \right. $$
(1)

where P and \(\Phi\) represent the ionospheric-free pseudorange and carrier phase functions corrected for dry tropospheric delay using a model. The superscript s identifies the satellite and the subscript r identifies the receiver. Gi = ith GPS, Rj = jth GLONASS, Ck = kth BeiDou, Em = mth Galileo in one epoch. Further, \(\rho\) is the traveled geometric distance between satellite to receiver for the instances of transmission and reception of the signal, \({\text{d}}t_{r}\) and \({\text{d}}t^{s}\) represent the receiver and satellite clock errors. \({\text{d}}t0^{s}\) represents the clock offset biases. N is the ambiguity (in meters). The zenith wet delay zwd is estimated from the observations using the wet mapping function M. \(\varepsilon\) is the observation noise of the respective ionospheric-free function. b and B represent the ionospheric-free receiver- and satellite-dependent signal delay biases, respectively.

The carrier biases, \(b_{r,\;\Phi }^{s}\) and \(B_{\Phi }^{s}\), are generally called uncalibrated phase delays (UPDs) (Ge et al. 2008), which usually are involved in ambiguity parameters. The pseudorange biases \(b_{{r,P,{\text{ISCB}}}}^{s}\) are called receiver-dependent ISCB. As analyzed above, the individual chip shape distortions in ranging signals lead to different shifts in the correlator's tracking point for each PRN and then introduce different ISCBs into the observations (Hauschild et al. 2019). So we add the superscript \(s\) to express that ISCBs b is related to satellites, and superscript Gi, Rj, Ck, Em to distinguish those different satellites.

Hauschild et al. (2019) found there were different clock offset biases in precise clock solutions based on different independent global networks, which can reach several nanoseconds. The clock offset biases \({\text{d}}t0^{s}\) can be regarded as clock offset biases relative to datum clock time. In positioning solution based on precise clock products, the coefficients of satellite-dependent \({\text{d}}t0^{s}\) and receiver-dependent inter-satellite code bias \(b_{{r,P,{\text{ISCB}}}}^{s}\) in (1) are the same, which makes it difficult to separate the two parameters if no extra constraint. So we absorb \({\text{d}}t0^{s}\) into \(b_{{r,P,{\text{ISCB}}}}^{s}\) in (1). However, \({\text{d}}t0^{s}\) is ignored in precise clock estimation as a part of the estimated clock parameter.

From (1), we can find the parameters of \(B_{P}^{s}\) and \({\text{d}}t0^{s}\) are related to satellite clock \({\text{d}}t^{s}\). \(B_{P}^{s}\), satellite-dependent code bias, is relatively stable (Dach et al. 2006), which has been actually included in satellite clock products provided by IGS based on ionospheric-free combined observations (Schaer et al. 1998). In addition, broadcast ephemeris also provides the timing group delay (TGD) correction parameters, which are another representations of the satellite-dependent code bias. Similar to the IGS processing strategy, the final estimated clock parameters actually include ionospheric-free satellite-dependent code biases, i.e., \({\text{d}}\tilde{t}^{s} {\text{ = d}}t^{s} + B_{P}^{s}\).

Undifferenced model

Based on real-time data streams, real-time precise GNSS clock offsets can be obtained by fixing the real-time satellite orbits, the earth rotation parameters and the station coordinates generated during processing for real-time precise orbit determination.

Current undifferenced model treats the receiver-dependent code biases as a common bias of equal size for CDMA signals, i.e., all GPS observations just include a common bias \(b_{{r,P,{\text{ISCB}}}}^{s,G}\), same for BeiDou and Galileo. However, for FDMA signals GLONASS observations include different biases \(b_{{r,P,{\text{ISCB}}}}^{{s,R_{j} }}\). Considering that the pseudorange observations mainly provide the initial information in the normal equations, the receiver clock error and the receiver-dependent ISCBs of GPS signal are combined as \({\text{d}}\tilde{t}_{r} = {\text{d}}t_{r} + b_{{r,P,{\text{ISCB}}}}^{s,G}\). \({\text{d}}t0^{s}\) is lumped into precise clock offset as a part of estimated clock parameter. Considering known fixed station coordinates, one can simplify the linearized equations for precise real-time clock offset estimation as follows:

$$ \left\{ {\begin{array}{*{20}l} {v_{P}^{{s,G_{i} }} = {\text{d}}\tilde{t}_{r} - {\text{d}}\tilde{t}_{{}}^{{s,G_{i} }} + M_{r}^{{s,G_{i} }} \cdot {\text{zwd}} - l_{P}^{{s,G_{i} }} } \hfill \\ {v_{\Phi }^{{s,G_{i} }} = {\text{d}}\tilde{t}_{r} - {\text{d}}\tilde{t}_{{}}^{{s,G_{i} }} + \tilde{N}_{r}^{{s,G_{i} }} + M_{r}^{{s,G_{i} }} \cdot {\text{zwd}} - l_{\Phi }^{{s,G_{i} }} } \hfill \\ {v_{P}^{{s,R_{j} }} = {\text{d}}\tilde{t}_{r} - {\text{d}}\tilde{t}_{{}}^{{s,R_{j} }} { + }{\text{IFB}}_{{}}^{{R_{j} - G}} + M_{r}^{{s,R_{j} }} \cdot {\text{zwd}} - l_{P}^{{s,R_{j} }} } \hfill \\ {v_{\Phi }^{{s,R_{j} }} = {\text{d}}\tilde{t}_{r} - {\text{d}}\tilde{t}_{{}}^{{s,R_{j} }} + {\text{IFB}}_{{}}^{{R_{j} - G}} + \tilde{N}_{r}^{{s,R_{j} }} + M_{{}}^{{s,R_{j} }} \cdot {\text{zwd}} - l_{\Phi }^{{s,R_{j} }} } \hfill \\ {v_{P}^{{s,C_{k} }} = {\text{d}}\tilde{t}_{r} - {\text{d}}\tilde{t}_{{}}^{{s,C_{k} }} + {\text{ISB}}^{C - G} + M_{r}^{{s,C_{k} }} \cdot {\text{zwd}} - l_{P}^{{s,C_{k} }} } \hfill \\ {v_{\Phi }^{{s,C_{k} }} = {\text{d}}\tilde{t}_{r} - {\text{d}}\tilde{t}_{{}}^{{s,C_{k} }} + {\text{ISB}}^{C - G} + \tilde{N}_{r}^{{s,C_{k} }} + M_{r}^{{s,C_{k} }} \cdot {\text{zwd}} - l_{\Phi }^{{s,C_{k} }} } \hfill \\ {v_{P}^{{s,E_{m} }} = {\text{d}}\tilde{t}_{r} - {\text{d}}\tilde{t}_{{}}^{{s,E_{m} }} { + }{\text{ISB}}^{E - G} + M_{r}^{{s,E_{m} }} \cdot {\text{zwd}} - l_{P}^{{s,E_{m} }} } \hfill \\ {v_{\Phi }^{{s,E_{m} }} = {\text{d}}\tilde{t}_{r} - {\text{d}}\tilde{t}_{{}}^{{s,E_{m} }} + {\text{ISB}}^{E - G} + \tilde{N}_{r}^{{s,E_{m} }} + M_{r}^{{s,E_{m} }} \cdot {\text{zwd}} - l_{\Phi }^{{s,E_{m} }} } \hfill \\ \end{array} } \right. $$
(2)

where v denotes the residuals, \({\text{IFB}}_{{}}^{{R_{j} - G}} = b_{{r,P,{\text{ISCB}}}}^{{s,R_{j} }} - b_{{r,P,{\text{ISCB}}}}^{s,G}\), \({\text{ISB}}^{C - G} = b_{{r,P,{\text{ISCB}}}}^{s,C} - b_{{r,P,{\text{ISCB}}}}^{s,G}\), \({\text{ISB}}^{E - G} = b_{{r,P,{\text{ISCB}}}}^{s,E} - b_{{r,P,{\text{ISCB}}}}^{s,G}\), \(\tilde{N}_{r}^{s} = N_{r}^{s} - b_{{r,P,{\text{ISCB}}}}^{s} { + }B_{P}^{s} + b_{r,\Phi }^{s} - B_{\Phi }^{s}\), and l is the observed minus calculated (OMC) difference, where the observed part is the observations of pseudorange and carrier phase and the calculated part is the geometric distance between satellite to receiver calculated by the precise orbit position at signal transmission and station coordinates at signal reception.

Suppose that there are \(n_{T}\) tracking stations and that the total number of satellites in the multi-GNSS network is \(n_{S} = n_{G} + n_{R} + n_{C} + n_{E}\). Then, the actual parameters to be estimated in the undifferenced model are

$${\mathbf{X}} = \left[ {\begin{array}{*{20}l} {{\mathbf{dt}}_{{{\mathbf{r}}\;n_{S} \times 1 \, }} } \hfill \\ {{\mathbf{dt}}^{{\mathbf{s}}}_{{n_{T} \times 1}} } \hfill \\ {{\mathbf{zwd}}_{{n_{T} \times 1}} } \hfill \\ {{\mathbf{ISB}}_{{2n_{T} \times 1}} } \hfill \\ {{\mathbf{IFB}}_{{n_{T} \cdot n_{R} \times 1}} } \hfill \\ {{\mathbf{N}}_{{n_{T} \cdot n_{S} \times 1}} } \hfill \\ \end{array} } \right]$$
(3)

\({\mathbf{dt}}_{{{\mathbf{r}}\;n_{S} \times 1}}\) is a vector with \(n_{s}\) rows and 1 column and following expression is similar. Suppose that 60 stations are tracking approximately 110 GPS, GLONASS, BeiDou and Galileo satellites and those approximately 40 satellites can be observed per station in each epoch. The corresponding parameters for one epoch in the undifferenced real-time clock offset model are shown in Table 1. The total number of estimated parameters per epoch is 4190, which greatly limits the real-time estimation efficiency and prevents the ability to update at 5-s intervals as recommended by the IGS (Zhang et al. 2011; Ge et al. 2012).

Table 1 Estimated parameters in the undifferenced model

As seen from Table 1, there are 2400 ambiguity parameters and 1440 GLONASS IFB parameters in the undifferenced model. The IFB parameters are usually replaced with intersystem bias (ISB) parameters relative to GPS in actual data processing to improve the solution efficiency, which introduces systematic biases into the GLONASS precise clock offset and consequently leads to initial clock biases (Song et al. 2014). Even though these initial clock biases can be absorbed into the ambiguity parameters and do not affect the positioning accuracy after convergence, they will affect the pseudorange observation accuracy, which will degrade the convergence of PPP.

Epoch-differenced Model

The signal delays of receiver- and satellite-dependent pseudorange and carrier phase observations remain relatively stable (Dach et al. 2006; Hauschild and Montenbruck 2016). If there are no cycle slips, then the ambiguity parameters in (2) can be eliminated by taking a single difference between consecutive epochs as follows (Ge et al. 2012; Chen et al. 2018b):

$$v_{\Delta \Phi }^{s} \left( t \right) = \Delta {\text{d}}t_{r(t)} - \Delta {\text{d}}t_{{}}^{s(t)} + M_{r}^{s} \cdot \Delta {\text{zwd}}\left( t \right) - l_{\Delta \Phi }^{s} \left( t \right)$$
(4)

where \(\Delta\) represents the single difference between consecutive epochs and t represents the epoch. Therefore, the parameters to be solved in this model include only the changes in the receiver clock, satellite clock and tropospheric parameters. Thus, an external initial satellite clock product needs to be introduced. If we use the initial clock products and sum the clock changes from the initial epoch to the tth epoch, then the clock offsets in the tth epoch can be recovered as follows:

$$\begin{aligned} {\text{d}}t_{r(t)} & = {\text{d}}t_{r(0)} + \Delta {\text{d}}t_{r(t)} + \sum\limits_{ii = 1}^{t - 1} {\Delta {\text{d}}t_{r(ii)} } \\ {\text{d}}t^{s(t)} & = {\text{d}}t^{s(0)} + \Delta {\text{d}}t^{s(t)} + \sum\limits_{{ii = {1}}}^{t - 1} {\Delta {\text{d}}t^{s(ii)} } \\ \end{aligned}$$
(5)

where \({\text{d}}t_{r(0)}\) and \({\text{d}}t^{s(0)}\) are the initial receiver and satellite clock offset and ii is the iith epoch from 1 to t. The epoch-differenced carrier phase observations can eliminate only continuous ambiguity parameters. In the case of a data interruption, the initial satellite clock and receiver clock will need to be reintroduced. The initial satellite clock offset can be obtained from the broadcast ephemeris or an ultra-rapid clock offset. Therefore, the epoch-differenced model cannot provide continuous and stable real-time absolute clock offsets (Chen et al. 2018b).

Mixed-differenced model with ISCB correction

Taking advantage of the absolute clock provided by the undifferenced model and eliminating the continuous ambiguities of the epoch-differenced model, Ge et al. (2012) designed a mixed-differenced model for real-time clock estimation.

Considering the existence of unequal receiver-dependent ISCBs, we substitute the clock offsets in (5) into the linearized pseudorange equations in (2) to obtain the following tth epoch mixed-differenced model observation equations considering ISCB:

$$\left\{ {\begin{array}{*{20}l} {v_{P}^{{s,G_{i} }} \left( t \right) = {\text{d}}t_{r(0)} - {\text{d}}\tilde{t}_{{}}^{{s(0),G_{i} }} + b_{{r,P,{\text{ISCB}}}}^{{s,G_{i} }} \left( t \right) - \tilde{l}_{P}^{{s,G_{i} }} \left( t \right)} \hfill \\ {v_{P}^{{s,R_{j} }} \left( t \right) = {\text{d}}t_{r(0)} - {\text{d}}\tilde{t}_{{}}^{{s(0),R_{j} }} + b_{{r,P,{\text{ISCB}}}}^{{s,R_{j} }} \left( t \right) - \tilde{l}_{P}^{{s,R_{j} }} \left( t \right)} \hfill \\ {v_{P}^{{s,C_{k} }} \left( t \right) = {\text{d}}t_{r(0)} - {\text{d}}\tilde{t}_{{}}^{{s(0),C_{k} }} + b_{{r,P,{\text{ISCB}}}}^{{s,C_{k} }} \left( t \right) - \tilde{l}_{P}^{{s,C_{k} }} \left( t \right)} \hfill \\ {v_{P}^{{s,E_{m} }} \left( t \right) = {\text{d}}t_{r(0)} - {\text{d}}\tilde{t}_{{}}^{{s(0),E_{m} }} + b_{{r,P,{\text{ISCB}}}}^{{s,E_{m} }} \left( t \right) - \tilde{l}_{P}^{{s,E_{m} }} \left( t \right)} \hfill \\ \end{array} } \right.$$
(6)

where the OMC is

$$\tilde{l}_{P}^{s} \left( t \right) = l_{P}^{s} \left( t \right) - \Delta {\text{d}}t_{r(t)} + \Delta {\text{d}}t^{s(t)} - \sum\limits_{ii = 1}^{t - 1} {\Delta {\text{d}}t_{r(ii)} } + \sum\limits_{{ii = {1}}}^{t - 1} {\Delta {\text{d}}t^{s(ii)} } - M_{r}^{s} \cdot {\text{zwd}}\left( t \right)$$
(7)

The initial clock offsets of the receiver and satellite, \({\text{d}}t_{r(0)}\) and \({\text{d}}\tilde{t}_{{}}^{s(0)}\), can be obtained by combining (4) and (6). The basic idea of the mixed-differenced model is to use epoch-differenced observations of carrier phase to estimate the variations in the receiver clock, satellite clock and tropospheric delay parameters and then substitute those variations into (6) to update the OMC to obtain a more stable initial clock offset value. The estimated parameters of the mixed-differenced model include the following:

$$\begin{aligned} {\mathbf{X}}_{1} & = \left[ {\begin{array}{*{20}c} {{\mathbf{\Delta dt}}^{{\mathbf{s}}} } & {{\mathbf{\Delta dt}}_{{\mathbf{r}}} } & {{\mathbf{\Delta zwd}}} \\ \end{array} } \right]^{T} \\ {\mathbf{X}}_{2} & = \left[ {\begin{array}{*{20}c} {{\mathbf{dt}}^{{{\mathbf{s}}({\mathbf{0}})}} } & {{\mathbf{dt}}_{{{\mathbf{r}}({\mathbf{0}})}} } & {{\mathbf{zwd}}} & {{\mathbf{b}}_{{{\mathbf{ISCB}}}} } \\ \end{array} } \right]^{T} \\ \end{aligned}$$
(8)

In accordance with (4) and (6), the epoch-differenced carrier phase observations and undifferenced pseudorange observations are added into the observation equations in station order. The observation equation of the mixed-differenced model for real-time clock offset estimation can be expressed as follows:

$$\left[ {\begin{array}{*{20}c} {{\mathbf{z}}_{1} } \\ {{\mathbf{z}}_{2} } \\ 0 \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {\left[ {{\mathbf{1}}_{{n_{T} \times 1}} } \right] \otimes {\mathbf{I}}_{{n_{S} \times n_{S} }} } & {{\mathbf{I}}_{{n_{T} \times n_{T} }} \otimes {\mathbf{A}}_{Ti,\Delta \Phi } } & {\mathbf{0}} & {\mathbf{0}} \\ {\mathbf{0}} & {\mathbf{0}} & {\left[ {{\mathbf{1}}_{{n_{T} \times 1}} } \right] \otimes {\mathbf{I}}_{{n_{S} \times n_{S} }} } & {{\mathbf{I}}_{{n_{T} \times n_{T} }} \otimes {\mathbf{A}}_{Ti,P} } \\ \end{array} } \right] \cdot \left[ {\begin{array}{*{20}c} {{\mathbf{X}}_{1} } \\ {{\mathbf{X}}_{2} } \\ 0 \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} {{\mathbf{v}}_{1} } \\ {{\mathbf{v}}_{2} } \\ 0 \\ \end{array} } \right]$$
(9)

where

$${\mathbf{A}}_{Ti,\Delta \Phi } = \left[ {\begin{array}{*{20}c} {\left[ {{\mathbf{1}}_{{n_{S} \times 1}} } \right]} & {{\mathbf{M}}_{{n_{S} \times 1}} } \\ \end{array} } \right]$$
(10)
$${\mathbf{A}}_{Ti,P} = \left[ {\begin{array}{*{20}c} {\left[ {{\mathbf{1}}_{{n_{S} \times 1}} } \right]} & {\left[ {{\mathbf{M}}_{{n_{S} \times 1}} } \right]} & {\left[ {\begin{array}{*{20}c} {{\mathbf{I}}_{{n_{G} \times n_{G} }} } & {} & {} & {} \\ {} & {{\mathbf{I}}_{{n_{R} \times n_{R} }} } & {} & {} \\ {} & {} & {{\mathbf{I}}_{{n_{C} \times n_{C} }} } & {} \\ {} & {} & {} & {{\mathbf{I}}_{{n_{E} \times n_{E} }} } \\ \end{array} } \right]} \\ 0 & 0 & {\left[ {\left[ {{\mathbf{1}}_{{1 \times n_{S} }} } \right]} \right]} \\ \end{array} } \right]$$
(11)

here \(\otimes\) denotes the Kronecker product (Rao 1973). \({\mathbf{1}}\) is vector with all elements 1 and \({\mathbf{I}}\) is identity matrix. \(\left[ {{\mathbf{1}}_{{n_{T} \times 1}} } \right] \otimes {\mathbf{I}}_{{n_{S} \times n_{S} }}\) is the coefficient matrix of the satellite clock parameters of all stations. \({\mathbf{A}}_{Ti,\Delta \Phi }\) is the epoch-differenced carrier phase observation coefficient matrix, which is unrelated to the satellite clock parameters of the Tith station. \({\mathbf{A}}_{Ti,P}\) is the undifferenced pseudorange observation coefficient matrix, which is also unrelated to the satellite clock parameters of the Tith station. \({\mathbf{M}}_{{n_{S} \times 1}}\) is the projection coefficient matrix of the tropospheric parameters.

From the coefficient matrix \({\mathbf{A}}_{Ti,P}\), it can be found that, unlike the undifferenced model, the mixed-differenced model considering ISCBs synchronizes GPS, GLONASS, BeiDou and Galileo observations to the same datum by adding the estimated parameter ISCBs and applying a zero constraint to the sum of all ISCBs at one station.

There are \(n_{T}\) × \(n_{S}\) ISCB parameters in (8). According to the assumption stated above (60 stations tracking 110 satellites), the number of ISCB parameters is 6600, too many to permit efficient real-time calculation.

The ISCB parameters do not change over time and are state parameters that are unrelated to other parameters. The receiver-dependent ISCB of each manufacturer remains stable over a long time; the stability for GPS and Galileo is at the centimeter level. For GLONASS is at the decimeter level (Shi et al. 2013; Hauschild and Montenbruck 2016; Chen et al. 2018a). We achieve the time synchronization of GPS, GLONASS, BeiDou and Galileo by using a single epoch's datum to determine one station's ISCBs. The receivers in the network are unified by selecting one time reference datum, such as one satellite or one station. As external products similar to precise orbit and station coordinates, the estimated ISCBs of all stations are designed to be introduced into (6) in order to eliminate the bias parameters \({\mathbf{b}}_{{{\mathbf{ISCB}}}}\). This approach greatly reduces the number of parameters to be estimated and further improves the efficiency of multi-GNSS real-time clock offset estimation; then, the mixed-differenced model considering ISCBs can be further simplified as follows:

$$\left\{ {\begin{array}{*{20}l} {v_{P}^{s} \left( t \right) = {\text{d}}t_{r(0)} - {\text{d}}\tilde{t}_{{}}^{s(0)} - \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{l}_{P}^{s} \left( t \right)} \hfill \\ {v_{\Delta \Phi }^{s} \left( t \right) = \Delta {\text{d}}t_{r(t)} - \Delta {\text{d}}t_{{}}^{s(t)} + M_{r}^{s} \cdot \Delta {\text{zwd}}\left( t \right) - l_{\Delta \Phi }^{s} \left( t \right)} \hfill \\ \end{array} } \right.$$
(12)

where the OMC is updated as follows:

$$\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{l}_{P}^{s} \left( t \right) = \tilde{l}_{P}^{s} \left( t \right) - b_{r,P,ISCB}^{s} \left( t \right) = l_{P}^{s} \left( t \right) - \sum\limits_{ii = 1}^{t} {\Delta dt_{r(ii)} } + \sum\limits_{{ii = {1}}}^{t} {\Delta dt^{s(ii)} } - M_{r}^{s} \cdot zwd\left( t \right) - b_{r,P,ISCB}^{s} \left( t \right)$$
(13)

The undifferenced pseudorange coefficient matrix \({\mathbf{A}}_{Ti,P}\) is simplified as follows:

$${\mathbf{A}}_{Ti,P} = \left[ {\begin{array}{*{20}c} {\left[ {{\mathbf{1}}_{{n_{S} \times 1}} } \right]} & {\left[ {{\mathbf{M}}_{{n_{S} \times 1}} } \right]} \\ \end{array} } \right]$$
(14)

The parameters to be estimated are as follows:

$$\begin{aligned} {\mathbf{X}}_{1} & = \left[ {\begin{array}{*{20}c} {{\mathbf{\Delta dt}}^{{\mathbf{s}}} } & {{\mathbf{\Delta dt}}_{{\mathbf{r}}} } & {{\mathbf{\Delta zwd}}} \\ \end{array} } \right]^{T} \\ {\mathbf{X}}_{2} & = \left[ {\begin{array}{*{20}c} {{\mathbf{dt}}^{{{\mathbf{s}}({\mathbf{0}})}} } & {{\mathbf{dt}}_{{{\mathbf{r}}({\mathbf{0}})}} } & {{\mathbf{zwd}}} \\ \end{array} } \right]^{T} \\ \end{aligned}$$
(15)

The estimated parameters include only the initial clock, clock difference and tropospheric delay parameters.

Acquisition of multi-GNSS ISCBs with the same datum

As introduced above, a mixed-differenced model considering ISCBs requires the external input of one station's ISCBs with the same datum. \(B_{P}^{s}\), satellite-dependent code bias, has been included in the satellite clock products provided by the IGS based on ionospheric-free combined observations (Schaer et al. 1998), i.e., \({\text{d}}\tilde{t}^{s} {\text{ = d}}t0^{s} {\text{ + d}}t^{s} + B_{P}^{s}\), and will be introduced into the carrier phase observations. In addition, the clock offset biases \({\text{d}}t0^{s}\) will not be completely absorbed by the receiver clock offset. The linearized undifferenced observation equation (1) of the single-station multi-GNSS real-time ISCB estimation model with the same datum is as follows:

$$\begin{aligned} v_{P}^{s} & = {\mathbf{u}}^{s} \cdot {\mathbf{dx}} + {\text{d}}t_{r} + \left( {b_{{r,P,{\text{ISCB}}}}^{s} - {\text{d}}t0_{{}}^{s} } \right) + M_{r}^{s} \cdot {\text{zwd}} - l_{P}^{s} \\ v_{\Phi }^{s} & = {\mathbf{u}}^{s} \cdot {\mathbf{dx}} + {\text{d}}t_{r} + \left( {b_{{r,P,{\text{ISCB}}}}^{s} - {\text{d}}t0_{{}}^{s} } \right){ + }\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{N}_{r}^{s} + M_{r}^{s} \cdot {\text{zwd}} - l_{\Phi }^{s} \\ \end{aligned}$$
(16)

where \(\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{N}_{r}^{s} = N_{r}^{s} + \left( {b_{\Phi }^{s} - b_{{r,P,{\text{ISCB}}}}^{s} } \right) - \left( {B_{\Phi }^{s} - B_{P}^{s} } \right)\). The ISCB and IFB parameters are added to the linearized equations for every epoch as follows:

$$\left\{ {\begin{array}{*{20}l} {{\text{ISCB}}^{{G_{i} }} = b_{{r,P,{\text{ISCB}}}}^{{s,G_{i} }} - {\text{d}}t0^{{s,G_{i} }} } \hfill \\ {{\text{IFB}}^{{R_{j} }} = b_{{r,P,{\text{ISCB}}}}^{{s,R_{j} }} - {\text{d}}t0^{{s,R_{j} }} } \hfill \\ {{\text{ISCB}}^{{C_{k} }} = b_{{r,P,{\text{ISCB}}}}^{{s,C_{k} }} - {\text{d}}t0_{k}^{{s,C_{k} }} } \hfill \\ {{\text{ISCB}}^{{E_{m} }} = b_{{r,P,{\text{ISCB}}}}^{{s,E_{m} }} - {\text{d}}t0^{{s,E_{m} }} } \hfill \\ \end{array} } \right.$$
(17)

The ISCB parameters are estimated as constant, and a zero constraint is applied to the sum of all ISCBs at one station to separate the ISCBs from every epoch. Then, the multi-GNSS ISCBs with the same datum can be obtained as follows:

$$\sum\nolimits_{i = 1}^{{n_{G} }} {{\text{ISCB}}_{{}}^{{G_{i} }} } { + }\sum\nolimits_{j = 1}^{{n_{R} }} {{\text{IFB}}_{{}}^{{R_{j} }} } { + }\sum\nolimits_{k = 1}^{{n_{C} }} {{\text{ISCB}}_{{}}^{{C_{k} }} } { + }\sum\nolimits_{m = 1}^{{n_{E} }} {{\text{ISCB}}_{{}}^{{E_{m} }} } { = }0$$
(18)

In the multi-GNSS single-station real-time ISCB estimation model, the estimated ISCB includes the receiver-dependent ISCB and the clock offset biases in the clock products.

Performance analysis

Three multi-GNSS global networks with 60, 80 and 100 stations are defined based on the multi-GNSS experiment (M-GEX) of the IGS (http://mgex.igs.org), as shown in Fig. 1. Data from days of the year (DOYs) 359 to 365 in 2019 are selected. The multi-GNSS precise orbit products provided by the GFZ German Research Centre for Geosciences are selected (Montenbruck et al. 2017), in which the BeiDou-2 + 3 precise orbits are based on B1I + B3I signals. The multi-GNSS real clock offset estimation strategy is summarized in Table 2.

Fig. 1
figure 1

Three multi-GNSS global networks consisting of 60, 80 and 100 stations

Table 2 Multi-GNSS real clock offset estimation strategy considering ISCBs

Multi-GNSS ISCBs with the same datum

Figure 2 shows the distribution of the ISCBs for GPS, GLONASS, BeiDou-2/3 and Galileo (GRCE) for all 100 stations as estimated with the additional constraint (18). There are obvious clustering phenomena of the GRCE ISCBs for individual stations, and the overall differences between the GRCE ISCBs are also the ISB parameters estimated in (3) using the undifferenced model.

Fig. 2
figure 2

ISCBs for GPS, GLONASS, BeiDou-2/3 and Galileo satellites for all 100 stations with the same datum

It can be seen from this figure that compared to the higher aggregation of the GPS and Galileo satellites, the ISCB consistency of some GLONASS and BeiDou satellites is poor. When the ISCB is assumed to be a common parameter to be estimated in the undifferenced model, this will cause the receiver-dependent differences of the ISCBs to be ignored. These ISCB differences will then be brought into the real-time precise clock offset products and create unequal clock offset biases (Hauschild et al. 2019).

Parameters and efficiency

For the 110 estimated satellite clocks of GRCE, Fig. 3 shows a comparison of the numbers of parameters and estimation efficiencies for different models in the three cases of global networks consisting of 60, 80 and 100 stations. UD + GLS IFB represents undifferenced model estimating the GLONASS IFBs; UD + ISB represents the undifferenced model estimating only the ISBs; ED represents the epoch-differenced model; MD represents mixed-differenced model; MD + ISCB represents mixed-differenced model considering ISCBs.

Fig. 3
figure 3

Comparison of the numbers of parameters and single-epoch estimation efficiencies for various multi-GNSS clock estimation models

As seen from this figure, the undifferenced models cannot meet the 5 s updating requirement for real-time clock offsets recommended by the IGS due to the large number of parameters to be estimated. As the number of stations increases, the estimation efficiency of the MD model also gradually degrades to several seconds. Based on the MD model, the multi-GNSS real-time clock offset estimation model considering ISCBs, designed as (MD + ISCB), eliminates a large number of systematic bias parameters, with a parameter elimination rate of 95%, thereby improving the single-epoch estimation efficiency to meet the requirements for a 1 Hz update frequency. With the selection of appropriate hardware environments and global stations, this model can fully meet the incremental development needs of real-time clock estimation for multi-GNSS, such as BeiDou-3, Galileo and other regional navigation systems.

Initial satellite clock bias

The core of a mixed-differenced model consists of estimating the initial clock offset bias based on undifferenced pseudorange observations and the estimation of clock offset differences between consecutive epochs based on epoch-differenced carrier phase observations. The initial clock offset bias obtained from the undifferenced pseudorange observations should theoretically be a constant, which determines the precise zero-value bias characteristic of the clock offsets, namely, whether there is systematic bias relative to the reference precise clock products.

To analyze the influence of ISCB correction on the initial clock offset bias in the mixed-differenced models, GFZ multi-GNSS clock products (GBM) are selected as the reference clock products. We analyze the initial clock offset obtained from undifferenced pseudorange (clock bias of PC_UD) and relative clock offset from epoch-differenced carrier phase (clock bias of LC_ED) separately. According to the mixed-differenced model theory, the clock bias of PC_UD should be consistent with the clock bias of LC_ED. These factors affect each other to form the absolute clock.

Figures 4 and 5 show the consistency between the clock biases of PC_UD and LC_ED before and after ISCB correction, respectively. Figure 5 shows that there is high consistency between the two biases of GLONASS and BeiDou obtained using the MD + ISCB model, with the differences being near zero. The MD + ISCB model resolves the clustering phenomenon between BeiDou-2 and BeiDou-3 in the MD model and yields an absolute clock offset with zero bias relative to the reference precise clock products.

Fig. 4
figure 4

Consistencies between the clock biases of PC_UD and LC_ED for GPS and Galileo before and after ISCB correction

Fig. 5
figure 5

Consistencies between the clock biases of PC_UD and LC_ED for GLONASS and BeiDou before and after ISCB correction

By subtracting the clock bias of LC_ED, the initial clock offset bias can be obtained. Figure 6 shows time sequences of the initial clock offset biases before and after ISCB correction. Because the initial clock offset is estimated to be constant, convergence behavior is observed with an increasing number of observations. As seen from the figure, the initial clock offsets of GLONASS and BeiDou estimated using the MD model have unequal biases, and there are clustered biases between the three Galileo In-Orbit Validation (IOV) satellites (E11, E12, and E19) and the other Full Operational Capability (FOC) satellites. For the initial clock offset biases considering ISCBs, convergence is achieved in approximately 1 h, which is a significant improvement compared to the MD model without ISCB correction, and after convergence, the biases remain stable and close to zero.

Fig. 6
figure 6

Time sequences of initial clock offset biases before and after ISCB correction

As seen, the initial clock offset bias can remain stable after a sufficient period of estimation. Therefore, this parameter in the MD model can be removed from among the parameters to be estimated after convergence, resulting in improved efficiency.

Real-time clock performance

We use (19) to analyze the performance of the real-time clock offset estimation model.

$$\begin{aligned} {\text{STD}} & = \sqrt {\frac{{\sum\nolimits_{i = 1}^{n} {\left( {\Delta_{i} - \overline{\Delta }} \right)^{2} } }}{n - 1}} \\ {\text{RMS}} & = \sqrt {\frac{{\sum\nolimits_{i = 1}^{n} {\left( {\Delta_{i} } \right)^{2} } }}{n}} \\ \end{aligned}$$
(19)

where \(\Delta_{i}\) is the quadratic clock difference from the reference clock products after the subtraction of the time datum in the ith epoch. \(\overline{\Delta }\), the average of these quadratic clock differences, can be used to evaluate the clock offset biases characteristics of these models; the STD reflects the stability, and the RMS reflects the absolute accuracy.

Taking the test results for 80 global stations over one week as an example, Fig. 7 shows the clock offset biases obtained using the UD + ISB, ED, MD and MD + ISCB models (G06, R01, E01, and C06, respectively, are selected as the reference satellites to eliminate systematic bias). We find that for the ED model, there are nanosecond-level unequal biases compared to the reference precise clock products. Based on the analysis above, these biases are caused by the introduction of an outside initial clock offset. Even though the GPS and Galileo clock offsets estimated using the undifferenced and mixed-differenced models are absolute clocks, there are obvious biases for the GLONASS and BeiDou clock solutions. When C06 is selected as the reference satellite to eliminate systematic bias, there is a clustering phenomenon between BeiDou-2 and BeiDou-3 in the undifferenced and mixed-differenced models, as shown in the rectangle in the bottom panel of Fig. 7.

Fig. 7
figure 7

Clock offset biases obtained using UD + ISB, ED, MD and MD + ISCB

Table 3 lists the real-time clock offset biases, RMS and STD values for GPS, GLONASS, Galileo and BeiDou as obtained using the UD + ISB, ED, MD and MD + ISCB models. We find that the MD + ISCB model can obtain a precise absolute clock offset with zero-bias characteristics, which can clearly eliminate the systematic bias problems of the GLONASS and BeiDou clock products. The real-time clock RMS values for GPS, GLONASS, Galileo and BeiDou are 0.13 ns, 0.12 ns, 0.17 ns and 0.25 ns, respectively, being improved by approximately 63% compared to MD model. Corresponding STD values are 0.10 ns, 0.09 ns, 0.15 ns and 0.17 ns, respectively, at the same level as ED model and superior to the undifferenced and MD model. The clock STDs for GLONASS and BeiDou are improved by 45% compared to those of the MD model. The reason for the lack of improvement in the Galileo STD may be that the Galileo satellites show small variations in the ISCBs, and most of these consistent ISCBs can be absorbed into the solution.

Table 3 Clock offset biases, RMS, and STD values of the clock offsets obtained using UD + ISB, ED, MD and MD + ISCB (ns)

Impact of the number of stations in the network

Figures 8, 9 and 10 and Table 4 present comparisons of the clock offset biases, RMS values and STD values obtained with MD + ISCB for 60, 80 and 100 stations. According to Table 4, the precise absolute clock offset can be obtained by considering only 60 multi-GNSS stations. Especially for BeiDou, as the number of stations increases, the performance will improve.

Fig. 8
figure 8

Clock offset biases obtained using MD + ISCB for 60, 80 and 100 stations

Fig. 9
figure 9

RMS values of the clock offset differences obtained using MD + ISCB for 60, 80 and 100 stations

Fig. 10
figure 10

STD values of the clock offset differences obtained using MD + ISCB for 60, 80 and 100 stations

Table 4 Clock offset biases, RMS, and STD values of the clock offsets obtained using MD + ISCB for 60, 80 and 100 stations (ns)

Conclusion

We introduce the basic theory and main challenges of real-time GNSS clock offset estimation using undifferenced and epoch-differenced models. To address the common clock offset biases problem in real-time precise clock products, an ISCB correction method is introduced, and a multi-GNSS real-time precise clock estimation model considering ISCBs is proposed. This model can produce zero-bias absolute precise real-time clock offsets, thereby resolving the systematic bias problems in the GLONASS and BeiDou clock offsets. The real-time clock RMS values for GPS, GLONASS, Galileo and BeiDou are 0.13 ns, 0.12 ns, 0.17 ns and 0.25 ns, respectively, representing an improvement by approximately 63% compared to mixed-differenced model. Corresponding STDs are 0.10 ns, 0.09 ns, 0.15 ns and 0.17 ns, respectively, at the same level as epoch-differenced model and superior to undifferenced and mixed-differenced models. The clock STDs of GLONASS and BeiDou are improved by 45% compared to those of the mixed-differenced model.

On the basis of the mixed-differenced model, which eliminates ambiguity parameters, the multi-GNSS real-time clock offset estimation model considering ISCBs presented here further eliminates a large number of bias parameters, achieving a parameter elimination rate of 95%, which further improves the single-epoch estimation efficiency and enables an updating rate on the level of seconds. With the selection of appropriate hardware environments and global stations, this model can fully meet the incremental development needs of real-time clock offset estimation for multi-GNSS, such as BeiDou-3, Galileo and other regional navigation systems.