# GPS + BDS Network Real-Time Differential Positioning Using a Position Domain Estimation Method
## 2 Materials and Methods
### Position Estimation for User
#### 2.2.2 An Improved Algorithm in the Position Domain  
The accuracy of carrier-phase-smoothed pseudorange depends on the selected smoothing window. Short smoothing windows may lead to large observation noise, while long smoothing windows may introduce systematic biases. Even with a proper smoothing window, the carrier-phase-smoothing procedure may be interrupted once the satellite is out of sight. By reducing the observation noise in the position domain rather than the range domain, the influence of the above situations can be greatly diminished. The position variation of a single station can be calculated by inter-epoch single-differenced carrier phase measurements. If no cycle slip occurs, the single-differenced observation equation can be written as  
\[\lambda\cdot\Delta\sigma_{k,k-1}^{q} =\left(\mathbf{B}_{k}^{q}-\mathbf{B}_{k-1}^{q}\right)d\mathbf{X}_{k-1}+\mathbf{B}_{ k}^{q}d\Delta\mathbf{X}_{k,k-1}+\Delta R_{0,k-1}^{q}-c\cdot\Delta\delta\tau_{uk,k-1}+c \cdot\Delta\delta\tau^{q}{}_{k,k-1} \tag{9}\] \[=\Delta\mathbf{B}_{k,k-1}^{q}d\mathbf{X}_{k-1}+\mathbf{B}_{k}^{q}d\Delta\mathbf{X} _{k,k-1}+\Delta R_{0,k-1}^{q}-c\cdot\Delta\delta\tau_{u,k-1}+c\cdot\Delta\delta \tau^{q}{}_{k,k-1}\]  
where \(\varphi\) is the carrier phase observable in units of cycles and \(\lambda\) is the corresponding wavelength, \(\mathbf{B}\) is the unit vector on the line-of-sight, \(k\) is the epoch number in the filter, and \(d\mathbf{X}\) and \(d\mathbf{\Delta}\mathbf{X}\) are the correction vectors for the position and its variation. In general, the sampling interval of users is small (e.g., 1 s), thus the difference of the unit vectors in adjacent epochs are very small, almost less than \(10^{-4}\) (example of the difference of the unit vectors can be seen in Appendix A), and the first term on the right side of Equation (9) can be ignored. Equation (9) can be simplified to  
\[\lambda\cdot\Delta\sigma_{k,k-1}^{q}=\mathbf{B}_{k}^{q}d\Delta\mathbf{X}_{k,k-1}+ \Delta R_{0,k-1}^{q}-c\cdot\Delta\delta\tau_{u,k-1}+c\cdot\Delta\delta\tau^{q} {}_{k,k-1}, \tag{10}\]  
The unknown estimators \(d\Delta\mathbf{X}_{k,k-1}\) and \(c\cdot\Delta\delta\tau_{uk,k-1}\) are thereby solved by a weighted least squares adjustment, and the position variation is derived from  
\[\Delta\hat{\mathbf{X}}_{k,k-1}=d\Delta\mathbf{X}_{k,k-1}+\Delta\mathbf{X}_{0,k-1}, \tag{11}\]  
where the initial position variation vector is \(\mathbf{\Delta}\mathbf{X}_{0,k-1}=\mathbf{X}_{0_{k}}-\mathbf{X}_{0,k-1}\). \(\mathbf{X}_{0,k-1}\) and \(\mathbf{X}_{0,k}\) are the initial position vectors for the previous and current epochs, respectively. \(\mathbf{X}_{0,k}\), together with the receiver's clock error of the current epoch, is obtained from the single point positioning with corrections. After the above procedure, the position variation \(\Delta\hat{\mathbf{X}}_{k,k-1}\) can be treated as the control vector, and position results can then be computed via the Kalman filter [38]. The corresponding state equation and linearized observation model can be expressed as  
\[\left\{ \begin{array}{l}\mathbf{X}_{k}=\mathbf{\hat{X}}_{k-1}+\Delta\mathbf{\hat{X}}_{k,k -1}+\Omega_{k-1}\\ \mathbf{L}_{k}=\mathbf{B}_{k}(\mathbf{X}_{k}-\mathbf{X}_{0_{k}})+\Delta_{k}\end{array} \right., \tag{12}\]  
where \(\mathbf{X}_{k}\) is the vector of the position parameters to be estimated, \(\mathbf{\hat{X}}_{k-1}\) is the estimated position vector in the previous epoch, and the transition matrix is an identity matrix. The dynamic noise \(\mathbf{\Omega}_{k\text{-}1}\) is the difference between the true value of the position variation and the single-differenced solution from Equation (10). The covariance matrix of \(\mathbf{\Omega}_{k\text{-}1}\) is the covariance matrix of the single-differenced solution. \(\mathbf{L}_{k}\) is the vector of the corrected pseudorange observables including the receiver's clock error, \(\mathbf{B}_{k}\) is the design matrix and \(\mathbf{\Delta}_{k}\) is the vector of the observation noise.