Introduction

The decreasing size and shrinking cost of Global Navigation Satellite System (GNSS) chipsets have been facilitating their embedment into devices such as smartphones, wearables, shared bicycles, and vehicles. However, mass-market chipsets can only achieve 2–3 m positioning accuracy, which can degrade to 10 m or worse in case of adverse multipath conditions (Pesyna et al. 2017). Prior to 2016, when raw GNSS data at smartphones were not accessible to the public, differential GNSS (DGNSS) in the position domain (Hwang et al. 2012) was attempted to improve the positioning accuracy, although with negligible success. Pesyna et al. (2014) used a smartphone antenna to direct GNSS signals into a software receiver and reached centimeter-level positioning accuracy using DGNSS in the observation domain, preliminarily suggesting that it was possible to achieve high-precision positioning on smart devices.

During the May 2016 “Google I/O” conference, Google announced that raw single-frequency GNSS data, i.e., pseudorange, carrier phase and Doppler would be available through the Android N system. The first official release of Android N was on August 22, 2016, with Nexus tablets being the first to output raw GNSS data. Banville and Diggelen (2016) explained how to access such raw GNSS data and made the first assessment on the data quality and demonstrated that carrier phase data from smart devices might have the potential to provide decimeter-level or better positioning accuracy.

As a response to such expectations, high-precision GNSS positioning attempts have been conducted on Android N. For example, the French Space Agency introduced the Radio Technical Commission for Maritime (RTCM) converter and Precise Point Positioning (PPP) Wizlite smartphone apps and presented meter-level kinematic positioning (Laurichesse et al. 2017). Shin et al. (2017) proposed a divergence-free Hatch filter based on Satellite-Based Augmentation Systems (SBAS) messages, and the RMS of Nexus 9 pseudorange noise was reduced from 5 to 0.6 m, while the RMS of horizontal positioning error was less than 1.5 m as a result. Apart from such single-point positioning techniques, DGNSS has also been introduced to improve the positioning performance using smart devices. Realini et al. (2017) obtained relative positioning solutions of decimeter-level accuracy using static baselines between smart devices and survey-grade GNSS receivers separated by 8 m to 10 km. Pirazzi et al. (2017) implemented the carrier phase DGNSS and the Variometric Approach for Displacements Analysis Stand-alone Engine (VADASE) algorithm on a GPS/Galileo smartphone. Then, a decimeter or submeter positioning accuracy could be achieved in static mode and in a rural environment. Moreover, the variometric approach was able to track the smartphone motions with cm/s precisions. Zhang et al. (2018) thus proposed time-difference filtering and obtained static positioning results with RMS errors of less than 0.8 and 1.4 m in the horizontal and vertical components, respectively. Overall, though great efforts have been invested in developing high-precision GNSS using smart devices, obtaining decimeter-level or even better positions is still an immense challenge at this time. The difficulties primarily are due to unknown receiver measurement errors, since smart devices employ linearly polarized antennas and low-cost GNSS chipsets.

Multipath and receiver noise are the two main sources of receiver measurement errors. Typically, the multipath error of the code is less than 2 or 3 meters and that of phase is less than 1/4 of a wavelength. However, its impact on smart devices is significant, due to the poor multipath suppression of smart device antenna. Multipath can induce deep fading of the GNSS signal strength, resulting in cycle slip and loss of lock for smart devices (Humphreys et al. 2016). Moreover, it also results in large and strongly time-correlated phase errors, which can result in hundreds of seconds needed for ambiguity resolution of (Pesyna et al. 2017). Due to multipath and polarization mismatch (Zhang et al. 2013), carrier-to-noise ratio (C/N0) of smart devices is about 10 dB-Hz lower than that of a geodetic receiver with a survey-grade GNSS antenna (Geng et al. 2018), which also increases the receiver noise. The receiver noise is white, affecting both the code and carrier measurements, but in different magnitudes: submeter and millimeter, respectively. Banville and Diggelen (2016) tested the code noise level of the Samsung Galaxy S7, which is about one order of magnitude larger than that of geodetic quality measurements. Pirazzi et al. (2017) estimated the code phase jitter and carrier phase jitter for a smart device indicating that the code phase jitter is normal, while the carrier phase exhibits high jitter. Laurichesse et al. (2017) and Gogoi et al. (2019) comparatively analyzed the carrier phase and pseudorange noise before and after the duty-cycle, respectively, and showed the result of the noise increasing after the duty-cycle was turned on. Duty-cycle is a battery saving mode for the GNSS chip. Moreover, the carrier phase measurements include some errors that are not present in the geodetic receivers. Humphreys et al. (2016) found an error in the carrier phase measurement of Samsung Galaxy S5 that grows approximately linearly with time. Riley et al. (2017) found an arbitrary offset in the short baseline double-difference (DD) carrier phase residual of Nexus 9. Realini et al. (2017) and Håkansson (2018) also demonstrated that DD carrier phase ambiguities of Nexus 9 were not of integer nature, and only implemented the float solution for carrier phase relative positioning. However, these earlier studies have not comprehensively studied the measurement error characteristics of smart devices.

Therefore, we aim at studying the error characteristics of raw GNSS measurements from smart devices and refining the GNSS error model. First, we use an external antenna to replace the embedded GNSS antenna, which will enhance the signal strength and reduce the multipath effects; as a result, a stable antenna phase center for more precise positioning can be maintained. Later, we inspect the observation error characteristics of different smart devices through stand-alone and controlled environment tests and formulate a refined error model. Finally, we investigate the positioning performance using smart devices in different situations with various data processing strategies. In addition, we also discuss the benefits of multi-GNSS data to high-precision positioning on smart devices.

Methodology and investigation strategies

We experimented on four portable smart devices, two low-cost GNSS receivers/antennas, two survey-grade receivers/antennas, and a reference station from the International GNSS Service (IGS). For brevity, we list these devices and stations in Table 1. All data sampling rates were 1 Hz.

Table 1 Test devices and stations in this study

Methodology

The pseudorange and carrier phase observations between receiver \(r\) and satellite \(s\) tracked at frequency \(i\) can be modeled, respectively, as

$$\begin{aligned} P_{r,i}^{s} & = \rho_{r}^{s} + c(dt_{r} - dT^{s} ) + I_{r,i}^{s} + T_{r}^{s} + d_{r,i} - d_{i}^{s} + m_{r,i}^{s} + \varepsilon_{P} \\ \varPhi_{r,i}^{s} & = \rho_{r}^{s} + c(dt_{r} - dT^{s} ) - I_{r,i}^{s} + T_{r}^{s} + \lambda_{i} (\phi_{r,0,i} - \phi_{0,i}^{s} + N_{r,i}^{s} )\;\; \\&\quad+ \delta_{r,i} - \delta_{i}^{s} + M_{r,i}^{s} + d\varPhi_{r,i}^{s} + \varepsilon_{\varPhi } \\ \end{aligned}$$
(1)

where \(P_{r,i}^{s}\) and \(\varPhi_{r,i}^{s}\) are pseudorange and carrier phase measurements in the unit of length with residual measurement errors \(\varepsilon_{P}\) and \(\varepsilon_{\varPhi }\), respectively;\(\rho_{r}^{s}\) denotes the range between the receiver and the satellite; \(dt_{r}\) and \(dT^{s}\) are the receiver and satellite clock biases, respectively; \(I_{r,i}^{s}\) is the ionospheric delay and \(T_{r}^{s}\) is the tropospheric delay; \(d_{r,i}\) and \(d_{i}^{s}\) are the receiver and satellite pseudorange instrumental delays, while \(\delta_{r,i}\) and \(\delta_{i}^{s}\) are the receiver and satellite carrier phase instrumental delays, respectively; \(m_{r,i}^{s}\) and \(M_{r,i}^{s}\) represent the multipath effect on the pseudorange and carrier phase, respectively; \(\phi_{r,0,i}\) and \(\phi_{0,i}^{s}\) are the receiver and satellite initial phase in cycle, respectively; \(N_{r,i}^{s}\) is the integer ambiguity and \(\lambda_{i}\) is the signal wavelength on frequency \(i\); \(d\varPhi_{r,i}^{s}\) is a carrier phase correction term including antenna phase center offsets and variations, station displacements by earth tides, phase windup effect and relativity correction on the satellite clock.

We note that the residual measurement errors can be divided into uncorrelated and correlated parts. Uncorrelated/random errors are typically caused by, for example, thermal electronic noise which affects the receiver correlation process (thermal noise tracking jitter) and reflects the precision of receiver tracking signals; such errors can thus be modeled as white noise. Correlated/colored errors usually correspond to multipath effects, which reflect the systematic errors within GNSS data. To investigate such residual GNSS errors of smart devices, the unknown measurement delays in (1) such as satellite orbits and clock biases, ionospheric and tropospheric delays need to be eliminated. Therefore, we used both third-derivative and zero-baseline approaches.

The third-derivative approach is similar to a high-pass filter, which excludes the low-frequency measurement delays while preserving the high-frequency noise. The noise calculation equation is as follows:

$$\varepsilon_{L} = \frac{1}{{\sqrt {20} }}\frac{L(k + 3\Delta t) - 3L(k + 2\Delta t) + 3L(k + 1\Delta t) - L(k)}{{\Delta t^{3} }}$$
(2)

where \(\varepsilon_{L}\) is the measurement noise to be investigated; \(L(k)\) is the pseudorange or carrier phase measurement at epoch \(k\); \(\Delta t\) is the time interval; \(\frac{1}{{\sqrt {20} }}\) is the normalization factor according to the law of error propagation. The third-derivative approach requires continuous observations and high sampling rates. Note that the third derivative cannot separate clock noise from thermal noise because the receiver clock noise in a low-cost receiver can be of the same order of magnitude, or higher, than that of the phase-locked loop (PLL) thermal noise (Pirazzi et al. 2017).

On the other hand, for the zero-baseline approach where two GNSS receivers share a common antenna and simultaneously receive the GNSS signals, the measurement delays such as the geometric receiver-satellite distance and the multipath effects can all be favorably eliminated. As such, the zero-baseline model can be written as:

$$\begin{aligned} P_{rb,i}^{jk} & = \varepsilon_{{P_{rb,i}^{jk} }} \\ \varPhi_{rb,i}^{jk} & = \lambda_{i} B_{rb,i}^{jk} + \varepsilon_{{\varPhi_{rb,i}^{jk} }} \\ \end{aligned}$$
(3)

where the reference and rover receivers are denoted with subscript \(b\) and \(r\), respectively, while the satellites are denoted using superscript \(k\) and \(j\). \(B_{rb,i}^{jk}\) is the double-difference (DD) carrier phase bias in cycles, which mainly consists of DD carrier phase integer ambiguity and other unknown phase biases. \(B_{rb,i}^{jk}\) is a low-frequency component, and we can use the third-derivative approach to eliminate it, i.e.,

$$\begin{aligned} \varepsilon_{P} & = \frac{1}{2}P_{rb,i}^{jk} \\ \varepsilon_{\varPhi } & = \frac{1}{{\sqrt {80} }}\frac{{\varPhi_{rb,i}^{jk} (k + 3\Delta t) - 3\varPhi_{rb,i}^{jk} (k + 2\Delta t) + 3\varPhi_{rb,i}^{jk} (k + 1\Delta t) - \varPhi_{rb,i}^{jk} (k)}}{{\Delta t^{3} }} \\ \end{aligned}$$
(4)

With equation (4), the standard deviation of the third-derivative can be used to quantify the resulting measurement noise. The zero-baseline approach can separate the receiver clock noise from the thermal noise on the phase measurements by the inter-satellite differences. Please note that, however, using this approach to quantify the noise of a receiver requires that the two receivers at the zero-baseline to be of the same type, i.e., the radio frequency (RF) chain, as well as tracking loop characteristics, are identical.

Investigation strategies for GNSS observation quality

The tests on GNSS observation quality of smart devices are divided into stand-alone and controlled environment tests, as shown in Table 2.

Table 2 Investigation tests on the GNSS observation quality from smart devices

The purpose of stand-alone tests is to analyze the GNSS measurement quality in the open-sky environment, including the signal strength (carrier-to-noise density, C/N0), the antenna gain and the measurement noise resolved by the third-derivative approach. We placed the smart devices on the rooftop of a laboratory building at Wuhan University. The low-cost μ-blox ANN-MS antennas were placed next to the smart devices. The NEX2 shared a common survey-grade antenna with station PRID; this antenna was fixed on an observation pier about 0.5 meters away from the smart devices, as shown in Fig. 1.

Fig. 1
figure 1

Illustration of the distribution of all devices, stations and their antennas. The device and station configurations are listed in Table 1

More investigations on the GNSS measurement errors from smart devices were carried out using the controlled environment test. First, we use an attenuator to reduce the signal C/N0 from 47 dB-Hz down to 23 dB-Hz, with a C/N0 bin of 1 dB, to analyze the noise versus C/N0 model parameters for the GNSS chipset. The noise of each smart device is obtained by the third-derivative approach, and that of the Nexus 9 is obtained by the zero-baseline approach. Finally, we also analyzed the zero-baseline carrier phase residuals to explore other errors in the carrier phase observations of the Nexus 9. We held multiple smart devices and μ-blox ANN-MS antennas within an RF shielding box, as shown in Fig. 2.

Fig. 2
figure 2

Illustration of the controlled environment test configuration of GNSS receivers and antennas. The splitter separates the RF signal from theTRM57971.00 antenna, routes one branch to Trimble NetR9 5.30 and another branch to the repeater. The repeater enhances or attenuates the RF signal, and then re-radiates the signal into the RF shielding box through sending antenna. μBX1, μBX1, SAMS, HONO, NEX1 and NEX2 are placed in the RF shielding box to receive the re-radiating signals. During testing, the RF shielding box is completely enclosed to shield the interference from external signals. In addition, the signals transmitted inside are not propagated through the inner wall due to the specific absorbing material attached to the inner wall

Investigation strategies for GNSS positioning performance

We assess the GNSS positioning performance of smart devices in different situations using methods such as single-point positioning (SPP) using pseudorange, and relative positioning (CRP) using carrier phase. This investigation is divided into static and kinematic tests, as illustrated in Table 3.

Table 3 Configuration of positioning performance tests

For the static test, we processed the measurements (7:00–13:00) from the stand-alone test dataset presented already in Table 1, where the corresponding stations and baselines are shown in Fig. 1. Because the position of the internal GNSS antenna phase center of smart devices could not be precisely measured, we instead used the geometric centers of the smart devices as truth benchmarks to gauge their relative positions, as shown in Table 4.

Table 4 Cartesian coordinates of the geometric centers of all devices relative to a marker point on the antenna of PRID

In addition, for the kinematic test, both SPP and CRP were used to study the epoch-wise positioning accuracy of smart devices in suburban environments. NEX1 and TRIM were fixed on the top of the vehicle, and their relative positions were known, as delineated in Fig. 1. The positions of station TRIM were resolved using relative positioning with respect to station PRID, and the baseline length ranged from about 10–14 km. The 3D distance error is used to quantify the positioning accuracy:

$$e_{t} = d_{t} - d_{\text{true}} ,\;d_{t} = \sqrt {(x_{t}^{s} - x_{t}^{r} )^{2} + (y_{t}^{s} - y_{t}^{r} )^{2} + (z_{t}^{s} - z_{t}^{r} )^{2} }$$
(5)

where \(e_{t}\) is the 3D distance error at time \(t\);\(d_{t}\) is the distance of NEX1 from the survey-grade antenna; \(d_{\text{true}}\) is the true distance between the two devices; since the antenna phase center is unknown, we use the geometric center distance to replace the \(d_{\text{true}}\); \((x_{t}^{s} ,y_{t}^{s} ,z_{t}^{s} )\) and \((x_{t}^{r} ,y_{t}^{r} ,z_{t}^{r} )\) are the three-dimensional coordinates of NEX1 and station TRIM at the time \(t\).

Characterization of GNSS observations

We will analyze the signal strength and variation characteristics of the GNSS observations from smart devices and explore the multipath suppression capability and gain pattern of the internal GNSS antennas. Then, the noise of the pseudorange and carrier phase are analyzed with stand-alone and controlled environment tests. Meanwhile, the carrier phase error of the GNSS chip embedded in the smart device is evaluated without the influence of the internal antenna. As a result, a more comprehensive GNSS observation characterization of smart devices is obtained, which help in formulating a refined error model for high-precision positioning with smart devices.

GNSS signal strengths in terms of C/N 0

The C/N0 output of a receiver is a diagnostic of both the signal power of tracked satellite and the noise density of the front-end (Joseph 2010). A larger C/N0 indicates a stronger signal and a better observation quality for positioning; low C/N0 usually implicates a high probability of outliers and cycle slips. Figure 3 shows the C/N0 of GPS satellite G05 tracked by different devices. Most other satellites exhibit the same behavior. Therefore, we first use the C/N0 of satellite G05 as an example to analyze the characteristics of GPS signals. Subsequently, we perform a statistical analysis of the C/N0 of all GPS satellites tracked by different devices over a day, and the corresponding results will be shown in Figs. 4, 5 and 6.

Fig. 3
figure 3

C/N0 values of GPS satellite G05 tracked by different devices. The elevation of satellite G05 with respect to NEX2 is plotted using the red line and refers to the right vertical axis

Fig. 4
figure 4

Mean correlation coefficients between the C/N0 values of all GPS satellites tracked by different GNSS devices in the same observation environment

Fig. 5
figure 5

Mean C/N0 values of all GPS satellites tracked by different devices over a day at different elevations

Fig. 6
figure 6

Relative C/N0 skyplot for the different devices relative to station PRID over a 24-h period. Note that the relative C/N0 is the C/N0 of the device minus the C/N0 of the PRID which tracks the same GNSS satellite in the same observation environment

Figure 3 shows that the C/N0 of satellite G05 tracked by NEX2, μBX1 and μBX2 are similar to those of the PRID. This is because NEX2 shares a survey-grade antenna with PRID, and the μBX1 and μBX2 use active right-handed circularly polarized antennas, whose maximum noise figure is 0.9 dB and typical gain without cable is 29 dB. However, the C/N0 of satellite G05 tracked by NEX1, SAMS and HONO is about 10 dB-Hz lower than those of PRID. This is due to the passive linearly polarized GNSS antennas employed in the smart devices, which cannot compensate for 3 dB signal power loss caused by polarization mismatch (Zhang et al. 2013). Consequently, carrier phase cycle slips occurred quite frequently for smart devices without external antennas, as shown in Table 5. The cycle slip percentages of PRID, μBX1 and μBX2 are less than 0.1%, that of NEX2 is less than 4%, and that of NEX1 is greater than 7%. Abnormally, the cyclic slip percentages of SAMS and HONO are greater than 50% and 90%, respectively. This is because, in addition to the low antenna characteristics and multipath, cycle slip occurs every second after the duty-cycle is turned on.

Table 5 Percentages of cycle slips for different devices over a 24-h period

Figure 3 also shows that the C/N0 of NEX1, SAMS and HONO vary quickly with time, while that of NEX2 connected to the external antenna does not. Humphreys et al. (2016) attributed such rapid C/N0 variation to multipath effects due to poor multipath suppression by smart device antennas. One interesting phenomenon is that the C/N0 variations with respect to high elevations are not synchronized among NEX1, SAMS and HONO. Since multipath is environment dependent, there should be high correlations among the multipath signatures from different GNSS devices placed jointly in the same observation environment. This is evidenced by the large correlation coefficients between the C/N0 values of NEX2, PRID, μBX1 and μBX2 as shown in Fig. 4. In contrast, NEX1, SAMS and HONO without external GNSS antennas show quite weak correlations not only in their C/N0 variations but also when compared to those of NEX2, PRID, μBX1 and μBX2. Therefore, we argue that in addition to multipath, the individual design of smart device GNSS antennas, i.e., non-uniform antenna gain, may also contribute to the rapid C/N0 variations. To verify this point, we counted the mean C/N0 values of all GPS satellites tracked by different devices over a day at different elevations, as shown in Fig. 5.

Figure 5 shows that the C/N0 values of NEX1, SAMS and HONO at high elevations are about 5–10 dB-Hz smaller than those at low elevations, sharply differing from the high-elevation C/N0 values of NEX2, PRID, μBX1 and μBX2. For example, the C/N0 values of HONO drop by almost 10 dB-Hz at the highest elevations, i.e., from about 35 dB-Hz at 50°–60° to 25 dB-Hz at 80°–90°. Since multipath effects at high elevations are nominally weaker than those at low elevations, we ascribe this abnormal C/N0 pattern to the non-uniform gain of the smart devices GNSS antennas. This point can be further verified using the relative C/N0 values, i.e., the difference between C/N0 of smart and survey-grade GNSS devices, to approximate the gain pattern of the internal GNSS antennas of the smart devices. Figure 6 hence shows the skyplot of relative C/N0 for different devices relative to PRID, a station presumed as the benchmark of GNSS signal strengths. It is obvious that, in contrast to NEX2, the smart devices without external GNSS antennas, i.e., NEX1, SAMS and HONO, have clearly inconsistent signal strengths compared to those of PRID. High relative C/N0 regions are called the “hot zone” and color-coded as hot, while low relative C/N0 regions are called the “cold zone” and color-coded as cold. They are subject to both satellite azimuths and elevations variation. Of particular interest is that the distribution of such hot and cold zones differs among different smart devices. For example, in Fig. 6, the corner at about 30° elevation and 150° azimuth is the hot zone for NEX1, which is, however, is a cold zone for SAMS. This implicates that the hot and cold zones are not caused by multipath effects since they should be consistent among different devices under the same observation environment. Therefore, we conclude that the hot and cold zones of the smart devices internal GNSS antennas are due largely to their non-uniform gain patterns, which differ clearly among different smart devices. As a result, the GNSS signal strength no longer increases with the increase in elevation but fluctuates and even decreases. Consequently, the traditional observations weighting method by elevation is no longer suitable for GNSS positioning of smart devices, and the C/N0 or SNR-based weighting model seems to be more feasible.

GNSS observation noise

We used the third-derivative approach, as shown in (2), to quantify the GNSS measurement noise for various devices in stand-alone tests, as shown in Table 6. The pseudorange noise of smart devices, no matter whether with or without external GNSS antennas, is about 10 times larger than that of μBX1 and PRID. On the contrary, the NEX1 carrier phase noise is less than 0.04 cycles, which is only 3–5 times larger than that of PRID, while, unexpectedly, half that of μBX1. However, the pseudorange and carrier phase noises of HONO and SAMS are significantly larger than those of other devices, which is attributed to the duty-cycle issue within smart devices.

Table 6 STDs of pseudorange and carrier phase noise for different devices. Note that the estimated noise of HONO and SAMS is affected by the duty-cycle

The chip remains continually active while decoding the navigation message. From a cold start, it takes minutes to decode the full message, leaving the users to track continuously the carrier phase. Therefore, we can obtain nearly 3 min of continuous carrier phase observations from HONO and SAMS, and then discontinuous carrier phase observations, as shown in Fig. 7. The pseudorange and carrier phase noises are significantly different depending on the off-and-on condition of duty-cycle. The noise of pseudorange and carrier phase will increase after the duty-cycle occurs, which has been demonstrated by Gogoi et al. (2019) and Laurichesse et al. (2017). These results are also confirmed in this study. This might be explained by the GNSS chipset not continuously operating, i.e., the GNSS chip is active only for a fraction of each second when duty-cycle is turned on (Linty et al. 2014). The duty-cycle wakes up the GNSS chip once a per second for only a few milliseconds, but what the phase changes in the remaining milliseconds is unknown (Pirazzi et al. 2017). As a result, discontinuous carrier phase can be obtained every second when the duty-cycle is turned on. However, in order to evaluate the carrier phase noise during the duty-cycle on, we did not remove the carrier phase measurements with cycle slips. Because that would remove almost all observations, as a result, the estimated noise may be affected by this discontinuity. However, during duty-cycle on, the carrier phase noise of HONO and SMAS is less than one cycle, as shown in Fig. 7. Laurichesse et al. (2017) also obtained similar results using a Samsung S8 + smartphone. This indicates that the phase change caused by the duty-cycle may not be a full-cycle. In addition, STDs of carrier phase noise for HONO and SMAS all exceed 0.1 cycles after duty-cycle occurs, which indicates that the discontinuous carrier phase cannot be used for integer ambiguity resolution when the duty-cycle is turned on.

Fig. 7
figure 7

Pseudorange and carrier phase noises of HONO and SAMS with duty-cycle off and on. The two-way arrows denote the time interval during which the duty-cycle is off or on. The standard deviations of noise are given below the arrows. Note that the cycle slips of the carrier phase measurements are not repaired after duty-cycle is turned on

We also use a controlled environment test to provide noise versus C/N0 model parameters for the GNSS chipset of smart devices. Multiple devices receive the GNSS signals from 47 to 23 dB-Hz in the RF shielding box. The noise of each smart device is obtained by the third-derivative approach and is named as name-TD, such as SAMS-TD. NEX1-NEX2 represents the Nexus 9 noise obtained by the zero-baseline approach, as shown in (4). Meanwhile, we used the uncertainty observation, ReceivedSvTimeUncertaintyNanos and AccumulatedDeltaRangeUncertaintyMeters of the GNSSlogger raw log file, which are obtained through the functions provided by the Android API, to calculate pseudorange noise and phase noise, respectively. They are represented as name-U, such as SAMS-U. The ideal GPS 1-sigma code tracking loop (DLL) thermal noises have been estimated using the dot-product closed formula (Kaplan and Hegarty 2017; Van Dierendonck et al. 1992), represented as BPSK-R(1). In particular, the code loop noise bandwidth is 1 Hz, the double-sided front-end bandwidth is 4 MHz, the early-to-late correlator spacing is 1/2 chips, the predetection integration time is 20 ms. The ideal GPS 1-sigma PLL thermal noise has been estimated using the thermal noise jitter formula for an arctangent PLL (Kaplan and Hegarty 2017), where the carrier loop noise bandwidth is 10 Hz and the predetection integration time is 20 ms.

Figure 8 shows that the pseudorange and phase noise estimated by the third-derivative approach are all greater than the ideal noise, which is mainly caused by the receiver clock noise. Note that the noise of both HONO and SAMS shows anomalies, especially their phase noise, which are larger than that of NEX1 and vary irregularly. That may be because the discontinuity of the carrier phase measurements after their duty-cycles are turned on. The noise estimated by the zero-baseline approach, NEX1-NEX2, is more consistent with the ideal noise because they have removed the common clock jitter by double difference. However, its phase noise is higher than the ideal noise, probably caused by internal crystal instability. Some smooth noise curve was obtained using the raw uncertainty observations. The overlap of the NEX1-U, NEX2-U and HONO-U noise curves indicates that they use the same estimation model, while SAMS-U uses other models or parameters. For example, for the phase noise estimate of SAMS-U, the carrier loop noise bandwidth may be set to 25 Hz instead of 10 Hz.

Fig. 8
figure 8

Pseudorange (left panel) and carrier phase (right panel) noise versus C/N0 for different devices. The carrier phase noise refers to the right vertical axis. The abbreviations TD and U represent the third-derivative approach and the raw uncertainty observation approach, respectively. Note that the lines of NEX1-U, NEX2-U and HONO-U in the bottom left and bottom right panels overlap. NEX1-NEX2 represents the Nexus 9 noise obtained by the zero-baseline approach. BPSK-R(1) and PLL-TN represent ideal GPS 1-sigma DLL and PLL thermal noise, respectively. Note that the cycle slip of the carrier phase measurements is not repaired after the duty-cycle of HONO and SMAS are turned on

Carrier phase error of Nexus 9

Since the GNSS signals received by all devices in the controlled environment test come from a common survey-grade antenna, the effects of the antenna and the external environment can be excluded, so the double-difference (DD) residuals of zero-baseline can be used to evaluate the GNSS chip performance of the smart devices. Figure 9 shows the DD pseudorange and phase residuals for the zero-baseline float and fixed solution. The DD phase ambiguity of the fixed solution is obtained by rounding the float DD phase ambiguity, and thus, the residual includes fractional phase bias and noise. We only discussed the zero-baseline NEX1-PRID because the carrier phase observations of Nexus 9 are continuous.

Fig. 9
figure 9

Double-difference (DD) pseudorange and phase residuals for NEX1-PRID zero-baseline float and fixed solution. The notations t1 and t2 in the bottom right panel denote the time when the G05 signal is re-tracked and the time when the reference satellite changes from G13 to G15, respectively

Figure 9 shows that the DD pseudorange residuals reveal a white noise pattern, whereas the DD phase residuals, however, exhibit an anomalous “jagged” distribution (or near periodic fluctuations). This phenomenon exists in the float and fixed solutions. As shown in Fig. 10, the DD phase observations and residuals of NEX1-PRID jumped synchronously at the instant marked by the two-way arrows, while those of μBX1-PRID did not. However, the DD pseudorange is inconsistent with these jumps, which proves that the anomalous “jagged” distribution is not caused by the receiver clock jump. This anomaly is similar to the type 2 carrier phase anomaly, i.e., the small discontinuity of the Galaxy S5 phase observation found by Humphreys et al. (2016). The reason for this anomaly is unknown, probably caused by the discontinuous operation of the PLL. Unfortunately, the mean of the DD carrier phase residual of the fixed solution is nonzero. The residual differs from signal to signal and even changes if the signal is re-tracked. For example, the G05 signal is unlocked and then re-tracked at t1, but the mean of its DD carrier phase residual changed from 0.1 to − 0.1 cycle. This might be explained by the fact that Nexus 9 delivers an accumulated delta range with an arbitrary phase offset, i.e., its initial phase bias is randomly assigned when the signal is tracked (Riley et al. 2017). Consequently, the DD carrier phase bias \(B_{rb,i}^{jk}\) of the Nexus 9 should be modeled as:

$$B_{rb,i}^{jk} = \phi_{rb,0,i}^{jk} + N_{rb,i}^{jk}$$
(6)

where \(\phi_{rb,0,i}^{jk}\) is the DD initial phase. Obviously, \(\phi_{rb,0,i}^{jk}\) destroys the integer property of the DD ambiguity, and DD ambiguity fixing is not possible.

Fig. 10
figure 10

DD pseudorange observations (top panel), DD phase observations (middle panel) and DD phase residuals (bottom panel) of NEX1-PRID and μBX1-PRID zero-baselines for satellite pair G05–G13. Note that DD phase observations are plotted after removal of the mean. The two-way arrows denote the time when the DD phase observations and residuals jumped. The corresponding time is plotted at bottom right of the arrows

GNSS positioning performance of smart devices

This section presents the positioning performance of smart devices by SPP and CRP results. We will also present the results of static and vehicle test to verify the actual positioning performance of smart devices. In addition, we will also discuss the benefits of multi-GNSS for smart device positioning and the opportunities and challenges for smart device to achieve high-precision positioning.

Results of static pseudorange positioning

Figure 11 and Table 7 show the results of pseudorange SPP of smart devices for low-cost and survey-grade receivers in static tests. We also calculate the solution availability, which is the percentage of eligible positions that have a 3D error of less than 30 m. For GPS, the horizontal and vertical RMS of all smart devices with embedded antennas are about 10–20 m, which is nearly 10 times larger than those of μ-blox and PRID. However, the horizontal and vertical RMS of NEX2 is only 5–8 m, which is half that of NEX1. This implies that the embedded antennas of smart devices are responsible for their poor positioning precisions. In the case of multi-GNSS, as mentioned above, the observations are weighted according to C/N0, and the weight ratios among GPS, GLONASS and BeiDou are 3:1:3 according to the pseudorange noise of smart devices (Table 6). We found that GLONASS does not contribute significantly to improving the RMS or the availability of SPP positions, as illustrated by Table 7. We argue that this is because GLONASS data from smart devices seem to have much poorer quality, though they can almost double the number of satellites per epoch. In contrast, when BeiDou data are also included as exemplified by SAMS, the 3D positioning RMS can be reduced from 26.61 m for GPS-only solutions to 18.94 m for multi-GNSS solutions. Meanwhile, the availability of eligible solutions is increased considerably from 69.9 to 78.6%.

Fig. 11
figure 11

Performance of pseudorange single-point positioning (SPP) using only GPS (blue dots, G), GPS/GLONASS (red dots, GR) and GPS/GLONASS/BeiDou (yellow dots, GRC) data in open-sky rooftop situations. The horizontal position scatters are shown in the odd columns while the vertical scatters are shown in the even columns. The concentric ellipses or straight lines inside each panel denote the 2σ domain of the scatters. The corresponding statistics are shown in Table 7

Table 7 RMS (m) of pseudorange SPP for smart devices in open-sky rooftop situations. The observation time is from 7:00 to 13:00 UTC on June 4, 2018

Results of static carrier phase positioning

Figure 12 shows the convergence time in the case of static carrier phase positioning for different devices. The results do not include HONO and SAMS because their carrier phases are discontinuous. The static CRP convergence time of the NEX2-WUHN was about 17 min but exceeded 1 h for the NEX1-WUHN. Thus, low-cost and survey-grade receivers have shorter convergence time and more stable positioning performance than smart devices.

Fig. 12
figure 12

Time series of the east (blue), north (red) and up (yellow) errors of GPS static carrier phase relative positioning solutions for the 430 m baselines for different devices with respect to WUHN in open-sky rooftop situations. The red vertical line marks the epochs of successful convergence when the positioning errors are less than 10 cm for over 600 s

Table 8 illustrates that the static CRP solutions of smart devices can achieve decimeter-level positioning precision after convergence. For example, NEX1-WUHN and NEX2-WUHN obtain centimeter-level positions where both horizontal and vertical STDs are about 1 cm or better. Such achievement is comparable to those of μ-blox and survey-grade receivers. Nevertheless, we note that the ambiguity fixing rates for smart devices-based baselines are quite low, which are normally smaller than 10%. This is mainly because the random initial phase destroys the ambiguity integer property. Moreover, the baseline vector estimated from smart devices usually contains biases, which can be up to a few decimeters. The only exception is NEX2 when only GPS data are processed, where the resulting biases are as small as a few centimeters. This is probably because the antenna phase centers of smart devices are replaced by their geometric centers, which introduces system bias, except for NEX2. NEX2 is connected to an external survey-grade antenna with a known phase center, so its positioning accuracy and precision are excellent.

Table 8 Positioning performance statistics of static relative positioning solutions for the 430 m baselines for different devices with respect to WUHN in open-sky rooftop situations

Results of the kinematic test

Figure 13 shows the trajectory of the kinematic CRP solutions (yellow line) and pseudorange SPP solutions (red line) of NEX1, which mostly coincide with the reference path (green line). This shows that kinematic navigation based on smart devices is feasible.

Fig. 13
figure 13

Trajectory of the kinematic CRP solutions of TRIM (green line), NEX1 (yellow line) and the SPP solutions of NEX1 (red line) in suburban environments. The arrival time of the vehicle at the four corners is plotted

The top two panels of Fig. 14 show that 92.7% of the NEX1 GPS SPP 3D-distance errors fall within ± 10 m, and its STD is 8.1 m. Larger errors occur, especially when the number of satellites decreases. For example, when the vehicle reached corner C (around 8:14:50), its SPP solution deviated from the lane. This is because the number of visible satellites is reduced by the blockage of nearby high-rises. Compared with GPS-only solution, the average number of GPS/GLONASS satellites increased by 3.8, the STD of SPP 3D-distance error decreased to 6.6 m, and the percentage of SPP 3D-distance error within ± 10 m increased from 92.7 to 93.8%. Therefore, in GNSS-adverse environments such as urban areas, where some of the signals can be obstructed, multi-GNSS will provide better location services in terms of availability and positioning accuracy.

Fig. 14
figure 14

Time series (left column) and distribution (right column) of 3D-distance error of NEX1 in suburban vehicle situation. The 3D-distance error of GPS and GPS/GLONASS are represented by blue and red dots in the left panels with the standard deviations exhibited at the top right corner of each panel, respectively. The number of GPS and GPS/GLONASS satellites is plotted using light blue and magenta lines and refer to the right vertical axes. Correspondingly, the distribution of 3D-distance errors of the SPP solutions (top panel) and the kinematic CRP solutions (bottom panel) are shown in the right panels with the percentages of those falling within ± 10 m and ± 0.5 m at the top part of each panel, respectively

More encouragingly, as shown in the bottom two panels of Fig. 14, the kinematic CRP solutions of the NEX1 have a decimeter-level 3D-distance positioning error. Specifically, the STD of the GPS kinematic CRP 3D-distance error is 0.169 m, and the percentages of errors falling into ± 0.1 m and ± 0.5 m are 63.59% and 100%, respectively. For GPS/GLONASS, the positioning accuracy of the kinematic CRP solutions slightly decreases. This may be due to the poor observation quality of GLONASS from the smart device mentioned before. For Nexus 9, the GLONASS pseudorange noise is 3–4 times larger than that of the GPS, as shown in Table 6. In addition, some sort of frequency deviation in phase tracking of the Nexus 9 results in a curved trend in the double-differenced carrier phase observations of GLONASS (Håkansson 2018), which also explains in part the poor positioning performance of GLONASS. However, it can still provide a decimeter-level navigation service with the STD of 3D-distance error being 0.348 m and 98.15% solution falling in ± 0.5 m.

Conclusions and outlook

We comprehensively analyze the error characteristics and positioning performance of the raw GNSS measurements from smart devices. First, we find that the C/N0 of smart devices are about 10 dB-Hz lower than those of low-cost and geodetic receivers and are characterized by rapid variations and low values at high elevations. To investigate the reasons for these characteristics, we use an external survey-grade GNSS antenna to replace the embedded GNSS antenna of the smart device. It has been proven that the omnidirectional passive linear polarized embedded GNSS antennas of smart devices with poor multipath suppression capability and non-uniform gain pattern are responsible for these characteristics. Consequently, we suggest that the observation-weighted models based on C/N0 or SNR should be more suitable for GNSS positioning of smart devices than elevation-based weighting models.

We inspect the observation error characteristics of different smart devices through stand-alone and controlled environment tests. We find that the pseudorange noise of smart devices is about 10 times larger than that of geodetic receivers. On the contrary, the carrier phase noise of Nexus 9 is less than 0.04 cycles, only 3–5 times larger than that of geodetic receivers, but half of that of μ-blox. However, the carrier phases tracked by Samsung Galaxy S8 and Huawei Honor v8 are discontinuous due to the duty-cycle issue, which results in greater noise and carrier phase unavailability. Based on different methods, we provide theoretical parameters for the noise versus C/N0 models of the GNSS chipset for different smart devices. Moreover, we found two unique error characteristics of the available Nexus 9 carrier phase: anomalous “jagged” distribution and random initial phase bias, which is evident in the controlled environment test. These imply that this error of carrier phase is a major obstacle for smart devices to achieve high-precision positioning based on the carrier phase.

Finally, we investigate the positioning performance using smart devices in the case of static and vehicle situations with pseudorange SPP and CRP. The horizontal and vertical RMS of static pseudorange SPP solutions for all smart devices with embedded antennas are about 10–20 m, but for NEX2 with an external GNSS antenna the values only 5–8 m. The static CRP solutions of smart devices can achieve at least decimeter-level positioning precisions after convergences. NEX1-WUHN and NEX2-WUHN even obtain centimeter-level positions where both horizontal and vertical STDs are about 1 cm or better.

However, due to the unknown phase center of the embedded GNSS antenna, except for NEX2, the baseline vectors estimated from smart devices usually contain biases. For the kinematic test, the STD of the NEX1 pseudorange SPP 3D-distance error is 8.1 m, and the percentage of errors falling in ± 10 m is 92.7%. More encouragingly, the STD of the NEX1 kinematic CRP 3D-distance error is 0.169 m, and the percentages of errors falling in ± 0.1 m and ± 0.5 m are 63.59% and 100%, respectively. This implies that kinematic navigation based on smart devices is feasible.

For multi-GNSS, we find that GLONASS does not contribute significantly to improving the positioning accuracy because GLONASS data from smart devices seem to have large pseudorange noise and some unconventional phase biases. With these biases, we only achieve a float solution, which does not need to correct the inter-frequency biases. However, in GNSS-adverse environments, where some of the signals are obstructed, multi-GNSS will provide better location services in terms of availability and positioning accuracy.

Fortunately, on May 30, 2018, Frank van Diggelen announced the addition of duty-cycle control for Android P, which allows users to obtain continuous carrier phase with no duty-cycles. Nevertheless, poor multipath suppression capability, non-uniform gain and undetermined phase center offset of the passive linearly polarized embedded GNSS antenna are still significant challenges for the high-precision positioning of smart devices.