## 2 Methods
### Mixed-Frequency PPP Model  
The observation functions of the GNSS carrier phase and pseudo-range on a single frequency can be described by [32; 33]  
\[P_{i}^{sys}=\rho_{i}^{sys}+cdt_{r}^{sys}-cdt_{s}^{sys}-d_{ion}^{sys}+d_{trop}^{ sys}+\epsilon_{P,i}^{sys} \tag{17}\]  
\[\Phi_{i}^{sys}=\rho_{i}^{sys}+cdt_{r}^{sys}-cdt_{s}^{sys}+d_{ion}^{sys}+d_{trop}^{ sys}+\lambda_{i}^{sys}N_{i}^{sys}+\xi_{\Phi,i}^{sys} \tag{18}\]  
where \(P_{i}^{sys}\) and \(\Phi_{i}^{sys}(=\varphi\cdot\lambda)\) denote the pseudo-range and the carrier-phase observations at the \(i^{\text{th}}\) frequency (when \(i\) is set to 1, this equation denotes the observations at frequencies L1/B1/G1/E1, and when \(i\) is set to 5, it denotes observations at frequencies L5/E5a); superscript \(sys\) is satellite system; \(\rho_{i}^{sys}\) is the geometric distance between a satellite and a smartphone; \(dt_{r}^{sys}\) and \(dt_{s}^{sys}\) are clock offsets of a GNSS receiver and a satellite, respectively; \(d_{ion}^{sys}\) and \(d_{trop}^{sys}\) are the ionospheric delay and the tropospheric delay, respectively; \(N_{i}^{sys}\) is the integer ambiguity of carrier phase; \(\varepsilon_{P,i}^{sys}\) and \(\tilde{\varsigma}_{\Phi,i}^{sys}\) are the sum of measurement noise, multipath error, and those unmodeled errors for pseudo-range and carrier-phase observations, respectively.  
The estimated parameter vector in such a mixed-frequency PPP can be defined as  
\[X_{MF}=\begin{bmatrix}[X&cdtr&DCB_{rec}&Trop_{wet}&\overline{N}_{r,1}^{sys}& \overline{N}_{r,5}^{sys}&\overline{T}_{r,1}^{sys}\end{bmatrix} \tag{19}\]  
where \(X=\begin{bmatrix}x&y&z\end{bmatrix}^{\text{T}}\) is the position vector; \(DCB_{rec}\) is the hardware delay of the receiver; \(Trop_{wet}\) is the residual of the wet delay of the zenith troposphere; \(\overline{N}_{r,1}^{sys}=\begin{bmatrix}N_{1}^{1}&\dots&N_{1}^{m}\end{bmatrix}^ {\text{T}}\) is the ambiguity vector for frequency L1/G1/B1/E1; \(\overline{N}_{r,5}^{sys}=\begin{bmatrix}N_{5}^{1}&\dots&N_{5}^{m}\end{bmatrix} ^{\text{T}}\) is the ambiguity vector for frequency L5/E5a; \(\overline{T}_{r,1}^{sys}=\begin{bmatrix}I_{r,1}^{1}&\dots&I_{r,1}^{m}\end{bmatrix} ^{\text{T}}\) is the ionospheric vector; \(cdtr\) is the receiver clock offset. For multi-GNSS data, an independent receiver clock bias for each GNSS is set instead of using an inter-system bias.  
The observation model of such a mixed-frequency PPP can be expressed by  
\[\begin{bmatrix}P_{r,1}^{sys}\\ P_{r,5}^{sys}\\ \Phi_{r,1}^{sys}\\ \Phi_{r,5}^{sys}\\ I_{GIM}\end{bmatrix}=A\begin{bmatrix}[X]\\ cdtr\\ DCB_{rec}\\ \overline{N}_{r,1}^{sys}\\ \overline{N}_{r,5}^{sys}\\ \overline{T}_{r,1}^{sys}\end{bmatrix}+\begin{bmatrix}[\delta P_{r,1}^{sys}\\ \delta P_{r,5}^{sys}\\ \delta\Phi_{r,5}^{sys}\\ \delta I_{GIM}\end{bmatrix} \tag{20}\]  
where \(A\) is the coefficient matrix, which can be defined as  
\[A=\begin{bmatrix}[a&b&c&I_{cdtr}&dcb_{rec}&Mw&0&0&I_{ion1}\\ a&b&c&I_{cdtr}&dcb_{rec}&Mw&0&0&I_{ion5}\\ a&b&c&I_{cdtr}&0&Mw&I_{amb1}&0&-I_{ion1}\\ a&b&c&I_{cdtr}&0&Mw&0&I_{amb5}&-I_{ion5}\\ 0&0&0&0&0&0&0&I_{ion1}\end{bmatrix} \tag{21}\]  
where \(a\), \(b\), and \(c\) are the coefficients in the direction cosine matrix; \(I_{cdtr}\) is the coefficient of the receiver clock error; \(dcb_{rec}\) is the coefficient matrix of the receiver hardware delay; \(Mw\) represents the coefficient matrix of the residual of the wet component of a zenithtropospheric delay; \(I_{amb1}\) and \(I_{amb5}\) represent coefficient matrices for ambiguity parameters of L1, G1, B1, E1, and L5; \(I_{ion1}\) and \(I_{ion5}\) represent coefficient matrices for ionospheric delays.  
Then, the sequential least square adjustment is used to estimate the parameters by using  
\[P_{\hat{X}_{k}}=A_{k}^{T}P_{k}A_{k}+P_{\hat{X}_{k-1}} \tag{22}\]  
\[\hat{X}_{k}=\Big{(}A_{k}^{T}P_{k}A_{k}+P_{\hat{X}_{k-1}}\Big{)}^{-1}\Big{(}A_{ k}^{T}P_{k}L_{k}+P_{\hat{X}_{k-1}}\hat{X}_{k-1}\Big{)} \tag{23}\]  
where \(P_{k}\) is the prior weight matrix of the observations.