Skip to main content

Doppler measurement integration for kinematic real-time GPS positioning


The present paper discusses the advantages of the use of Doppler shift measurements in a Kalman filter estimator in order to improve the kinematic stand-alone global positioning system positioning performance. Tests conducted in an urban environment using a single-frequency receiver demonstrate the real advantages of the proposed real-time computation technique.


The signal tracking operation performed by any global positioning system (GPS) receiver usually provides pseudorange and carrier-phase measurements and, independently, the value of the frequency steering that the receiver should apply to its internal signal replicas to maintain the lock with the incoming signals. Such quantity is the Doppler shift observable. In particular, when a satellite is approaching the antenna-phase center, the observed signal frequency is greater with respect to the nominal (i.e., the Doppler shift is positive); otherwise, when the satellite is moving away, the frequency is decreasing (i.e., the Doppler shift is negative; Fig. 1).

Fig. 1
figure 1

Doppler shift in the case of static (a) and moving (b) point: in the first case, the difference between the two ranges displayed in a, due to the motion of the satellite, is the only cause of the Doppler shift; in the other case, the difference is caused by the motion of both the satellite and the point P (here the Earth motion was neglected for simplicity)

Fig. 2
figure 2

Doppler shift due to the radial velocity v r

The Doppler shift in Hertz is related with radial velocity by:

$$ {D^{\rm{sat}}} = - \frac{{{v_{\rm{r}}}}}{\lambda } $$


D sat :

measured Doppler shift for generic satellite (Hz)

v r :

radial component of the difference between the satellite and the antenna velocities (m/s)

λ :

GPS carrier wavelength (m)

The radial velocity can be computed as (Grewal et al. 2007; Fig. 2):

$$ {v_{\rm{r}}} = \left( {{v^{\rm{sat}}} - {v_{\rm{ant}}}} \right)\cos \vartheta = \left( {{v^{\rm{sat}}} - {v_{\rm{ant}}}} \right) \times \left( {\begin{array}{*{20}{c}} {{X^{\rm{sat}}} - {X_{\rm{ant}}}} \\{{Y^{\rm{sat}}} - {Y_{\rm{ant}}}} \\{{Z^{\rm{sat}}} - {Z_{\rm{ant}}}} \\\end{array} } \right) \cdot \frac{1}{{\rho_{\rm{ant}}^{\rm{sat}}}} $$


vsat, vant:

velocity of the satellite- and of the antenna-phase center (m/s)

Xsat, Ysat, Zsat:

generic satellite position (earth-centered earth-fixed, ECEF) (m)

Xant, Yant, Zant:

antenna-phase center position (ECEF) (m)

\( \rho_{\rm{ant}}^{\rm{sat}} \) :

Geometric range for satellite (m)

Taking into account the sum of satellite and receiver clock error rate,

$$ {\dot{\delta }_{\rm{clock}}} = c\Delta \dot{t} $$

We finally have (Bahrami and Ziebart 2010; Scherzinger 2000)

$$ \lambda {D^{\rm{sat}}} = - \frac{1}{{\rho_{\rm{ant}}^{\rm{sat}}}} \cdot \left[ {\begin{array}{*{20}{c}} {{{\dot{X}}^{\rm{sat}}} - {{\dot{X}}_{\rm{ant}}}} \\{{{\dot{Y}}^{\rm{sat}}} - {{\dot{Y}}_{\rm{ant}}}} \\{{{\dot{Z}}^{\rm{sat}}} - {{\dot{Z}}_{\rm{ant}}}} \\\end{array} } \right] \times \left[ {\begin{array}{*{20}{c}} {{X^{\rm{sat}}} - {X_{\rm{ant}}}} \\{{Y^{\rm{sat}}} - {Y_{\rm{ant}}}} \\{{Z^{\rm{sat}}} - {Z_{\rm{ant}}}} \\\end{array} } \right] - {\dot{\delta }_{\rm{clock}}} $$


\( {\dot{X}^{\rm{sat}}},{\dot{Y}^{\rm{sat}}},{\dot{Z}^{\rm{sat}}} \) :

velocity for generic satellite (ECEF) (m/s)

\( {\dot{X}_{\rm{ant}}},{\dot{Y}_{\rm{ant}}},{\dot{Z}_{\rm{ant}}} \) :

antenna-phase center velocity (ECEF) (m/s)

\( {\dot{\delta }_{clock}} \) :

clock error variation (m/s)

This observable, although less precise with respect to the carrier phase one, has the advantage of not being influenced by carrier-phase cycle slips. In addition, as first derivative of the carrier phase (although it is obtained independently), it appears to be less affected by atmospheric phenomena such as ionospheric and tropospheric delays (Hofmann-Wellenhof et al. 2001).

As well known, the value of this measure is directly linked to the relative speed of the satellite with respect to the observer; for this reason, the Doppler shift is used to compute the user velocity, once the speed of satellites is derived from the information contained in broadcast or precise ephemeris.

Hereafter are described the procedures required for the calculation of position and velocity through the combination of pseudorange, carrier phase, and Doppler shift measurements in a Kalman filter. Furthermore, in the second part of the paper is presented an experiment, conducted in an urban environment, to assess the real advantage of the introduction of the new observables in the problem.

Space vehicle and user velocity computation in real time

The speed of each GPS satellite can be computed in postprocessing using the precise ephemeris (.SP3) provided by the International GPS Service, with an accuracy of 10−4 mm/s. However, these ephemerides are available with a latency of 2 weeks. For real-time applications, it is necessary to calculate the partial time derivative of the Keplerian parameters, using the ephemeris transmitted by the GPS satellites (broadcast ephemeris), according to the procedure described in the “GPS Interface Control Document” (Navstar 2004) and in Remondi (2004).

The design matrix is similar to the one used to compute the position starting from the pseudorange observables:

$$ A = \left[ {\begin{array}{*{20}{c}} { - \frac{{\left( {{X_{{\rm{sat}}(1)}} - {X_{\rm{ant}}}} \right)}}{{{\rho_{{\rm{sat}}(1)}}}}} &; { - \frac{{\left( {{Y_{{\rm{sat}}(1)}} - {Y_{\rm{ant}}}} \right)}}{{{\rho_{{\rm{sat}}(1)}}}}} &; { - \frac{{\left( {{Z_{{\rm{sat}}(1)}} - {Z_{\rm{ant}}}} \right)}}{{{\rho_{{\rm{sat}}(1)}}}}} &; { - 1} \\{ - \frac{{\left( {{X_{{\rm{sat}}(2)}} - {X_{\rm{ant}}}} \right)}}{{{\rho_{{\rm{sat}}(2)}}}}} &; { - \frac{{\left( {{Y_{{\rm{sat}}(2)}} - {Y_{\rm{ant}}}} \right)}}{{{\rho_{{\rm{sat}}(2)}}}}} &; { - \frac{{\left( {{Z_{{\rm{sat}}(2)}} - {Z_{\rm{ant}}}} \right)}}{{{\rho_{{\rm{sat}}(2)}}}}} &; { - 1} \\\vdots &; \vdots &; \vdots &; \vdots \\{ - \frac{{\left( {{X_{{\rm{sat}}(N)}} - {X_{\rm{ant}}}} \right)}}{{{\rho_{{\rm{sat}}(N)}}}}} &; { - \frac{{\left( {{Y_{{\rm{sat}}(N)}} - {Y_{\rm{ant}}}} \right)}}{{{\rho_{{\rm{sat}}(N)}}}}} &; { - \frac{{\left( {{Z_{{\rm{sat}}(N)}} - {Z_{\rm{ant}}}} \right)}}{{{\rho_{{\rm{sat}}(N)}}}}} &; { - 1} \\\end{array} } \right] $$

Referring to Eq. 4, it can be stated that the problem unknowns are the antenna-phase center velocities \( \left( {{{\dot{X}}_{\rm{ant}}},{{\dot{Y}}_{\rm{ant}}},{{\dot{Z}}_{\rm{ant}}}} \right) \) and the receiver clock error variation \( \left( {{{\dot{\delta }}_{\rm{clock}}}} \right) \). It is possible to write an equation for each satellite in view. Such problem can be solved by using the least square method, setting an approximated start value to come to the unknown estimate.

Kalman filtering for position and velocity estimation

Kalman filter is a useful tool to calculate the position and the velocity of an object in order to modify in real time a route or to correct an instrumental drift. It allows the update of the least squares estimates if any change happens, as for examples new observations, without needing to solve the whole system. These updates are called epochs.

The updated parameters can be derived from the ones estimated at the previous step plus the increment due to the contribution of the new measurements, as follows:

$$ {\hat{x}_{i + 1}} = {\hat{x}_i} + K({b_{i + 1}} - {A_{i + 1}}{x_i}) $$

The real unknown of such system is the matrix K that is known as gain matrix or Kalman matrix.

Regarding the Kalman process, it is possible to individuate two different phases: the filtering and the smoothing.

The first phase determinates the best parameter estimate at the current measurement epoch: it has a particular importance in the real-time applications; on the other side, the second phase, starting from the measurement of the last epoch, enables the best estimate of the parameters of the previous epochs and for this reason is not treated in the present paper.

Figure 3 shows the flow chart for the computation of the parameters (hereafter referred as “state vector”) and the variance–covariance matrix at each epoch.

Fig. 3
figure 3

Flow chart for the Kalman procedure

Usually, real-time algorithms foresee a consistency check based on the verification of the position previously calculated using a position, velocity, and time (PVT) computation algorithm. Such check enables the removal of wrong measurement that could affect the system.

When only the position is estimated, the design matrix and the state vector are (Brown and Hwang 1997)

$$ \begin{array}{*{20}{c}} {F = A = \left[ {\begin{array}{*{20}{c}} 1 &; 0 &; 0 \\0 &; 1 &; 0 \\0 &; 0 &; 1 \\\end{array} } \right]} &; {\quad \hat{x} = \left[ {\begin{array}{*{20}{c}} {{x_1}} \\{{x_2}} \\{{x_3}} \\\end{array} } \right]} \\\end{array} $$


(x 1 x 2 x 3):

easting, northing, up (height on the ellipsoid) with PVT algorithm

Such a Kalman filter allows an improvement with respect to the solution obtained with the standard PVT algorithm: the consistency check, as told before, allows a reduction of the errors due to noisy measurements, despite the positions that feed the algorithm coming from the same measurement sets (pseudorange and carrier-phase observations) that are affected by the same problems.

Furthermore, the Kalman filtering attenuates the noise that affects the measurements, but it comes at a price: the risk of a wrong solution estimate that can diverge from the true one. This fact has a greater impact if the input data are affected by systematic errors due, for example, to obstacle, as usually happens in the urban environment.

Such problem could be mitigated, taking particular care in the selection of the coefficients of the dispersion matrices, C ee and \( {C_{\varepsilon \varepsilon }} \), and setting a check on the predicted residuals between the solutions from filter and PVT algorithm following the expression:

$$ {{\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\smile}$}} {v}}_k} = {b_k} - {A_k}{ }{\hat{x}_{k|k}} $$

A possible solution for these problems is represented by the introduction in the filter of a different type of measurement like for example the Doppler shift observable.

The state matrix, the state vector, and the design matrix with the introduction of these new variables become:

$$ \begin{array}{*{20}{c}} {F = \left[ {\begin{array}{*{20}{c}} 1 &; 0 &; 0 &; {\Delta t} &; 0 &; 0 \\0 &; 1 &; 0 &; 0 &; {\Delta t} &; 0 \\0 &; 0 &; 1 &; 0 &; 0 &; {\Delta t} \\0 &; 0 &; 0 &; 1 &; 0 &; 0 \\0 &; 0 &; 0 &; 0 &; 1 &; 0 \\0 &; 0 &; 0 &; 0 &; 0 &; 1 \\\end{array} } \right]} &; {\hat{x} = \left[ {\begin{array}{*{20}{c}} {{x_1}} \\{{x_2}} \\{{x_3}} \\{{{\dot{x}}_1}} \\{{{\dot{x}}_2}} \\{{{\dot{x}}_3}} \\\end{array} } \right]} &; {A = \left[ {\begin{array}{*{20}{c}} 1 &; 0 &; 0 &; 0 &; 0 &; 0 \\0 &; 1 &; 0 &; 0 &; 0 &; 0 \\0 &; 0 &; 1 &; 0 &; 0 &; 0 \\0 &; 0 &; 0 &; 1 &; 0 &; 0 \\0 &; 0 &; 0 &; 0 &; 1 &; 0 \\0 &; 0 &; 0 &; 0 &; 0 &; 1 \\\end{array} } \right]} \\\end{array} $$


x1, x2, x3:

easting, northing, and up (from PVT algorithm)

\( {\dot{x}_1},\,{\dot{x}_2},\,{\dot{x}_3} \) :

velocity in the east, north, and up directions (from PVT algorithm)

Δt :

GPS sampling interval

The observables and the state and variance/covariance matrices can be assumed equal to the values obtained from the position and velocity PVT estimation algorithm.

The measurement dispersion matrix C ee , in particular, contains the inverse of the weights to be attributed to the various elements of the state matrix during the Kalman filter process. These quantities depend on the coordinate estimation algorithm used before the Kalman filter stage.

Concerning the system dispersion matrix \( {C_{\varepsilon \varepsilon }} \), the values of the matrix coefficients are related to both the characteristics of the GPS signal and the problem set in the Kalman filter. In particular, in this case was chosen a matrix \( {C_{\varepsilon \varepsilon }} \) derived from that proposed for a similar problem, within (Brown and Hwang 1997):

$$ C_{\varepsilon \varepsilon }^{\rm{UTM}} = \left[ {\begin{array}{*{20}{c}} {{S_p}\frac{{\Delta {t^3}}}{3}} &; 0 &; 0 &; {{{\dot{S}}_p}\frac{{\Delta {t^2}}}{2}} &; 0 &; 0 \\0 &; {{S_p}\frac{{\Delta {t^3}}}{3}} &; 0 &; 0 &; {{{\dot{S}}_p}\frac{{\Delta {t^2}}}{2}} &; 0 \\0 &; 0 &; {{S_h}\frac{{\Delta {t^3}}}{3}} &; 0 &; 0 &; {{{\dot{S}}_h}\frac{{\Delta {t^2}}}{2}} \\{{{\dot{S}}_p}\frac{{\Delta {t^2}}}{2}} &; 0 &; 0 &; {{S_p}\Delta t} &; 0 &; 0 \\0 &; {{{\dot{S}}_p}\frac{{\Delta {t^2}}}{2}} &; 0 &; 0 &; {{S_p}\Delta t} &; 0 \\0 &; 0 &; {{{\dot{S}}_h}\frac{{\Delta {t^2}}}{2}} &; 0 &; 0 &; {{S_h}\Delta t} \\\end{array} } \right] $$


S p , S h :

spectral width associated with the white noise caused by the guide and related to the planimetric (S p ) or altimetric (S h ) coordinates in Universal Transverse Mercator (UTM) system

\( {\dot{S}_p},{\dot{S}_h} \) :

spectral width associated with the white noise caused by the guide and related to the planimetric \( \left( {{{\dot{S}}_p}} \right) \) or altimetric \( \left( {{{\dot{S}}_h}} \right) \) velocities in UTM system

Δt :

GPS sampling interval

Note how the planimetric coordinates have been weighted differently if compared with the height and with the three velocities. We have adopted, in particular, planimetric values higher than altimetric ones because, during the road tests, the planimetric coordinates vary more than the altitude.

This dispersion matrix is defined in a local projection or in a UTM projection, whereas coordinates and velocities calculated from the pseudorange and Doppler shift measurements are expressed in the ECEF frame. For this reason, the final system dispersion matrix will be the result of the propagation of the matrix \( C_{\varepsilon \varepsilon }^{\rm{UTM}} \) with the derivative of the transformation matrix \( R_{\rm{ECEF}}^{\rm{UTM}} \)between the two reference systems:

$$ R_{\rm{ECEF}}^{\rm{UTM}} = \left[ {\begin{array}{*{20}{c}} { - \sin \lambda } &; {\cos \lambda } &; 0 &; 0 &; 0 &; 0 \\{ - \sin \varphi \cos \lambda } &; { - \sin \varphi \sin \lambda } &; {\cos \varphi } &; 0 &; 0 &; 0 \\{ - \cos \varphi \cos \lambda } &; { - \cos \varphi \sin \lambda } &; { - \sin \varphi } &; 0 &; 0 &; 0 \\0 &; 0 &; 0 &; { - \sin \lambda } &; {\cos \lambda } &; 0 \\0 &; 0 &; 0 &; { - \sin \varphi \cos \lambda } &; { - \sin \varphi \sin \lambda } &; {\cos \varphi } \\0 &; 0 &; 0 &; { - \cos \varphi \cos \lambda } &; { - \cos \varphi \sin \lambda } &; { - \sin \varphi } \\\end{array} } \right] $$

It is then possible to calculate the measurement dispersion matrix \( C_{\varepsilon \varepsilon }^{{\rm{ECEF}}} \) with the variance/covariance propagation law:

$$ C_{\varepsilon \varepsilon }^{\rm{ECEF}} = R_{\rm{ECEF}}^{\rm{UTM}} \cdot C_{\varepsilon \varepsilon }^{\rm{UTM}} \cdot {\left( {R_{\rm{ECEF}}^{\rm{UTM}}} \right)^T} $$

Kinematic tests

The procedures described above were tested on an urban route in the Vercelli downtown (Piedmont, Italy). In particular, the configuration of the route was characterized by the presence of buildings and trees, partially undressed at the time of measurement (late February) but still able to hinder or even obstruct the visibility of some satellites. This environment was chosen to achieve the most critical and realistic conditions for the tracking of GPS satellites in urban canyons. The GPS receiver used during the test was a single-frequency Magellan DG14 RTK, connected with a dual-frequency antenna. The antenna signal was also split to a Leica 1200 dual-frequency geodetic receiver in order to provide a reference solution for the accuracy comparisons. Data were stored with a sampling rate of 1 s and then converted to RINEX files, for the simulation of a real-time processing in office.

Figure 4 shows the points computed by the dual-frequency receiver superimposed on the Regional Technical Map (on a 1:10,000 scale graphics). Gaps in data are determined by the presence of buildings and partially tree-lined streets obstructing the reception of GPS signals.

Fig. 4
figure 4

Trajectory measured by the dual-frequency receiver superimposed on the regional technical map

The length of the run was about 5 km. The speed has been more or less 40 km/h, and the experiment lasted about 30 min and was initialized with 10 min of static initialization in order to allow the GPS antenna to determine its initial position with sufficient accuracy. A second static alignment was carried out at the end of the test in order to determine the final position of the GPS antenna.

The data recorded by Magellan DG14 RTK receiver were processed in four different modes:

  • Pseudorange positioning (hereinafter, called as “code solution”), using an algorithm of PVT meeting the requirements described in Navstar (2004)

  • Carrier-phase smoothed pseudorange positioning (“smoothed code solution”), according to the procedure proposed by Hatch (1982)

  • Kalman filtering positioning set in the traditional way, i.e., using only the PVT positioning solution (“traditional Kalman filter”)

  • Kalman filtering positioning including Doppler-shift-derived velocities (“Kalman with velocities”)

The four processing sessions described above have returned four different solutions, which were compared with the postprocessed solution of the dual-frequency geodetic receiver (the reference solution for these tests). For each trajectory, in particular, the planimetric error and the three-dimensional error have been estimated at each epoch, using:

$$ \begin{gathered} {\Delta_{\rm{planim}}} = \left| {\sqrt {{{{\left( {{E_{\rm{sol}}} - {E_{\rm{rif}}}} \right)}^2} + {{\left( {{N_{\rm{sol}}} - {N_{\rm{rif}}}} \right)}^2}}} } \right| \hfill \\{\Delta_{\rm{3D}}} = \left| {\sqrt {{{{\left( {{E_{\rm{sol}}} - {E_{\rm{rif}}}} \right)}^2} + {{\left( {{N_{\rm{sol}}} - {N_{\rm{rif}}}} \right)}^2} + {{\left( {{h_{\rm{sol}}} - {h_{\rm{rif}}}} \right)}^2}}} } \right| \hfill \\\end{gathered} $$


\( {E_{\rm{sol}}},\,{N_{\rm{sol}}} \) :

east and north coordinates of the trajectory under test

\( {E_{\rm{rif}}},\,{N_{\rm{rif}}} \) :

east and north coordinates of the reference

\( {h_{\rm{sol}}},\,{h_{\rm{rif}}} \) :

ellipsoidal height of the trajectory under test and of the reference

Table 1 shows the average values, with the relative standard deviation of the two types of error (planimetric and tridimensional) for each solution considered.

Table 1 Error mean and standard deviation for each scenario

Figures 5 and 6 represent a 1,000-s (17-min) subset of the urban test, concerning the trajectory with the most greater problems due to the obstructions. For clarity, only the planimetric and tridimensional errors, with respect to the reference trajectory, of the two Kalman filter scenarios (traditional and with velocities) are shown.

Fig. 5
figure 5

2D error in the traditional Kalman filter and in the Kalman filter with velocities scenario

Fig. 6
figure 6

3D error in the traditional Kalman filter and in the Kalman filter with velocities scenario

The analysis of the two figures shows some interesting considerations: first, through this analysis, it is possible to evaluate the goodness of the implemented algorithm, even in the presence of obstacles or in an urban environment.

The trend of the errors for the traditional Kalman solution highlights strengths and weaknesses of this approach: the obtained solution sometimes actually allows a considerable reduction of the error made in positioning (see for example the values between epochs 466100 and 466400); but in some cases, the solution can lose the lock with the real trajectory, bringing the filter to converge towards a wrong solution for some epochs (this happens, for example, around the epoch 466000 or 466500). To solve such issue, it is possible to find a weight set in the state and measurement dispersion matrices better tuned for the current dataset, but that, potentially, does not work so well with other data.

Furthermore, observing the performance of the geometric dilution of precision (GDOP) index during the test and comparing this value with the error of the two three-dimensional solutions obtained using the traditional Kalman filtering, a worsening of the geometric configuration of the GPS system can be observed near to when the error of the solution of the traditional Kalman increases (starting from epoch 466600; Fig. 7).

Fig. 7
figure 7

Planimetric error of the Kalman filtering solutions and GDOP

A possible workaround to avoid this phenomenon is the addition of data from independent observations, such as the speed, calculated from the Doppler observations. The trend of the errors shown in Fig. 5 and in Fig. 6 highlights the advantage of such approach: in this case, the error remains almost always below 10 m. Moreover, the divergence phenomenon that appears with the traditional Kalman is no longer present.

The solution quality of the Kalman filtering can be controlled at any time by introducing the control on the Kalman predicted residuals. Such control allows a reduction of the error committed by the filter, as shown in Fig. 8 for the solution of the traditional Kalman, setting a difference threshold of about 10 m (on the tridimensional error between two consecutive epochs). By analyzing the results shown in Table 2 and in Fig. 8, it is possible to see the improvement in the traditional Kalman filter positioning due to the control on the predicted residuals. On the other hand, the use of the vehicle velocities already contributes to strengthening the positioning, and therefore the predicted residual control in this case does not show the same benefits of the traditional Kalman filter scenario.

Fig. 8
figure 8

3D errors for a traditional KF and a KF with the controlon the predicted residuals

Table 2 Error mean and standard deviation for the Kalman filter scenarios with predicted residual control

The two trajectory zooms in Fig. 9 below show the computed positions of the two Kalman filtering approaches in two critical points of the route in case of significant obstacles. Note that the Kalman solution with velocities (red dots) follows quite closely the reference solution (black crosses) in every epoch, while the traditional Kalman filter solution (blue triangles) shows a greater variance according to the obstacles in the path.

Fig. 9
figure 9

Trajectory zooms in the presence of obstacles. Legend: black crosses, reference trajectory; blue triangles, traditional Kalman filter; red dots, Kalman with velocities


The proposed procedure has the main purpose of providing valuable assistance in various practical applications, such as fleet management, machinery monitoring in building yards, precision farming, or more generally, whenever the need to know the position in real time is present. The main problem in the mentioned scenarios is that the operating areas in most cases are within the “urban canyons,” or in the presence of buildings or other objects that could obstruct the proper reception of the satellites signals or the differential corrections sent by the GPS permanent stations.

The experiments carried out in an urban environment and aimed at the real-time positioning of the vehicle in motion show the great effectiveness of the use of Doppler measurements, especially if “mass market” receivers are used: in fact, the use of Doppler shift measurements not only strengthens the estimation system but also allows limiting the positioning errors that are present with pseudorange or the carrier-phase smoothed pseudorange solutions.

This advantage becomes even more evident with the use of Kalman filter, since it is possible to limit a priori the difference of speed between two subsequent epochs and to increase the number of status variables of the system from three to six (the three coordinates and three velocities of the antenna-phase center) or more if, for example, the receiver clock error and its variation in time are modeled and included into the system.


  • Bahrami M, Ziebart M (2010) Instantaneous Doppler-aided RTK positioning with single-frequency receivers. In: Position Location and Navigation Symposium (PLANS), 2010 IEEE/ION, Indian Wells, CA, pp. 70–78

  • Brown RG, Hwang PYC (1997) Introduction to random signals and applied Kalman filtering, 3rd edn. Wiley Interscience, Hoboken

    Google Scholar 

  • Grewal MS, Weill LR, Andrews AP (2007) Global positioning systems, inertial navigation, and integration, 2nd edn. Wiley Interscience, Hoboken

    Book  Google Scholar 

  • Hatch R (1982) The synergism of GPS code and carrier measurements. In: Proceedings of 3rd International Symposium on Satellite Doppler Positioning, vol. 2, pp 1213–1232

  • Hofmann-Wellenhof B, Lichtenegger H, Collins J (2001) GPS theory and practice, 5th edn. Springer, Heidelberg

    Google Scholar 

  • Navstar (2004) IS-GPS-200—Navstar GPS space segment/navigation user interfaces. Navstar GPS Joint Program Office, Revision D, 7 December

  • Remondi BW (2004) Computing satellite velocity using the broadcast ephemeris. GPS Solutions 8:181–183

    Article  Google Scholar 

  • Scherzinger BM (2000) Precise robust positioning with inertial/GPS RTK. In: Proceedings of ION GPS 2000 Conference, Alexandria, VA, pp 155–162

Download references

Open Access

This article is distributed under the terms of the Creative Commons Attribution Noncommercial License which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.

Author information

Authors and Affiliations


Corresponding author

Correspondence to Mattia De Agostino.

Rights and permissions

Open Access This is an open access article distributed under the terms of the Creative Commons Attribution Noncommercial License (, which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.

Reprints and Permissions

About this article

Cite this article

De Agostino, M., Manzino, A. & Marucco, G. Doppler measurement integration for kinematic real-time GPS positioning. Appl Geomat 2, 155–162 (2010).

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI:


  • Kalman filter
  • Kinematic GPS
  • Doppler
  • Real-time positioning
  • Single-frequency receiver