### Ambiguity-float PPP

In the uncombined PPP model, the ionospheric delays can be either estimated or corrected. The linearized observation equations for pseudorange and phase observations from satellite *s* to receiver *r* are described as:

$$ \left\{ {\begin{array}{*{20}l} {\Delta P_{r,f}^{q,s} = {\varvec{u}}_{r}^{q,s} \cdot \Delta {\varvec{x}} + c \cdot ({\text{d}} t_{r}^{q} - {\text{d}} t^{q,s} ) + M_{r}^{q,s} \cdot Z_{r}^{{}} + \gamma_{f}^{q} \cdot I_{r,1}^{q,s} }{ + d_{r,f}^{q} - d_{f}^{q,s} + \varepsilon_{P,f}^{q} } \\ {\Delta L_{r,f}^{q,s} = {\varvec{u}}_{r}^{q,s} \cdot \Delta {\varvec{x}} + c \cdot ({\text{d}} t_{r}^{q} - {\text{d}} t^{q,s} ) + M_{r}^{q,s} \cdot Z_{r}^{{}} - \gamma_{f}^{q} \cdot I_{r,1}^{q,s} + \lambda_{f}^{q} \cdot N_{r,f}^{q,s} }{ + b_{r,f}^{q} - b_{f}^{q,s} + \varepsilon_{L,f}^{q} } \\ \end{array} } \right. $$

(1)

where \(\Delta P_{r,f}^{q,s}\) and \(\Delta L_{r,f}^{q,s}\) are the respective pseudorange and phase measurements on the frequency *f* (*f* = 1,2), from which the computed values are removed; \({\varvec{u}}_{r}^{q,s}\) is the receiver-to-satellite unit vector; \(\Delta {\varvec{x}}\) is the vector of the receiver position corrections to its preliminary position; \({\text{d}} t_{r}^{q}\) and \({\text{d}} t^{q,s}\) are the receiver and satellite clock errors, respectively; \(c\) is the light speed in vacuum;\(M_{r}^{q,s}\) is the elevation-dependent mapping function for the tropospheric wet delay from the corresponding zenith one \(Z_{r}^{{}}\); \(I_{r,1}^{q,s}\) is the ionospheric delay along the line-of-sight from a receiver to a satellite at the first frequency and \(\gamma_{f}^{q} { = (}\lambda_{f}^{q} /\lambda_{1}^{q} )^{2}\); \(\lambda_{f}^{q}\) is the wavelength for the frequency *f* of a GNSS *q*; \(N_{r,f}^{q,s}\) is the phase ambiguity; \(d_{r,f}^{q}\) and \(b_{r,f}^{q}\) are the receiver hardware delays of code and phase observations, respectively; \(d_{f}^{q,s}\) and \(b_{f}^{q,s}\) are the satellite hardware delays of code and phase observations, respectively; \(\varepsilon_{P,f}\) and \(\varepsilon_{L,f}\) are the code and phase measurement noises, respectively, which include the multipath effects (Shi and Gao 2014).

Considering that the ionospheric-free combined observations which contain the satellite code biases are adopted for satellite clock error (parameter) estimates, the satellite clock parameters can be denoted as:

$$ {\text{d}} \tilde{t}^{q,s} = {\text{d}} t^{q,s} + \gamma_{2}^{q} /(\gamma_{2}^{q} - 1) \cdot d_{1}^{q,s} + d_{2}^{q,s} /(1 - \gamma_{2}^{q} ) $$

(2)

Hence, the receiver clock parameter is denoted as:

$$ {\text{d}} \tilde{t}_{r}^{q} = {\text{d}} t_{r}^{q} + \gamma_{2}^{q} /(\gamma_{2}^{q} - 1) \cdot d_{r,1}^{q} + d_{r,2}^{q} /(1 - \gamma_{2}^{q} ) $$

(3)

The ionospheric delays and ambiguities are reparameterized as:

$$ \left\{ {\begin{array}{*{20}c} {\tilde{I}_{r,1}^{q,s} = I_{r,1}^{q,s} + ({\text{DCB}}_{r}^{q} - {\text{DCB}}^{q,s} )/(\gamma_{2}^{q} - 1)} \\ {\tilde{N}_{r,f}^{q,s} = N_{r,f}^{q,s} + b_{r,f}^{q} - b_{f}^{q,s} - (\gamma_{2}^{q} + 1)/(\gamma_{2}^{q} - 1) \cdot (d_{r,1}^{q} - d_{1}^{q,s} ) + 2/(\gamma_{2}^{q} - 1) \cdot (d_{r,2}^{q} - d_{2}^{q,s} )} \\ \end{array} } \right. $$

(4)

where \({\text{DCB}}_{r} = d_{r,1} - d_{r,2}\) and \({\text{DCB}}^{s} = d_{1}^{s} - d_{2}^{s}\) are the Differential Code Biases (DCBs) for respective receiver and satellite. After applying the satellite clock corrections, the observations for the uncombined PPP model with GPS, BDS-2, and Galileo data can be written as:

$$ \left\{ \begin{gathered} \Delta P_{r,f}^{{{\text{G}},s}} = {\varvec{u}}_{r}^{{{\text{G}},s}} \cdot \Delta {\varvec{x}} + c \cdot {\text{d}} \tilde{t}_{r}^{{\text{G}}} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} + M_{r}^{{{\text{G}},s}} \cdot Z_{r}^{{}} + \gamma_{f}^{{\text{G}}} \cdot \tilde{I}_{{r{,1}}}^{{{\text{G}},s}} + \varepsilon_{P,f}^{{\text{G}}} \\ \Delta P_{r,f}^{{{\text{C}},s}} = {\varvec{u}}_{r}^{{{\text{C}},s}} \cdot \Delta {\varvec{x}} + c \cdot {\text{d}} \tilde{t}_{r}^{{\text{C}}} + c \cdot {\text{ISB}}_{r}^{{\text{C}}} + M_{r}^{{{\text{C}},s}} \cdot Z_{r}^{{}} + \gamma_{f}^{{\text{C}}} \cdot \tilde{I}_{{r{,1}}}^{{{\text{C}},s}} + \varepsilon_{P,f}^{{\text{C}}} \\ \Delta P_{r,f}^{{{\text{E}},s}} = {\varvec{u}}_{r}^{{{\text{E}},s}} \cdot \Delta {\varvec{x}} + c \cdot {\text{d}} \tilde{t}_{r}^{{\text{G}}} + c \cdot {\text{ISB}}_{r}^{{\text{E}}} + M_{r}^{{{\text{E}},s}} \cdot Z_{r}^{{}} + \gamma_{f}^{{\text{E}}} \cdot \tilde{I}_{{r{,1}}}^{{{\text{E}},s}} + \varepsilon_{P,f}^{{\text{E}}} \\ \end{gathered} \right. $$

(5)

$$ \left\{ \begin{gathered} \Delta L_{r,f}^{{{\text{G}},s}} = {\varvec{u}}_{r}^{{{\text{G}},s}} \cdot \Delta {\varvec{x}} + c \cdot {\text{d}} \tilde{t}_{r}^{{\text{G}}} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \;\;{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} + M_{r}^{{{\text{G}},s}} \cdot Z_{r}^{{}} - \gamma_{f}^{{\text{G}}} \cdot \tilde{I}_{r,1}^{{{\text{G}},s}} + \lambda_{r}^{{\text{G}}} \cdot \tilde{N}_{r,f}^{{{\text{G}},s}} + \varepsilon_{L,f}^{{\text{G}}} \\ \Delta L_{r,f}^{{{\text{C}},s}} = {\varvec{u}}_{r}^{{{\text{C}},s}} \cdot \Delta {\varvec{x}} + c \cdot {\text{d}} \tilde{t}_{r}^{{\text{G}}} + c \cdot {\text{ISB}}_{r}^{{\text{C}}} + M_{r}^{{{\text{C}},s}} \cdot Z_{r}^{{}} - \gamma_{f}^{{\text{C}}} \cdot \tilde{I}_{r,1}^{{{\text{C}},s}} + \lambda_{r}^{{\text{C}}} \cdot \tilde{N}_{r,f}^{{{\text{C}},s}} + \varepsilon_{L,f}^{{\text{C}}} \\ \Delta L_{r,f}^{{{\text{E}},s}} = {\varvec{u}}_{r}^{{{\text{E}},s}} \cdot \Delta {\varvec{x}}\; + c \cdot {\text{d}} \tilde{t}_{r}^{{\text{G}}} + c \cdot {\text{ISB}}_{r}^{{\text{E}}} + \;M_{r}^{{{\text{E}},s}} \cdot Z_{r}^{{}} \; - \gamma_{f}^{{\text{E}}} \cdot \tilde{I}_{r,1}^{{{\text{E}},s}} \; + \lambda_{r}^{{\text{E}}} \cdot \tilde{N}_{r,f}^{{{\text{E}},s}} + \varepsilon_{L,f}^{{\text{E}}} \\ \end{gathered} \right. $$

(6)

where \({\text{ISB}}_{r}^{{\text{C}}}\) and \({\text{ISB}}_{r}^{{\text{E}}}\) are the inter-system bias for BDS-2 and Galileo with respect to GPS, respectively. Normally, the ISBs are regarded as constant which reflects the stability of receiver hardware code delays. However, the datum biases of the satellite clocks between different GNSS systems are also assimilated into the ISBs. The stability of ISBs is strongly correlated to specific satellite clock products. Correspondingly, the variations of ISBs are regarded as a white noise process. All estimated parameters in the Multi-GNSS PPP model are expressed as vector *X*:

$$ {\mathbf{X}} = \left[ {\Delta {\varvec{x}},c \cdot {\text{d}} \tilde{t}_{r}^{{\text{G}}} ,c \cdot {\text{ISB}}_{r}^{{\text{C}}} {,}c \cdot {\text{ISB}}_{r}^{{\text{E}}} {,}Z_{r} ,{\tilde{\mathbf{I}}}_{r,1}^{{\text{G}}} ,{\tilde{\mathbf{I}}}_{r,1}^{{\text{C}}} ,{\tilde{\mathbf{I}}}_{r,1}^{{\text{E}}} ,{\tilde{\mathbf{N}}}_{r,f}^{{\text{G}}} ,{\tilde{\mathbf{N}}}_{r,f}^{{\text{C}}} ,{\tilde{\mathbf{N}}}_{r,f}^{{\text{E}}} } \right]^{{\text{T}}} $$

(7)

where \({\tilde{\mathbf{I}}}_{r,1}^{{}}\) denotes the vector of the ionospheric delay parameters for all observed satellites and \({\tilde{\mathbf{N}}}_{r,f}^{{}}\) denotes the vector of the ambiguity parameters.

Additionally, the stations in a reference network are used to extract the float ambiguities for FCBs estimation. The stations’ coordinates are fixed to their references which are obtained in IGS SINEX files or from the preliminary static PPP processing for the stations not listed in SNX files.

### Fractional cycle bias estimation

The ambiguity parameter in Eq. (4) can be rewritten as:

$$ \left\{ \begin{gathered} \tilde{N}_{r,f}^{q,s} = N_{r,f}^{q,s} + B_{r,f}^{q} - B_{f}^{q,s} \hfill \\ B_{r,f}^{q} = b_{r,f}^{q} - (\gamma_{2}^{q} + 1)/(\gamma_{2}^{q} - 1) \cdot d_{r,1}^{q} + 2/(\gamma_{2}^{q} - 1) \cdot d_{r,2}^{q} \hfill \\ B_{f}^{q,s} = b_{f}^{q,s} - (\gamma_{2}^{q} + 1)/(\gamma_{2}^{q} - 1) \cdot d_{1}^{q,s} + 2/(\gamma_{2}^{q} - 1) \cdot d_{2}^{q,s} \hfill \\ \end{gathered} \right. $$

(8)

where \(N_{r,f}^{q,s}\) is an integer value, \(B_{r,f}^{q}\) and \(B_{f}^{q,s}\) are the respective receiver and satellite FCBs. Due to a strong correlation between ionospheric delays and ambiguities, which can be seen from Eq. (6), the accuracy of the estimated ambiguities on each frequency will be degraded by ionospheric errors. The combinations with integers (4,−3) and (1,−1), which have the low noise and long wavelengths, are selected to improve the accuracy of the estimated ambiguities and reduce the impacts of ionospheric errors (Li et al. 2018; Xiao et al. 2019). Hence, the ambiguities are combined as:

$$ \left[ {\begin{array}{*{20}c} {\tilde{N}_{{r,({4},{ - 3})}}^{q,s} } \\ {\tilde{N}_{r,(1, - 1)}^{q,s} } \\ \end{array} } \right]{ = }\left[ {\begin{array}{*{20}c} 4 & { - 3} \\ 1 & { - 1} \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {\tilde{N}_{r,1}^{s} } \\ {\tilde{N}_{r,2}^{s} } \\ \end{array} } \right] $$

(9)

Here, the combined ambiguities, \(\tilde{N}_{{r,({4},{ - 3})}}^{q,s}\) and \(\tilde{N}_{r,(1, - 1)}^{q,s}\), are defined as new NL and WL ambiguities. The corresponding FCBs are reformed as:

$$ \left[ {\begin{array}{*{20}c} {B_{{({4},{ - 3})}}^{q} } \\ {B_{(1, - 1)}^{q} } \\ \end{array} } \right]{ = }\left[ {\begin{array}{*{20}c} 4 & { - 3} \\ 1 & { - 1} \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {B_{1}^{q} } \\ {B_{2}^{q} } \\ \end{array} } \right] $$

(10)

Since the ambiguities have the same structure in Eq. (7), the fractional parts of ambiguities can be formulated as:

$$ \Delta n = \tilde{N}_{r}^{s} - N_{r}^{s} = B_{r} - B^{s} $$

(11)

where \(\Delta n\) denotes the FCB measurement which is the fractional part of the real-value ambiguity solution \(\tilde{N}_{r}^{s}\). \(N_{r}^{s}\) presents the integer part of the real-value ambiguity, which contains the original integer ambiguity and the integer part of the code and phase delays from satellite to receiver; \(B_{r}\) and \(B^{s}\) are the FCBs for receiver *r* and satellite *s*, respectively. All FCB measurements in Eq. (11) from a reference network of *m* stations and *n* satellites tracked can be expressed as:

$$ \left[ {\begin{array}{*{20}c} {\Delta n_{1}^{1} } \\ \vdots \\ {\Delta n_{r}^{s} } \\ \vdots \\ {\Delta n_{m}^{n} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {{\varvec{R}}_{1} } & {{\varvec{S}}^{1} } \\ \vdots & \vdots \\ {{\varvec{R}}_{r} } & {{\varvec{S}}^{s} } \\ \vdots & \vdots \\ {{\varvec{R}}_{m} } & {{\varvec{S}}^{n} } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {B_{1} } \\ \vdots \\ {B_{r} } \\ \vdots \\ {B_{m} } \\ {B^{1} } \\ \vdots \\ {B^{s} } \\ \vdots \\ {B^{n} } \\ \end{array} } \right] $$

(12)

In the coefficient vector \({\varvec{R}}_{r}^{{}}\), the *r*th element is 1 and the others are zero. In the coefficient vector \({\varvec{S}}_{{}}^{s}\), the *s*th element is –1 and the others are zero. One satellite for each GNSS system and new combined WL or NL ambiguities, respectively, is selected as a datum whose FCB is fixed to zero for resolving the rank deficiency in Eq. (12).

For the multi-GNSS data, the FCBs of new WL and NL combinations can be estimated together with GPS/BDS-2/Galileo. To reduce the high computation load, the FCBs of the WL and NL combinations are estimated system by system. The individual FCBs are recovered by the inverse operation in Eq. (10). The multi-GNSS FCBs are integrated in one file by the predefined formats. The detailed flowchart is presented in Fig. 1.

Firstly, the static Uncombined PPP (UPPP) is processed for each reference station with its coordinates fixed to estimate the precise real-value ambiguities on each frequency of observed satellites. In this study, the FCBs are estimated with an interval of 15 min. Hence, in the quality checking of the float ambiguity solutions, the ambiguities estimated with the observations of less than 10 min are deleted. After the quality checking, the ambiguities are inputted into the FCB estimator. Then, the individual ambiguities on each frequency are combined using Eq. (9). The FCBs measurements in Eq. (11) are adopted in the FCBs estimation for the WL and NL combinations. Finally, the inverse operation in Eq. (10) is conducted to recover the individual FCBs on each frequency. The raw FCB on each frequency is flexible in the State Space Representation (SSR) of Radio Technical Commission for Maritime service (RTCM) for users’ PPP AR (Shi 2012).

### PPP AR at the user terminal

After correcting the satellite FCBs for the estimation of float ambiguities, the SD PPP ambiguities are proposed in the ambiguity resolution for removing the receiver FCB. Additionally, the combined ambiguities, as shown in Eq. (9), are recommended for the FCB estimation. Hence, the WL and NL combinations of ambiguities are sequentially fixed. To eliminate the effects of measurement noise and multipath, the satellite elevation angle adopted in the ambiguity resolution should not be less than 15°. The ambiguity fixing success rate can be further improved by the partial ambiguity resolution method. Firstly, all available ambiguities are decorrelated. The reformed ambiguities are reordered in the ascending order according to their decorrelated variances. They can also be reordered according to the satellite elevation angles. Secondly, the Least-square AMBiguity Decorrelation Adjustment (LAMBDA) method is adopted to search for the optimal integer values. Thirdly, the bootstrapped success rate *P* and the ratio test value *R* are calculated. If *P*<\({P}_{0}\) or *R* < \({R}_{0}\), the last ambiguity with the lowest precision in the subset is removed and the second step is repeated. If the number of available ambiguities is less than four, the ambiguity-fixed solution fails. Otherwise, the integer ambiguities with a higher success rate and ratio value are confirmed as true values. Generally, the thresholds for \({P}_{0}\) and \({R}_{0}\) are set 0.999 and 2.0 (Li and Zhang 2015).

Once the integer values of ambiguities are confirmed, the tight constraint is imposed on the estimation of float ambiguities:

$$ 0{ = (}\tilde{N}_{r}^{q,s} - \tilde{N}_{r}^{q,n} ) - (N_{r}^{q,s} - N_{r}^{q,n} ) + (B_{r}^{q,s} - B_{r}^{q,n} ) $$

(13)

Using Eq. (13), the ambiguity-fixed solutions for positioning can be obtained after the PPP reprocessing. Note that the constraint of integer ambiguity can also increase the precision of other estimated parameters.

### Data and processing strategies

To assess the performance of the FCB estimations with the satellite orbit and clock products at Chang’an University based on the iGMAS, 316 stations from iGMAS and Multi-GNSS EXperiment (MGEX) are selected, shown in Fig. 2.

GPS satellites are tracked at all stations, and Galileo satellites are tracked at 190 stations, among which 138 stations tracked BDS-2 satellites. The uncombined PPP is implemented with GPS, Galileo, and BDS-2 observations for extracting the float ambiguities as the measurements in the FCB estimation. After generating FCBs, the uncombined PPP AR is achieved for GPS/BDS-2/Galileo combined solutions. The elevation-dependent stochastic model \(\sigma^{2} { = }\sigma_{0}^{2} /\text{sin}^{2} (\text{el})\) is adopted for the GNSS observations, where \(\sigma_{0}\) is 0.003 m and 0.3 m for carrier phase and code measurements, respectively, and \(\text{el}\) is the satellite elevation angle in radian. Among GPS, Galileo and BDS-2, the ratio of their observation noise is set as 1:1:3. The Phase Center Offset (PCO) and the Phase Center Variations (PCV) published by the European Space Agency (ESA) are used to correct the observations for BDS-2 satellites, while for the others the corrections are according to the IGS14.atx file. In PPP processing, the cutoff angle of satellite elevation is 7° in the float solutions and 15° in the AR, while it is 30° in the FCB estimation for quality assurance. For the parameters estimated in PPP, the receiver clock and Inter-System Bias (ISB) are treated as white noise processes, the zenith tropospheric delay as a random walk process, and the ionospheric delays as white noise processes.