Time-Differenced Carrier Phase Technique for Precise Velocity Estimation on an Android Smartphone

GNSS (Global Navigation Satellite System) receivers are not only able to accurately determine position, but also velocity, knowledge of which could be important in several applications. The most adopted technique for velocity estimation exploits the Doppler shift due to the relative motion between the signal source and the receiver. Alternatively, the TDCP (Time-Differenced Carrier Phase) technique, based on the differences between consecutive carrier-phase measurements, can be used. TDCP is theoretically able to achieve better performance compared with the Doppler-based approach, exploiting the high precision of a carrier-phase observable, and without suffering the ambiguity issue. The main objective of this study is to analyze TDCP performance on a smartphone GNSS chip. Smartphones GNSS receivers are usually characterized by noisy observables owing to the low quality of the antenna used; it is, therefore, interesting to compare the smartphone TDCP performance with that of the Doppler-based technique. To evaluate the benefits that TDCP can provide, especially in terms of the smartphone chip, these two approaches to velocity determination are compared using three different devices: a Novatel geodetic receiver, a u-blox multi-frequency receiver, and a Xiaomi Mi8 smartphone. The results demonstrate a performance degradation in the smartphone GNSS chip when TDCP is used, compared with the performance of higher-grade receivers. In fact, the Xiaomi Mi8 maximum errors are greater than those of the Novatel geodetic receiver, but they are still acceptable as they do not exceed 6 cm/s, making the TDCP technique a valid approach for advanced algorithms; indeed, TDCP velocity demonstrates a few mm/s accuracy with a smartphone. The application of a RAIM algorithm enables error reduction and the achievement of reliable information; the obtained solution reliability is about 89%.


Introduction
GNSS provide the three-dimensional position, velocity, and UTC time synchronization, worldwide and in every meteorological condition. The main component of GNSS is represented by GPS (Global Positioning System), which is fully operational and comprises MEO (Medium Earth Orbit) satellites orbiting the Earth twice a day, and a global network of ground stations tracking the satellites, analyzing the signals, and sending commands and data to the system. The main GPS (and GNSS) application is real-time navigation, which can be performed with low-cost receivers; however, it can also be used for topographical and geodetical applications, such as the monitoring of structures, plate tectonics monitoring, a survey of points on large-scale cartography, and so on [1][2][3][4][5].
The main interest of this study is real-time navigation. Indeed, nowadays, smart devices, such as smartphones, smartwatches, and tablets, are largely equipped with GNSS chips, allowing pedestrian navigation, sports tracking, and location-based services. These applications need accurate and reliable positioning that the GNSS chips are not always able to provide, mainly because of their small size, low-cost, and linear-polarized antenna [6][7][8].
In this context, advanced processing algorithms are necessary, and an accurate estimation of velocity could play a key role. The TDCP (Time-Differenced Carrier Phase) technique is able to provide mm/s order accuracy for high-grade receivers, but its performance with smart devices should be assessed in terms of accuracy and reliability. Therefore, the main objective of this work is the analysis of the TDCP-based velocity performance of a smartphone.
GNSS receivers usually estimate velocity by processing the Doppler measurement-a shift in signal frequency of the satellite-user relative motion [1].
Alternatively, velocity can be estimated by the TDCP (Time-Differenced Carrier Phase) technique [9], which employs two consecutive carrier-phase observables. The main problem with carrier-phase observables is the presence of integer ambiguity, which must be estimated. If no cycle slips occur, the ambiguity remains constant [2]; thus, differencing two consecutive measurements cancels the ambiguity [10]. This is an important aspect of TDCP, which frees it from a classical problem affecting carrier phase. The most evident benefit of TDCP is that it can provide mm/s accuracies, compared with the Doppler technique which enables estimation at the cm/s accuracy level [11]. On the other hand, TDCP is not a snapshot technique, being based on two consecutive carrier-phase measurements from the same satellite; if a loss of contact occurs on a satellite at the current or previous epoch, the TDCP observable, relative to that satellite, is unavailable. This results in a lower observable availability compared with the Doppler technique (which is a snapshot technique and does not experience this problem). An additional drawback is that the presence of cycle slip directly affects the TDCP observable so a suitable detector must be used.
TDCP was studied in several works. In [12], the authors developed an approach where TDCP aids an INS to determine the velocity of the receiver and it achieved sub-meter positional accuracies. In [13], an improved TDCP velocity-estimation approach, which was dependent on the receiver position at the current epoch and the satellite position at the current and successive epochs, was developed. A source of discontinuity in TDCP measurements is the changing of ephemerides; to overcome this limitation, in [11], a strategy based on the use of the same set of ephemerides was proposed. In [14], TDCP was used to improve pedestrian localization in an integrated scheme that included PDR (Pedestrian Dead Reckoning) and GNSS measurements.
The literature reports several studies into the development of GNSS receivers embedded into smart devices (above all smartphones); an exhaustive review of the state of art is in [15].
Several specific studies into velocity estimation and/or the TDCP technique with smart devices are found in the literature. In [16], the results from the integration of GNSS and inertial sensors of two smartphones were assessed, focusing on performance during the passage from an open sky to a more challenging environment.
In [17], a quality analysis of GNSS smartphone observations was carried out and a velocity-aided positioning approach was proposed; an analysis of velocity estimation was conducted using the carrier-phase rate and the Doppler measurements; the results showed that the carrier-phase approach was more accurate than the Doppler approach. In [18], an analysis of Doppler-based velocity estimation with smartphones was conducted for single and multi GNSS constellations, and single and dual frequencies.
In [19], GNSS pseudorange, phase, and Doppler observables were combined in order to develop a precise positioning algorithm that exploited a robust Kalman Filter to obtain the smartphone position, where a velocity term was present, the position being determined using a TDCP method.
In [20], measurements from a smartphone GNSS chip were analyzed and, owing to the presence of high noise levels, and frequent cycle slips and blunders, an advanced positioning algorithm, involving TDCP, was proposed. This research highlighted the importance of TDCP because it is crucial for advanced algorithms. A proof analysis of TDCP performance in the velocity domain using a smartphone GNSS chip is, therefore, required.
In the present work, a trial was conducted to assess the performance of the TDCP technique applied to a smartphone GNSS receiver. The considered device was a Xiaomi Mi8, equipped with a Broadcom BCM47755 chipset, able to receive L1/L5 frequencies from the GPS, GLONASS, Galileo, and BeiDou satellites. The need to investigate the TDCP performance with a smartphone arose from the typical noisiness of observations for this type of device [6,15,21,22].
A comparison was conducted with a Novatel GPS geodetic receiver, able to track L1/L2 frequencies of GPS only, and with a u-blox ZED F9P multi-band GNSS receiver, able to receive L1/L2/L5, frequencies from GPS, GLONASS, Galileo, and BeiDou [23]. Data collection was performed in an open sky context, and the velocity was estimated using both the Doppler and TDCP techniques; the data collection was static to ensure zero speed value as the reference.
The test results demonstrate that a smartphone chip provides degraded performance compared with the higher-grade devices; nevertheless, a velocity accuracy of the order of a few mm/s is attainable with TDCP. A RAIM (Receiver Autonomous Integrity Monitoring) algorithm was applied in order to reduce the effect of blunders among the measurements and to obtain reliability information about the solution.
This paper is organized as follows. In Sections 2 and 3, the Doppler and TDCP techniques for velocity estimation are discussed, respectively. In Section 4, the RAIM concept is briefly outlined. In Section 5, the experiment and the results are described. Section 6 is dedicated to the conclusions.

Doppler-Based Velocity Estimation
In GNSS receivers, velocity estimation is usually determined by exploiting the Doppler shift in the signals transmitted by satellites. The Doppler shift is caused by the relative motion between the satellite and the user. According to the Doppler principle, the received frequency increases as the satellite approaches the receiver; it is equal to zero when the satellite reaches the minimum distance from the receiver; finally, the frequency decreases as the satellite recedes from the receiver [1]. The frequency received by the receiver, indicated as f u , can be calculated by (1): where f s is the frequency of the signal transmitted by the satellite, (V r ·e) is the dot product between the satellite-user relative velocity vector and the unit vector of the direction from satellite to user, c is the speed of light. The satellite-receiver relative velocity is the difference between the satellite velocity, V s , and user velocity, V u : For a generic i-th satellite, and substituting (2) in (1), it is possible to obtain: f u i is the signal frequency received by the i-th satellite, and it depends on the ideal received signal frequency f i and the receiver clock bias drift . δt u . f s i is signal frequency transmitted by the i-th satellite and generated by correcting the f 0 frequency of transmission (L1) of a term ∆f s i contained in the navigation message [1].
These two frequencies are expressed by (4): Substituting the new expression of f u i in (3): Expanding the dot product, Equation (5) is obtained: The first member of (5) contains only calculated elements, while the second member contains the unknowns of the problem, namely V u x , V u y , V u z , − . δt u . Setting: and considering that the ratio between f i and f s i is near to 1, it is possible to neglect it in the last term cf i . δt u f s i of (5), obtaining (6): For a satellite number m ≥ 4: where ε is the vector containing the error sources contributions, while the remaining elements are: The measurement Equation (7) can be solved using the Weighted Least Squares (WLS) method: where W is the weighting matrix, The measurements are assumed to be uncorrelated; hence, W is a diagonal matrix. The variance of the measurements, σ 2 i , are placed on the diagonal, as shown below: All the above equations are adapted from [1]. For the present study, the diagonal elements of W are determined with a weighting model based on the carrier to noise ratio, C/N 0 , and satellite elevation (El), shown in (9) and assessed in [24]. This model was adopted after several attempts with various weighting strategies, as it provided the best results.
σ 2 0 is a constant variance value.

Time-Differenced Carrier-Phase Technique
The TDCP algorithm estimates user velocity in a very accurate manner by processing the differences in two consecutive carrier-phase measurements, as long as the i-th satellite signal is received in both the current and the previous epochs [10].
As can be seen from Figure 1, which represents how the TDCP algorithm works, user velocity is computed starting with the GNSS measurements: raw pseudorange is used to determine the GNSS position at the current epoch, referred as t j ; and two consecutive raw carrier-phase measurements at t j−1 and t j epochs. The measurements are assumed to be uncorrelated; hence, W is a diagonal matrix. The variance of the measurements, σ , are placed on the diagonal, as shown below: All the above equations are adapted from [1]. For the present study, the diagonal elements of W are determined with a weighting model based on the carrier to noise ratio, C/N0, and satellite elevation (El), shown in (9) and assessed in [24]. This model was adopted after several attempts with various weighting strategies, as it provided the best results.
σ is a constant variance value.

Time-Differenced Carrier-Phase Technique
The TDCP algorithm estimates user velocity in a very accurate manner by processing the differences in two consecutive carrier-phase measurements, as long as the i-th satellite signal is received in both the current and the previous epochs [10].
As can be seen from Figure 1, which represents how the TDCP algorithm works, user velocity is computed starting with the GNSS measurements: raw pseudorange is used to determine the GNSS position at the current epoch, referred as t ; and two consecutive raw carrier-phase measurements at t and t epochs. Through GPS and GNSS ephemerides, it is possible to determine the satellite's positions and the parameters of the Klobuchar ionospheric model (this latter information is contained in the GPS navigation message [1] and explains the "GPS/GNSS EPH"-named box). It is important to note that, because the TDCP algorithm uses two consecutive contained in the GPS navigation message [1] and explains the "GPS/GNSS EPH"-named box). It is important to note that, because the TDCP algorithm uses two consecutive carrierphase measurements, two consecutive positions for the same satellite are needed, as also clarified from Figure 1.
The raw carrier-phase measurements are corrected from the satellite clock bias, and relativistic and atmospheric effects; just before the estimation method, the RAIM (Receiver Autonomous Integrity Monitoring) algorithm is applied to detect and exclude any carrierphase measurements affected by blunders, especially those caused by cycle slip. RAIM is a method used to determine the integrity of the navigation solution and to protect it from an excessive horizontal position error caused by gross errors, excluding these from the navigation solution computation (Fault Detection and Exclusion (FDE) technique) [1]. RAIM theory is detailed in [25]. An application of RAIM in cycle-slip detection was assessed in [26]. In this study, RAIM is applied to the measurement set in order to exclude those blunders that can affect the accuracy of estimated velocity.
Therefore, once RAIM is applied, corrected and consistent measurements are produced. These, together with the user position at t j−1 and t j consecutive epochs in the estimation method (that in this study is the WLS method), allow the user velocity to be calculated.
The carrier-phase measurements are expressed by (10): where λ is the wavelength of the signal transmitted by the satellite, φ is the measured carrier phase expressed in cycles, d is the satellite-receiver geometric distance (also defined as "range"), c is the speed of light, δt s is the satellite clock bias, δt u is the receiver clock bias, N is the integer ambiguity, δd eph is the ephemeris errors, δd iono and δd trop are, respectively, the ionospheric and tropospheric errors, and η is another error term which includes multipath and receiver noise. Calculating the difference between two consecutive carrier-phase measurements, referred at epochs t j and t j−1 , it is possible to write (11): Analyzing the terms of (11), it is possible to neglect c∆δt s because the corrections for satellite clock bias are contained in ephemeris data [1], so c∆δt s consists of a difference in residual errors and has a very small value. Regarding the atmospheric terms (∆δd iono and ∆δd trop ), these can also be neglected because they are compensated, in a single epoch, using specific algorithms: the Klobuchar model is employed to mitigate the ionospheric delay and the Saastamoinen model is used to mitigate the tropospheric delay. This means that, following the previous logic, ∆δd iono and ∆δd trop are differences in residual errors, so they can be removed. Finally, ∆δd eph is negligible because, assuming the quasi-constancy in time of ephemeris errors, this difference tends to a zero value.
In this way, the compensated TDCP measure equation is: In (12), the term ∆ε contains the errors relating to multipath, receiver noise, and residuals from the other error sources.
From Figure 2, the satellite-receiver relative geometry can be seen, where r s is the satellite position vector and r u is the user position vector, both referred to in the ECEF frame, d is the geometric distance of satellite-receiver, and ∆r u is the receiver position shift. The satellite-receiver range, varying between t and t , can be formulated as follows: where e is the Line-Of-Sight (LOS) versor referring to t and t epochs, and "•" indicates the dot product operation.
Δd is the difference between d t and d t : The receiver position at the current epoch is: Substituting (15) in (14), obtains: Setting: It is possible to express Δd as follows: The satellite-receiver range, varying between t j−1 and t j , can be formulated as follows: where e is the Line-Of-Sight (LOS) versor referring to t j−1 and t j epochs, and "·" indicates the dot product operation. ∆d is the difference between d t j and d t j−1 : The receiver position at the current epoch is: Substituting (15) in (14), obtains: It is possible to express ∆d as follows: In (17), ∆D represents change in range, proportional to the average Doppler frequency shift due to the satellite motion, while ∆g represents the relative satellite-receiver geometry change due to the orientation shift of the LOS vector. Substituting (17) in (12): Carrying ∆D and ∆g terms at the first member of (9), the adjusted TDCP measurement is obtained: The final expression of the TDCP measurement equation is: ∆r u and c∆δt u are unknown quantities which should be calculated. For a number of available measurements m, at least equal to the number of unknowns, it is possible to estimate the unknowns by solving a set of equations such as (19), whose expression is: where y is the vector of the measurements, X is the vector containing the unknown quantities, H is the design matrix, ε is a vector containing the measurement errors.
The WLS method can be adopted to solve Equation (20), as shown below: where W is the weighting matrix.
The velocity can be determined as follows: All equations are taken from [9,11], and the W matrix elements are calculated using the same weighting strategy discussed in the previous section, scaling the constant variance value to one order of magnitude.

RAIM
Integrity refers to the capability of a navigation system to provide timely warnings to users when the system should not be used. RAIM is a user-level algorithm for solution integrity, based on a consistency check of redundant measurements [1].
There are several RAIM algorithms; the algorithm used in this study is the RAIM Subset, whose functional scheme is shown in Figure 3. The inputs of this algorithm are the residual vector, the design matrix H, and the weighting matrix W. All equations are taken from [9,11], and the W matrix elements are calculated using the same weighting strategy discussed in the previous section, scaling the constant variance value to one order of magnitude.

RAIM
Integrity refers to the capability of a navigation system to provide timely warnings to users when the system should not be used. RAIM is a user-level algorithm for solution integrity, based on a consistency check of redundant measurements [1].
There are several RAIM algorithms; the algorithm used in this study is the RAIM Subset, whose functional scheme is shown in Figure 3. The inputs of this algorithm are the residual vector, the design matrix H, and the weighting matrix W. Before RAIM application, a check on satellite geometry and protection levels (PL) is carried out and, if this test fails, the solution is declared impossible to check, as indicated in the yellow box. The satellite geometry check consists in comparing DOP parameters against suitable thresholds: if DOP values exceed the threshold, the observation geometry is considered "bad" [1], and the solution is declared impossible to check. Similarly, if Horizontal and Vertical Protection Levels (HPL and VPL, respectively), largely detailed in [27], exceed the limit values named the Horizontal Alert Limit and Vertical Alert Limit (HAL and VAL, respectively), the measurement set is considered impossible to check.
After the Geometry and PL checks, a Global Test (GT) is carried out to verify the selfconsistency of the measurement set. In this phase, a decision variable D is computed by (23): where r is the residual vector, obtained by: where is the measurement vector and is the state vector, estimated using the WLS method.
is assumed to follow a χ distribution with ( − ) degrees of freedom (or redundancy), defined as the difference between the number of measurements m and the state dimension n, and it is compared with the threshold : Before RAIM application, a check on satellite geometry and protection levels (PL) is carried out and, if this test fails, the solution is declared impossible to check, as indicated in the yellow box. The satellite geometry check consists in comparing DOP parameters against suitable thresholds: if DOP values exceed the threshold, the observation geometry is considered "bad" [1], and the solution is declared impossible to check. Similarly, if Horizontal and Vertical Protection Levels (HPL and VPL, respectively), largely detailed in [27], exceed the limit values named the Horizontal Alert Limit and Vertical Alert Limit (HAL and VAL, respectively), the measurement set is considered impossible to check.
After the Geometry and PL checks, a Global Test (GT) is carried out to verify the self-consistency of the measurement set. In this phase, a decision variable D is computed by (23): where r is the residual vector, obtained by: where z is the measurement vector andx is the state vector, estimated using the WLS method. D is assumed to follow a χ 2 distribution with (m − n) degrees of freedom (or redundancy), defined as the difference between the number of measurements m and the state dimension n, and it is compared with the threshold T g : where (1 − P FA ) indicates the abscissa value of a χ 2 distribution of (m − n) degrees of freedom. P FA is the probability of a false alarm and, in this experiment, is fixed at 0.1%.
In subset testing, the global test is applied to all possible measurement subsets until a subset is found from which the supposed blunders are excluded. This is done by searching for a subset that most clearly passes the global test, i.e., which satisfies its selfconsistency test with the smallest test statistic. The subset with the smallest test statistic below the threshold, and the largest number of measurements, is chosen to provide the best position solution [28].

Test and Results
The main objective of this study was to analyze the velocity estimation performance of a smartphone GNSS; in particular, the TDCP technique was considered. The smartphone Xiaomi Mi8 was used for the test; the device is equipped with a Broadcom BCM47755 chipset, and is able to receive L1/E1 and L5/E5 signal frequencies from the GPS, GLONASS, Galileo, and BeiDou constellations [29].
For comparison, a geodetic receiver and a high-sensitivity receiver were also considered, specifically a Novatel Geodetic GPS receiver and a u-blox ZED-F9P GNSS receiver. The former device is a double-frequency GPS receiver; the latter is a multi-frequency GNSS receiver. In this work, only GPS measurements were analyzed.
For this experiment, all the devices simultaneously acquired about 22 min of raw GPS data at L1 frequency in static mode in order to compare the estimated velocity with a reference of zero speed value. The data were collected on 24 April 2022 in a rural area in the suburbs of Naples (Figure 4).
where (1 − ) indicates the abscissa value of a χ distribution of ( − ) degrees of freedom. is the probability of a false alarm and, in this experiment, is fixed at 0.1%. In subset testing, the global test is applied to all possible measurement subsets until a subset is found from which the supposed blunders are excluded. This is done by searching for a subset that most clearly passes the global test, i.e., which satisfies its self-consistency test with the smallest test statistic. The subset with the smallest test statistic below the threshold, and the largest number of measurements, is chosen to provide the best position solution [28].

Test and Results
The main objective of this study was to analyze the velocity estimation performance of a smartphone GNSS; in particular, the TDCP technique was considered. The smartphone Xiaomi Mi8 was used for the test; the device is equipped with a Broadcom BCM47755 chipset, and is able to receive L1/E1 and L5/E5 signal frequencies from the GPS, GLONASS, Galileo, and BeiDou constellations [29].
For comparison, a geodetic receiver and a high-sensitivity receiver were also considered, specifically a Novatel Geodetic GPS receiver and a u-blox ZED-F9P GNSS receiver. The former device is a double-frequency GPS receiver; the latter is a multi-frequency GNSS receiver. In this work, only GPS measurements were analyzed.
For this experiment, all the devices simultaneously acquired about 22 min of raw GPS data at L1 frequency in static mode in order to compare the estimated velocity with a reference of zero speed value. The data were collected on 24 April 2022 in a rural area in the suburbs of Naples (Figure 4). The test scenario was open sky, as can be seen in Figure 4; satellite visibility was, therefore, good during the entire session, as shown in Figure 5. The test scenario was open sky, as can be seen in Figure 4; satellite visibility was, therefore, good during the entire session, as shown in Figure 5.   Figure 5 shows an overview of the number of visible GPS satellites for each device; visible satellites were well above the minimum number of four satellites necessary for the estimation of the unknowns. Initially, there were eight visible satellites for each device, and then nine from about 09:42. The smartphone visibility was the least stable, as indicated by the frequent drops; however, the number of visible satellites from the Mi8 was never less than 6. Figure 6 shows the C/N 0 behavior for each device. It can be seen that this ratio decreases in the devices in the following order: Novatel geodetic receiver (a), u-blox receiver (b), and Mi8 smartphone (c). For the geodetic receiver, the C/N 0 values are mainly between 40 and 50 dB-Hz; for the high-sensitivity device, the values are mainly between 30 and 50 dB-Hz; finally, for the smartphone, the values are between 20 and 45 dB-Hz. This is a clear indication that the observations collected by the smartphone are noisier than the other devices.
At three moments, around 9:39, 9:49, and 9:58, a drop in C/N0 values, probably related to unknown interferences, is evident; the main effects are on the u-blox and, most of  Figure 5 shows an overview of the number of visible GPS satellites for each device; visible satellites were well above the minimum number of four satellites necessary for the estimation of the unknowns. Initially, there were eight visible satellites for each device, and then nine from about 09:42. The smartphone visibility was the least stable, as indicated by the frequent drops; however, the number of visible satellites from the Mi8 was never less than 6. Figure 6 shows the C/N 0 behavior for each device. It can be seen that this ratio decreases in the devices in the following order: Novatel geodetic receiver (a), u-blox receiver (b), and Mi8 smartphone (c). For the geodetic receiver, the C/N 0 values are mainly between 40 and 50 dB-Hz; for the high-sensitivity device, the values are mainly between 30 and 50 dB-Hz; finally, for the smartphone, the values are between 20 and 45 dB-Hz.   Figure 5 shows an overview of the number of visible GPS satellites for each device; visible satellites were well above the minimum number of four satellites necessary for the estimation of the unknowns. Initially, there were eight visible satellites for each device, and then nine from about 09:42. The smartphone visibility was the least stable, as indicated by the frequent drops; however, the number of visible satellites from the Mi8 was never less than 6. Figure 6 shows the C/N0 behavior for each device. It can be seen that this ratio decreases in the devices in the following order: Novatel geodetic receiver (a), u-blox receiver (b), and Mi8 smartphone (c). For the geodetic receiver, the C/N0 values are mainly between 40 and 50 dB-Hz; for the high-sensitivity device, the values are mainly between 30 and 50 dB-Hz; finally, for the smartphone, the values are between 20 and 45 dB-Hz. This is a clear indication that the observations collected by the smartphone are noisier than the other devices.
At three moments, around 9:39, 9:49, and 9:58, a drop in C/N0 values, probably related to unknown interferences, is evident; the main effects are on the u-blox and, most of This is a clear indication that the observations collected by the smartphone are noisier than the other devices.
At three moments, around 9:39, 9:49, and 9:58, a drop in C/N 0 values, probably related to unknown interferences, is evident; the main effects are on the u-blox and, most of all, on the Xiaomi, and they correspond to the decrease in the available measurements in Figure 5.
In order to assess the performance of the smartphone GNSS chip for velocity estimation, Doppler-derived and TDCP-derived velocities were considered.
Collected observables were processed with PANG-NAV, a MATLAB ® tool developed by PANG (PArthenope Navigation Group) able to obtain a PVT (Position, Velocity, Timing) solution and, in the presence of a reference, to perform the error analysis. Further details about PANG-NAV are provided in [30]. PANG-NAV is able to apply the FDE-RAIM (Fault Detection and Exclusion-RAIM) algorithm.
Tables 1 and 2 summarize the experimental results, which were obtained without and with RAIM, respectively. The analyzed configurations are reported in the first and second columns, indicating the device used (Novatel, u-blox, or Xiaomi) and technique (Dopplerbased or TDCP-based velocity estimation), respectively. The considered figures of merits are the mean, the root mean square (RMS), and the maximum errors for horizontal (H) and vertical (U) directions. The last columns of Tables 1 and 2 report the solution availability and the solution reliability, respectively. Solution availability indicates percentage of available solutions, i.e., when the number of measurements is sufficient for velocity computation. Solution reliability is the percentage of reliable solutions (on the total of potential epochs) according to RAIM.  Table 1 shows that the theoretical performance of Doppler-based and TDCP-based velocity estimation are confirmed for the geodetic receiver, with an accuracy of cm/s and mm/s order, respectively. A degradation is evident for the high-sensitivity and smartphone receivers, with larger values for each considered figure of merit. In particular, the presence of anomalous measurements is remarkable in the TDCP results for the u-blox, characterized by a maximum error of 4 dm/s (horizontal) and 1.3 m/s (vertical). The application of RAIM is, therefore, necessary for TDCP in order to identify and exclude anomalous measurements, often related to cycle slips, and to obtain a reliable solution. Finally, the solution availability is 100% for the Doppler approach for all the considered devices; the 99.9% value for TDCP case is simply due to the impossibility of differencing consecutive carrier phases at the first epoch.
From Table 2, it can be observed that TDCP provides better velocity accuracy compared with the Doppler technique for all the devices. On the other hand, the reliability percentage obtained with TDCP is lower compared with the Doppler-based application; this happens mainly because TDCP is prone to the issue of cycle slips, which are considered by RAIM as blunders.
As expected, the Novatel Geodetic Receiver, which was the highest-grade device used, provides the best performance for all the considered figures of merits. TDCP RMS errors are one order of magnitude smaller than those of the Doppler approach; the reliability percentage of the Doppler solution is 100%, while it is 95.6% for TDCP, because a number of anomalous measurements were detected by RAIM, which flagged about 50 epochs as "unreliable".
The u-blox receiver with the TDCP technique also provided accuracy at the mm/s level. This configuration evidently benefits from RAIM application. Indeed, horizontal and vertical maximum errors decrease from 4.2 dm/s to 2.4 cm/s and from 1.3 m/s to 7.6 cm/s, respectively; the benefits are also clear in terms of RMS and mean errors. The reliable availability of this configuration is 96.4%.
For the Mi8 GNSS chip, the TDCP technique provided better performance compared with the Doppler-based technique, as it did for the other considered devices. The TDCP performance was good, with RMS horizontal and vertical errors equal to 7 and 16 mm/s, respectively, and maximum horizontal and vertical errors less than 6 cm/s and 2 dm/s, respectively. The solution reliability is lower than the other two devices; indeed, it is 89.5%. This confirms that, as previously discussed in Section 1, the smartphone observables are noisier, and the cycle slip more frequent compared with the other devices.
In order to highlight the benefits of TDCP compared with Doppler for velocity estimation, Figures 7-9 show the behavior of horizontal and vertical velocity errors for each device. These figures were obtained by applying RAIM. From Table 2, it can be observed that TDCP provides better velocity accuracy compared with the Doppler technique for all the devices. On the other hand, the reliability percentage obtained with TDCP is lower compared with the Doppler-based application; this happens mainly because TDCP is prone to the issue of cycle slips, which are considered by RAIM as blunders.
As expected, the Novatel Geodetic Receiver, which was the highest-grade device used, provides the best performance for all the considered figures of merits. TDCP RMS errors are one order of magnitude smaller than those of the Doppler approach; the reliability percentage of the Doppler solution is 100%, while it is 95.6% for TDCP, because a number of anomalous measurements were detected by RAIM, which flagged about 50 epochs as "unreliable".
The u-blox receiver with the TDCP technique also provided accuracy at the mm/s level. This configuration evidently benefits from RAIM application. Indeed, horizontal and vertical maximum errors decrease from 4.2 dm/s to 2.4 cm/s and from 1.3 m/s to 7.6 cm/s, respectively; the benefits are also clear in terms of RMS and mean errors. The reliable availability of this configuration is 96.4%.
For the Mi8 GNSS chip, the TDCP technique provided better performance compared with the Doppler-based technique, as it did for the other considered devices. The TDCP performance was good, with RMS horizontal and vertical errors equal to 7 and 16 mm/s, respectively, and maximum horizontal and vertical errors less than 6 cm/s and 2 dm/s, respectively. The solution reliability is lower than the other two devices; indeed, it is 89.5%. This confirms that, as previously discussed in Section 1, the smartphone observables are noisier, and the cycle slip more frequent compared with the other devices.
In order to highlight the benefits of TDCP compared with Doppler for velocity estimation, Figures 7-9 show the behavior of horizontal and vertical velocity errors for each device. These figures were obtained by applying RAIM.   It is interesting to note that several spikes are present in Figure 9 which refers to the Xiaomi device; such sudden increases in error occur in both the Doppler and TDCP cases and are related to the sudden drops in visibility and C/N0 shown in Figures 5 and 6, respectively.
In order to underline the key role of RAIM in velocity estimation with TDCP, the behavior of velocity errors, with and without RAIM, for the considered devices is plotted in Figures 10-12. It is interesting to note how the RAIM application is particularly effective for the high-sensitivity receiver; in fact, errors in the order of several dm/s for the horizontal channel, and of about one m/s for the vertical channel, are significantly reduced. However, RAIM is less effective for the Xiaomi Mi8, as is evident in Figure 12, where several spikes escape the RAIM check; the reason for this is the noisy measurements, which make it difficult for RAIM to work. Nevertheless, the benefits of RAIM to the Xiaomi case are  It is interesting to note that several spikes are present in Figure 9 which refers to the Xiaomi device; such sudden increases in error occur in both the Doppler and TDCP cases and are related to the sudden drops in visibility and C/N0 shown in Figures 5 and 6, respectively.
In order to underline the key role of RAIM in velocity estimation with TDCP, the behavior of velocity errors, with and without RAIM, for the considered devices is plotted in Figures 10-12. It is interesting to note how the RAIM application is particularly effective for the high-sensitivity receiver; in fact, errors in the order of several dm/s for the horizontal channel, and of about one m/s for the vertical channel, are significantly reduced. However, RAIM is less effective for the Xiaomi Mi8, as is evident in Figure 12, where several spikes escape the RAIM check; the reason for this is the noisy measurements, which make it difficult for RAIM to work. Nevertheless, the benefits of RAIM to the Xiaomi case are It is interesting to note that several spikes are present in Figure 9 which refers to the Xiaomi device; such sudden increases in error occur in both the Doppler and TDCP cases and are related to the sudden drops in visibility and C/N 0 shown in Figures 5 and 6, respectively.
In order to underline the key role of RAIM in velocity estimation with TDCP, the behavior of velocity errors, with and without RAIM, for the considered devices is plotted in Figures 10-12. It is interesting to note how the RAIM application is particularly effective for the high-sensitivity receiver; in fact, errors in the order of several dm/s for the horizontal channel, and of about one m/s for the vertical channel, are significantly reduced. However, RAIM is less effective for the Xiaomi Mi8, as is evident in Figure 12, where several spikes escape the RAIM check; the reason for this is the noisy measurements, which make it difficult for RAIM to work. Nevertheless, the benefits of RAIM to the Xiaomi case are evident, with a reduction in maximum errors of about 1.5 cm/s (horizontal) and 7.5 cm/s (vertical). evident, with a reduction in maximum errors of about 1.5 cm/s (horizontal) and 7 (vertical).

Conclusions
The objective of this study was to assess the performance of the TDCP tec compared to the Doppler-based technique, for velocity estimation, with particula ence to smartphone GNSS chips. The motivation for this is related to the noisy o tions characterizing such devices, implying degraded performance compared wit receivers, such as geodetic or consumer-grade receivers with dedicated antennas.
A static test was carried out in an open sky environment, using a geodetic-gr ceiver with a survey antenna, a high-sensitivity receiver with a patch antenna smartphone GNSS chip (Xiaomi Mi8). A RAIM algorithm was used in the data proc to avoid the cycle slip issue which affects TDCP technique.
From the test, it is evident that TDCP is a valid approach for a precise veloc mation for all the used devices, showing better performance than the Doppler-ba proach. The geodetic receiver provided the best performance with RMS horizon vertical errors of about 2 and 4 mm/s, respectively, and a reliability percentage of The high-sensitivity receiver provided a slightly degraded performance compare the geodetic receiver, with RMS horizontal and vertical errors of about 3 and 6 respectively, and a similar reliable availability.
The Xiaomi Mi8 GNSS chip provided lower performance, with RMS horizon vertical errors of about 7 and 16 mm/s, respectively, and with a reliable availab about 89%. The TDCP performance degradation of the smartphone GNSS chip com with higher-grade devices confirms the typical observable noisiness of such type vices, specifically of the carrier phase. Nevertheless, the maximum errors smartphone GNSS chip are not greater than 6 cm/s. Such performance allows the u TDCP-based velocity in advanced algorithms. RAIM plays an important role, signi reducing the maximum errors. The reduced reliable availability suggests its usag tegrated systems (with inertial sensors for instance); a multi-GNSS approach cou gate this problem.

Conclusions
The objective of this study was to assess the performance of the TDCP technique, compared to the Doppler-based technique, for velocity estimation, with particular reference to smartphone GNSS chips. The motivation for this is related to the noisy observations characterizing such devices, implying degraded performance compared with other receivers, such as geodetic or consumer-grade receivers with dedicated antennas.
A static test was carried out in an open sky environment, using a geodetic-grade receiver with a survey antenna, a high-sensitivity receiver with a patch antenna, and a smartphone GNSS chip (Xiaomi Mi8). A RAIM algorithm was used in the data processing, to avoid the cycle slip issue which affects TDCP technique.
From the test, it is evident that TDCP is a valid approach for a precise velocity estimation for all the used devices, showing better performance than the Doppler-based approach. The geodetic receiver provided the best performance with RMS horizontal and vertical errors of about 2 and 4 mm/s, respectively, and a reliability percentage of 95.6%. The high-sensitivity receiver provided a slightly degraded performance compared with the geodetic receiver, with RMS horizontal and vertical errors of about 3 and 6 mm/s, respectively, and a similar reliable availability.
The Xiaomi Mi8 GNSS chip provided lower performance, with RMS horizontal and vertical errors of about 7 and 16 mm/s, respectively, and with a reliable availability of about 89%. The TDCP performance degradation of the smartphone GNSS chip compared with higher-grade devices confirms the typical observable noisiness of such types of devices, specifically of the carrier phase. Nevertheless, the maximum errors for the smartphone GNSS chip are not greater than 6 cm/s. Such performance allows the usage of TDCP-based velocity in advanced algorithms. RAIM plays an important role, significantly reducing the maximum errors. The reduced reliable availability suggests its usage in integrated systems (with inertial sensors for instance); a multi-GNSS approach could mitigate this problem.