Introduction

Global navigation satellite systems (GNSSs) have become a very important asset for timing and positioning. Although in the past receivers were typically limited to the processing of 8–12 satellites (Kaplan and Hegarty 2006), nowadays even low-cost navigation software receivers can simultaneously process signals coming from several dozens of satellites. However, there are applications in which power consumption is critical, e.g., sensor network applications, and power consumption increases with the processing of more satellites (Jwo and Lai 2007; Bais and Morgan 2012; Kiwan et al. 2012). GPS and GLONASS each already provide between 8 and 12 satellites in view. With the advent of new satellites from other constellations, such as Galileo and Beidou, the number of satellites will grow considerably. Thus, optimal selection of the satellites to track is gaining importance (Mosavi 2011; Song et al. 2013; Kong et al. 2014). Even though the accuracy of the computed receiver position may improve when the number of used satellites grows, the difference between processing the signals of all-in-view satellites and a well-selected subset of them is usually negligible (Blanco-Delgado 2011; Blanco-Delgado et al. 2011).

The effect of GNSS satellite geometry on the position and time accuracy is characterized by a concept called geometric dilution of precision (GDOP) (Parkinson and Spilker 1996). If h is the number of satellites being tracked, the GDOP parameter is given by the square root of the trace of matrix \(({\mathbf{G}}^{\text{T}} {\mathbf{G}})^{ - 1}\) with \({\mathbf{G}} \in {\mathbb{R}}^{{h \times \left( {n + 1} \right)}}\). \({\mathbb{R}}^{{h \times \left( {n + 1} \right)}}\) denotes the set of \(h \times \left( {n + 1} \right)\) matrices with real entries, \({\mathbb{R}}\) denotes the set of real numbers, and n denotes the dimension of the receiver position coordinates. G is known as the geometry matrix that contains the estimated user-to-satellite unit vectors followed by a column of ones. Small GDOP values imply good accuracies, but selecting the satellite subset providing the smallest GDOP value can be a daunting task depending on the number of visible satellites at a given place and time. Satellite selection techniques based on brute-force approaches or recursive methods (Phatak 2001) require searching for the best subset of h out of k satellites, where k represents the total number of satellites in view. The number of combinations to test is \(k!/\left[ {h!\left( {k - h} \right)!} \right]\). Calculating a single GDOP requires multiplying a \(\left( {\left( {n + 1} \right) \times h} \right)\) matrix by its transpose and one \(\left( {\left( {n + 1} \right) \times \left( {n + 1} \right)} \right)\) matrix inversion. Therefore, the total floating point operations required to find the optimal solution grows rapidly as the number of visible satellites rises. For example, doing k = 20 and h = 5 in \({\mathbb{R}}^{3}\) implies testing approximately 15.5 × 103 combinations. The significant increase in the number of satellites available with multiple GNSS constellations will make the use of these brute-force methods intractable. Other algorithms exist that present lower computational complexity, but they do not guarantee optimality (Park and How 2001). Note that the use of an efficient satellite selection method implies the release of the receiver processing capabilities for other functionalities and the saving of battery.

Satellite selection methods with higher computational efficiency, such as those in Kihara and Okada (1984) and Blanco-Delgado and Nunes (2010), have been proposed based on the statement that GDOP is approximately minimized by maximizing the determinant of the matrix \({\mathbf{G}}^{\text{T}} {\mathbf{G}}\) given the assumption that the adjoint matrix varies less strongly with the geometry than the determinant (Parkinson and Spilker 1996). Given that the volume of the (n + 1)-dimensional polytope described by the columns of a matrix \({\mathbf{G}} \in {\mathbb{R}}^{{h \times \left( {n + 1} \right)}}\), with \(h \ge \left( {n + 1} \right)\), is \(V_{{\left( {n + 1} \right)}} = \frac{1}{{\left( {n + 1} \right)!}} (\det \left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right))^{1/2}\) (Meyer 2001; Newson 1899–1900), research has focused on minimizing GDOP by maximizing the volume spanned by the user-to-satellite unit vectors (Kihara and Okada 1984; Zheng et al. 2004; Zhang and Zhang 2009). Volume will be used in \({\mathbb{R}}^{2}\) (instead of area) in order to maintain the same nomenclature through the paper. Various publications discuss the relation between GDOP and the volume of the tetrahedron defined by the user-to-satellite unit vectors (Hsu 1994; Zheng et al. 2004). Note that satellite selection should be ideally based on minimization of the GDOP parameters. Further details are provided in the next section. However, the volume maximization is a very convenient approach from a computational point of view since there are efficient algorithms to analyze 2-D and 3-D geometries (Blanco-Delgado and Nunes 2010). The limitation of these techniques is that the volume described by the user-to-satellite unit vectors does not coincide in general with the one spanned by the columns of the matrix G, i.e., \(V_{{\left( {n + 1} \right)}} = \frac{1}{{\left( {n + 1} \right)!}} (\det \left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right))^{1/2}\) since the estimated user-to-satellite unit vectors are the row vectors of the matrix G. Note that only in the case of h = 4 satellites, the volume spanned by the user-to-satellite unit vectors does coincide with the one spanned by the columns of the matrix G in \({\mathbb{R}}^{3}\).

The suitability of these techniques is analyzed here by evaluating the discrepancy between the minimization of the GDOP and the maximization of the volume spanned by the user-to-satellite unit vectors when an arbitrary number of satellites, h, is used for the computation of the position. The analysis is split in two steps. The relation between the GDOP and \(\det \left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\) is analyzed first. The relation between \(\det \left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\) and the volume of the polytope defined by the user-to-satellite unit vectors for any number of satellites is studied next. Finally, combining both results, the relation between GDOP and volume is evaluated.

GDOP concept

A GNSS receiver determines its position by computing its distance to several satellites. The receiver computes the distance by measuring the time, \(\delta t\), it takes a satellite-generated signal to reach the receiver antenna. Since the receiver clock is not synchronized with the GNSS system time, the measured distance is called pseudorange. The pseudorange is given by \(\delta t\) multiplied by the speed of light in the vacuum c, i.e., \(\rho = c \cdot \delta t\). Thus, the measured pseudorange between the receiver and the ith satellite can be related to the user position and clock offset as follows:

$$\rho^{\left( i \right)} = \left| {\left| {{\mathbf{r}}^{\left( i \right)} - {\mathbf{r}}} \right|} \right| + b + \varepsilon_{{\rho^{\left( i \right)} }} ,\quad i = 1,2, \ldots ,h$$
(1)

where \({\mathbf{r}}^{\left( i \right)} = \left( {x^{\left( i \right)} ,y^{\left( i \right)} ,z^{\left( i \right)} } \right)\) is the ith satellite position at the transmit time, \({\mathbf{r}} = \left( {x,y,z} \right)\) is the receiver position at the reception time, \(\left| {\left| {{\mathbf{r}}^{\left( i \right)} - {\mathbf{r}}} \right|} \right| = \sqrt {(x^{\left( i \right)} - x)^{2} + (y^{\left( i \right)} - y)^{2} + (z^{\left( i \right)} - z)^{2} }\), b is the bias of the receiver clock with respect to the system time, \(\varepsilon_{{\rho^{\left( i \right)} }}\) encompasses the errors produced by atmospheric delays, satellite ephemerides mismodelling, receiver noise, etc., h is the number of satellites being tracked, and \(\left| {\left| \cdot \right|} \right|\) denotes the Euclidean distance between two points.

The positioning accuracy can be determined by linearizing the navigation Eq. (1) in the vicinity of an a priori estimate of the receiver position and clock offset: \({\mathbf{x}}_{0} \equiv \left(\begin{matrix}{\mathbf{r}}_{0} & b_{0} \end{matrix}\right)^{\text{T}}\). Given x 0, we can compute an a priori estimate of the pseudorange \(\rho_{0}^{\left( i \right)} = \left| {\left| {{\mathbf{r}}^{\left( i \right)} - {\mathbf{r}}_{0} } \right|} \right| + b_{0}\). Let the true position and the true clock bias be represented as \({\mathbf{x}} = {\mathbf{x}}_{0} + \delta {\mathbf{x}}\) and \(b = b_{0} + \delta b\), where \(\delta \varvec{x}\) and \(\delta b\) are the unknown corrections to be applied to our initial estimates. \(\delta \varvec{x}\) is the error in the estimated receiver position and \(\delta b\) is the error in the estimated receiver clock bias in meters. Considering a first-order linearization, we can express \(\delta \rho^{\left( i \right)}\), which is the difference between the real \(\rho^{\left( i \right)}\) and the initial estimate \(\rho_{0}^{\left( i \right)}\), as

$$\delta \rho^{\left( i \right)} = \left(\begin{matrix} - {\mathbf{d}}_{i}^{\text{T}} & 1 \end{matrix}\right) \delta {\mathbf{x}} + \delta \varepsilon_{{\rho^{\left( i \right)} }}$$
(2)

where

$${\mathbf{d}}^{\left( i \right)} \equiv \frac{{{\mathbf{r}}^{\left( i \right)} - {\mathbf{r}}_{0} }}{{\left| {\left| {{\mathbf{r}}^{\left( i \right)} - {\mathbf{r}}_{0} } \right|} \right|}}$$
(3)

The quantity \({\mathbf{d}}^{\left( i \right)} = \left(d^{{\left( {ix} \right)}} ,d^{{\left( {iy} \right)}} ,d^{{\left( {iz} \right)}} \right)^{\text{T}}\) is the estimated line-of-sight unit vector from the user to the satellite i and \(\delta \varepsilon_{{\rho^{\left( i \right)} }}\) is the residual error after the known biases from satellite i have been removed.

The linearized navigation Eq. (2) can be put in matrix form by defining the vectors \(\delta\varvec{\rho}= \left( {\delta \rho^{\left( 1 \right)} ,\delta \rho^{\left( 2 \right)} ,} \right.\left. { \ldots ,\delta \rho^{\left( h \right)} } \right)^{\text{T}} ,\delta\varvec{\varepsilon}_{\varvec{\rho}} = \left(\delta \varepsilon_{{\rho^{\left( 1 \right)} }} ,\delta \varepsilon_{{\rho^{\left( 2 \right)} }} , \ldots ,\delta \varepsilon_{{\rho^{\left( h \right)} }} \right)^{\text{T}}\), and

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

as follows:

$$\delta\varvec{\rho}= {\mathbf{G}} \delta {\mathbf{x}} + \delta\varvec{\varepsilon}_{\varvec{\rho}}$$
(5)

Assuming that the measurement errors \(\delta \varepsilon_{{\rho^{\left( i \right)} }}\) are independent and identically distributed with zero mean and variance σ 2, the least squares solution is

$$\delta {\hat{\mathbf{x}}} = ({\mathbf{G}}^{\text{T}} {\mathbf{G}})^{ - 1} {\mathbf{G}}^{\text{T}} \delta\varvec{\rho}$$
(6)

Thus, the estimated user position and clock bias are \({\hat{\mathbf{x}}} = {\mathbf{x}}_{0} + \delta {\hat{\mathbf{x}}}\) and \(\hat{b} = b_{0} + \delta \hat{b}\). The process can be repeated until the change in the estimates \(\delta {\hat{\mathbf{x}}}\) and \(\delta \hat{b}\) is sufficiently small. Note that this expression is valid for h ≥ 4 or h ≥ 3 satellites in 3-D positioning or 2-D positioning, respectively. In the 2-D positioning case, the user position height is assumed to be perfectly known, i.e., it is not considered as an unknown in the navigation Eq. (1). Therefore, in this case the matrix G has three columns.

The accuracy of that least squares solution is mainly decided by two factors: the quality of the measurements, i.e., the errors in \(\rho^{\left( i \right)}\), and the satellite geometry, which is described by G. The covariance of the position and the clock bias can be expressed as follows:

$${\text{cov}}\left[ {\delta {\hat{\mathbf{x}}}} \right] = ({\mathbf{G}}^{\text{T}} {\mathbf{G}})^{ - 1} {\mathbf{G}}^{\text{T}} E \begin{bmatrix} \delta\varvec{\rho} & \delta\varvec{\rho}^{\text{T}} \end{bmatrix} {\mathbf{G}} ({\mathbf{G}}^{\text{T}} {\mathbf{G}})^{ - 1}$$
(7)

and under the stated assumptions on the distribution of the measurement errors, it is equal to \({\text{cov}}\left[ {\delta {\hat{\mathbf{x}}}} \right] = \sigma^{2} ({\mathbf{G}}^{\text{T}} {\mathbf{G}})^{ - 1}\). We can write the elements in the matrix as

$${\text{cov}}\left[ {\delta \hat{\varvec{x}}} \right] = \left[ {\begin{array}{*{20}l} {\sigma_{x}^{2} } \hfill & {\sigma_{xy} } \hfill & {\sigma_{xz} } \hfill & {\sigma_{xb} } \hfill \\ {\sigma_{xy} } \hfill & {\sigma_{y}^{2} } \hfill & {\sigma_{yz} } \hfill & {\sigma_{yb} } \hfill \\ {\sigma_{xz} } \hfill & {\sigma_{yz} } \hfill & {\sigma_{z}^{2} } \hfill & {\sigma_{zb} } \hfill \\ {\sigma_{xb} } \hfill & {\sigma_{yb} } \hfill & {\sigma_{zb} } \hfill & {\sigma_{b}^{2} } \hfill \\ \end{array} } \right]$$
(8)

where \(\sigma_{x}^{2}\), \(\sigma_{y}^{2}\), and \(\sigma_{z}^{2}\) denote the variances of the x-, y-, and z-component of the position error, respectively, and \(\sigma_{b}^{2}\) stands for the variance of the user clock bias estimate. The off-diagonal elements \(\sigma_{uv}\) indicate, generically, the covariances of u and v. The scalar GDOP parameter is given by the square root of the trace of the matrix \(({\mathbf{G}}^{\text{T}} {\mathbf{G}})^{ - 1}\):

$${\text{GDOP}} = \frac{1}{\sigma }\left[ {\sigma_{x}^{2} + \sigma_{y}^{2} + \sigma_{z}^{2} + \sigma_{b}^{2} } \right]^{1/2} = \sqrt {{\text{tr}}\left(({\mathbf{G}}^{\text{T}} {\mathbf{G}})^{ - 1}\right) }$$
(9)

In selecting the satellites, the GDOP values should be as small as possible in order to generate the most accurate user position.

Relation between minimizing GDOP and maximizing the determinant of matrix \({{\mathbf{G}}^{\text{T}} {\mathbf{G}}}\)

The scalar GDOP parameter is given by

$${\text{GDOP}} = \sqrt {\frac{1}{{\det \left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)}} \mathop \sum \limits_{i} [{\text{adj}}\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)]_{ii} }$$
(10)

where \([{\text{adj}}\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)]_{ii}\) are the main diagonal elements of the adjoint of the matrix \({\mathbf{G}}^{\text{T}} {\mathbf{G}}\). In Parkinson and Spilker (1996), it is claimed that the trace of the \([{\text{adj}}\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)]_{ii}\) varies less strongly with the geometry than the determinant of \({\mathbf{G}}^{\text{T}} {\mathbf{G}}\). Hence, the minimization of GDOP can be approximated by maximizing the \({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\). Satellite selection methods have used this approximation to reduce the processing complexity of the computation of the GDOP.

Note that \(\left[ {{\text{adj}}\left( {\mathbf{A}} \right)]_{ji} = \partial { \det }\left( {\mathbf{A}} \right)/\partial } \right[{\mathbf{A}}]_{ij}\), where \([{\mathbf{A}}]_{ij}\) denotes the element of the matrix A located in row i and column j. The matrix A refers to a generic matrix that is used here to present general results.

In this section, we will evaluate the discrepancy between the two functions: GDOP and \({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\), by looking at the eigenvalues of the matrix \({\mathbf{G}}^{\text{T}} {\mathbf{G}}\). Let \(\varvec{\lambda}= \left( {\lambda_{1} , \ldots ,\lambda_{n + 1} } \right)\) be the eigenvalues of \({\mathbf{G}}^{\text{T}} {\mathbf{G}}\). n equals 2 or 3 for 2-D or 3-D positioning problems, respectively. We define

$$\phi \left({\varvec{\uplambda}} \right) \doteq \det \left({{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right) = \mathop \prod \limits_{i = 1}^{n + 1} \lambda_{i}$$
(11)

and

$$\theta \left(\varvec{\lambda}\right) \doteq {\text{tr}}\left({({\mathbf{G}}^{\text{T}} {\mathbf{G}})^{- 1}} \right) = \mathop \sum \limits_{i = 1}^{n + 1} \frac{1}{{\lambda_{i}}}$$
(12)

Let \({\mathcal{G}}\) denote all possible sets of eigenvalues of the matrix \({\mathbf{G}}^{\text{T}} {\mathbf{G}}\), i.e., \({\mathcal{G}} = \left\{ {\varvec{\lambda}\in {\mathbb{R}}_{ + + }^{n + 1} |\varvec{\lambda}= {\text{e}}ig\left\{ {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right\},{\mathbf{G}} \in {\mathcal{M}}} \right\}\), where \({\mathbb{R}}_{ + + }^{n + 1}\) stands for the set of positive vectors of n + 1 components, i.e., no single vector element is equal to zero or negative, \({\mathcal{M}} = \left\{ {{\mathbf{G}} \in {\mathbb{R}}^{{h \times \left( {n + 1} \right)}} } \right\}\) and G is a matrix with rows [d i 1], \(i = 1,2, \ldots ,h\).

Let \(\varvec{\lambda}^{ *} \prec\varvec{\lambda}\) where \(\prec\) denotes that \(\varvec{\lambda}^{ *}\) is majorized by \(\lambda\). That is, that the elements of \(\varvec{\lambda}\) are more unevenly distributed than the coordinates of \(\varvec{\lambda}^{ *}\), subject to the constraint that the sum of the coordinates of \(\varvec{\lambda}\) and \(\varvec{\lambda}^{ *}\) is the same, as explained in “Appendix 1” Definition 1. Thus, a set of eigenvalues \(\varvec{\lambda}^{ *} \in {\mathbb{R}}_{ + + }^{n + 1}\) exists such that \( \varvec{\lambda}^{ *} \prec \varvec{\lambda ,}\forall\varvec{\lambda}\in {\mathcal{G}} \) and this set equals \(\varvec{\lambda}^{ *} = \left( {h/2,h/2,h} \right)\) in \({\mathbb{R}}^{2}\). See “Appendix 2” for a demonstration. Then, \(\phi \left(\varvec{\lambda}\right)\) attains its maximum in \(\varvec{\lambda}^{ *}\). It can be proved that \(\phi \left(\varvec{\lambda}\right)\) and \(\theta \left(\varvec{\lambda}\right)\) are maximum and minimum, respectively, at \(\varvec{\lambda}^{ *}\). The proof is based on the majorization theory and is given next.

On the one hand, we know that \(\phi \left(\varvec{\lambda}\right) = { \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\), \(\phi :{\mathbb{R}}^{n} \to {\mathbb{R}}\), is a Schur-concave function (Marshall and Olkin 1979) because \({\mathbf{x}} \prec {\mathbf{y}}\quad {\text{on}}\quad {\mathcal{G}} \Rightarrow \phi \left( {\mathbf{x}} \right) \ge \phi \left( {\mathbf{y}} \right)\). See the proof in “Appendix 1” Theorem 1.

On the other hand, the function \(\theta \left(\varvec{\lambda}\right) = {\text{tr}}\left(( {{\mathbf{G}}^{\text{T}} {\mathbf{G}})^{ - 1} } \right)\), \(\theta :{\mathbb{R}}^{n} \to {\mathbb{R}}\), is Schur-convex on \({\mathcal{G}}\), i.e., \({\mathbf{x}} \prec {\mathbf{y}}\quad {\text{on}}\quad {\mathcal{G}} \Rightarrow \left( {\mathbf{x}} \right) \le \theta \left( {\mathbf{y}} \right)\). When \(\varvec{\lambda}^{ *}\) exists in \({\mathcal{G}}\) and \(\varvec{\lambda}^{ *} \prec\varvec{\lambda}\forall\varvec{\lambda}\in {\mathcal{G}}\), \(\phi \left( {\varvec{\lambda}^{ *} } \right) \ge \phi \left(\varvec{\lambda}\right)\) and \(\theta \left( {\varvec{\lambda}^{ *} } \right) \le \theta \left(\varvec{\lambda}\right)\), for all \(\varvec{\lambda}\) in \({\mathcal{G}}\). See the proof in “Appendix 1” Theorem 2.

However, we need to determine what happens when \(\varvec{\lambda}^{ *}\) does not belong to the solution set \({\mathcal{G}}\). An analysis is presented next based on majorization theory for n = 3. Let us define \({\mathbf{p}} = \left( {p_{1} ,p_{2} ,p_{3} ,p_{4} } \right)\) and \({\mathbf{q}} = \left( {q_{1} ,q_{2} ,q_{3} ,q_{4} } \right) \in {\mathcal{G}}\). We know in general that there are points among the set of possible solutions where neither \({\mathbf{p}}{ \preccurlyeq }{\mathbf{q}}\) nor \({\mathbf{p}}{ \succcurlyeq }{\mathbf{q}}\). That is, being the elements of both vectors ordered in increasing order, neither \(\sum\nolimits_{i = 1}^{k} {p_{i} } \ge \sum\nolimits_{i = 1}^{k} {q_{i} }\), \(1 \le k \le 4\), nor \(\sum\nolimits_{i = 1}^{k} {p_{i} } \le \sum\nolimits_{i = 1}^{k} {q_{i} }\), i.e., none of them is more spread out than the other. Being \(\phi \left(\varvec{\lambda}\right) = { \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\) a Schur-concave function, we cannot say that \(\phi \left( {\mathbf{p}} \right) \ge \phi \left( {\mathbf{q}} \right)\) or that \(\phi \left( {\mathbf{p}} \right) \le \phi \left( {\mathbf{q}} \right)\). The same occurs with \(\theta \left(\varvec{\lambda}\right) = {\text{tr}}[\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}})^{ - 1} } \right]\). Therefore, we can infer that the vector \(\varvec{\lambda}\) for which \(\phi \left(\varvec{\lambda}\right)\) attains its maximum will not necessarily be equal to the one for which \(\theta \left(\varvec{\lambda}\right)\) attains its minimum.

The difference between \(\frac{1}{2} \left({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\right)^{1/2}\) and GDOP is evaluated in Fig. 1. A Monte Carlo simulation of 105 runs was performed where the geometry matrix was generated using random vectors d i satisfying \(\left| {\left| {{\mathbf{d}}_{i} } \right|} \right| = 1\). Results in \({\mathbb{R}}^{2}\) for h = 3 and h = 4 satellites are plotted in red and blue colors, respectively. Note that, when selecting three satellites, the relation between \(1/{\text{GDOP}}\) and \(\frac{1}{2} \left({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\right)^{1/2}\) is almost direct as is evident in the figure. Although for h = 4 this relation tends to be less direct, the dispersion of the GDOP−1 values is still small. As an example, the markers in the figure delimit the range of GDOP−1 values that can be obtained when \(\frac{1}{2} \left({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\right)^{1/2} = 1.75\) and four satellites are selected, i.e., h = 4. The corresponding GDOP−1 values are in the range [0.8017, 0.8248] which would result into a practically negligible difference in terms of GDOP.

Fig. 1
figure 1

Discrepancy plots of GDOP−1 versus \(\frac{1}{2}\left({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\right)^{1/2}\) for all possible solutions in \({\mathbb{R}}^{2}\). Results for h = 3 are plotted in red and results for h = 4 are plotted in blue

Note that the region gets thicker if the number of satellites used increases, meaning that the discrepancy between GDOP and the determinant can potentially increase as well. However, the larger the number of satellites in view, the larger the probability of having a geometry resulting in a large determinant value. In those cases, we would be toward the right-hand side of the plots where the discrepancy between GDOP and the determinant decreases. Only intermediate results in \({\mathbb{R}}^{2}\) are presented here. Results are extensible to \({\mathbb{R}}^{3}\).

Relation between the determinant of matrix \({\varvec{G}^{T} \varvec{G}}\) and the volume of the user-to-satellite unit vectors

For three satellites in 2-D positioning and four satellites in 3-D positioning, there is a direct relation between \({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\) and the volume spanned by the user-to-satellite unit vectors (Gantmacher 1960; Newson 1899–1900). Therefore, several satellite selection methods have been developed during the last decades based on that fact (Kihara and Okada 1984; Zheng et al. 2004; Zhang and Zhang 2009; Li et al. 1999; Roongpiboonsopit and Karimi 2009). However, when more than three or four satellites in 2-D and 3-D positioning, respectively, are to be selected, the relation is not direct anymore and needs to be evaluated. The relation between \({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\) and the volume of the polytope formed by the user-to-satellite unit vectors for any number of selected satellites is analyzed in this section.

Let us review first what happens when three satellites are used for the computation of a 2-D position. The geometry matrix has row vectors \(\left( { - d_{ix} , - d_{iy} ,1} \right)\) with \(i = 1,2,3\). The pair \(\left( {d_{ix} ,d_{iy} } \right)\) denotes the user-to-satellite unit vector for satellite i. As a consequence of the property of the determinant where row subtraction leaves the determinant unchanged, we can write \(\left| {{ \det }\left( {\mathbf{G}} \right)} \right| = \left| {{\mathbf{a}} \times {\mathbf{b}}} \right|\) since

$$\left| {{ \det }\left( {\mathbf{G}} \right)} \right| = \left| {{ \det }\left( {\left[ {\begin{array}{*{20}l} {\left( {d_{2x} - d_{1x} } \right)} \hfill & {\left( {d_{3x} - d_{1x} } \right)} \hfill \\ {\left( {d_{2y} - d_{1y} } \right)} \hfill & {\left( {d_{3y} - d_{1y} } \right)} \hfill \\ \end{array} } \right]} \right)} \right|$$
(13)

where \({\mathbf{a}} = {\mathbf{d}}_{2} - {\mathbf{d}}_{1}\) and \({\mathbf{b}} = {\mathbf{d}}_{3} - {\mathbf{d}}_{1}\), \({\mathbf{d}}_{i} = (d_{ix} ,d_{iy} )^{\text{T}}\), i = 1, 2 and 2, × denotes the cross product, and \(\left| \cdot \right|\) denotes the absolute value.

Thus, the addition of the column of ones results in \(\left| {{ \det }\left( {\mathbf{G}} \right)} \right|\) matching the area of the parallelogram formed by the user-to-satellite unit vectors when taking one of the satellites as a vertex. That is, the area of the triangle formed by those points equals half the determinant of the geometry matrix, \(\frac{1}{2} \left| {{ \det }\left( {\mathbf{G}} \right)} \right|\) (Meyer 2001; Newson 1899–1900). The same applies when selecting four satellites to obtain a 3-D position. In that case, the volume of the tetrahedron is \(\frac{1}{6} \left| {{ \det }\left( {\mathbf{G}} \right)} \right|\) (Newson 1899–1900).

However, the property that allows us to obtain (14) can only be applied to a square matrix. Therefore, one could argue that this is true only for the cases presented above of selecting three satellites in 2-D positioning and four satellites in 3-D positioning. Therefore, the relation in a general case between the \({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\) and the volume spanned by the vectors \({\mathbf{d}}_{i}\), \(i = 1, \ldots ,h\) needs to be analyzed.

If \({\mathbf{A}} \in {\mathbb{R}}^{r \times s}\) with \(r \ge s\), \(V_{s} = \left({\det }\left( {{\mathbf{A}}^{\text{T}} {\mathbf{A}}} \right)\right)^{1/2}\) is the volume of the s-dimensional parallelepiped spanned by the columns of A (Meyer 2001). Note that V s refers to the volume of the parallelepiped described by the columns of A when taking the origin of coordinates as one of the points of the polytope. Since the matrix G contains a column of ones, the volume of the polytope spanned by the columns of the matrix G equals \(V_{n} = \frac{1}{n!}\left({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\right)^{1/2}\) (Newson 1899–1900). However, the positioning problem needs to consider the volume described by the user-to-satellite unit vectors, where the user-to-satellite unit vectors form the rows of the matrix G, excluding the last column.

Let us recall that \({\mathbb{G}}_{s} = { \det }\left( {{\mathbf{A}}^{\text{T}} {\mathbf{A}}} \right)\) is also called the Gramian of the vectors \(\left\{ {{\mathbf{a}}_{1} ,{\mathbf{a}}_{2} , \ldots ,{\mathbf{a}}_{r} } \right\}\) where \({\mathbf{a}}_{i} = \left( {a_{i1} , \ldots ,a_{is} } \right)\). An important result is that \({\mathbb{G}}_{s}\) can be also expressed as

$$\mathbb{G}_{s} = V_{s}^{2} = \mathop \sum \limits_{1 \le i_{1} < i_{2} < \ldots < i_{r} \le s} \det \left(\left[{\begin{array}{*{20}c} {a_{{i_{1} 1}}} & \ldots & {a_{{i_{1} s}}} \\ {a_{{i_{2} 1}}} & \ldots & {a_{{i_{2} s}}} \\ \vdots & \vdots & \vdots \\ {a_{{i_{r} 1}}} & \ldots & {a_{{i_{r} s}}} \\ \end{array}} \right] \right)^{2}$$
(14)

where V s denotes the volume of the s-dimensional parallelotope spanned by the vectors \(\left\{ {{\mathbf{a}}_{1} ,{\mathbf{a}}_{2} , \ldots ,{\mathbf{a}}_{r} } \right\}\). This equation has the following meaning: “The square of the volume of a parallelotope is equal to the sum of the squares of the volumes of its projections on all the s-dimensional coordinate subspaces” (Gantmacher 1960). In particular, for r = s, the summation in (15) has only one term, and thus, \(V_{s} = \left| {{ \det }\left( {\mathbf{A}} \right)} \right|\) (Meyer 2001). Applying this result to our problem and recalling the previous discussion for the case of a rectangular matrix G, we can conclude that: “\(V_{n}^{2}\) is proportional to the sum of the squares of the volumes described by all possible sets of n + 1 user-to-satellite unit vectors.”

Therefore, the relation between the volume spanned by the user-to-satellite unit vectors and \({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\) for more than four satellites in 3-D positioning or more than three satellites in 2-D positioning is not as direct as in the case of a square matrix G. Instead, when \({\mathbf{h}} > {\mathbf{n}} + 1\), \({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\) is proportional to the sum of the squares of the volumes of the polytopes described taking all possible combinations of n + 1 satellites. Remember that n denotes the dimension of the Euclidean space that contains the satellites coordinates.

A Monte Carlo simulation of 105 runs was performed where the geometry matrix was generated using random unit vectors \({\mathbf{d}}_{i} \in {\mathbb{R}}^{2}\), with \(\left| {\left| {{\mathbf{d}}_{i} } \right|} \right| = 1\). The volumes spanned by the sets of vectors d i and \(\frac{1}{2} \left({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\right)^{1/2}\) were obtained. Results for h = 3 and h = 4 satellites in \({\mathbb{R}}^{2}\) are plotted in Fig. 2 in red and blue colors, respectively. Volume in \({\mathbb{R}}^{2}\) denotes the area of the polygon formed by the user-to-satellite unit vectors d i .

Fig. 2
figure 2

Discrepancy plots of \(\frac{1}{2} \left({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\right)^{1/2}\) versus volume for all possible solutions in \({\mathbb{R}}^{2}\). Results for h = 3 are plotted in red, and results for h = 4 are plotted in blue. Recall that volume is used in \({\mathbb{R}}^{2}\) referring to area

When h = 3, Fig. 2 corroborates that there is a one-to-one relation between the determinant of matrix G and the volume spanned by the user-to-satellite unit vectors, in agreement with (14). However, when the number of satellites increases, the relation is not one-to-one anymore since the points are spread over a region. This region is contained within two lines. The line that upper bounds the blue region in the figure is obtained for the set of the vectors d i that generates a figure as close as possible to a regular polytope for each value of the volume. This assertion is proved in Fig. 3 for a specific value of the area. The number of sides of such a regular polygon is determined by the x-axis value in the figures above, i.e., the value of the area. That is, given that the area of a regular polygon of l sides inscribed in the unit circle is given by \(A_{l} = \begin{matrix}l & {\text{cos}}\left( {\frac{\pi }{l}} \right) {\text{sin}}\left( {\frac{\pi }{l}} \right)\end{matrix}\) (Niven 1981), the number of sides of the regular polygon that maximizes the value of \(({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right))^{1/2}\) would equal l. That is, the set of user-to-satellite unit vectors expanding the figure closest to the regular polygon of l sides would be the one maximizing the GDOP.

Fig. 3
figure 3

Geometric forms corresponding to a value of the area of 1.299 and h = 5 in \({\mathbb{R}}^{2}\). The result for \(\frac{1}{2} \left({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\right)^{1/2} = 1.65\) is plotted in red, and the result for \(\frac{1}{2} \left({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\right)^{1/2} = 2.60\) is plotted in blue

The geometric forms for two extreme values of the determinant and a given value of the area are plotted in Fig. 3 for h = 5 in \({\mathbb{R}}^{2}\) to illustrate the relation between the regular polytope and the upper bound. The geometric forms in the figure have the same area as an inscribed equilateral triangle, i.e., \(A_{3} = 1.299\). Note that the set giving the largest value of \(({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right))^{1/2}\) will be the one that expands a geometric figure that is the closest to the corresponding regular polyhedron for that value of the area.

Relation between GDOP and the volume of the user-to-satellites unit vectors

Finally, after having analyzed the relation between the GDOP and the determinant of \(\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\) and the relation between the determinant of \(\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\) and the volume of the user-to-satellite unit vectors, we evaluate herein the relation between the GDOP and that volume, which is the combination of the results obtained in the previous two sections. A Monte Carlo simulation of 105 runs has been performed where the geometry matrix has been generated using random vectors d i satisfying \(\left| {\left| {{\mathbf{d}}_{i} } \right|} \right| = 1\). The volume described by the set of vectors d i and the corresponding GDOP values have been computed. Results for h = 3 and h = 4 satellites in \({\mathbb{R}}^{2}\) are plotted in Fig. 4 in red and blue colors, respectively.

Fig. 4
figure 4

Discrepancy plots of GDOP−1 versus volume for all possible solutions in \({\mathbb{R}}^{2}\). Results for h = 3 are plotted in red, and results for h = 4 are plotted in blue

Figure 4 shows that GDOP minimization is well approximated by volume maximization when h = 3, specially for large volumes. The discrepancy in the approximation grows with the number of satellites although it nearly stops growing at about h = 5. However, as concluded in the previous section, the upper bound of the blue regions corresponds to an arrangement of the user-to-satellite unit vectors generating the regular polygon that corresponds to that value of the volume. Thus, for similar volume values, the satellite subset expanding the figure closest to the largest regular polygon that can be drawn for that volume value should be selected. This satellite subset will be the one minimizing GDOP. Finally, to illustrate that a similar behavior occurs in \({\mathbb{R}}^{3}\), results for h = 4 and h = 5 satellites in \({\mathbb{R}}^{3}\) are plotted in Fig. 5 in red and blue colors, respectively. Note that, similar to \({\mathbb{R}}^{2}\), the discrepancy nearly stops growing at about h = 5.

Fig. 5
figure 5

Discrepancy plots of GDOP−1 versus volume for all possible solutions in \({\mathbb{R}}^{3}\). Results for h = 4 are plotted in red, and results for h = 5 are plotted in blue

Conclusions

The objective has been to study the relation between GDOP and the volume described by the user-to-satellite unit vectors. We have divided it in two steps: first, the relation between GDOP and \({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\) has been assessed; second, the relation between determinant and volume has been analyzed.

As far as the relation between GDOP and the inverse of \({ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\) is concerned, a very similar behavior for both functions is observed independently of the number of satellites used to estimate the user position. Thus, the behavior of GDOP is well approximated by \(1/{ \det }\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\). This confirms that the variability of the adjoint matrix of \(\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\) has a smaller effect on the GDOP than the determinant of \(\left( {{\mathbf{G}}^{\text{T}} {\mathbf{G}}} \right)\).

The analysis of the relation between determinant and the volume of the polytope formed by the user-to-satellite unit vectors (d i ) exhibits a one-to-one relation when h = 3 in \({\mathbb{R}}^{2}\) and when h = 4 in \({\mathbb{R}}^{3}\). For a larger number of satellites, it was shown that the determinant was maximized for the set of vectors d i drawing a geometric figure closer to a regular polytope for a given volume.

Finally, the relation between the volume and the GDOP has been obtained. The relation is nearly direct when h = 3 and h = 4 for 2-D and 3-D positioning, respectively. In general, the volume can be taken as a very good indicator of the GDOP value. However, other aspects should be also considered to make a better selection of satellites based on the volume maximization, such as the geometric distribution of the h satellites to use. The geometric distribution should be the closest one to the largest regular polytope that can be drawn.