### Multi-frequency and multi-GNSS PPP-RTK system

The procedure of the multi-frequency and multi-GNSS PPP-RTK system is illustrated in Fig. 1. On the server side, given precise satellite orbits and clocks, PPP is conducted at all stations of the regional network. Then, the satellite phase biases, also known as the Uncalibrated Phase Delays (UPDs), of Extra-Wide-Lane (EWL), Wide-Lane (WL), and Narrow-Lane (NL) are estimated by the method proposed by Li, Han, et al. (2021). Therewith, the multi-frequency and multi-GNSS PPP AR is carried out to extract the precise atmospheric corrections. On the user side, the atmospheric corrections of the user side are interpolated using the atmospheric corrections from the server side. When the satellite orbits and clocks, UPDs, and the external atmospheric corrections are received, PPP and EWL-WL-L1 cascade AR are implemented, and finally the multi-frequency and multi-GNSS PPP-RTK is achieved. In the following sections, the algorithms for atmospheric correction extraction based on the uncombined PPP model on the server side, and for EWL-WL-L1 cascade AR with external atmospheric corrections on the user side are described.

### Atmospheric correction extraction based on uncombined PPP AR model

The GNSS pseudorange observation (\(P_{r,n}^{s}\)) and phase observation(\(L_{r,n}^{s}\)) are described as:

$$\begin{gathered} P_{r,k}^{s} = \rho_{r}^{s} + c(t_{r} - t^{s} ) + \gamma_{k} \cdot I_{r,1}^{s} + m_{r}^{s} \cdot Z_{r} + (b_{r,k} - b_{k}^{s} ) + e_{r,k}^{s} \hfill \\ L_{r,k}^{s} = \rho_{r}^{s} + c(t_{r} - t^{s} ) - \gamma_{k} \cdot I_{r,1}^{s} + m_{r}^{s} \cdot Z_{r} +\uplambda _{k} (B_{r,k} - B_{k}^{s} ) +\uplambda _{k} \cdot N_{r,k}^{s} + \varepsilon_{r,k}^{s} \hfill \\ \end{gathered}$$

(1)

where the superscripts *s*, *r* and *k* represent satellite, receiver, and frequency, respectively; \(\rho_{r}^{s}\) is the geometric distance between the phase centers of the satellite antenna and the receiving antenna; \(c\) is the vacuum speed of light; \(t_{r}\) and \(t^{s}\) denote the receiver and satellite clock offset, respectively; \(I_{r,1}^{s}\) refers to the ionospheric propagation delay of a GNSS signal on the first frequency; \(\gamma_{k}\) is the frequency-dependent multiplier factor, which can be expressed as \(\upgamma _{k} =\uplambda _{k} /\uplambda _{1}\); \(m_{r}^{s} \cdot Z_{r}\) represents tropospheric path delay; \(b_{r,k}\) and \(b_{k}^{s}\) are the code hardware delays while \(B_{r,k}\) and \(B_{k}^{s}\) are the phase delays of receiver and satellite, respectively; \(N_{r,k}^{s}\) represents the integer ambiguity; \(e_{r,k}^{s}\) and \(\varepsilon_{r,k}^{s}\) are the sum of measurement noise and multipath error of code and phase observations, respectively. It should be noted that other errors such as relativistic effects, Sagnac effect, solid earth tide, polar tides, ocean tide loadings, satellite and receiver antenna Phase Center Offsets (PCOs) and Phase Center Variations (PCVs), and phase wind-up are corrected by the known models (Kouba, 2015).

The uncombined PPP model is implemented to derive the precise tropospheric and ionospheric delays directly when ambiguity is fixed (Zhang et al. 2012). The general equations of the multi-frequency undifferenced PPP model can be written as:

$$\left\{ \begin{gathered} p_{r,i}^{s} = \mu_{r}^{s} \cdot x + \hat{t}_{r} - \overline{t}^{s}_{{\text{IF}}} + \gamma_{i} \cdot \hat{I}_{r,i}^{s} { + }m_{r,w}^{s} Z_{r,w} + e_{r,k}^{s} \hfill \\ p_{r,j}^{s} = \mu_{r}^{s} \cdot x + \hat{t}_{r} - \overline{t}^{s}_{{{\text{IF}}}} + \gamma_{j} \cdot \hat{I}_{r,i}^{s} { + }m_{r,w}^{s} Z_{r,w} + e_{r,k}^{s} \hfill \\ p_{r,k}^{s} = \mu_{r}^{s} \cdot x + \hat{t}_{r} - \overline{t}^{s}_{{{\text{IF}}}} + \gamma_{k} \cdot \hat{I}_{r,i}^{s} { + }m_{r,w}^{s} Z_{r,w} + B_{k}^{{{\text{IFB}}}} + e_{r,k}^{s} \hfill \\ \end{gathered} \right.$$

(2)

$$\left\{ \begin{gathered} l_{r,i}^{s} = \mu_{r}^{s} \cdot x + \hat{t}_{r} - \overline{t}^{s}_{{I{\text{F}}}} - \gamma_{i} \cdot \hat{I}_{r,i}^{s} { + }m_{r,w}^{s} Z_{r,w} + \lambda_{i} \hat{N}_{r,i}^{s} + \varepsilon_{r,i}^{s} \hfill \\ l_{r,j}^{s} = \mu_{r}^{s} \cdot x + \hat{t}_{r} - \overline{t}^{s}_{{{\text{IF}}}} - \gamma_{j} \cdot \hat{I}_{r,i}^{s} { + }m_{r,w}^{s} Z_{r,w} + \lambda_{j} \hat{N}_{r,j}^{s} + \varepsilon_{r,j}^{s} \hfill \\ l_{r,k}^{s} = \mu_{r}^{s} \cdot x + \hat{t}_{r} - \overline{t}^{s}_{{{\text{IF}}}} - \gamma_{k} \cdot \hat{I}_{r,i}^{s} { + }m_{r,w}^{s} Z_{r,w} + \lambda_{k} \hat{N}_{r,k}^{s} + \varepsilon_{r,k}^{s} \hfill \\ \end{gathered} \right.$$

(3)

With

$$\left\{ \begin{gathered} k \ne i,k \ne j,\alpha_{ij} = \frac{{f_{i}^{2} }}{{f_{i}^{2} - f_{j}^{2} }},\beta_{ij} = \frac{{f_{j}^{2} }}{{f_{i}^{2} - f_{j}^{2} }} \hfill \\ \overline{t}_{{{\text{IF}}}}^{s} = c \cdot t^{s} + \left( {\alpha_{ij}^{{}} b_{i}^{s} + \beta_{ij}^{{}} b_{j}^{s} } \right) \hfill \\ \hat{t}_{r} = c \cdot t_{r} { + }\left( {\alpha_{ij}^{{}} b_{r,i}^{{}} + \beta_{ij}^{{}} b_{r,j}^{{}} } \right) \hfill \\ \hat{I}_{r,i}^{s} = I_{r,i}^{s} + \beta_{ij} \left( {b_{r,i} - b_{r,j} } \right) - \beta_{ij} \left( {b_{i}^{s} - b_{j}^{s} } \right) \hfill \\ B_{k}^{{{\text{IFB}}}} = \left[ {\left( {b_{r,k} - b_{k}^{s} } \right) - \left( {b_{r,i} - b_{i}^{s} } \right)} \right] + \frac{{\beta_{ij} }}{{\beta_{ik} }}\left[ {\left( {b_{r,i} - b_{i}^{s} } \right) - \left( {b_{r,j} - b_{j}^{s} } \right)} \right] \hfill \\ \hat{N}_{r,i}^{s} = N_{r,i}^{s} + \left( {B_{r,i} - B_{i}^{s} } \right) + \left[ {b_{{{\text{IF}}}}^{s} - b_{{r,{\text{IF}}}} + \beta_{ij} \left( {b_{r,i} - b_{r,j} } \right) - \beta_{ij} \left( {b_{i}^{s} - b_{j}^{s} } \right)} \right]/\lambda_{i} \hfill \\ \hat{N}_{r,j}^{s} = N_{r,j}^{s} + \left( {B_{r,j} - B_{j}^{s} } \right){ + }\left[ {b_{{{\text{IF}}}}^{s} - b_{{r,{\text{IF}}}} + \gamma_{j} \beta_{ij} \left( {b_{r,i} - b_{r,j} } \right) - \gamma_{j} \beta_{ij} \left( {b_{i}^{s} - b_{j}^{s} } \right)} \right]/\lambda_{j} \hfill \\ \hat{N}_{r,k}^{s} = N_{r,k}^{s} + \left( {B_{r,k} - B_{k}^{s} } \right){ + }\left[ {b_{{{\text{IF}}}}^{s} - b_{{r,{\text{IF}}}} + \gamma_{k} \beta_{ij} \left( {b_{r,i} - b_{r,j} } \right) - \gamma_{k} \beta_{ij} \left( {b_{i}^{s} - b_{j}^{s} } \right)} \right]/\lambda_{k} \hfill \\ \end{gathered} \right.$$

(4)

where \(p_{r,j}^{s}\) and \(l_{r,j}^{s}\) represent the observed-minus-computed values of pseudorange and phase observations, respectively; \(\mu_{r}^{s}\) is the unit vector from the receiver to the satellite; \({\mathbf{x}}\) (\({\mathbf{x}} = [{\text{d}}x,{\text{d}}y,{\text{d}}z]\)) denotes the receiver position increments vector relative to a prior position. \(B_{k}^{{{\text{IFB}}}}\) is the Inter-Frequency Bias (IFB), which describes the between-frequencies differences of code hardware delays. The code IFB at the frequency which is used for satellite clock estimation can be absorbed into the ionospheric delay, while the others are absorbed by setting an individual receiver clock parameter for each one. And the phase IFB can be absorbed into ambiguity (Montenbruck, et al. 2010; Pan, Zhang, et al., 2017; Pan et al., 2019). Another bias that needs to be considered is the Inter-Frequency Clock Bias (IFCB), which is induced due to the inconsistency of the observations used for satellite clock estimation and precise positioning. The Code-specific IFCB (CIFCB) is usually eliminated by Differential Code Bias (DCB) transformation (Guo et al., 2015), while the Phase IFCB (PIFCB) is corrected by the corresponding corrections (Pan, Li, et al., 2017; Pan, Zhang, et al., 2017). For multi-GNSS PPP, a similar strategy with IFB is applied to compensate the Inter-System Bias (ISB) which represents the between-constellations differences of code hardware delays (Khodabandeh et al. 2016). After the precise satellite orbits, clocks, and UPDs are received, PPP AR is conducted in the reference network. Then the precise tropospheric delays and ionospheric delays are derived from the PPP AR solution directly, and broadcasted to users as atmospheric corrections.

### EWL-WL-L1 cascade AR with external atmospheric corrections

With the precise atmospheric corrections from a regional network, the Modified Linear Combination Method (MLCM) proposed by Li et al. (2011) is employed to interpolate the precise atmospheric corrections at the user side. As shown in Fig. 2, the external ionospheric and tropospheric corrections are introduced into the multi-frequency and multi-GNSS undifferenced PPP as virtual observation equations. Therefore, the PPP model with external atmospheric corrections is expressed as:

$$\left\{ \begin{gathered} p_{r,n}^{s} = \mu_{r}^{s} \cdot x + \hat{t}_{r} - \overline{t}^{s}_{IF} + \gamma_{n} \cdot \hat{I}_{r,i}^{s} { + }m_{r,w}^{s} Z_{r,w} + \kappa \cdot B_{k}^{{{\text{IFB}}}} + e_{r,n}^{s} \hfill \\ l_{r,n}^{s} = \mu_{r}^{s} \cdot x + \hat{t}_{r} - \overline{t}^{s}_{IF} - \gamma_{n} \cdot \hat{I}_{r,i}^{s} { + }m_{r,w}^{s} Z_{r,w} + \lambda_{n} \hat{N}_{r,n}^{s} + \varepsilon_{r,n}^{s} \hfill \\ l_{{_{I} }}^{s} = \hat{I}_{r,n}^{s} - \tilde{I}_{r,n}^{s} = w_{I} ,\quad w_{I} \sim{\text{N}}(0,\sigma_{I}^{2} ) \hfill \\ l_{{_{Z} }}^{s} = Z_{r,w} - \tilde{Z}_{r,w} = w_{Z} ,\quad w_{Z} \sim{\text{N}}(0,\sigma_{Z}^{2} ) \hfill \\ \end{gathered} \right.$$

(5)

with the stochastic model

$$\Sigma = {\text{diag}}(\sigma_{p}^{2} ,\sigma_{l}^{2} ,\sigma_{{I }}^{2} ,\sigma_{{Z }}^{2} )$$

(6)

where \(\kappa\) is equal to 0 or 1, \(\tilde{I}_{r,n}^{s}\) and \(\tilde{Z}_{r,w}\) denote the precise ionospheric and tropospheric corrections, respectively; \(w_{I}\) and \(w_{Z}\) mean the differences between atmospheric corrections and actual atmospheric delays, which are the white noise with zero-mean and variance of \(\sigma_{{I }}^{2}\) and \(\sigma_{{Z }}^{2}\). After getting the PPP solution, the ambiguity at each frequency is acquired and then transformed to EWL and WL ambiguity according to Eq. (7).

$$\left[ \begin{gathered} \hat{N}_{{{\text{EWL}}\_jk}}^{s} \hfill \\ \hat{N}_{{{\text{WL}}\_ij}}^{s} \hfill \\ \end{gathered} \right] = \left[ \begin{gathered} 0\,\,\,\,\,\,\,\,\,\,{1}\,\,\,\,\,\,\,\,\,\,\,{-1} \hfill \\ 1\,\,\,\,\,\,\,{-1}\,\,\,\,\,\,\,\,\,\,\,\,\,{0} \hfill \\ \end{gathered} \right]\left[ \begin{gathered} \hat{N}_{r,i}^{s} \hfill \\ \hat{N}_{r,j}^{s} \hfill \\ \hat{N}_{r,k}^{s} \hfill \\ \end{gathered} \right] + \left[ \begin{gathered} d_{{r,{\text{EWL}}}}^{{}} - d_{{{\text{EWL}}}}^{s} \hfill \\ d_{{r,{\text{WL}}}}^{{}} - d_{{{\text{WL}}}}^{s} \hfill \\ \end{gathered} \right]$$

(7)

where \(d_{r}\) and \(d^{s}\) are the UPDs of receiver and satellite, respectively.

With the EWL, WL and NL UPDs products, the EWL, WL and L1 ambiguities are fixed sequentially. The phase biases of satellites are compensated with the corresponding UPD products, and those of receivers are eliminated through between-satellites differencing. Once the integer property is recovered, the ambiguity can be fixed by the LAMBDA search method (Teunissen 2010), and introduced to the PPP model as a virtual observation equation with an infinite weighting factor. The PPP model with the external EWL AR constraint is written as:

$$\left\{ \begin{gathered} p_{r,n}^{s} = \mu_{r}^{s} \cdot x + \hat{t}_{r} - \overline{t}^{s}_{{{\text{IF}}}} + \gamma_{ik} \hat{I}_{r,i}^{s} { + }m_{r,w}^{s} Z_{r,w} + \kappa \cdot B_{k}^{{{\text{IFB}}}} + e_{r,n}^{s} \hfill \\ l_{r,n}^{s} = \mu_{r}^{s} \cdot x + \hat{t}_{r} - \overline{t}^{s}_{{{\text{IF}}}} - \gamma_{ik} \cdot \hat{I}_{r,i}^{s} { + }m_{r,w}^{s} Z_{r,w} + \hat{N}_{r,n}^{s} + \varepsilon_{r,n}^{s} \hfill \\ m = \Delta \hat{N}_{{r,{\text{EWL}}\_jk}}^{{s_{1} s_{2} }} = N_{{r,{\text{EWL}}\_jk}}^{{s_{1} s_{2} }} + d_{{{\text{EWL}}\_jk}}^{{s_{1} s_{2} }} \hfill \\ \end{gathered} \right.$$

(8)

with stochastic model

$$\Sigma = {\text{diag}}\left( {\sigma_{p}^{2} ,\sigma_{l}^{2} ,\sigma_{m}^{2} } \right)$$

(9)

\(\sigma_{m}^{2}\) is the variance of the virtual observation equation. The constraint decorrelates ambiguity and other parameters, which can accelerate convergence and provide accurate ambiguity. Similar to EWL AR, the WL ambiguity is fixed and involved in the PPP model as a virtual observation equation which can be expressed as:

$$l = \Delta \hat{N}_{{r,{\text{WL}}\_ij}}^{{s_{1} s_{2} }} = N_{{r,{\text{WL}}\_ij}}^{{s_{1} s_{2} }} + d_{{r,{\text{WL}}\_ij}}^{{s_{1} s_{2} }} , \, \sigma_{l}^{2} \in 0$$

(10)

With those constraints, the accuracy of the PPP solution is improved and the search space of L1 ambiguity is narrowed. After L1 UPD is obtained by UPD transformation, L1 ambiguity is fixed. Finally, the multi-frequency and multi-GNSS PPP-RTK solution is derived.