## 3 Precise Positioning Using Uncombined PPP (UPPP) Algorithm
### Analysis of GNSS Observations from Different Logging Apps
#### 4.1.1 Inconsistency between Pseudorange, Carrier-Phase and Doppler Observations
The carrier-phase predicted error is then estimated as \(\hat{\Phi}^{s}_{r,j}-\Phi^{s}_{r,j}=\lambda_{j}\hat{\varphi}^{s}_{r,j}-\lambda _{j}\varphi^{s}_{r,j}\) in meters. Let us start with the first indicator. Figure 2 shows the first-order differentiation of GPS pseudorange and carrier-phase observations, as well as the Doppler observations for PRN 01 on the L1 frequency from the three RINEX files for the Xiaomi Mi8. To have a better view, the difference between Doppler observations and the first-order differentiation of the pseudorange (i.e., \(-\lambda_{j}D^{s}_{r,j}-diff(\text{P}^{s}_{r,j})/T\)) and the difference between Doppler observations and the first-order differentiation of the carrier-phase observations, (i.e., \(-\lambda_{j}D^{s}_{r,j}-diff(\Phi^{s}_{r,j})/T\)) are also depicted in the right panel of this figure. In some graphs, the red line cannot be seen at this zoom setting since it is under the green one (Doppler). A few observations can be highlighted from the Figure 1. The Doppler observations of the three RINEX files are the same. As mentioned, the Doppler shift was obtained as \(dpplershift=-PseudorangeRatemetersperSecond/\lambda\) (see Equation (4)), showing that generating the Doppler observation was straightforward and without any complication. Figure 1: C/N0 measurements for selected PRNs and three smartphone (Xiaomi Mi8, Google Pixel 5 and Samsung S20). \begin{table}
\begin{tabular}{l l} \hline \hline
**Indicator** & **Formula** \\ \hline First-order differentiation of pseudorange and phase & \(\left\{\begin{matrix}\text{diff}(\text{P}^{s}_{r,j})/\text{T}\\ \text{diff}(\Phi^{s}_{r,j})/\text{T}\\ -\lambda_{j}D^{s}_{r,j}\\ \text{P}^{s}_{r,j}-\Phi^{s}_{r,j}\\ \text{C}^{s}_{r,j}-\Phi^{s}_{r,j}\\ \end{matrix}\right.\) \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Different indictors used to analyze raw GNSS observations. (2) Shown in the top panel of Figure 2 is related to the GnssLogger RINEX file. As observed, there was an offset between the Doppler and the pseudorange observations. Such an offset could have been caused during the pseudorange generation from the raw measurements in the Android API \"location\"-related classes. An offset was probably applied to the pseudorange observations. Applying such an offset would not be affected the solution as it could be lumped into the receiver clock bias and the real-valued ambiguities. (3) Shown in the middle panel of Figure 2 is related to the Geo++ RINEX logger output. Similar offset could be observed here not only for the pseudorange, but also for the carrier-phase observations. The carrier-phase observations followed the pseudorange observations behavior in terms of the anomalies, spikes and jumps. This shows that what happened to the pseudorange observations during their generation procedure also happened to the carrier-phase observations. (4) Shown in the bottom panel of Figure 2 is related to the converted RINEX file from our developed convertor following the equations in [40]. Unlike the other two RINEX files, there was no offset between the pseudorange and carrier-phase and Doppler observations. The first-order differences of pseudorange and carrier-phase observations also followed the same trend of the Doppler observations. (5) The Doppler observations can be employed for cycle slip detection and/or code smoothing. Considering the possible biases and anomalies in the data, the Doppler observations have to be carefully analyzed before use. The other two indicators, the CMP combination and the carrier-phase predicted error, are then utilized to further investigate the effect of possible biases and anomalies in the data. Before that, the same plots for the GLONASS PRN 17 and Galileo PRN 31 on the first frequency are shown in Figures 3 and 4, respectively. Shown in the top, middle and bottom panels of Figures 3 and 4 are related to the GnssLogger RINEX file, the Geo++ RINEX logger output and the converted RINEX file from our developed convertor, respectively. The same conclusions hold for the GLONASS and Galileo constellations.