Performance of DGPS Smartphone Positioning with the Use of P(L1) vs. P(L5) Pseudorange Measurements

This paper presents numerical analyzes of code differential GPS positioning with the use of two Huawei P30 Pro mobile phones. Code observations on L1 and L5 frequencies were chosen for DGPS positioning analysis. For project purposes, we additionally used one high-class geodetic GNSS receiver (Javad Alpha) acting as a reference station. Smartphones were placed at the same distance of 0.5 m from the reference receiver. Such a close distance was specially planned by the authors in order to achieve identical observation conditions. Thus, it was possible to compare the DGPS positioning accuracy using the same satellites and the P(L1) and P(L5) code only, for single observation epochs and for sequential DGPS adjustment. Additionally, the precision of observations of the second differences in the observations P(L1) and P(L5) was analyzed. In general, the use of the P(L5) code to derive DGPS positions has made it possible to significantly increase the accuracy with respect to the positions derived using the P(L1) code. Average errors of horizontal and vertical coordinates were about 60–80% lower for the DGPS solution using the P(L5) code than using the P(L1) code. Based on the simulated statistical analyses, an accuracy of about 0.4 m (3D) with 16 satellites may be obtained using a smartphone with P(L5) code. An accuracy of about 0.3 m (3D) can be achieved with 26 satellites.


Introduction
DGPS (Differential Global Positioning System) measurements have been used since the beginning of satellite navigation. This positioning technique supports above all codeonly receivers, essentially using civil code C/A (coarse/acquisition), which is accessible in all GPS receivers. Code-based DGPS positioning has been widely used not only in navigation, but also includes surveying and other applications. Pseudorange measurements observed at accurately placed reference stations are compared with analogous ranges computed from the known coordinates. The errors determined are transmitted as differential corrections for DGPS users within range. Unfortunately, the drawback of such a solution is the distance limitation over which the differential corrections are valid. It caused by rapid decorrelation of the error sources. There are some research and development studies on generating corrections over larger areas. In the early 1990s, scientists proposed wide-area DGPS (WADGPS) system design based on a limited number of reference stations, in which determined corrections led to accuracies very close to those accomplished by traditional DGPS, not depending on the distance between the reference stations and users [1]. This problem was also handled by other researchers using a reference station network by applying the network DGPS concept (called NDGPS). The NDGPS corrections were computed from data received via the Internet using NTRIP (Networked Transport of RTCM via Internet Protocol) [2,3]. Usefulness of its simplified algorithms and acceptable precision is an advantage. Even though the accuracy of code measurements is eminently worse than carrier-phase measurements, code measurements are, nowadays, primary in every GNSS receiver. While obtaining centimeter or even millimeter accuracy, the code measurements always support determining the exact coordinates, because the carrier-phase positioning performance relies on the code measurements [4]. For this reason, there is not much research performed on the efficiency of DGNSS positioning taking part in RTK phase measurements, even though the DGNSS technique may play a significant role in the course of time. In the reverse solution, Weng et al. modified the local-area DGNSS through the use of network RTK corrections. They reduced distance-dependent errors and accuracy for a longer baseline length, which was significantly improved by more than 50% for a 17.9 km baseline [5]. Other researchers also presented a network real-time kinematic (RTK) solution which was used to reduce the decorrelation error in the DGPS system [6]. They used the Flächen Korrektur parameter (FKP) to complement the current DGPS and the results show that the positioning accuracy of the DGPS was improved by a maximum of 40%.
There is also more recent research on DGNSS positioning algorithms. Some of them give attention to the combination of using one satellite for each system in relative positioning and one receiver clock parameter for one system in an absolute positioning technique. When we consider the fusion of multiple global navigation satellite system data, an inter-system bias (ISB) is frequently studied. In consideration of ISB, the typical DGNSS model should use separate clock parameters for each system to establish the precision of positioning results and increase the performance of the DGNSS technique. Such a GPS/GLONASS/BEIDOU/Galileo real-time model with ISB applied in a differential positioning was proposed by [7].
Various research works are focused on the source of code biases, along with their effects on GNSS positioning, and their estimation. Pseudorange observations are known to be influenced by differential code biases (DCBs) which are signal and frequency dependent. There is a need to consider them in the observation model [8,9]. When using the GNSS ground network, we can usually precisely estimate and correct this differential code bias of a GNSS receiver. It depends on characteristics of global ionosphere maps (GIMs) representing ionospheric total electron content (TEC). They are applicable in many scientific and engineering applications. Other research work confirms that DCB can also be estimated using a recursive method together with the selection of an individual reference station [10]. Among presented techniques, the DGNSS technique based on pseudorange correction (PRC) is also approved in number of applications improving real-time positioning accuracy in low-cost satellite receivers. Researchers using predicted PRC demonstrated that for DGPS/DBeiDou horizontal positioning errors were at one meter level of accuracy. Such a solution would unquestionably be very helpful to keep DGNSS positioning during outages of correction data [11]. Considering the ambiguity resolution, estimation, and analysis of code biases is also very important in this process, depending on the pseudorange method. It is recognized for GNSS double-differencing method along with undifferenced circumstances [12]. In order to achieve this particular purpose, the usefulness of observable specific signal biases (OSB) can be picked out for analysis of code biases [13].
Regarding the advantage of GNSS technology, it should be pointed out, that currently there has also been a massive boost in the interest in positioning using smartphones, handheld and low-cost GNSS receivers. Since 2016, scientists have been focusing on the usefulness of GNSS observations derived from mobile phones. The latest modern smartphones or mass-market portable mobile receivers with built-in GNSS chipsets can reach very impressive positioning quality. They use application programming interface (API) which is based on predefined functions for developing custom applications to interface with the GNSS chipset. It is useful for obtaining not only pseudorange information but also carrierphase observations. The carrier-phase observations are the key to obtain precise positioning accuracies based on ability to fix their ambiguities to the correct integer values [14].
First, the Android N operating system allowed us to access raw GNSS measurements from smartphones or tablets through various APIs [15]. Scientists started first analyses of main errors sources of the GNSS chipset installed in smartphone. The essential positioning error source in mobile phones is not affiliated with GNSS chipset, but with the interior antenna [16] and an important factor, which is enabled duty cycling to low power consumption smartphones [17]. The initial experiment results demonstrated that with the Nexus 9 smart device using raw GNSS phase observations, it is possible to obtain decimeter-level accuracy in static measurements [18][19][20][21]. In 2018, the world's first dual-frequency GNSS smartphone (Xiaomi Mi 8), equipped with a Broadcom BCM47755 chip, was introduced to the market. Regarding the first positioning results with the usefulness of this smartphone, by using the multi-constellation technique, researchers observed an average improvement of 17% compared to the single GPS approach. For absolute positioning, the best results were achieved using Galileo E5a measurements collected by Xiaomi Mi 8 mobile phone [22]. In the case of carrier phase-based relative positioning conducted in static mode, the accuracy was also at decimeter-level accuracy (L1 float solution).
Mobile phone GNSS measurements have lately been also a topic to extensive studies on their application to more precise positioning techniques, such as Precise Point Positioning (PPP) or Real Time Kinematics (RTK) [23,24]. The positioning accuracy of Xiaomi Mi 8 mobile phone with the usefulness of dual-frequency ionosphere-free combination PPP algorithm was analyzed, and the results showed that decimeter-level accuracy in static mode may be achieved and was comparable to the geodetic receiver in single-frequency mode [25,26]. Other researchers explored the relationship between the data quality of GNSS observations and single-frequency RTK positioning accuracy based on the same Xiaomi Mi 8 smartphone [27,28]. They demonstrated that it is not feasible to reach the phase ambiguities fixed. Despite this, the precisions are still good and the obtained accuracies of positioning solutions are mostly at decimeter level. For most mobile devices scientists observed that the phase observations do not have integer characteristic but appear to have random biases. Most of the observations were still in a "float"-type solutions. Accordingly, strong multipath influence is also observed in measurements [29][30][31]. Other researchers have developed dedicated tool that allows performing Network RTK (NRTK) positioning while considering a threshold for the ambiguity fixing method. They tested smartphones in the CORS Network, considering both VRS and the nearest stations. Unfortunately, results showed satisfying effects in terms of precision, but not in the aspect of accuracy [32].
With recent public access to raw GNSS observations on smartphone devices, there are many approaches to obtain accuracy, even at centimeter-level, addressed to applications requiring high-accuracy of measurements. Some researchers succeeded in replacing smartphone's internal GNSS antenna with an external one and performed precise point positioning ambiguity resolution, which led to centimeter-level accuracy [33,34]. It was noted recently that the carrier-phase observations collected by the latest smartphones do not have the integer property, but for the Huawei P30 or Xiaomi Mi 8 such an integer property can be successfully recovered by means of detrending and obtaining a centimeter-level of accuracy is then possible [35][36][37]. Carrier phase centimeter-level smartphone positioning requires precise information of the average phase center position and possible phase center variations [37,38].
The smartphone positioning trend has been expanded recently by an increased interest in performing carrier phase ambiguity fixing and positioning with a smartphone that contains a dual-frequency (L1/L5) GNSS module. Guo at al. showed that the pseudorange noise of the L1/E1 smartphone observations ranges from 3 to 9 m in complex dynamic environments, while that of L5/E5 observations is about 1.5 m [39]. Recent research is also focused on performing an evaluation in terms of the signal strength, satellite tracking capabilities, and observational noise. After performance comparison of geodetic receiver with smartphones, it was proved that satellite elevation dependence of the signal strength is not always valid for smartphones, as it is true for geodetic receivers. It was also observed that mobile phone pseudoranges are much noisier compared to the professional geodetic receivers, which confirmed that with the observations of some selected smartphones, it is possible to fix the ambiguities to their integer values [40][41][42].
A wide spectrum of applications, such as pedestrian and vehicle navigation, social networking, safety management, and many others, have already been appreciated. Considering these applications, the absolute positioning mode using single-frequency code observations, which provides the accuracy ranging from a few meters to tens of meters (under difficult conditions), is mostly sufficient in smartphones [43,44]. This means that the DGNSS technique, being considered by authors, would also be implemented in smartphones, significantly increasing the positioning accuracy. Today, the connectivity to the Internet, capability of running various applications, and modern GNSS modules may improve positioning performance in smartphones by implementing DGNSS technology. Yoon et al. proposed and implemented a DGNSS-correction projection method for available commercial smartphones. The results of static and kinematic experiments showed that absolute GPS positioning accuracy could be improved even by 30%-60% using the proposed approach [45]. Others proposed a DGNSS solution that corrects the single GNSS position of smartphones, using the corrections from a reference station. Client/Server architecture was developed to serve a larger number of smartphone users. Field tests in an open environment showed that the horizontal positioning accuracy could be better than 2 m [46]. The other experiments showed that absolute positioning can be comparable to the DGNSS technique and can generally achieve an accuracy of one meter in horizontal positioning [47]. As far as vertical positioning was concerned, they demonstrated that DGNSS is largely preferable to single point positioning.
Since all of the available research that has been performed so far on DGNSS smartphone positioning is based on P(L1) code observations, the authors of this paper present how the usefulness of P(L5) code observations significantly increases the positioning accuracy. While implementing proposed DGNSS technique, the users may obtain positioning accuracy even at decimeter-level. This would be highly satisfactory for many applications, such as intelligent transportation systems [48,49] or as a method for recovery of precise position of aircraft in air transport [50,51], where the DGNSS system along with extra equipment is essential for control and safety systems.

DGPS Positioning Based on the Least Squares Method
Usually, in DGPS technique, we use only L1 code observations. Thus, we can write the following observation equation for each satellite [52]: where ( ) is the measured pseudorange, ( ) is the true receiver-to-satellite geometric range, is the speed of light, ( ) is the satellite clock error, ( ) is the receiver clock error, ( ) is the ionospheric delay error, ( ) is the tropospheric delay error, ( ) is the satellite ephemeris error, and ( ) represents other pseudorange errors, such as multipath, interchannel receiver biases, thermal noise, receiver and satellite hardware delay, as well as pseudorange measurement noise.
The pseudoring correction (PRC) for a satellite at the epoch ( ) is calculated by the equation [53]: where ( ) values determined for some satellites are involved in the mathematical model of absolute positioning in a GNSS receiver. Its coordinates should be determined in the reference stations' frame. Hence, for satellites i, j, k, l, and the assigned station S, we can write a system of equations in the form of a matrix [53] where and matrixes are as follows: and the solution with the least squares method is: where is a diagonal weight matrix.

Field Experiments
Test measurements were made on 28 January 2021, and 29 January 2021. The authors chose a period of 1500 epochs in this research. Raw GNSS observation data were collected using Rinex ON mobile application (Nottingham Scientific Ltd., Nottingham, United Kingdom, 2020) by two Huawei P30 Pro smartphones. These mobile phones record data from GPS, GLONASS, BEIDOU, and GALILEO positioning systems. We used phase center information, which was determined by us very precisely (millimeter level of accuracy) in the previous work [37]. Smartphones were mounted vertically (at a distance of 1 m from each other) on the base made of an aluminum beam with centrally positioned mandrel that allows for mounting it on the levelling head, which may be centered over the reference point (Figure 1). Aluminum beam pointed exactly North-South. The first smartphone, called S1, was located on the north edge and S2 on the south edge. In both cases, smartphone displays were facing south. In the central point of aluminum beam, geodetic GNSS Javad Alpha receiver (Javad GNSS, San Jose, CA, USA) was positioned and acted as a reference station. The aim of the experiment and analysis was to carry out measurements in the period with the largest number of GPS satellites capable of receiving the L5 frequency. The satellite configuration during the test measurements is shown in Figure 2. During the measurement, there were 5 satellites that received signals on the L5 frequency. These are the satellites: G01, G08, G10, G27 and G32. Therefore, only those satellites for which DGPS calculations were performed for solutions using the P(L1) and P(L5) codes were used in the research. As a result, the true errors for DGPS P(L1) and DGPS P(L5) were compared. The true errors for the horizontal and vertical coordinates are shown in Figures 3-6. For DGPS measurements and observations for the P(L1) code and P(L5) code, the true errors are presented in Figures 3-4 for 28 January 2021, and in Figures  5 and 6 for the observations of 29 January 2021. It should be also clarified that P stands for pseudorange measurements, not for P (precise) code.

Numerical DGPS Analysis of Single Epoch Solutions
In this chapter, DGPS calculations were performed using a single measurement epoch, handling both the P(L1) and the P(L5) codes. For DGPS positioning, using the P(L1) code (Figure 3), the true errors of the horizontal coordinates for the S1 phone (North edge, display facing south) ranged from −5.05 m to 7.93 m and from −16.98 m to 19.46 m for the N and E coordinates and in the range from −39.67 m to 28.02 m for the vertical coordinate h. For DGPS positioning, using the P(L5) code, the true errors in the horizontal coordinates were in the range from −10.20 m to 2.47 m, and from −18.58 m to 3.37 m for the N and E coordinates and in the range from −7.61 m to 8.49 m for the vertical coordinate h. Thus, we can see that for the N coordinate the minimum values had larger errors for the P(L5) code than for the P(L1) code. However, this was due to the change in the number of satellites observed on the L5 frequency (dropped from 5 to 4 satellites). It was during the period, when the S1 phone was receiving only four P(L5) satellites, that there was a shortterm deterioration in the accuracy of DGPS P(L5) positioning in relation to the P(L1) code. However, during the P(L1) signal measurement, signals from five GPS satellites were available all the time. However, for the vertical coordinate, it is obvious that the DGPS positioning accuracy using the P(L5) code is several times greater than the DGPS positioning accuracy using the P(L1) code despite receiving only four P(L5) code satellites. for the vertical coordinate h. In this case, both for DGPS positioning using the P(L1) code or the P(L5) code, the S2 phone was constantly receiving code observations from the same five satellites. Therefore, this measurement result is more reliable for P(L1) vs. P(L5) positioning comparison. With the P(L5) code, errors in the horizontal and vertical coordinates are much smaller than with DGPS positioning using the P(L1) code. It can even be seen that the maximum error values for the S2 phone using the P(L5) code are at the level of errors that we can expect when using geodetic receivers. In this case, the S1 smartphone at the end of the measurement only received P(L1) observations from four satellites, which caused a particularly large degradation in the vertical position for this mobile phone. In contrast, for the P(L5) code, there were no gaps and both horizontal and vertical position errors were more stable throughout the analyzed period. As is well known, even a shortterm change of configuration causes a significant deterioration of both autonomous and DGPS positioning accuracy. For the same day of measurement, in the case of S2 smartphone for DGPS positioning (Figure 6), using the P(L1) code, the true errors of the horizontal coordinates ranged from −5.85 m to 7.91 m and from −12.66 m to 9.04 m for the N and E coordinates, and in the range from −17.10 m to 56.34 m for the vertical coordinate h. For DGPS positioning, using the P(L5) code, the true errors in the horizontal coordinates were in the range from −2.88 m to 1.86 m and from −2.66 m to 4.56 m for the N and E coordinates, and in the range from −6.82 m to 6.17 m for the vertical coordinate h. In this case, the smartphone S2 maintained uninterrupted contact with 5 satellites during the entire measurement, both for the P(L1) and P(L5) codes. Therefore, the maximum errors are more reliable than in a case when there is a sudden change in the number of satellites observed. For both the horizontal and vertical position, we can observe smaller errors when using the P(L5) code than when using the P(L1) code.
Additionally, the RMS errors were calculated for each DGPS solution, which are presented in Table 1. We can see that the average RMS errors for DGPS positioning using the P(L5) code are much smaller than for DGPS positioning using the P(L1) code. For the P(L1) code with DGPS positioning, the average RMS errors for the horizontal positions were below 6 m, while for the vertical position, the average RMS errors were below 11 m. In the case of DGPS positioning for the P(L5) code, the average RMS errors for the horizontal position were below 1.8 m, while for the vertical position, vertical position, the average RMS errors were below 2.7 m.  Based on the calculated RMS errors presented in Table 1, the percentage increase in the accuracy of the RMS error was calculated for the values of N (dN), E (dE), and h (dh). The results are presented in Table 2. In general, DGPS positioning using the P(L5) code resulted in a significant increase in DGPS positioning accuracy, on average by 59% for the E component, 71% percent for the N component, and 75% for the vertical h component.

Static DGPS Sequential Positioning
In the computational tests, presented in Figures 3-6, individual measurement epochs were used, which, in fact, may refer to the kinematic model. If we assume that we are interested in static positioning, we can use sequential DGPS positioning which means that for a given measurement epoch it is possible to perform calculations using all previous positions. Therefore, for any time (t) and any x component we have: We can write the above formula in the following form: Then, denoting: for any measurement epoch we can write the estimator: The above formula is convenient to use for DGPS sequential static positioning, for horizontal and vertical coordinates. The results of such calculations are presented in Figures 7 and 8.
When analyzing charts in Figures 7 and 8, which concern DGPS sequential adjustment, one can see more similar final results for DGPS P(L1) and DGPS P(L5) positioning. Final position errors after using 1500 measurement epochs are shown in Table 3. On the first day of test measurements, the real errors for DGPS P(L5) are smaller than for DGPS P(L1), but only for the S1 smartphone, whereas for the S2 smartphone, the errors in the horizontal coordinates of the DGPS solution P(L1) were smaller than for the DGPS solution P(L5). On the second day of test measurements, the real errors for the horizontal positions in the DGPS solution were smaller for the S1 mobile phone with the DGPS P(L1) solution. For the vertical coordinate, better results were obtained for the DGPS P(L5) solution. On the second day, for the S2 smartphone, horizontal errors were at a similar level for both the DGPS P(L1) and DGPS P(L5) solutions. However, it should be noted that on the second day of measurements, very large errors were obtained for the height with the DGPS solution P(L1), with a value of 5.37 m, and that with the use of 1500 observation epochs. However, on the second day of P(L5) code measurements for S2 smartphone, an error of 0.26 m was obtained.

Discussion
In the calculations presented in the previous chapter, the results of the least squares adjustment for DGPS positioning were analyzed. The output coordinates are, therefore, dependent on the code observations but also on the ephemeris data. Therefore, the double differences (DD) in code observations for the Javad-S1 vector were analyzed, adopting the satellite number 08 as the reference satellite ( Figure 9). Therefore, four independent observations were created, which are shown in Figure 9. The basic statistical data of the DD observations for the Javad-S1 and S1-S2 baselines are presented in Table 4.  Figure 9 clearly shows a much smaller deviation amplitude for the observations of the double differences using the P(L5) observations than for the P(L1) observations. For the Javad-S1 baseline, the standard deviation for the DD observations was four times higher for P(L1) than for P(L5). It should be noted that, for the baseline S1-S2 and satellites SV: 08-27, the quotient of standard deviations was as high as 11.39 m, because the standard deviation for P(L1) was 13.65 m, while for P(L5) was only 1.20 m. Table 4. Standard deviations of double differenced code P(L1) and P(L5) measurements, for baselines: Javad-S1 and S1-S2.

Baseline: Javad-S1
Baseline: S1-S2 For both baselines: Javad-S1 and S1-S2, the average standard deviation was quite similar, and the result was 1.07 m and 1.36 m for P(L5) observations. Therefore, assuming the accuracy of the DD observation with the use of the P(L5) code at the level of about 1.4 m, the accuracy of the determined position from such measurements can be simulated, using a simple dependence from the statistics [54]: The chart of possible average error values depending on the standard deviation and the number n, which represents the number of satellites, is presented in Figure 10. Based on the chart in Figure 10, it can be assumed that with 9 satellites, the accuracy of GNSS Huawei P30 Pro smartphone positioning with P(L5) code using permanent reference stations, can be obtained for individual measurement epochs at the level of 0.6 m. When at least two GNSS systems (e.g., GPS + GALILEO) are used, an accuracy of 0.4 m with 16 satellites may be obtained. An accuracy of 0.3 m can be achieved with 26 satellites. Therefore, the use of three navigation systems simultaneously may allow us to navigate at a level of 0.3 m using smartphones with P(L5) code observations.

Summary and Conclusions
The paper presents analysis of DGPS positioning accuracy using the P(L1) code and the P(L5) code, with the use of two Huawei P30 Pro smartphones and one reference station represented by the GNSS Javad Alpha geodetic receiver. We are aware that usefulness of more distant reference stations could be more practical, with predictable consequences on positioning accuracy. The aim of our experiment was to compare coordinate accuracy of relative P(L1) vs. P(L5) smartphone DGPS positioning according to very close located reference station (Javad receiver) in order to achieve identical observation conditions.
The analyses were carried out with the use of the same satellites, both in the DGPS P(L1) and DGPS P(L5) solutions, by analyzing the true errors and the average RMS error. Additionally, analysis of standard deviation errors was presented, which concerned double differences for the P(L1) and P(L5) code observations. The research showed that the true errors of DGPS positioning for P(L5) were much smaller than for DGPS positioning using the P(L1) code. The average RMS errors for the DGPS solution P(L5) were more than 50% lower than for the DGPS solution P(L1), both for the horizontal and vertical coordinates. Similarly, the values of the standard deviations of the double differences for the P(L5) observations were significantly lower than for the P(L1) observations, several times. Finally, DGPS positioning accuracy was simulated using P(L5) code from mobile phones. The average standard deviation for the DGPS solution P(L5) was used for the simulation. The simulations showed that in the case of the P(L5) code, and using the DGPS method, it is possible to obtain an accuracy of 0.4 m for about 16 available satellites.