Introduction

When analyzing GPS random positioning errors, it is often assumed that the pseudorange error of each satellite has an uncorrelated normal distribution with zero-mean and common variance (Kaplan and Hegarty 2006, pp. 322–328). However, in practical applications, the pseudorange error may differ in variance if the signals are deteriorated by ionospheric scintillation or multipath effects (Balaei et al. 2007; Demyanov et al. 2012). We aim to study the characteristics of the GPS positioning error for such non-uniform pseudorange error statistics. Starting from the pseudorange measurements, the positioning error equations are briefly introduced in Sect. 2. In Sect. 3, the singular value decomposition (SVD) is applied to decompose the geometry matrix and explore the relationship between the positioning error, the pseudorange errors, and the satellite geometry. A concise, explicit, analytical formula is derived for the covariance of the positioning error. Section 4 demonstrates the variation of the positioning error as a function of the pseudorange error for different satellites. Finally, the conclusions are given.

Positioning error equations

The pseudorange measurement of satellite n from receiver can be modeled as:

$$P_{c}^{(n)} = \left\| {x^{(n)} - x} \right\| + b + \varepsilon_{\rho }^{(n)}$$
(1)

where \({\mathbf{x}}^{(n)} = \left( {x^{(n)} ,y^{(n)} ,z^{(n)} } \right)\) is the position of the satellite at the time of signal transmission, \({\mathbf{x}} = \left( {x,y,z} \right)\) is the position of the receiver at the time of the measurement, \(b = c\delta t_{u}\) is the bias in the receiver clock offset \(\delta t_{u}\) relative to the GPS time, and \(c\) is the speed of light. The symbol \(\varepsilon_{\rho }^{(n)}\) denotes the total random error resulting from satellite clock, orbit prediction, receiver noise and multipath. The satellite clock offset and the ionospheric and tropospheric propagation delays are corrected in \(P_{c}^{(n)}\).

The nonlinear Eq. (1) from N satellites is linearized at an approximate receiver position \({\mathbf{x}}_{0}\) and receiver clock bias \(b_{0}\) and solved iteratively. Let \(\delta {\mathbf{x}} = {\mathbf{x}} - {\mathbf{x}}_{0}\) and \(\delta b = b - b_{0}\), the difference between the measurement \(P_{c}^{(n)}\) and the approximation \(P_{0}^{(n)} = \left\| {{\mathbf{x}}^{(n)} - {\mathbf{x}}_{0} } \right\| + b_{0}\) is:

$$\delta \rho^{ (n )} = - {\mathbf{e}}^{(n)} \cdot \delta {\mathbf{x}} + \delta b + \varepsilon_{\rho }^{(n)}$$
(2)

where \({\mathbf{e}}^{(n)}\) is the line-of-sight unit vector from \({\mathbf{x}}_{0}\) to \({\mathbf{x}}^{(n)}\).

With scalar notation, the set of N linear Eq. (2) can be written as:

$$\left[ {\begin{array}{*{20}c} {\delta \rho^{(1)} } \\ {\delta \rho^{(2)} } \\ \vdots \\ {\delta \rho^{(N)} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} { - e_{x}^{(1)} } & { - e_{y}^{(1)} } & { - e_{z}^{(1)} } & 1 \\ { - e_{x}^{(2)} } & { - e_{{y}}^{(2)} } & { - e_{\text{z}}^{(2)} } & 1 \\ \vdots & \vdots & \vdots & \vdots \\ { - e_{x}^{(N)} } & { - e_{y}^{(N)} } & { - e_{z}^{(N)} } & 1 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\delta x} \\ {\delta y} \\ {\delta z} \\ \end{array} } \\ {\delta b} \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} {\varepsilon_{\rho }^{(1)} } \\ {\varepsilon_{\rho }^{(2)} } \\ \vdots \\ {\varepsilon_{\rho }^{(N)} } \\ \end{array} } \right]$$
(3)

Defining the geometry matrix \({\mathbf{G}}\) as:

$${\mathbf{G}} = \left[ {\begin{array}{*{20}c} { - e_{x}^{(1)} } & { - e_{y}^{(1)} } & { - e_{z}^{(1)} } & 1 \\ { - e_{x}^{(2)} } & { - e_{y}^{(2)} } & { - e_{z}^{(2)} } & 1 \\ \vdots & \vdots & \vdots & \vdots \\ { - e_{x}^{(N)} } & { - e_{y}^{(N)} } & { - e_{z}^{(N)} } & 1 \\ \end{array} } \right]$$
(4)

Using \(\delta {\varvec{\uprho}}\) and \({\varvec{\upvarepsilon}}_{{\varvec{\uprho}}}\) to express the pseudorange difference and the error from each satellite, Eq. (3) can be rewritten as:

$$\delta {\varvec{\uprho}} = {\mathbf{G}}\left[ {\begin{array}{*{20}c} {\delta x} \\ {\delta y} \\ {\delta z} \\ {\delta b} \\ \end{array} } \right] + {\varvec{\upvarepsilon}}_{\rho }$$
(5)

Equation (5) is generally solved using a linear least squares (LLS) technique by pre-multiplying it by \({\mathbf{G}}^{T}\), which is called the normal equation.

Error analysis with SVD

In the following, we use the SVD to perform the random positioning error analysis. The solution obtained using the SVD is theoretically equivalent to that of the LLS (Kalman 1996). The advantage of the SVD lies in the fact that it constructs the pseudoinverse of \({\mathbf{G}}\) and gives the solution in a compact and self-contained expression, which conveys important geometrical and theoretical insights about the problem (Good 1969; Golub and Reinsch 1970). Moreover, the SVD solution is numerically stable. While the LLS is rather susceptible to roundoff errors, and in many cases, the normal equation is very close to singular, the SVD fixes the roundoff problem and produces a solution that is the best approximation in the least squares sense (Press et al. 1992, pp. 670–672).

According to the SVD theorem, the geometry matrix \({\mathbf{G}}\) can be decomposed in reduced form as:

$${\mathbf{G}} = {\mathbf{U}}diag\left( {w_{i} } \right){\mathbf{V}}^{T}$$
(6)

The pseudoinverse of \({\mathbf{G}}\) is:

$${\mathbf{G}}^{\dag } = {\mathbf{V}}diag\left( {\lambda_{i} } \right){\mathbf{U}}^{T} , \, \lambda_{i} = {1 \mathord{\left/ {\vphantom {1 {w_{i} }}} \right. \kern-0pt} {w_{i} }}$$
(7)

where

$${\mathbf{U}} = \left[ {\begin{array}{*{20}c} {U_{11} } & {U_{12} } & {U_{13} } & {U_{14} } \\ {U_{21} } & {U_{22} } & {U_{23} } & {U_{24} } \\ \vdots & \vdots & \vdots & \vdots \\ {U_{N1} } & {U_{N2} } & {U_{N3} } & {U_{N4} } \\ \end{array} } \right]$$
(8)
$${\mathbf{V}}{ = }\left[ {\begin{array}{*{20}c} {V_{x1} } & {V_{x2} } & {V_{x3} } & {V_{x4} } \\ {V_{y1} } & {V_{y2} } & {V_{y3} } & {V_{y4} } \\ {V_{z1} } & {V_{z2} } & {V_{z3} } & {V_{z4} } \\ {V_{b1} } & {V_{b2} } & {V_{b3} } & {V_{b4} } \\ \end{array} } \right]$$
(9)

The matrix \({\mathbf{U}}\) is an \(N \times 4\) orthonormal matrix. It describes the vector space for the satellite distribution and has the property \({\mathbf{U}}^{T} {\mathbf{U}} = {\mathbf{I}}_{4 \times 4}\), with \({\mathbf{I}}_{4 \times 4}\) being a 4 × 4 identity matrix. The matrix \({\mathbf{V}}\) is a 4 × 4 orthonormal matrix, \({\mathbf{V}}^{T} {\mathbf{V}} = {\mathbf{I}}_{4 \times 4}\). It describes the error vector space. The matrix \(diag\left( {w_{i} } \right)\) is a 4 × 4 diagonal matrix with elements \(w_{1} \le w_{2} \le w_{3} \le w_{4}\), which are the four singular values of \({\mathbf{G}}\). The matrix \(diag\left( {\lambda_{i} } \right)\) is the inverse of \(diag\left( {w_{i} } \right)\). Its diagonal elements are the four singular values of \({\mathbf{G}}^{\dag }\). The SVD and the eigenvalue decomposition are closely related. The column vectors in \({\mathbf{U}}\) are eigenvectors of \({\mathbf{GG}}^{T}\) and \(\left( {{\mathbf{GG}}^{T} } \right)^{ - 1}\). The column vectors of \({\mathbf{V}}\) are eigenvectors of \({\mathbf{G}}^{T} {\mathbf{G}}\) and \(\left( {{\mathbf{G}}^{T} {\mathbf{G}}} \right)^{ - 1}\). The \(w_{i}\) are the square roots of the nonzero eigenvalues of both \({\mathbf{GG}}^{T}\) and \({\mathbf{G}}^{T} {\mathbf{G}}\), and \(\lambda_{i}\) are the square roots of the nonzero eigenvalues of both \(\left( {{\mathbf{G}}^{T} {\mathbf{G}}} \right)^{ - 1}\) and \(\left( {{\mathbf{GG}}^{T} } \right)^{ - 1}\) (Golub and Reinsch 1970).

Representing the positioning error with \({\varvec{\upvarepsilon}}_{{\mathbf{r}}}\), the covariance of \({\varvec{\upvarepsilon}}_{{\mathbf{r}}}\) can be expressed as:

$$Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right) = {\mathbf{G}}^{\dag } E\left( {{\varvec{\upvarepsilon}}_{\rho } {\varvec{\upvarepsilon}}_{\rho }^{T} } \right)\left( {{\mathbf{G}}^{\dag } } \right)^{T} = {\mathbf{V}}diag\left( {\lambda_{i} } \right){\mathbf{U}}^{T} E\left( {{\varvec{\upvarepsilon}}_{\rho } {\varvec{\upvarepsilon}}_{\rho }^{T} } \right){\mathbf{U}}diag\left( {\lambda_{i} } \right){\mathbf{V}}^{T}$$
(10)

The stochastic model of \({\varvec{\upvarepsilon}}_{\rho }\) plays an important role in evaluating the precision of the positioning error (Jin and de Jong 1996; Tiberius and Kenselaar 2000). The most commonly used stochastic model is the uniform pseudorange error model which is addressed in Sect. 3.1. The focus here is to deal with the non-uniform pseudorange error model which is given in Sect. 3.2.

Uniform pseudorange error for each satellite

When the errors in the pseudorange measurements from different satellites are uncorrelated and have a normal distribution with zero-mean and the same variance, the statistical properties for the pseudorange error are:

$$\begin{aligned} E\left( {{\varvec{\upvarepsilon}}_{\rho } } \right) &= 0 \\ Cov\left( {{\varvec{\upvarepsilon}}_{\rho } } \right) &= \sigma^{2} {\mathbf{I}}_{N \times N} \\ E\left( {\varepsilon_{\rho }^{(i)} \varepsilon_{\rho }^{(j)} } \right) &= 0, \, i \ne j \\ \end{aligned}$$
(11)

where \(\sigma^{2}\) is the variance of the pseudorange error for each satellite.

The covariance of the positioning error can be derived from (10) as:

$$Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right) = {\mathbf{V}}diag\left( {\lambda_{i}^{2} } \right){\mathbf{V}}^{T} \sigma^{2}$$
(12)

which is a real symmetric matrix and often expressed as \({\mathbf{H}}\sigma^2\). Here, \({\mathbf{H}} = \left( {{\mathbf{G}}^{T} {\mathbf{G}}} \right)^{ - 1}\), and is called the geometric dilution of precision (GDOP) matrix in GPS textbooks:

$${\mathbf{H}} = {\mathbf{V}}diag\left( {\lambda_{i}^{2} } \right){\mathbf{V}}^{T}$$
(13)

In this way, the GDOP can then be expressed as:

$${\text{GDOP}} = \sqrt {\lambda_{1}^{2} + \lambda_{2}^{2} + \lambda_{3}^{2} + \lambda_{4}^{2} }$$
(14)

The four column vectors \(\left( {\begin{array}{*{20}c} {{\mathbf{V}}_{{\mathbf{1}}} } & {{\mathbf{V}}_{{\mathbf{2}}} } & {{\mathbf{V}}_{{\mathbf{3}}} } & {{\mathbf{V}}_{{\mathbf{4}}} } \\ \end{array} } \right)\) in \({\mathbf{V}}\) are eigenvectors of \({\mathbf{H}}\), and \(\lambda_{i}^{2}\) are eigenvalues of \({\mathbf{H}}\). Considering the positioning error as a 3-dimensional ellipsoid with a 1-dimensional time error in 4-dimensional space, the \({\mathbf{V}}_{1}\) to \({\mathbf{V}}_{4}\) define the principle directions of the 4-dimensional error ellipsoid, and the \(\sigma \lambda_{1}\) to \(\sigma \lambda_{4}\) are the lengths of the semi-axes. Since \(\lambda_{1} \ge \lambda_{2} \ge \lambda_{3} \ge \lambda_{4}\), the \({\mathbf{V}}_{{\mathbf{1}}}\) corresponds to the major axis.

Non-uniform pseudorange errors for each satellite

When the pseudorange errors of different satellites are uncorrelated and have a zero-mean normal distribution but different variance \(\sigma_{\text{n}}^{2}\), the statistical properties for the pseudorange error are:

$$\begin{aligned} E\left( {{\varvec{\upvarepsilon}}_{\rho } } \right) &= 0 \, \\ Cov\left( {{\varvec{\upvarepsilon}}_{\rho } } \right) &= diag(\sigma_{n}^{2} ),\quad n = 1,2, \ldots ,N \\ E\left( {\varepsilon_{\rho }^{(i)} \varepsilon_{\rho }^{(j)} } \right) &= 0, \, i \ne j \\ \end{aligned}$$
(15)

Then the covariance of the position error can be expressed as:

$$Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right) = {\mathbf{V}}diag\left( {\lambda_{i} } \right){\mathbf{U}}^{T} diag(\sigma_{n}^{2} ){\mathbf{U}}diag\left( {\lambda_{i} } \right){\mathbf{V}}^{T} ,\quad i = 1,2,3,4; \, n = 1,2, \ldots ,N$$
(16)

In order to investigate how the \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)\) varies as the pseudorange errors of more than one satellite increase, we assume that the variances of M (1 < M < N) satellites are \(\sigma_{n}^{2}\), \(n \in m\), and the common variances for all the other satellites are \(\sigma^{2}\), \(\sigma^{2} \le \sigma_{n}^{2}\). Here m is a set of M sequential numbers corresponding to the satellites with larger pseudorange errors. Then the covariance of position error can be derived as:

$$\begin{aligned} Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{T} = & {\mathbf{V}}diag\left( {\lambda_{i}^{2} } \right){\mathbf{V}}^{T} \sigma^{2} \\ & { + }\sum\limits_{n \in m} {\left\{ {{\mathbf{V}}diag\left( {\lambda_{i} } \right)\left[ {\begin{array}{*{20}c} {u_{n1} } \\ {u_{n2} } \\ {u_{n3} } \\ {u_{n4} } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {u_{n1} } & {u_{n2} } & {u_{n3} } & {u_{n4} } \\ \end{array} } \right]diag\left( {\lambda_{i} } \right){\mathbf{V}}^{T} \left( {\sigma_{n}^{2} - \sigma^{2} } \right)} \right\}} \\ \end{aligned}$$
(17)

Comparing with (12), Eq. (17) implies that the increased pseudorange error \(\left( {\sigma_{n}^{2} - \sigma^{2} } \right)\) of the nth satellite produces an additional part to the uniform error covariance. Simplifying this expression gives the following formula:

$$Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{T} = Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{0} + \sum\limits_{n \in m} {Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{{{\text{add}}(n)}} }$$
(18)

where

$$Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{0} = {\mathbf{V}}diag\left( {\lambda_{i}^{2} } \right){\mathbf{V}}^{T} \sigma^{2}$$
(19)

and

$$\begin{aligned} Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{{\text{add}}(n)} & = & {\mathbf{V}}diag(\lambda_{i} )\left[ {\begin{array}{*{20}c} {u_{n1} } \\ {u_{n2} } \\ {u_{n3} } \\ {u_{n4} } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {u_{n1} } & {u_{n2} } & {u_{n3} } & {u_{n4} } \\ \end{array} } \right]diag(\lambda_{i} ){\mathbf{V}}^{T} (\sigma_{n}^{2} - \sigma^{2} ) \\ & = & \lambda_{zn}^{2} \left[ {\begin{array}{*{20}c} {z_{nx} } \\ {z_{ny} } \\ {z_{nz} } \\ {z_{nb} } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {z_{nx} } & {z_{ny} } & {z_{nz} } & {z_{nb} } \\ \end{array} } \right](\sigma_{n}^{2} - \sigma^{2} ) \\ \end{aligned}$$
(20)

where

$$\begin{aligned} \lambda_{zn} & = & \sqrt {\left( {\sum\limits_{i = 1}^{4} {\lambda_{i} u_{ni} V_{xi} } } \right)^{2} + \left( {\sum\limits_{i = 1}^{4} {\lambda_{i} u_{ni} V_{yi} } } \right)^{2} + \left( {\sum\limits_{i = 1}^{4} {\lambda_{i} u_{ni} V_{zi} } } \right)^{2} + \left( {\sum\limits_{i = 1}^{4} {\lambda_{i} u_{ni} V_{bi} } } \right)^{2} } \\ z_{nx} & = & {{\left( {\sum\limits_{i = 1}^{4} {\lambda_{i} u_{ni} V_{xi} } } \right)} \mathord{\left/ {\vphantom {{\left( {\sum\limits_{i = 1}^{4} {\lambda_{i} u_{ni} V_{xi} } } \right)} {\lambda_{zn} }}} \right. \kern-0pt} {\lambda_{zn} }},\quad z_{ny} = {{\left( {\sum\limits_{i = 1}^{4} {\lambda_{i} u_{ni} V_{yi} } } \right)} \mathord{\left/ {\vphantom {{\left( {\sum\limits_{i = 1}^{4} {\lambda_{i} u_{ni} V_{yi} } } \right)} {\lambda_{zn} }}} \right. \kern-0pt} {\lambda_{zn} }} \\ z_{nz} & = & {{\left( {\sum\limits_{i = 1}^{4} {\lambda_{i} u_{ni} V_{zi} } } \right)} \mathord{\left/ {\vphantom {{\left( {\sum\limits_{i = 1}^{4} {\lambda_{i} u_{ni} V_{zi} } } \right)} {\lambda_{zn} }}} \right. \kern-0pt} {\lambda_{zn} }},\quad z_{nb} = {{\left( {\sum\limits_{i = 1}^{4} {\lambda_{i} u_{ni} V_{bi} } } \right)} \mathord{\left/ {\vphantom {{\left( {\sum\limits_{i = 1}^{4} {\lambda_{i} u_{ni} V_{bi} } } \right)} {\lambda_{zn} }}} \right. \kern-0pt} {\lambda_{zn} }} \\ \end{aligned}$$
(21)

The matrix \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{0}\) is the same as in (12). It is determined by \({\mathbf{V}}\) and \(\sigma \lambda_{i}\). The matrix \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{{{\text{add}}(n)}}\) depends not only on \({\mathbf{V}}\), \(\lambda_{i}\), \(\sigma\), and \(\sigma_{n}\), but also on the four elements related to the nth satellite \(\left[ {\begin{array}{*{20}c} {u_{n1} } & {u_{n2} } & {u_{n3} } & {u_{n4} } \\ \end{array} } \right]^{T}\) in \({\mathbf{U}}\). Including a term of one column vector \(\left[ {\begin{array}{*{20}c} {u_{n1} } & {u_{n2} } & {u_{n3} } & {u_{n4} } \\ \end{array} } \right]^{T}\) multiplied by its transposed vector, the \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{{{\text{add}}(n)}}\) matrix has only one eigenvector and one nonzero eigenvalue. The vector \(\left[ {\begin{array}{*{20}c} {z_{nx} } & {z_{ny} } & {z_{nz} } & {z_{nb} } \\ \end{array} } \right]^{T}\) and \(\lambda_{zn}^{2}\) in (20) are the resultant unit eigenvector and eigenvalue, respectively. They represent an error line segment in the direction of \(\left[ {\begin{array}{*{20}c} {z_{nx} } & {z_{ny} } & {z_{nz} } & {z_{nb} } \\ \end{array} } \right]^{T}\) with length of \(2\lambda_{zn}\). The \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{{{\text{add}}(n)}}\) matrix is a rank-1 modification of \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{0}\). It defines an error line in a direction determined by both the satellites geometry and the position of the corresponding nth satellite. The square root of the eigenvalue of \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{{{\text{add}}(n)}}\) defines the length of the error line segment.

According to the properties of a symmetric matrix and interlacing eigenvalue theorem, the sum of \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{0}\) and \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{{{\text{add}}(n)}}\) is also a symmetric matrix, and the eigenvalues of the latter matrix are linked with those of \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{0}\) (Golub and Van Loan 1996, p. 397). Using \(\xi_{1}^{2} , \, \xi_{2}^{2} , \, \xi_{3}^{2} , \, \xi_{4}^{2} , \, \left( {\xi_{1}^{2} \ge \xi_{2}^{2} \ge \xi_{3}^{2} \ge \xi_{4}^{2} } \right)\) to symbolize the eigenvalues of the sum of \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{0}\) and \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{{{\text{add}}(n)}}\), then we have:

$$\xi_{1}^{2} \ge \lambda_{1}^{2} \sigma^{2} \ge \xi_{2}^{2} \ge \lambda_{2}^{2} \sigma^{2} \ge \xi_{3}^{2} \ge \lambda_{3}^{2} \sigma^{2} \ge \xi_{4}^{2} \ge \lambda_{4}^{2} \sigma^{2}$$
(22)
$$\sum\limits_{i = 1}^{4} {\left( {\xi_{i}^{2} - \lambda_{i}^{2} \sigma^{2} } \right) = \lambda_{zn}^{2} } \left( {\sigma_{n}^{2} - \sigma^{2} } \right)$$
(23)

The resultant positioning error ellipsoid would be enlarged under the constraint of (22). The increased values of the second, third and fourth eigenvalues are limited by \(\lambda_{1}^{2} \sigma^{2} \ge \xi_{2}^{2} \ge \lambda_{2}^{2} \sigma^{2}\), \(\lambda_{2}^{2} \sigma^{2} \ge \xi_{3}^{2} \ge \lambda_{3}^{2} \sigma^{2}\) and \(\lambda_{3}^{2} \sigma^{2} \ge \xi_{4}^{2} \ge \lambda_{4}^{2} \sigma^{2}\), respectively. The \(\xi_{1}^{2}\) tends to increase the most; especially when \(\sigma_{n}^{2}\) is much larger than \(\sigma^{2}\), \(\xi_{1}^{2}\) would be much larger than \(\xi_{2}^{2}\). So it would create an elongated positioning error ellipsoid when the pseudorange error of one satellite is larger than that of the others. With \(\xi_{T1}^{2} \sim \xi_{T4}^{2}\) representing the eigenvalues of \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{T}\), the sum of \(\xi_{Ti}^{2}\) can be expressed as:

$$\sum\limits_{i = 1}^{4} {\xi_{Ti}^{2} } = \sum\limits_{i = 1}^{4} {\lambda_{i}^{2} \sigma^{2} } + \sum\limits_{n \in m} {\lambda_{zn}^{2} \left( {\sigma_{n}^{2} - \sigma^{2} } \right)}$$
(24)

The square root of \( \sum\nolimits_{i = 1}^{4} {\xi_{Ti}^{2} } \) is a modified version of the GDOP, and is called as KDOP (Sairo et al. 2003).

Simulation and discussion

The above theory and analysis are validated further by simulation. This enables us to observe intuitively how the positioning error changes as the satellite pseudorange error increases. The YUMA Almanac data are used to simulate the GPS satellite constellation at 12:00:00 (UT) on June 20, 2011. The position of a receiver is assumed to be located in Beijing (40°N, 116.4°E), China with a height of 40 m. Figure 1 shows the satellite sky plot in local ENU coordinates. At the time there are nine satellites with a 5° elevation mask angle, which are used to form the positioning equations. In each simulation case 10,000 position computations are carried out.

Fig. 1
figure 1

Sky plot of the nine available GPS satellites at Beijing, China in ENU coordinates at the GPS time of 12:00:00 on Jun. 20, 2011

If the pseudorange errors of all satellites are zero-mean, uncorrelated, normally distributed and with the same variance, the positioning error is determined by (12). Setting the pseudorange error to σ = 5.3 m, Fig. 2 shows the horizontal positioning error in ENU coordinates. The horizontal positioning error is distributed in the shape of an ellipse. The ellipse is elongated approximately in the north–south direction. It can be visually estimated that the two semi-axes of the 3 sigma ellipse have lengths of about 13 and 9 m, respectively. They are consistent with those determined by the covariance matrix of the positioning error (12), which are 4.38 and 3.09 m in 1 sigma measurement.

Fig. 2
figure 2

Horizontal positioning error for the uniform pseudorange error of σ = 5.3 m

Effects of non-uniform pseudorange error for one satellite

In order to investigate the effects of increasing the pseudorange errors upon the positioning errors, the satellite PRN 19 is first selected to have a larger pseudorange error in the following simulation. Here, and in the following, we set the pseudorange error of other satellites to σ = 5.3 m. The pseudorange error \(\sigma_{\text{n}}\) of PRN 19 (or other satellites hereafter) changes from 5.3 to 35.3 m. This variation corresponds to a decrease in the carrier to noise ratio of GPS signal down to 16.5 dB, which can be caused by ionospheric scintillation. The signal can be degraded by more than 20 dB for strong scintillation (Kil et al. 2000).

Shown in Fig. 3 are calculated eigenvalues and eigenvectors of \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{T}\) and \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{{{\text{add}}(n)}}\) from (18) and (20). The horizontal axis represents the increased pseudorange error \(\left( {\sigma_{n} - \sigma } \right)\). The thick line shows the square root of the first eigenvalue \(\xi_{T1}^{2}\), the azimuth and elevation of the corresponding eigenvector and their variations with the pseudorange error of PRN 19. The eigenvalue \(\lambda_{1{\text{add}}}^{2} = \lambda_{zn}^{2} (\sigma_{n}^{2} - \sigma^{2} )\), the azimuth and the elevation of the corresponding eigenvector from the additional part \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{{{\text{add}}(n)}}\) are plotted in thin lines. The other three eigenvalues of \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{T}\) are also plotted to show how small they are compared with the others. As the \(\left( {\sigma_{n} - \sigma } \right)\) varies from 0 to 30 m, \(\xi_{T1}\) increases from 9.5 to 31.3 m, the \(\lambda_{{1{\text{add}}}}\) increases from 0 to about 30 m, while the other three increased little. The \(\xi_{T1}\) and \(\lambda_{{1{\text{add}}}}\) are nearly linearly correlated with the pseudorange error of the PRN 19, but \(\xi_{T1}\) is always larger than \(\lambda_{{1{\text{add}}}}\). The larger the pseudorange error gets, the closer the square root of the first eigenvalue approaches to that of the additional one. The azimuth and the elevation of the first eigenvector also approach those of \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{{\rm add}(n)}\) which are 203.8° and 44.9°, respectively. This implies that the contribution from the additional pseudorange error can be very large. Its error line changes the first eigenvalue and the corresponding eigenvector in the resultant distribution of positioning errors. This is in accordance with the properties of the interlacing eigenvalue theorem (22) and (23). When \(\sigma_{n}\) is much larger than \(\sigma\), the resultant positioning error ellipsoid tends to elongate along the direction of the additional error line, with the length of the major axis a little larger than that of the error line.

Fig. 3
figure 3

Square root of the eigenvalues and the first eigenvector of \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{\text{add}}\) and \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{T}\). The pseudorange error of the satellite PRN 19 increases from 5.3 to 35.3 m

The corresponding horizontal positioning errors from a 10,000 position simulations are shown in Fig. 4 as the \(\sigma_{n}\) of PRN 19 takes values of 5.3, 15.3, 25.3 and 35.3 m, respectively. The projection of the additional error line is also drawn with black solid dots to represent the end-points of the 3 sigma lengths for different \(\sigma_{n}\). It can be seen that as the \(\sigma_{n}\) is increased, the horizontal positioning error tends to approach the additional error line. When \(\sigma_{n}\) is 35.3 m, much larger than σ = 5.3 m, the major axis of the resultant error ellipse in blue coincides with the error line. These results are consistent with those in Fig. 3.

Fig. 4
figure 4

Horizontal positioning error distributions when the pseudorange errors of PRN 19 are 5.3, 15.3, 25.3 and 35.3 m. The pseudorange error of the other satellites is 5.3 m

The effects of the other satellites are also analyzed and simulated separately. Figure 5 shows a set of the horizontal positioning error distributions. It is confirmed that the results are consistent with those from (18) and (20). For the nine satellites, the resultant \(\xi_{T1}\) is from 16.1 m (PRN 7) to 36.9 m (PRN 17). For different satellites, the error distributions can be different not only in sizes but also in orientations. Some of the resultant ellipses have a major axis close to the azimuth of the satellite. Rather than being elongated, some of the ellipses are broadened. This is because the error line has a high elevation. The error line caused by a larger \(\sigma_{n}\) of PRN 11 has an elevation of 74.22°. The variety of the error distributions verifies that the additional error from one satellite makes the error ellipsoid tend to a particular direction that is related to both the satellites geometry and the position of the specific satellite.

Fig. 5
figure 5

A set of horizontal positioning error distributions for the nine satellites

Effects of non-uniform pseudorange errors from more than one satellite

If the pseudorange errors from additional satellites are larger, the error ellipsoid would be enlarged following formula (18). We first investigate how the positioning error ellipse varies when the pseudorange errors from two satellites are increased. Figure 6 shows the eigenvalues and eigenvectors of \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{T}\) and \(Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{{{\text{add}}(n)}}\) calculated from (18) and (20) when the pseudorange errors of PRN 11 and PRN 28 are increased by 0–30 m. Here \(\lambda_{{1{\text{add}}}}\) and \(\lambda_{{2{\text{add}}}}\) are square roots of eigenvalues of \( \sum\nolimits_{{n \in \left\{ {3,8} \right\}}} {Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{{{\text{add}}(n)}} } \), and {3, 8} corresponds to the sequential number of PRN 11 and 28. It is noteworthy that, composed of two error lines, \( \sum\nolimits_{{n \in \left\{ {3,8} \right\}}} {Cov\left( {{\varvec{\upvarepsilon}}_{{\mathbf{r}}} } \right)_{{{\text{add}}(n)}} } \) has two eigenvectors and eigenvalues. In this case, the resultant eigenvalues \(\xi_{T1}\) and \(\xi_{T2}\) increase with \(\lambda_{{1{\text{add}}}}\) and \(\lambda_{{2{\text{add}}}}\), respectively. The \(\xi_{T1}\) increases more quickly than \(\xi_{T2}\). Although not shown here, the azimuth and elevation of the eigenvectors have similar variations. The changes of \(\xi_{T3}\) and \(\xi_{T4}\) are much less than those of \(\xi_{T1}\) and \(\xi_{T2}\).

Fig. 6
figure 6

Eigenvalues and eigenvectors resulting from pseudorange error variations of satellites PRN 11 and 28

Figure 7 gives the simulated horizontal positioning result as the pseudorange errors of PRN 11 and 28 are increased. Referring to Fig. 5, the positioning error in Fig. 7 is the composition of positioning error as the pseudorange errors of PRN 11 and 28 are increased, respectively. Since the positioning error caused by PRN 11 is much smaller than that of PRN 28 as seen in Fig. 5, the orientation of the positioning error is mainly controlled by that of satellite PRN 28, and PRN 11 increases the positioning error across the main direction of the total positioning error. The second eigenvalue obviously increased as the orientation of positioning errors caused by PRN 11 and 28 are perpendicular to each other. This effect is more obvious in the simulation result of PRN 7 and 17 as shown in Fig. 8. Since the orientation of positioning errors caused by PRN 7 and 17 are approximately perpendicular as seen in Fig. 5, and the sizes are similar to each other, the resultant positioning error is broadened such that it approaches a circle.

Fig. 7
figure 7

Horizontal positioning error distributions resulting from the larger pseudorange errors of satellites PRN 11 and 28

Fig. 8
figure 8

Horizontal positioning error distributions resulting from the larger pseudorange errors of satellites PRN 7 and 17

The situation for the increase in four pseudorange errors is also simulated. Similar to that of two satellites, the error ellipses are analyzed as the pseudorange error of any four satellites are assigned values of 5.3, 15.3, 25.3 and 35.3 m, respectively, while the other satellites are held at 5.3 m. Although not shown here, \(\lambda_{{1{\text{add}}}}\) to \(\lambda_{{4{\text{add}}}}\) from the additional part in (18) all increase with the pseudorange error but at lower rates in a descending order, because the composition of four error lines would be a 4-dimensional ellipsoid. So it can be inferred that the resultant error ellipsoids tend to be enlarged in all four principal axes compared with the results when increasing one or two pseudorange errors. Figure 9 shows the simulation results from PRN 8, 11, 19 and 24. The four satellites are located in a north-east direction above the receiver. The resultant error ellipses tend toward the north-east. Referring to the individual ellipses related to the four satellites in Fig. 5, we can see the apparent composite effect. Figure 10 presents another result from PRN 11, 19, 24 and 32. The four satellites are located within a 90° fan-shaped area to the east above the receiver. The error ellipses also tend to be aligned in the same direction. As the long semi-axis increases with that of the pseudorange error, the short semi-axis also increases. The result is that broadened ellipses are formed. The resultant positioning error is also a composition of the effects caused by each satellite.

Fig. 9
figure 9

Horizontal positioning error distributions resulting from the larger pseudorange error of four satellites PRN 8, 11, 19 and 24

Fig. 10
figure 10

Horizontal positioning error distributions resulting from the larger pseudorange errors of four satellites PRN 11, 19, 24 and 32

Conclusions

The characteristics of random GPS positioning errors are studied as the pseudorange errors of one or more satellites vary from the others. Starting from the positioning error equations, the SVD is applied to decompose the geometry matrix and explore the relationship between the positioning error, the pseudorange errors and the geometric distribution of satellites. An explicit analytical formula is derived for the covariance of the positioning error. Under the assumption of uncorrelated, zero-mean, uniform pseudorange error variance, the covariance of the GPS positioning error defines a 4-dimensional ellipsoid whose axes orient along the eigenvectors of the covariance matrix and whose axial lengths are determined by the corresponding eigenvalues. When the pseudorange errors from several satellites are larger than those of the others, the covariance of the positioning error is composed of the uniform error covariance and additional contributions from the satellites with larger pseudorange errors. The additional contributions from each satellite have only one eigenvector and one eigenvalue. This makes the error ellipsoid tend toward a particular direction related to both the satellites geometry and the position of specific satellites as a result of a rank-1 modification of the pseudorange error variance matrix each time.

The theory is validated by simulation of the GPS constellation and pseudorange measurements. The positioning error is examined as any one, two or four pseudorange errors are increased. The simulation results confirm the expected characteristics of the covariance and positioning error theory. The horizontal positioning error distributions are presented to demonstrate the variation of orientation and size of error ellipses with the pseudorange errors of the specific satellites. When only one pseudorange error is increased, the additional contribution to the positioning error covariance has only one eigenvalue and eigenvector, which defines this additional error distribution in a line. The resultant positioning error ellipsoid tends to move from the uniform error ellipsoid to the direction of the error line. It has a major axis longer than the uniform one, and the sizes of the other three axes do not change much. When additional pseudorange errors increase, the length of the major axis will continue to increase and those of the other principal axes will also tend to increase but at lower rates. The resulting positioning error is a composite of the uniform one and those from satellites with the larger pseudorange errors.