1 Introduction

Integrity monitoring and quality control can be exercised at different stages of the GNSS data processing chain (Teunissen and Kleusberg 1998; Leick 2004). These stages range from the single-receiver, single-channel case to the multi-receiver/antenna case, sometimes even with additional constraints included. An example of the latter is the quality control of baseline-constrained GNSS attitude models (Giorgi et al. 2012), while geometry-dependent receiver autonomous integrity monitoring (RAIM) is an example of the single-receiver, multi-channel case (Teunissen 1997; Wieser et al. 2004; Feng et al. 2006; Hewitson and Wang 2006).

In the present contribution, we study the single-receiver, single-channel model. It is the weakest model of all, due to the absence of the relative receiver-satellite geometry. Despite its potential weakness, there are several advantages to single-receiver, single-channel data validation. First, since it is the simplest model of all, it can be executed in real-time inside the (stationary or moving) receiver, thus enabling early quality control on the raw data. Second, the geometry-free single-channel approach has the advantage that no satellite positions need to be known per se and thus no complete navigation messages need to be read and used. Additionally, such an approach also makes the method flexible for processing data from any other (future) GNSS or for parallel processing, which could prove relevant when considering a large number of receivers.

We study the carrier phase-slip and code-outlier detection capabilities of the single-receiver, single-channel model. For the integrity monitoring of carrier-phase data, various studies can already be found in the literature. For dual-frequency GPS data, for instance, methods of carrier phase-slip detection are discussed and tested in (Lipp and Gu 1994; Mertikas and Rizos 1997; Blewitt 1998; Teunissen 1998a; Gao and Li 1999; Jonkman and de Jong 2000; Bisnath and Langley 2000; Bisnath et al. 2001; Liu 2010; Miao et al. 2011). More recent studies on triple-frequency carrier phase-slip detection can be found in (Fan et al. 2006; Dai et al. 2009; Wu et al. 2010; De Lacy et al. 2011; Xu and Kou 2011; Fan et al. 2011). Our contribution differs from these previous studies, because of its focus on the detectability of single-receiver, single-channel modeling errors. Next to the phase-slip detection, the detectability of code-outliers is studied as well. Our analysis is analytical, while supported by numerical results. Analytical expressions are derived for the minimal detectable biases (MDBs) of the uniformly most powerful invariant tests (Baarda 1967, 1968; Teunissen 1990a). The MDB is an important diagnostic tool for inferring the strength of model validation. Examples of such studies for geometry-dependent and integrated GNSS models can be found in (Salzmann 1991; Teunissen 1998b; de Jong 2000; de Jong and Teunissen 2000; Hewitson and Wang 2010).

This contribution is organized as follows: In Sect. 2 we formulate the multi-frequency, single-receiver, geometry-free GNSS model. This is done for an arbitrary number of frequencies. An overview of the model’s redundancy for different measurement scenarios gives a first indication of the model’s testability. In Sect. 3 the uniformly most powerful invariant test-statistics for spikes and slips are developed. It is shown how they can be applied to test for code-outliers, phase-slips and ionosphere disturbances. The strength of these test-statistics is described by their corresponding MDBs, for which lower bounds and upper bounds are also given. Due to the relatively simple structure of the geometry-free model, the expression for the MDB can be decomposed into a time-dependent and a time-invariant component. The effect of the time-dependent component is shown in Sect. 3, while the characteristics of the time-independent part are studied in the sections following. The detectability of phase-slips is treated in Sect. 4. An analytical expression for the phase-slip MDB is derived and it is used to assess the single-, dual- and multi-frequency phase-slip detectability for GPS and Galileo. To evaluate the influence of the code data, the analysis is performed for both the case with code data present and without code data present. The latter case is also of interest, for instance, when one wants to avoid the use of multipath corrupted code data. In Sect. 5, an analytical expression for the code-outlier MDB is derived. It is used to study the code-outlier detectability for the single-, dual- and multi-frequency GPS and Galileo case, including the case that phase data are absent. In Sect. 6, the MDB for an ionospheric disturbance is presented and analyzed. Finally, the detectability of temporary loss-of-lock on all phase observables is treated in Sect. 7.

2 The multi-frequency, single-receiver geometry-free model

2.1 Functional model

The carrier phase and pseudorange (code) observation equations of a single receiver that tracks a single satellite on frequency \(f_{j}=c/\lambda _{j}\) (\(c\) is speed of light, \(\lambda _{j}\) is \(j\)th wavelength and \(j=1, \ldots , n\)) at time instant \(t\) (\(t=1, \ldots , k\)), are given as (Teunissen and Kleusberg 1998; Misra and Enge 2001; Hofmann-Wellenhoff and Lichtenegger 2001; Leick 2004),

$$\begin{aligned} \phi _{j}(t)&= \rho ^{*}(t) - \mu _{j} \mathcal I (t) + b_{\phi _{j}} + n_{\phi _{j}}(t) \nonumber \\ p_{j}(t)&= \rho ^{*}(t) + \mu _{j} \mathcal I (t) + b_{p_{j}} + n_{p_{j}}(t) \end{aligned}$$
(1)

where \(\phi _{j}(t)\) and \(p_{j}(t)\) denote the single receiver observed carrier phase and pseudorange, respectively, with corresponding zero mean noise terms \(n_{\phi _{j}}(t)\) and \(n_{p_{j}}(t)\). The unknown parameters are \(\rho ^{*}(t), \mathcal I (t), b_{\phi _{j}}\) and \(b_{p_{j}}\). The lumped parameter \(\rho ^{*}(t) = \rho (t)+c \delta t_{r}(t) - c \delta t^{s}(t) +T(t)\) is formed from the receiver-satellite range \(\rho (t)\), the receiver and satellite clock errors, \(c \delta t_{r}(t)\) and \(c \delta t^{s}(t)\), respectively, and the tropospheric delay \(T(t)\). The parameter \(\mathcal I (t)\) denotes the ionospheric delay expressed in units of range with respect to the first frequency. Thus for the \(f_{j}\)-frequency pseudorange observable, its coefficient is given as \(\mu _{j}=f_{1}^{2}/f_{j}^{2}\). The GPS and Galileo frequencies and wavelengths are given in Table 1. The parameters \(b_{\phi _{j}}\) and \(b_{p_{j}}\) are the phase bias and the instrumental code delay, respectively. The phase bias is the sum of the initial phase, the phase ambiguity and the instrumental phase delay.

Table 1 GPS and Galileo frequencies (\(f\)) and wavelengths (\(\lambda \))

Both \(b_{\phi _{j}}\) and \(b_{p_{j}}\) are assumed to be time-invariant. This is allowed for relatively short time spans, in which the instrumental delays remain sufficiently constant (Liu et al. 2004). The time-invariance of \(b_{\phi _{j}}\) and \(b_{p_{j}}\) implies that only time-differences of \(\rho ^{*}(t)\) and \(\mathcal I (t)\) are estimable. We may therefore just as well formulate the observation equations in time-differenced form. Then the parameters \(b_{\phi _{j}}\) and \(b_{p_{j}}\) get eliminated and we obtain

$$\begin{aligned} \phi _{j}(t,s)&= \rho ^{*}(t,s) - \mu _{j} \mathcal I (t,s) + n_{\phi _{j}}(t,s) \nonumber \\ p_{j}(t,s)&= \rho ^{*}(t,s) + \mu _{j} \mathcal I (t,s) + n_{p_{j}}(t,s) \end{aligned}$$
(2)

where \(\phi _{j}(t,s)= \phi _{j}(t)-\phi _{j}(s)\), with a similar notation for the time-difference of the other variates.

Would we have a priori information available about the ionospheric delays, we could model this through the use of additional observation equations. In our case, we do not assume information about the absolute ionospheric delays, but rather on the relative, time-differenced, ionospheric delays. We therefore have the additional (pseudo) observation equation

$$\begin{aligned} \mathcal I _{o}(t,s) = \mathcal I (t,s)+ n_\mathcal{I }(t,s) \end{aligned}$$
(3)

with the (pseudo) ionospheric observable \(\mathcal I _{o}(t,s)\). The sample value of \(\mathcal I _{o}(t,s)\) is usually taken to be zero.

If we define \(\phi (t)=(\phi _{1}(t), \ldots , \phi _{n}(t))^{T}, p(t)=(p_{1}(t), \ldots , p_{n}(t))^{T}, y(t)=(\phi (t)^{T}, p(t)^{T}, \mathcal I _{o}(t))^{T}, g(t)=(\rho ^{*}(t), \mathcal I (t))^{T}, \mu =(\mu _{1}, \ldots , \mu _{n})^{T}, y(t,s)=y(t)-y(s)\) and \(g (t,s)=g(t)-g(s)\), then the expectation \(E \) of the \(2n+1\) observation equations of (2) and (3) can be written in the compact vector-matrix form

$$\begin{aligned} E \left( y(t,s) \right)= G g(t,s) \end{aligned}$$
(4)

where

$$\begin{aligned} G= \left[ \begin{array}{c@{\quad }c} e_{n}&-\mu \\ e_{n}&+\mu \\ 0&1 \end{array}\right] \end{aligned}$$
(5)

with \(e_{n}\) the \(n\)-vector of ones and \(\mu =(\mu _{1}, \ldots , \mu _{n})^{T}\). This two-epoch model can be extended to an arbitrary number of epochs. Let \(y=(y(1)^{T}, \ldots , y(k)^{T})^{T}\) and \(g=(g(1)^{T}, \ldots , g(k)^{T})^{T}\), and let \(D_{k}\) be a full rank \(k \times (k-1)\) matrix of which the columns span the orthogonal complement of \(e_{k}=(1, \ldots , 1)^{T}, D_{k}^{T}e_{k}=0\). Then \(d y = (D_{k}^{T} \otimes I_{2n+1})y\) and \(d g= (D_{k}^{T} \otimes I_{2})g\) are the time-differenced vectors of the observables and parameters, respectively, and the \(k\)-epoch version of (4) can be written as

$$\begin{aligned} E \left( d y \right)= (I_{k-1} \otimes G) d g \end{aligned}$$
(6)

where \(\otimes \) denotes the Kronecker product. The Kronecker product of an \(a \times b\) matrix \(M=(m_{ij})\) and a \(c \times d\) matrix \(N=(n_{ij})\) is an \(ac \times bd\) matrix defined as \(M \otimes N=(m_{ij}N)\). For properties of the Kronecker product, see, e.g., Rao (1973). Model (6), or its two-epoch variant (4), is called the time-differenced, single receiver geometry-free model. It will be referred to as our null hypothesis \(\mathcal H _{0}\).

2.2 Stochastic model

The \(n \times n\) variance matrices of the undifferenced carrier phase and (code) pseudo range observables \(\phi (t)\) and \(p(t)\) are denoted as \(Q_{\phi \phi }\) and \(Q_{pp}\), respectively. We assume these variance matrices to be time-invariant and we also assume cross-correlation between phase and code to be absent. Thus for the dispersion of the two-epoch model (4) we have

$$\begin{aligned} D \left( y(t,s) \right) = \mathrm{blockdiag}(2Q_{\phi \phi }, 2Q_{pp}, \sigma _{d \mathcal I }^{2}) \end{aligned}$$
(7)

where the scalar \(\sigma _{d \mathcal I }^{2}\) denotes the variance of the time-differenced ionospheric delay.

To determine the variance matrix of the time-differenced ionospheric delays, let \(D (\mathcal I )=Q_\mathcal{I \mathcal I }\) be the variance matrix of the absolute ionospheric delay vector \(\mathcal I =(\mathcal I (1), \ldots , \mathcal I (k))^{T}\). The variance matrix of the time- differenced ionospheric delay vector \(d I =(D_{k}^{T} \otimes 1) \mathcal I \) is then given as \(D (d \mathcal I )=D_{k}^{T}Q_\mathcal{I \mathcal I }D_{k}\).

It is through the choice of \(Q_\mathcal{I \mathcal I }\) that we can model the time-smoothness of the ionospheric delays. If we assume that the time series of ionospheric delays can be modeled as a first-order autoregressive stochastic process, then the covariance between \(\mathcal I (t)\) and \(\mathcal I (s)\) is given as \(\sigma _\mathcal{I }^{2} \beta ^{|t-s|}\), with \(0 \le \beta \le 1\). The two extreme cases are \(\beta =0\) and \(\beta =1\). In the first case, \(Q_\mathcal{I \mathcal I }\) is a scaled unit matrix and \(\mathcal I (t)\) is considered a white noise process. In the second case, the variance matrix equals the rank-one matrix \(Q_\mathcal{I \mathcal I }=\sigma _\mathcal{I }^{2}e_{k}e_{k}^{T}\) and \(\mathcal I (t)\) is considered a random constant. In the first case we have \(D (d \mathcal I )=\sigma _\mathcal{I }^{2}D_{k}^{T}D_{k}\), while in the second case we have \(D (d \mathcal I )=0\).

For the two-epoch case of (7), the variance of the time-differenced first-order autoregressive ionospheric delay works out as

$$\begin{aligned} \sigma _{d \mathcal I }^{2}=2 \sigma _\mathcal{I }^{2}(1-\beta ^{|t-s|}) \end{aligned}$$
(8)

For two successive epochs we have \(\sigma _{d \mathcal I }^{2}=2 \sigma _\mathcal{I }^{2}(1-\beta )\), while for larger time-differences the variance will tend to the white-noise value \(\sigma _{d \mathcal I }^{2}=2 \sigma _\mathcal{I }^{2}\) if \(\beta <1\). Thus \(\sigma _\mathcal{I }^{2}\) and \(\beta \) can be used to model the level and smoothness of the noise in the ionospheric delays. We used the above stochastic model for both our analytical and numerical analyses. We have used values for the measurement precision of the multi-frequency GNSS signals reported by Simsky et al. (2008) and de Bakker et al. (2009, 2012) which are based on real measurements. The precision of the Galileo E1 signal reported by these publications are in close agreement, for the E5a signal the more conservative value of Simsky et al. (2008) has been adopted. For the GPS L2 signal we will use the same value as for the GPS L1 signal. All zenith-referenced values are summarized in Table 2. To obtain the standard deviations for an arbitrary elevation, these values still need to be multiplied with an elevation dependent function. Several authors studied this dependence, either as function of signal-to-noise (SNR) ratios (e.g., carrier-to-noise density ratio \(C/N_{0}\)) or as function of elevation itself, e.g., (Euler and Goad 1991; Ward 1996; Langley 1997; Hartinger and Brunner 1999; Collins and Langley 1999; Wieser et al. 2005). Such weighting will also help suppressing the effect of multipath (de Bakker 2011). For our purposes of studying and evaluating the MDBs, the differences between these functions are negligible. The simplest function, being the cosecant as function of elevation, has a value of about 4 at 15 degrees elevation and reaches its minimum of 1 at 90 degrees elevation.

Table 2 Zenith-referenced standard deviations of undifferenced GPS and Galileo code (\(p\)) and phase (\(\phi \)) observables (Simsky et al. 2008; de Bakker et al. 2012)

2.3 Redundancy

A prerequisite for being able to perform statistical tests is the existence of redundancy. For a full rank model, redundancy is defined as the number of observations minus the number of unknown parameters. We have summarized the redundancy of the \(k\)-epoch model (6) in Table 3. We discriminate between the ionosphere-weighted case and the ionosphere-float case. In the latter case, no a priori information is assumed about the ionospheric delays. Hence, in this case, all ionospheric delays are treated as completely unknown. This results therefore in a redundancy reduction of \(k-1\), being the number of unknown time-differenced ionospheric delays. We also discriminate between the phase and code case, and the code-only (phaseless) and phase-only (codeless) cases. When both phase and code data are used, the ionosphere-weighted redundancy equals \((k-1)(2n-1)\). Thus in this case, redundancy exists for any number of frequencies, provided \(k \ge 2\). That at least two epochs of data are needed is of course due to the fact that we are working with time-differenced data. That already single-frequency (\(n=1\)) processing provides redundancy is due to the ionospheric information. Without this information, there would be no redundancy in the single-frequency case, but only in the dual- and multi-frequency cases, provided both phase and code data are used.

Table 3 Redundancy for \(k\)-epoch, \(n\)-frequency, iono-weighted and iono-float, single-receiver geometry-free model (6)

The phase-only and code-only redundancies are the same. In the phase-only and code-only cases we have \((k-1)n\) observations less than in the phase and code case. Hence, this is the number by which the redundancy drops when either the code data or the phase data are left out. Thus in the phase-only or code-only cases, single-frequency testing is impossible even if ionospheric information is provided.

3 Testing and reliability

In this section we formulate our alternative hypotheses and present the corresponding test statistics.

3.1 Outliers, cycle slips and loss-of-lock

We now formulate our alternative hypotheses for the single-receiver, geometry-free GNSS model. They accommodate model biases such as outliers in the pseudo range data, slips in the carrier phase data and loss-of-lock.

Recall that the undifferenced observational vector of epoch \(t\) is given as \(y(t)=(\phi (t)^{T}, p(t)^{T}, \mathcal I (t))^{T}\). Now assume that a model error has occurred in the data of epoch \(l\) and that this \((2n+1)\)-bias vector can be parametrized as \(Hb\), where \(H\) is a given matrix of order \((2n+1) \times q\) and \(b\) is an unknown vector having \(q\) entries. Then \(Hb\) is the difference between the expectation of \(y(l)\) under the null hypothesis \(\mathcal H _{0}\) and the expectation of \(y(l)\) under the alternative hypothesis \(\mathcal H _{a}\). Thus \(E (y(l)| \mathcal H _{a})=E (y(l)| \mathcal H _{0})+Hb\). Through the choice of matrix \(H\), we can describe the type of model error. For instance, if all the phase data are assumed erroneous, as would be the case after a temporary loss-of-lock on all phase observables, then \(H=(I_{n}, 0, 0)^{T}\) and \(q=n\). But if only the pseudo-range data on frequency \(j\) is corrupted with an outlier, then \(H=(0, \delta _{j}^{T},0)^{T}\) and \(q=1\), where \(\delta _{j}\) is an \(n\)-vector having a \(1\) as its \(j\)th entry and zeros elsewhere.

Apart from describing the model error through matrix \(H\), we also need to specify the time behavior of the model error. Here we consider spikes and slips. A model error behaves as a spike if it occurs at one and only one epoch. A model error is said to behave as a slip if it persists after occurrence. Examples of spikes are outliers in the pseudo-range data or in the ionospheric delays. Examples of slips are cycle slips in the phase data or momentary loss-of-lock.

If we assume the model error \(H b\) to behave as a spike at epoch \(l\), then \(E (y| \mathcal H _{a})=E (y| \mathcal H _{0})+ (s_{l} \otimes H) b\), where \(s_{l}\) is a \(k\)-vector having a \(1\) as its \(l\)th entry and zeros elsewhere. Would we assume the error to be persistent, however, as would be the case after a loss-of-lock or after a slip, then \(s_{l}\) is a \(k\)-vector having zeros in its first \(l-1\) entries, but \(1\)s in all its remaining entries.

Thus with suitable choices for the vector \(s_{l}\) and the matrix \(H\), one can model outliers in the code data, cycle slips in the phase data, disturbances in the ionosphere and even a complete loss-of-lock. The formulation of the alternative hypotheses in terms of the time-differenced data follows then from pre-multiplying \(E (y| \mathcal H _{a})=E (y| \mathcal H _{0})+ (s_{l} \otimes H) b\) with \(D_{k}^{T} \otimes I_{2n+1}\). The null- and alternative hypotheses treated in the present contribution are therefore given as

$$\begin{aligned} \mathcal H _{0}&: E (d y) = (I_{k-1} \otimes G)d g \nonumber \\ \mathcal H _{a}&:&\; E (d y) = (I_{k-1} \otimes G)d g + (D_{k}^{T}s_{l} \otimes H) b \end{aligned}$$
(9)

where

$$\begin{aligned} \underset{(2n+1) \times q}{H}= \left\{ \begin{array}{ll} (\delta _{j}^{T}, 0, 0)^{T}&\;\;(\mathrm{carrier\;phase}) \\ (0, \delta _{j}^{T}, 0)^{T}&\;\;(\mathrm{pseudo\;range}) \\ (0, 0, 1)^{T}&\;\;(\mathrm{ionosphere\;disturbance}) \\ (I_{n}, 0, 0)^{T}&\;\;(\mathrm{phase\;loss-of-lock}) \\ \end{array}\right. \end{aligned}$$
(10)

and

$$\begin{aligned} \underset{k \times 1}{s_{l}}= \left\{ \begin{array}{l} (\overset{1}{0}, \ldots , 0, \overset{l}{1}, 0, \ldots , \overset{k}{0})^{T} \;\;(\mathrm{spike}) \\ (0, \ldots , 0, 1, 1, \ldots , 1)^{T} \;\;(\mathrm{slip}) \\ \end{array}\right. \end{aligned}$$
(11)

In order to test \(\mathcal H _{0}\) against \(\mathcal H _{a}\), the uniformly most powerful invariant (UMPI) test is used, see e.g., (Arnold 1981; Koch 1999; Teunissen 2000). It rejects the null hypothesis in favor of the alternative hypothesis, if

$$\begin{aligned} {T}_{q} = \hat{b}^{T}Q_{\hat{b}\hat{b}}^{-1}\hat{b} > \chi ^{2}_{\alpha }(q, 0) \end{aligned}$$
(12)

where \(\hat{b}\), with variance matrix \(Q_{\hat{b}\hat{b}}\), is the least-squares estimator (LSE) of \(b\) under \(\mathcal H _{a}\). The UMPI-test statistic \(T_{q}\) has a central \(\chi ^{2}\)-distribution under \(\mathcal H _{0}\) with \(q\) degrees of freedom, \({T}_{q} \mathop {\sim }\limits ^\mathcal{H _{0}} \chi ^{2}(q,0)\). Hence, with \(\alpha \) being the probability of wrongful rejection, the critical value \(\chi ^{2}_{\alpha }(q, 0)\) of test (12) is computed from the relation \(\alpha = P [T_{q} > \chi ^{2}_{\alpha }(q, 0)| \mathcal H _{0}]\).

3.2 Test statistics for spikes and slips

In order to derive the appropriate test statistics, we first determine the least-squares estimator of \(b\) in (9). Here and in the following we assume \(D (d \mathcal I )= \sigma _\mathcal{I }^{2} D_{k}^{T}D_{k}\) and therefore \(D (y(i))=\mathrm{blockdiag}(Q_{\phi }, Q_{p}, \sigma _\mathcal{I }^{2}) \overset{call}{=}Q\). The least-squares estimator of \(b\) and its variance matrix is given in the following theorem:

Theorem 1

(UMPI test statistic) With the dispersion given as \(D (dy)=D_{k}^{T}D_{k} \otimes Q, Q=\mathrm{blockdiag}(Q_{\phi }, Q_{p}, \sigma _\mathcal{I }^{2})\), the least-squares estimator of \(b\) under \(\mathcal H _{a}\) (cf. 9) and its variance matrix are given as

$$\begin{aligned} \begin{aligned} \hat{b}(l,k)&= (\bar{s}_{l}^{T}\bar{s}_{l} \otimes \bar{H}^{T}Q^{-1}\bar{H})^{-1}(\bar{s}_{l}^{T} \otimes \bar{H}^{T}Q^{-1})y\\ Q_{\hat{b}\hat{b}}(l,k)&= (\bar{s}_{l}^{T}\bar{s}_{l})^{-1} \otimes (\bar{H}^{T}Q^{-1}\bar{H})^{-1} \end{aligned} \end{aligned}$$
(13)

and the uniformly most powerful invariant test statistic for testing \(\mathcal H _{0}\) against \(\mathcal H _{a}\) is given as

$$\begin{aligned} \begin{aligned} T_{q}(l,k)&= \hat{b}(l,k)^{T}Q_{\hat{b}\hat{b}}(l,k)^{\!-\!1}\hat{b}(l,k)\\&= y^{T}\left( P_{\bar{s}_{l}} \otimes Q^{\!-\!1}P_{\bar{H}} \right) y \end{aligned} \end{aligned}$$
(14)

where \(\bar{s}_{l}=P_{D_{k}}s_{l}\) and \(\bar{H}=P_{G}^{\perp }H\), with the projectors \(P_{D_{k}}=D_{k}(D_{k}^{T}D_{k})^{-1}D_{k}^{T}, P_{G}^{\perp }=I_{2n+1}-G(G^{T}Q^{-1}G)^{-1}G^{T}Q^{-1}, P_{\bar{s}_{l}}=\bar{s}_{l}(\bar{s}_{l}^{T}\bar{s}_{l})^{-1}\bar{s}_{l}^{T}\) and \(P_{\bar{H}}=\bar{H}(\bar{H}^{T}Q^{-1}\bar{H})^{-1}\bar{H}^{T}Q^{-1}\).

Proof

See Appendix. \(\square \)

The bias estimator and its variance matrix are given the arguments \(l\) and \(k\) to emphasize that it is an estimator of an error occurring at epoch \(l\), based on \(k\) epochs of data.

From the Kronecker product structure of (13) it follows that \(\hat{b}(l,k)\) and its variance matrix can be computed directly from its single-epoch counterparts. We therefore have the following result:

Corollary 1

Let the single-epoch bias estimator and its variance matrix be given as

$$\begin{aligned} \begin{aligned} \hat{\beta }(i)&= (\bar{H}^{T}Q^{-1}\bar{H})^{-1}\bar{H}^{T}Q^{-1}y(i) \\ Q_{\hat{\beta }\hat{\beta }}&= (\bar{H}^{T}Q^{-1}\bar{H})^{-1} \end{aligned} \end{aligned}$$
(15)

and define the \((2n+1) \times k\) matrix \(\hat{B}_{k}=[\hat{\beta }(1), \ldots , \hat{\beta }(k)]\). Then

$$\begin{aligned} \begin{aligned} \hat{b}(l,k)&= \hat{B}_{k}\bar{s}_{l}(\bar{s}_{l}^{T}\bar{s}_{l})^{-1} \\ Q_{\hat{b}\hat{b}}(l,k)&= (\bar{s}_{l}^{T}\bar{s}_{l})^{-1} Q_{\hat{\beta }\hat{\beta }} \end{aligned} \end{aligned}$$
(16)

and

$$\begin{aligned} T_{q}(l,k)= \frac{\bar{s}_{l}^{T}\hat{B}_{k}^{T}Q_{\hat{\beta }\hat{\beta }}^{-1}\hat{B}_{k}\bar{s}_{l}}{\bar{s}_{l}^{T}\bar{s}_{l}} \end{aligned}$$
(17)

Note that the time dependency in the coefficients of (17) is captured by \(\bar{s}_{l}\), which will be different for spikes and slips.

Spikes For spike-like biases the \(k\)-vector \(s_{l}\) is a unit vector having a \(1\) as its \(l\)th entry. If we make use of \(P_{D_{k}}= I_{k}-e_{k}(e_{k}^{T}e_{k})^{-1}e_{k}^{T}\), it follows that \(\bar{s}_{l}=\delta _{l}-\frac{1}{k}e_{k}\) and \(\bar{s}_{l}^{T}\bar{s}_{l}=1-\frac{1}{k}\). For spikes, the bias expression (16) therefore simplifies to

$$\begin{aligned} \begin{aligned} \hat{b}(l,k)&= \frac{k}{k-1}\left( \hat{\beta }(l)- \frac{1}{k} \sum _{i=1}^{k} \hat{\beta }(i) \right) \\&= \hat{\beta }(l)- \frac{1}{k-1} \sum _{i=1, i \ne l}^{k} \hat{\beta }(i) \end{aligned} \end{aligned}$$
(18)

This last expression clearly shows that \(\hat{b}(l,k)\) is the difference of the local estimator \(\hat{\beta }(l)\) and the time-average of the \(\hat{\beta }(i)\) over the error-free time instances \(i=1, \ldots , k; i \ne l\). Under \(\mathcal H _{a}\) the mean of the local estimator is \(b\) and that of the time-average is zero. Although one can use the local estimator \(\hat{\beta }(l)\) as the bias-estimator, the local estimator does not make use of the information that all other epochs are assumed to be bias-free. Hence, the local estimator can be improved by including this information through subtraction of the zero-mean time-average of the bias-free time instances.

For computational purposes it is easier to use the first expression of (18), because of the presence of the running average (which can also be computed recursively). We therefore use this expression to formulate the corresponding test statistic for spikes. It reads

$$\begin{aligned} T_{q}(l,k)= \frac{k}{k-1} ||\hat{\beta }(l)-\bar{\beta }(k)||_{Q_{\hat{\beta }\hat{\beta }}^{-1}}^{2} \end{aligned}$$
(19)

with the running average \( \bar{\beta }(k)=\frac{1}{k} \sum _{i=1}^{k} \hat{\beta }(i)\).

The test statistic (19) can be used for any \(l \le k\). However, when \(l<k\), there is a delay in testing of \(k-l\). For some applications this may not be acceptable or necessary. For those cases one will use (19) with \(l=k\), which gives

$$\begin{aligned} T_{q}(k,k)= \frac{k-1}{k} ||\hat{\beta }(k)-\bar{\beta }(k-1)||_{Q_{\hat{\beta }\hat{\beta }}^{-1}}^{2} \end{aligned}$$
(20)

Thus in this case, the test statistic is formed from the difference of the local bias estimator \(\hat{\beta }(i)\) for \(i=k\) and its time-average over the previous \(k-1\) epochs, \(\bar{\beta }(k-1)\).

Slips For slip-like biases the \(k\)-vector \(s_{l}\) is a vector having \(1\)s as its last \(k-l+1\) entries and zeros elsewhere. If we make use of \(P_{D_{k}}= I_{k}-e_{k}(e_{k}^{T}e_{k})^{-1}e_{k}^{T}\), it follows that \(\bar{s}_{l}=s_{l}-\frac{k-l+1}{k}e_{k}\) and \(\bar{s}_{l}^{T}\bar{s}_{l}=\frac{(k-l+1)(l-1)}{k}\). We therefore have

$$\begin{aligned} \begin{aligned} \hat{b}(l,k)&= \frac{k}{k-l+1}\left( \frac{1}{k} \sum _{i=1}^{k} \hat{\beta }(i)- \frac{1}{l-1} \sum _{i=1}^{l-1} \hat{\beta }(i) \right) \\&= \frac{1}{k-l+1} \sum _{i=l}^{k}\hat{\beta }(i)- \frac{1}{l-1} \sum _{i=1}^{l-1} \hat{\beta }(i) \end{aligned} \end{aligned}$$
(21)

This last expression clearly shows that in case of a slip, \(\hat{b}(l,k)\) is the difference of two time-averages of the \(\hat{\beta }(i)\). The first time-average averages over all epochs that supposedly contains the bias, while the second is the time-average over all bias-free epochs. Under \(\mathcal H _{a}\), the mean of the first time-average is \(b\), while that of the second time-average is zero.

Note that (21) reduces to (18) when \(l=k\). This shows that one cannot discriminate between spikes and slips on the basis of one single epoch. That is, one needs to have a delay (\(k>l\)) to be able to separate spikes from slips.

For computational purposes it is easier to use the first expression of (21), because of the presence of the running averages. We therefore use this expression to formulate the corresponding test statistic for slips. It reads

$$\begin{aligned} T_{q}(l,k)= \frac{k(l-1)}{k-l+1} ||\bar{\beta }(k)-\bar{\beta }(l-1)||_{Q_{\hat{\beta }\hat{\beta }}^{-1}}^{2} \end{aligned}$$
(22)

It is thus formed from the difference of two time-averages of the \(\hat{\beta }(i)\), namely the time-average over the epochs up to and including the time of testing \(k\) and the time-average over the epochs up to time \(l\) at which the slip is assumed to have started. For \(l=k\) this test statistic becomes identical to (20).

3.3 Minimal detectable biases

Under the alternative hypothesis \(\mathcal H _{a}\), the test statistic \(T_{q}\) is distributed as a noncentral \(\chi ^{2}\)-distribution with \(q\) degrees of freedom, \({T}_{q} \mathop {\sim }\limits ^\mathcal{H _{a}} \chi ^{2}(q,\lambda )\), where \(\lambda = b^{T}Q_{\hat{b}\hat{b}}(l,k)^{-1}b \) is the noncentrality parameter. Test (12) is an UMPI-test, meaning that for all \(b\), it maximizes the power within the class of invariant tests. Here, power, denoted as \(\gamma \), is defined as the probability of correctly rejecting \(\mathcal H _{0}\); thus \(\gamma =P [{T}_{q} > \chi ^{2}_{\alpha }(q,0)| \mathcal H _{a}]\).

The power of test (12) depends on the degrees of freedom \(q\) (i.e., the dimension of \(b\)), the level of significance \(\alpha \), and through the noncentrality parameter \(\lambda \), on the bias vector \(b\). Once \(q, \alpha \) and \(b\) are given, the power can be computed.

One can, however, also follow the inverse route. That is, given the power \(\gamma \), the level of significance \(\alpha \) and the dimension \(q\), the noncentrality parameter can be computed, symbolically denoted as \(\lambda _{0} = \lambda (\alpha , q, \gamma )\). Figure 1 shows the relation between \(\lambda _{0}\) and \(\gamma \) for different values of \(q\) and \(\alpha \). With \(\lambda _{0}\) given, one can formulate the following quadratic equation in \(b\):

$$\begin{aligned} b^{T}Q_{\hat{b}\hat{b}}(l,k)^{-1}b = \lambda _{0} \end{aligned}$$
(23)

This equation is said to describe, for test (12), the reliability of the null hypothesis \(\mathcal H _{0}\) with respect to the alternative hypothesis \(\mathcal H _{a}\). For \(q=1\), Eq. (23) describes an interval, for \(q=2\) it describes an ellipse and for \(q>2\) it describes an (hyper)ellipsoid. Bias vectors \(b \in R^{q}\) that lie on or outside the ellipsoid (23) can be found with at least probability \(\gamma \).

Fig. 1
figure 1

Square-root of noncentrality parameter \(\lambda _{0}\) as function of power \(\gamma \) for different degrees of freedom \(q\) and different levels of significance \(\alpha \)

To determine the bias vectors that satisfy (23), we use the factorization \(b= || b || d\), where \(d\) is a unit vector \((d^{T}d=1)\). Substitution into (23) and inversion gives

$$\begin{aligned} \mathrm{MDB}(l,k)\! =\! \sqrt{\left(\frac{\lambda _{0}}{d^{T}Q_{\hat{b}\hat{b}}(l,k)^{-1}d}\right)}d\;\;\;\;(d= \mathrm{unit\;vector})\nonumber \\ \end{aligned}$$
(24)

This is the celebrated Minimal Detectable Bias (MDB) vector of Baarda’s reliability theory (Baarda 1967, 1968). Its length is the smallest size of bias vector that can be found with probability \(\gamma \) in the direction \(d\) with test (12). By letting \(d\) vary over the unit sphere in \(R^{q}\) one obtains the whole range of MDBs that can be detected with probability \(\gamma \) with test (12). For the one-dimensional case \((q=1)\), we have \(d=\pm 1\) and therefore \(\mathrm{MDB}(l,k)=\sigma _{\hat{b}}(l,k)\sqrt{\lambda _{0}}\).

Baarda, in his work on the strength analysis of general purpose networks, applied his general MDB-form to data snooping, thus obtaining the scalar boundary values (in Dutch: ‘grenswaarden’). Applications of the vectorial form can be found, for example, in Van Mierlo (1980, 1981) and Kok (1982a) for deformation analysis, in Foerstner (1983) for photogrammetric linear trend testing and in Teunissen (1986) for testing digitized maps. For recursive testing, with application of testing time and types of error, the first innovation-based vectorial MDB was given in Teunissen (1990b). Application of the generalized eigenvalue problem to the vectorial form to obtain MDB-bounds can be found in e.g., (Teunissen 2000; Knight et al. 2010).

Earlier (cf. 12) it was assumed that the variance matrix \(Q_{\hat{b}\hat{b}}\) in the teststatistic \(T_{q}\) is known. In case, however, the variance factor \(\sigma ^{2}\) in \(Q_{\hat{b}\hat{b}}=\sigma ^{2}G_{\hat{b}\hat{b}}\) is unknown, then the Chi-square distributed teststatistic needs to be replaced by the \(F\)-distributed teststatistic \(T_{q,df}^{\prime }=\hat{b}^{T}G_{\hat{b}\hat{b}}^{-1}\hat{b}/(\hat{\sigma }^{2}q)\), in which \(\hat{\sigma }^{2}\) is the unbiased estimator of the variance factor under the alternative hypothesis and \(df\) is its degrees of freedom. This teststatistic is distributed under \(\mathcal H _{a}\) as \(T_{q,df}^{\prime } \sim F(q, df, \lambda )\), with the same noncentrality parameter as that of \(T_{q}\) (Kok 1982b; Koch 1999). Therefore also in case \(\sigma ^{2}\) is estimated, will the same MDB expression be found as given in (24). Hence, similarly as with the other statistical parameters, the effect on the MDB, for the two cases \(\sigma ^{2}\) known versus \(\sigma ^{2}\) estimated, is only felt through the scaling factor \(\lambda _{0}\). In this contribution we work with \(\lambda _{0}\) computed from the Chi-square distribution.

If we substitute (16) into (24), the MDBs for spikes and slips work out as

$$\begin{aligned} \mathrm{MDB}(l,k) = f(l,k) \mathrm{MDB}(2,2) \end{aligned}$$
(25)

with

$$\begin{aligned} \mathrm{MDB}(2,2)= \sqrt{ \left( \frac{2\lambda _{0}}{d^{T}Q_{\hat{\beta }\hat{\beta }}^{-1}d}\right)} d \end{aligned}$$
(26)

and

$$\begin{aligned} f(l,k)=\sqrt{\frac{1}{2}\left(\frac{1}{k-l+1}+\frac{1}{l-1}\right)} \left\{ \begin{array}{ll} \mathrm{for\;spikes}&\quad l=k \\ \mathrm{for\;slips}&\quad l \le k \end{array}\right.\nonumber \\ \end{aligned}$$
(27)

The MDBs get smaller if more epochs of data are used (\(k\) gets larger) and/or a more precise bias-estimator \(\hat{\beta }\) is used (\(Q_{\hat{\beta }\hat{\beta }}\) gets ‘smaller’). Note that the spike-MDB depends on \(k\), whereas the slip-MDB depends on both \(l\) and \(k\). Hence, the detectability of spikes does not depend on the time instance of their occurrence, whereas the detectability of slips does depend on these time instances. For \(k\) fixed, the slip-MDB reaches its minimum at \(\lfloor k/2 \rfloor +1\). Hence, for a given observational time span, slips are best detectable if they occur ‘half way’ in the time span. The graph of the function \(f(l,k)\) is given in Fig. 2. It shows by how much the \(\mathrm {MDB}(2,2)\) improves when \(l\) and \(k\) are larger than 2.

Fig. 2
figure 2

The function \(f(l,k)=\sqrt{\frac{1}{2}\left(\frac{1}{k-l+1}+\frac{1}{l-1}\right)}\) for variable \(k=l\) and for variable \(l \le k\), with \(k \) fixed \((k=4,5,6,8,10,20)\)

In the following, we present the MDBs for the two-epoch case (\(k=2, l=2\)). The corresponding MDB-values for arbitrary epochs can then be obtained by using the multiplication factor \(f(l,k)\) of (25).

4 Detectability of carrier phase slips

In this section we present and analyze the phase-slip MDBs. This is done for the single-, dual- and multi-frequency case. We also analyze the phase-slip MDBs in case code data are absent.

4.1 Minimal detectable carrier phase slips

In the following, MDB values have been computed numerically using the complete set of zenith-referenced code and phase variances according to Table 2, and analytical MDB expressions have been derived for which the phase and code variance matrices have been simplified to scaled unit-matrices, i.e., \(Q_{\phi \phi }=\sigma _{\phi }^{2}I_{n}\) and \(Q_{pp}=\sigma _{p}^{2}I_{n}\). For the standard deviation of the scaled unit-matrices we have used the mean value of the standard deviations of the available signals (except when explicitly stated otherwise). The MDB values from both the numerical computations and the analytical expressions are presented graphically. The differences between the two are shown to be small, especially when the used signals have comparable precision, which indicates that the analytical expressions indeed give a proper representation of the single-receiver, single-channel detectability (in the MDB graphs below, the dashed curves correspond to the analytical expressions, while the full curves correspond to the MDBs computed from the actual variance matrices). For all MDBs which pertain to an error on a single frequency, we have chosen to compute the MDB for an error on the first frequency of the available frequencies. For GPS this is the L1 frequency and for Galileo the E1 frequency when available.

The analytical expression for the multi-frequency phase-slip MDB is given in the following theorem:

Theorem 2

(Phase-slip MDB) Let \(H=(\delta _{j}^{T}, 0, 0)^{T}, Q_{\phi \phi }=\sigma _{\phi }^{2}I_{n}\) and \(Q_{pp}=\sigma _{p}^{2}I_{n}\). Then for \(k=2\), the MDB for a slip in the \(j\)th frequency carrier phase observable is given as

$$\begin{aligned} \mathrm{MDB}_{\phi _{j}} = \sigma _{\phi } \sqrt{ \left(\frac{2\lambda _{0}}{1-\frac{1}{n^{*}}} \right)} \end{aligned}$$
(28)

with scalar

$$\begin{aligned} \frac{1}{n^{*}}\!=\!\frac{1}{n}\frac{1}{1\!+\!\epsilon }\left(1\! +\! \frac{ (\mu _{j}\!-\!\frac{1\!-\!\epsilon }{1\!+\!\epsilon } \bar{\mu })^{2} }{ \frac{1}{n}\sum _{i=1}^{n}\mu _{i}^{2} \!-\! \left(\frac{1\!-\!\epsilon }{1\!+\!\epsilon }\right)^{2} \bar{\mu }^{2}\! +\! \frac{2\sigma _{\phi }^{2}/\sigma _{d\mathcal I }^{2}}{n(1\!+\!\epsilon )} } \right)\nonumber \\ \end{aligned}$$
(29)

where \(\epsilon =\sigma _{\phi }^{2}/\sigma _{p}^{2}\) is the phase-code variance ratio and \(\bar{\mu }=\frac{1}{n}\sum _{i=1}^{n} \mu _{i}\) is the average of the squared frequency ratios \(\mu _{i}=f_{1}^{2}/f_{i}^{2}, i=1, \ldots , n\).

Proof

see Appendix. \(\square \)

Note that the slip MDB is scaled with \(\sigma _{\phi }\), the small standard deviation of the carrier phase observable. Thus if the bracketed ratio of (28) is not too large, small carrier phase slips will be detectable. The bracketed term depends on \(\lambda _{0}\) and on \(n^{*}\). The scalar \(n^{*}\) is dependent on \(\epsilon , \mu _{i} (i=1, \ldots , n)\) and \(\sigma _{\phi }^{2}/\sigma _{d\mathcal I }^{2}\). Hence, it depends on the measurement precision, on the number of frequencies and their spacings, and on the smoothness of the ionosphere. The MDB gets smaller if \(\epsilon \) gets larger, i.e., if more precise code data are used. The MDB also gets smaller if \(n\) gets larger, i.e., if more frequencies are used. Finally, note that the MDB-dependence on the frequency diversity (i.e., on \(\mu _{i}, i=1, \ldots , n\)) is driven to a large part by the smoothness of the ionosphere. This dependence is absent for \(\sigma _{d\mathcal I }=0\) and it gets more pronounced the larger \(\sigma _{d\mathcal I }\) gets.

We now analyze the slip MDB for the GPS and Galileo single-, dual- and triple-frequency cases.

4.1.1 Single-frequency case

For the single-frequency case \((n=1)\), the carrier phase slip MDB (28) can be worked out to give

$$\begin{aligned} \mathrm{MDB}_{\phi _{j}} = \sigma _{p} \sqrt{2\left(1+\frac{\sigma _{\phi }^{2}}{\sigma _{p}^{2}}+2 \mu _{j}^{2}\frac{\sigma _{d\mathcal I }^{2}}{\sigma _{p}^{2}}\right) \lambda _{0}} \end{aligned}$$
(30)

This result shows that single-frequency phase slip detection is possible in principle, but that its performance depends very much on the smoothness of the ionosphere and on the measurement precision of code. If \(\sigma _{d\mathcal I }^{2}=\infty \), then \(\mathrm{MDB}_{\phi _{j}}=\infty \), meaning that single-frequency slip detection has become impossible. If the ionospheric delay is so smooth that the ratio \(\sigma _{d\mathcal I }^{2}/\sigma _{p}^{2}\) may be neglected, we get with \(\epsilon \approx 0, \mathrm{MDB}_{\phi _{1}} = \sigma _{p} \sqrt{2\lambda _{0}}\). Hence, for a sufficiently smooth ionospheric delay, we may detect slips of about six times the code standard deviation (here and in the following the reference value of the noncentrality parameter is taken as \(\lambda _{0}=17.02\); it corresponds to \(q=1, \alpha =0.001\) and \(\gamma =0.80\), see Fig. 1).

The numerical values of the GPS and Galileo single-frequency phase-slip MDBs are graphically displayed in Fig. 3 as function of \(\sigma _{d \mathcal I }\). It shows that the MDBs are approximately constant for \(\sigma _{d \mathcal I } \le 10^{-2}\) m, but then rapidly increase for larger values of \(\sigma _{d \mathcal I }\). The constant values are about \(146\) cm for L1 and L2, \(117\) cm for E1, \(88\) cm for L5, E5a, E5b and E6 and \(41\) cm for E5. These three levels reflect the difference in the code measurement precision of the signals. Since these single-frequency MDBs are all larger than their corresponding wavelengths, time-windowing (\(N=k-l+1>1\) c.f. 25) will be needed to bring the MDBs down to smaller values. Accepting a delay in testing is then the price one has to pay for the increase in detectability.

Fig. 3
figure 3

Single-frequency GPS and Galileo phase-slip MDBs for \(k=2\); dashed curves are based on Eq. (30)

4.1.2 Dual- and multi-frequency case

It follows from (28) that the dual- and multi-frequency phase-slip MDB is bounded from below as

$$\begin{aligned} \mathrm{MDB}_{\phi _{j}} \ge \sigma _{\phi }\sqrt{2 \left(\frac{n(1+\epsilon )}{n(1+\epsilon )-1}\right)\lambda _{0}} \end{aligned}$$
(31)

This lower bound is obtained for \(\sigma _{d\mathcal I }=0\). This shows that for a sufficiently smooth ionospheric delay, very small slips can be found, even for the two-epoch case. This is confirmed by the \(S\)-shaped MDB graphs of Fig. 4. Very small slips can be detected (in order of a few cm), if the ionospheric delays are sufficiently smooth (\(\sigma _{d\mathcal I } \le 10^{-2}\) m). In this case, there is also no significant difference between the dual-frequency and multi-frequency performance. This difference is present though, for larger values of \(\sigma _{d\mathcal I }\). In particular the dual-frequency GPS phase-slip MDBs, and the Galileo E1 E5a, increase steeply when \(\sigma _{d\mathcal I } \ge 10^{-2}\) m gets larger. For the multi-frequency phase-slip MDBs the increase is much more moderate. All the multi-frequency phase-slip MDBs remain smaller than \(7\) cm, whereas the dual-frequency MDBs are all smaller than \(22\) cm. Those of Galileo are smaller than their GPS counterparts, due to their improved code precision, except that L1–L2–L5 outperforms E1–E5a–E5b due to a better distribution of the frequencies. We can also see that the analytical expression is further removed from the numerical results for the E1–E5 combination, which is a result of the large difference in precision between these two signals. The scaled unit matrix used for the code variance approximates the actual variance matrix less well.

Fig. 4
figure 4

Dual- and multi-frequency GPS and Galileo phase-slip MDBs for \(k=2\); dashed curves are based on Eqs. (28) and (29)

4.2 Cycle slip detection without code data

Since code data are generally much less precise than carrier phase data, one may wonder whether code data are really needed for carrier phase slip detection. This is also of interest for those applications where the code data are corrupted by multipath. In this section we therefore investigate what happens when \(\sigma _{p} \rightarrow \infty \). The corresponding MDBs can be obtained from Theorem 1 by taking the limit \(\lim _{\sigma _{p} \rightarrow \infty } \mathrm{MDB}_{\phi _{j}}\). We have the following result.

Lemma 1

(Codeless phase-slip MDB) The codeless phase-slip MDB \(\lim _{\sigma _{p} \rightarrow \infty } \mathrm{MDB}_{\phi _{j}}\) follows from (28) using

$$\begin{aligned} \lim _{\sigma _{p} \rightarrow \infty } \left(1\!-\!\frac{1}{n^{*}}\right)\! =\! \left( 1\!-\!\frac{1}{n}\right)\! -\! \frac{ (\mu _{j}\!-\!\bar{\mu })^{2} }{ \sum _{i=1}^{n}(\mu _{i}\!-\!\bar{\mu })^{2} \!+\! 2\sigma _{\phi }^{2}/\sigma _{d\mathcal I }^{2} }\nonumber \\ \end{aligned}$$
(32)

or using the limit of the inverse

$$\begin{aligned} \underset{\sigma _{p} \rightarrow \infty }{\lim } \left(1\!-\!\frac{1}{n^{*}} \right)^{\!-\!1}&= \left(1-\frac{1}{n}\right)^{-1} \nonumber \\&+ \frac{(\mu _{j}\!-\!\bar{\mu }_{(j)})^{2}}{\sum _{i\ne j}^{n}(\mu _{i}\!-\!\bar{\mu }_{(j)})^{2}\!+\!2\sigma _{\phi }^{2}/\sigma _{d\mathcal I }^{2}} \end{aligned}$$
(33)

where \(\bar{\mu }_{(j)}=\frac{1}{n-1}\sum _{i \ne j}^{n} \mu _{i}\) is the average of the squared frequency ratios that excludes \(\mu _{j}\).

Proof

Expression (32) follows from taking the limit of (29). Expression (33) follows from inverting (32) and rearranging terms. \(\square \)

The above two expressions clearly show the effect of frequency diversity. The MDB gets smaller, the larger the frequency diversity \(\sum _{i=1}^{n}(\mu _{i}-\bar{\mu })^{2}\) is. And within a set of \(n>1\) MDBs, the smallest \(\mathrm{MDB_{\phi _{j}}}\) is the one for which \(\mu _{j}\) is closest to the average \(\bar{\mu }\).

4.2.1 Single-frequency case

In the single-frequency case we have \(n=1\) and thus no frequency diversity, i.e., \(\sum _{i=1}^{n}(\mu _{i}-\bar{\mu })^{2}=0\). This shows that \(n^{*}=1\) for \(n=1\) (c.f. 32) and that therefore \(\mathrm{MDB}_{\phi _{j}}=\infty \). Hence, phase-slip detection without code data is impossible for the single-frequency case (see also the redundancy Table 3).

4.2.2 Dual-frequency case

In the dual-frequency case \((n=2)\) we have \((\mu _{j}-\bar{\mu })^{2}=\frac{1}{2}(\sum _{i=1}^{n}(\mu _{i}-\bar{\mu })^{2})\). Hence, \(n^{*}=1\) (c.f. 32) if \(n=2\) and \(\sigma _{d\mathcal I }=\infty \). In that case dual-frequency phase-slip detection without code data becomes impossible. In all other cases, however, we have

$$\begin{aligned} \lim _{\sigma _{p} \rightarrow \infty } \mathrm{MDB}_{\phi _{j}}=\sigma _{\phi }\sqrt{\left(4+(\mu _{1}-\mu _{2})^{2}\frac{\sigma _{d\mathcal I }^{2}}{\sigma _{\phi }^{2}}\right)\lambda _{0}} \end{aligned}$$
(34)

This shows that very small phase-slips can be detected when the ionospheric delays are sufficiently smooth. Figure 5 shows them to be less than \(3\) cm for \(\sigma _{d \mathcal I } \le 10^{-2}\) m. For larger values, the MDBs increase linearly, with the gradient driven by the frequency diversity; the closer the frequencies, the less steep the increase is.

Fig. 5
figure 5

Dual-frequency GPS and Galileo phase slip MDB without code data for \(k=2\); dashed curves are based on Eq. (34)

When we compare Fig. 5 with Fig. 4, we note that the phase-slip MDB values are not too different for sufficiently small \(\sigma _{d\mathcal I }\), but that their differences increase for larger \(\sigma _{d\mathcal I }\). Thus the presence of the code data are particularly needed when the ionospheric delays are not smooth enough. Codeless dual-frequency phase-data is sufficient to detect phase-slips otherwise.

4.2.3 Multi-frequency case

In the multi-frequency case the general form of the codeless phase-slip MDB follows from (28) and (33) as

$$\begin{aligned}&\lim _{\sigma _{p} \rightarrow \infty }\mathrm{MDB}_{\phi _{j}} \nonumber \\&\quad = \sigma _{\phi } \sqrt{2\left(\frac{n}{n\!-\!1}\! +\!\frac{(\mu _{j}\!-\!\bar{\mu }_{(j)})^{2}}{\sum _{i\ne j}^{n}(\mu _{i}\!-\!\bar{\mu }_{(j)})^{2}\!+\!2\sigma _{\phi }^{2}/\sigma _{d\mathcal I }^{2}} \right) \lambda _{0} }\nonumber \\ \end{aligned}$$
(35)

To discuss its dependence on the ionospheric variance and on the frequency distribution, we start from the most optimal scenario. The MDB is smallest when \(\sigma _{d\mathcal I }^{2}=0\), in which case the frequency dependence only includes the number of frequencies but not their diversity,

$$\begin{aligned} \lim _{\sigma _{p} \rightarrow \infty , \sigma _{d\mathcal I } \rightarrow 0}\mathrm{MDB}_{\phi _{j}}= \sigma _{\phi }\sqrt{2 \left(\frac{n}{n-1}\right)\lambda _{0}} \end{aligned}$$
(36)

For \(\sigma _{d\mathcal I }^{2} \ne 0\), the MDB is smallest if all frequencies are the same (\(\mu _{i}=1, i=1, \ldots , n\)), i.e., if the vector \(\mu =(\mu _{1}, \ldots , \mu _{n})^{T}\) is parallel to the vector \(e_{n}=(1, \ldots , 1)^{T}\). One would then get the same MDB as (36), i.e., the one that corresponds with \(\sigma _{d\mathcal I }^{2}=0\). This can be explained as follows: If \(\mu \) and \(e_{n}\) are parallel vectors, then the ionospheric delay \(\mathcal I (i)\) gets lumped with \(\rho ^{*}(i)\) (c.f. 4 and 5), reducing the model in essence to an ionosphere-fixed one. Thus in the absence of code data, the absence of frequency diversity is best for phase-slip detection.

Now assume that not all components of vector \(\mu \) are the same, but that instead all but one of them are the same. Thus \(\mu _{i}=\tilde{\mu }, \forall i\ne j\). Then the codeless phase-slip MDB (35) works out as

$$\begin{aligned} \lim _{\sigma _{p} \rightarrow \infty }\mathrm{MDB}_{\phi _{j}}\! =\! \sigma _{\phi }\sqrt{2\left(\frac{n}{n\!-\!1}\!+\!(\mu _{j}\!-\!\tilde{\mu })^{2}\frac{\sigma _{d\mathcal I }^{2}}{2\sigma _{\phi }^{2}}\right)\lambda _{0}} \end{aligned}$$
(37)

This expression generalizes (34) for \(n>2\). Its value goes to infinity for \(\sigma _{d\mathcal I }^{2} \rightarrow \infty \). In this case, it is the lack of frequency diversity in the \(n-1\) phase data, \(\phi _{i}, i \ne j\), that makes it impossible to solve for the ionospheric delay and therefore also for detecting a slip in the \(j\)th frequency phase observable.

For the triple-frequency case \((n=3)\), the following bounds can be formulated:

$$\begin{aligned}&\sigma _{\phi }\sqrt{3\lambda _{0}} \le \lim _{\sigma _{p} \rightarrow \infty } \mathrm{MDB}_{\phi _{j}} \nonumber \\&\quad \le \sigma _{\phi } \sqrt{2\left(1\!+\! \frac{(\mu _{j_{1}}\!-\!\mu _{j_{3}})^{2}\!+\!(\mu _{j_{1}}\!-\!\mu _{j_{2}})^{2}}{(\mu _{j_{2}}\!-\!\mu _{j_{3}})^{2}}\right)\lambda _{0}} \end{aligned}$$
(38)

with the cyclic indices \((j_{1}, j_{2}, j_{3})=(1,2,3), (2,3,1), (3,1,2)\) depending on whether \(j=1, 2\) or \(3\). The lower bound corresponds with \(\sigma _{d\mathcal I }^{2}=0\), while the upper bound corresponds with \(\sigma _{d\mathcal I }^{2}=\infty \).

These bounds show that very small phase-slips can be detected, even when the code data are absent. This is confirmed by the graphs of Fig. 6. All codeless phase-slip MDBs are less than \(10\) cm and even as small as about \(1\) cm when \(\sigma _{d\mathcal I } \le 3 \times 10^{-3}\) m. For larger values of \(\sigma _{d\mathcal I }\) the differences in the triple-frequency MDBs become clearly visible. This is due to their frequency dependence.

Fig. 6
figure 6

Multi-frequency GPS and Galileo phase slip MDB without code data for \(k=2\); dashed curves are based on Eq. (35)

When we compare the codeless results of Fig. 6 with the triple- and quadruple-frequency results of Fig. 4, no big differences can be seen. Hence, the impact of the code data on the phase-slip MDBs becomes less pronounced if more than two frequencies are used. The only noteworthy difference between the results of the two figures is the performance of E1–E5a–E5b. This difference in performance, compared with the other triple-frequency results, is due to the small frequency separation of E5a and E5b.

5 Detectability of code outliers

In this section we present and analyze the code-outlier MDBs. This is done for the single-, dual- and multi-frequency case. We also analyze the code-outlier MDBs in case phase data are absent.

5.1 Minimal detectable code outliers

The analytical expression for the multi-frequency code-outlier MDB is given in the following theorem:

Theorem 3

(Code-outlier MDB) Let \(H=(0, \delta _{j}^{T}, 0)^{T}, Q_{\phi \phi }=\sigma _{\phi }^{2}I_{n}\) and \(Q_{pp}=\sigma _{p}^{2}I_{n}\). Then for \(k=2\), the MDB for an outlier in the \(j\)th frequency code observable is given as

$$\begin{aligned} \mathrm{MDB}_{p_{j}}= \sigma _{p}\sqrt{ \left(\frac{2 \lambda _{0}}{1-\frac{1}{m^{*}}}\right)} \end{aligned}$$
(39)

with

$$\begin{aligned} \frac{1}{m^{*}}\!= \!\frac{1}{n} \frac{\epsilon }{1\!+\!\epsilon } \left( 1\! + \!\frac{ (\mu _{j}\!+\!\frac{1\!-\!\epsilon }{1\!+\!\epsilon } \bar{\mu })^{2} }{ \frac{1}{n}\sum _{i\!=\!1}^{n}\mu _{i}^{2}\! -\! \left(\frac{1\!-\!\epsilon }{1\!+\!\epsilon }\right)^{2}\bar{\mu }^{2} \!+\! \frac{\sigma _{\phi }^{2}/\sigma _\mathcal{I }^{2}}{n(1\!+\!\epsilon )} } \right) \end{aligned}$$
(40)

where \(\epsilon =\sigma _{\phi }^{2}/\sigma _{p}^{2}\) is the phase-code variance ratio and \(\bar{\mu }=\frac{1}{n}\sum _{i=1}^{n} \mu _{i}\) is the average of the squared frequency ratios \(\mu _{i}=f_{1}^{2}/f_{i}^{2}, i=1, \ldots , n\).

Proof

As the phase observables and code observables play a dual role in the two-epoch model (4), the code-outlier MDB can be found from the expression of the phase-slip MDB (28) through an interchange of the phase and code variance. \(\square \)

Although (39) and (40) have the same structure as (28) and (29), respectively, there are marked differences between these expressions. First note that (39) is scaled by the standard deviation of code and not by that of phase as in (28). Second, the frequency-dependent term between brackets in (40) is multiplied with the very small phase-code variance ratio \(\epsilon \), while this is not the case with the bracketed term of (29). The consequences of these differences are that the dual- and multi-frequency code-outlier MDBs are generally larger than those of the phase-slip MDBs and that they are less sensitive to the frequencies. The exception occurs in the single-frequency case.

5.1.1 Single-frequency case

In the single-frequency case, for \(k=2\), the code-outlier MDB is identical to that of the phase-slip MDB. This follows if we interchange the role of \(\sigma _{p}^{2}\) and \(\sigma _{\phi }^{2}\) in (30). For \(k>2\), however, the MDBs differ of course. In case of a slip the multiplication factor is \(\frac{1}{\sqrt{2}} \sqrt{\frac{1}{k-l+1}+\frac{1}{l-1}}\), while for an code-outlier it is \(\frac{1}{\sqrt{2}} \sqrt{1+\frac{1}{k-1}}\).

5.1.2 Dual- and multi-frequency case

We already remarked that in case of a sufficiently smooth ionosphere, the dual- and multi-frequency phase-slip MDBs become relatively insensitive to the frequencies. This can be seen in Fig. 4, but it also follows from the lower bound (31). The reason for this insensitivity lies in the fact that the frequency-dependent bracketed term of (29) reduces to 1 for \(\sigma _{d\mathcal I } \rightarrow 0\). This effect is also present in the code-outlier MDB bracketed term of (40). However, with (40) there is the additional effect that the bracketed term is multiplied with the very small phase-code variance ratio. Hence, the MDB is now also less sensitive to the frequencies for larger values of \(\sigma _{d\mathcal I }\). This means that one can expect the lower bound

$$\begin{aligned} \mathrm{MDB}_{p_{j}} \ge \sigma _{p}\sqrt{2 \lambda _{0}} \end{aligned}$$
(41)

to be a good approximation to the code-outlier MDB. After all, this lower bound follows from neglecting \(\frac{1}{m*}\) in (40). Thus, for \(\alpha =0.001\) and \(\gamma =0.80\), giving \(\lambda _{0}=17.02\), one can expect the code-outlier MDB to be about six times the code standard deviation. This is confirmed by the graphs of Fig. 7. The figure shows that the code-outlier MDBs are not very sensitive to the available signals and frequencies. Additionally, the MDBs are nearly constant with the variance of the time-differenced ionospheric delay (no MDB variations are visible at the scale of this figure). Compare with phase-slip MDB Fig. 4. The two levels shown in Fig. 7 correspond to the different code measurement precision levels of the GPS L1 and Galileo E1 signals (cf. Table 2). Figure 7 is the only figure for which we have directly used the standard deviation of the L1 and E1 signals in the analytical expressions (instead of the mean value of the available signals), since only the precision of these signals has any impact on the size of the MDBs.

Fig. 7
figure 7

Dual- and multi-frequency GPS and Galileo code outlier MDBs for \(k=2\); dashed curves are based on Eqs. (39) and (40)

5.2 Code outlier detection without phase data

The lower bound (41) follows from taking the limit \(\sigma _{\phi }^{2} \rightarrow 0\) in (39). We now consider the other extreme, \(\sigma _{\phi }^{2} \rightarrow \infty \). It corresponds to code outlier detection without the use of carrier phase data. The corresponding MDB will be larger than (41). Furthermore, the absence of carrier phase data will now make the MDB dependent on the frequencies and the ionospheric variance. This follows, since the phase-variance limit of (40) reads

$$\begin{aligned} \lim _{\sigma _{\phi }^{2} \rightarrow \infty } \frac{1}{m^{*}}=\frac{1}{n} + \frac{ (\mu _{j}- \bar{\mu })^{2} }{ \sum _{i=1}^{n}(\mu _{i}- \bar{\mu })^{2} + \sigma _{p}^{2}/\sigma _\mathcal{I }^{2} } \end{aligned}$$
(42)

We now again discriminate between the three cases \(n=1, n=2\) and \(n>2\).

5.2.1 Single-frequency case

Just like single-frequency codeless phase-slip detection is impossible, so is single-frequency code-outlier detection without phase data. This follows directly from Table 1, which shows that redundancy is absent, when phase data is absent in case \(n=1\). It also follows from (42), which shows that \(m^{*}=1\) if \(n=1\).

5.2.2 Dual-frequency case

In the dual-frequency case, the phaseless code-outlier MDB is given as

$$\begin{aligned} \mathrm{MDB}_{p_{j=1}} = \sigma _{p}\sqrt{\left(4+\frac{(\mu _{1}-\mu _{2})^{2}\sigma _{d\mathcal I }^{2}}{\sigma _{p}^{2}}\right)\lambda _{0}} \end{aligned}$$
(43)

It follows from interchanging the role of the phase- and code variance in (34). Expression (43) shows that the MDB gets larger (poorer detectability) if the frequency separation gets larger (larger \(|\mu _{2}-\mu _{1}|\)). This is perhaps contrary to what one would expect. However, one should not confuse the estimability of the ionosphere in the absence of biases, i.e., under the null hypothesis \(\mathcal H _{0}\), with the detectability of biases in the presence of the ionosphere. Since the variance of the ionospheric delay can be shown to be inversely proportional to \(|\mu _{2}-\mu _{1}|\), the ionospheric delay estimator gets indeed more precise when the frequencies are further separated. The contrary happens, however, with the outlier detectability. The detectability of the outliers becomes poorer for larger frequency separation and this effect becomes more pronounced for larger \(\sigma _{d\mathcal I }^{2}\). This frequency dependence is absent in case \(\sigma _{d \mathcal I }^{2}=0\).

The graphs for the dual-frequency phaseless code-outlier MDBs are given in Fig. 8. Compare this figure with Fig. 5. The graphs in both figures show a similar shape. In the case of the code-outlier MDBs, however, the graphs do not coincide because of the different levels of code measurement precision of the signals. When we compare Fig. 8 with Fig. 7, we also clearly show the impact of the phase data. With the phase data included, the code-outlier MDB not only becomes smaller, but also the steep increase experienced in the phaseless case for \(\sigma _{d\mathcal I } \ge 10^{-1}\) m is eliminated. Without the phase data, the code-outlier MDB is more dependent on the smoothness of the ionospheric delay.

Fig. 8
figure 8

Dual-frequency GPS and Galileo code-outlier MDBs for \(k=2\) without phase data; dashed curves are based on Eq. (43)

5.2.3 Multi-frequency case

The multi-frequency phaseless code-outlier MDB follows from interchanging the phase and code variance in (35). Their graphs are shown in Fig. 9. When compared with Fig. 8, they seem to show the same behavior as in the dual-frequency case. This is not true, however. In the dual-frequency case the code-outlier MDB keeps growing with increasing \(\sigma _{d\mathcal I }\), whereas in the multi-frequency case the MDB levels off for large enough \(\sigma _{d\mathcal I }\). Hence, for larger values than \(\sigma _{d\mathcal I }=10^{0}\) m, the graphs of Fig. 9 are \(S\)-shaped, just like those of Fig. 6.

Fig. 9
figure 9

Multi-frequency GPS and Galileo code-outlier MDBs for \(k=2\) without phase data; dashed curves are based on Eqs. (39) and (42)

6 Detectability of ionospheric disturbances

The analytical expression for the multi-frequency ionospheric disturbance MDB is given in the following theorem:

Theorem 4

(Ionospheric MDB) Let \(H=(0, 0, 1)^{T}, Q_{\phi \phi }=\sigma _{\phi }^{2}I_{n}\) and \(Q_{pp}=\sigma _{p}^{2}I_{n}\). Then for \(k=2\), the MDB for an ionospheric disturbance is given as

$$\begin{aligned} \mathrm{MDB}_{d\mathcal I }= \sigma _{d\mathcal I }\sqrt{ \left(1+\frac{\sigma _{\hat{d\mathcal I }}^{2}}{\sigma _{d\mathcal I }^{2}}\right)\lambda _{0}} \end{aligned}$$
(44)

with

$$\begin{aligned} \sigma _{\hat{d\mathcal I }}^{2}= \frac{2\sigma _{\phi }^{2}}{n \sigma _{\mu }^{2}} \left[ 1 + \epsilon \left(1+\frac{4}{1+\epsilon } \frac{\bar{\mu }^{2}}{\sigma _{\mu }^{2}}\right) \right]^{-1} \end{aligned}$$
(45)

where \(\epsilon =\sigma _{\phi }^{2}/\sigma _{p}^{2}\) is the phase-code variance ratio, \(\bar{\mu }=\frac{1}{n}\sum _{i=1}^{n} \mu _{i}\) is the average and \(\sigma _{\mu }^{2}=\frac{1}{n} \sum _{i=1}^{n}(\mu _{i} -\bar{\mu })^{2}\) is the ‘variance’ of the squared frequency ratios \(\mu _{i}=f_{1}^{2}/f_{i}^{2}, i=1, \ldots , n\).

Proof

Let \(\hat{d \mathcal I }\), with variance (45), be the LS estimator of \(d\mathcal I \) based on the two-epoch model under \(\mathcal H _{0}\) (cf. 9) using phase and code data only. Then it follows from the structure of the model under \(\mathcal H _{a}\) that the LS bias estimator of the ionospheric disturbance is given as the difference \(\hat{b}_{d \mathcal I }=d\mathcal I -\hat{d \mathcal I }\). Therefore, its variance is given by the sum \(\sigma _{d\mathcal I }^{2}+\sigma _{\hat{d\mathcal I }}^{2}\), from which the result follows. \(\square \)

The above result clearly shows what role is played by the a-priori ionospheric standard deviation, \(\sigma _{d\mathcal I }\), the measurement precision, \(\sigma _{\phi }\) and \(\sigma _{p}\), and the distribution of the frequencies, \(f_{i}, i=1, \ldots , n\). In case all \(n\) frequencies are equal, then \(\sigma _{\mu }^{2}=0\), and the MDB reduces to

$$\begin{aligned} \mathrm{MDB}_{d\mathcal I }= \sigma _{d\mathcal I }\sqrt{ \left(1+\frac{\sigma _{p}^{2}}{ \sigma _{d\mathcal I }^{2}}\frac{1+\epsilon }{2n \bar{\mu }^{2}}\right)\lambda _{0}} \end{aligned}$$
(46)

Although ionospheric disturbance testing is then still possible in principle, its performance will then primarily be driven by the code variance. Figure 10 shows the MDB for the single-frequency case (\(n=1\)).

Fig. 10
figure 10

Single-frequency ionospheric MDBs for \(k=2\); dashed curves are based on Eq. (46)

When there is a nonzero ’variance’ in the frequencies, \(\sigma _{\mu }^{2}\ne 0\), then codeless or phaseless testing is possible as well. The codeless MDB follows from (44) as

$$\begin{aligned} \lim _{\sigma _{p} \rightarrow \infty } \mathrm{MDB}_{d\mathcal I }= \sigma _{d\mathcal I }\sqrt{ \left(1+\frac{\sigma _{\phi }^{2}}{ \sigma _{d\mathcal I }^{2}}\frac{2}{n \sigma _{\mu }^{2}}\right)\lambda _{0}} \end{aligned}$$
(47)

If we replace \(\sigma _{\phi }^{2}\) in this expression by \(\sigma _{p}^{2}\), we obtain the corresponding phaseless MDB. Figures 11 and 12 show the codeless and phaseless MDBs for the different cases.

Fig. 11
figure 11

Dual- and multi-frequency codeless ionospheric MDBs for \(k=2\); dashed curves are based on Eq. (47)

Fig. 12
figure 12

Dual- and multi-frequency phaseless ionospheric MDBs for \(k=2\); dashed curves are based on Eq. (47), with code variance replaced by phase variance

7 Detectability of phase loss-of-lock

Phase loss-of-lock is defined as the simultaneous occurrence of an unknown multivariate slip in all \(n\) carrier phase observables. To study its detectability, we first determine the variance matrix of the multivariate slip under \(\mathcal H _{a}\) and then provide bounds on the norm of the phase loss-of-lock MDB-vector.

7.1 The variance matrix of the multivariate slip

In the presence of a phase loss-of-lock, the design matrix of the alternative hypothesis (9) takes for \(k=l=2\) the form \([G, H]\), with \(H=[I_{n},0,0]^{T}\). From the structure of \([G,H]\), it follows that the carrier phase vector \(\phi (t,s)\) will not contribute to the estimation of the parameters \(\rho ^{*}(t,s)\) and \(\mathcal I (t,s)\) under \(\mathcal H _{a}\). These parameters are therefore solely determined by the code observables and a priori ionospheric information. As a consequence, the two-epoch bias estimator is given as the difference \(\hat{b}=\phi (t,s)-\hat{\phi }(t,s)\), where \({\hat{\phi }}(t,s)=e_{n}{\hat{\rho }}^{*}(t,s)- \mu {\hat{\mathcal{I }}} (t,s)\) is the least-squares phase estimator based solely on the code observables and a priori ionospheric information. Solving for \(\hat{\rho }^{*}(t,s)\) and \({\hat{\mathcal{I }}}(t,s)\), followed by applying the variance propagation law to \(\hat{b}=\phi (t,s)-e_{n}\hat{\rho }^{*}(t,s)+ \mu {\hat{\mathcal{I }}}(t,s)\) gives then the variance matrix of the multivariate slip. The result is given in the following Lemma:

Lemma 2

(Variance matrix of multivariate slip) For \(k=l=2\) and \(H=(I_{n},0,0)^{T}\), the variance matrix of the least-squares estimator of \(b\) in (9) is given as

$$\begin{aligned} Q_{\hat{b}\hat{b}} = 2Q_{\phi \phi }+2P_{e_{n}}Q_{pp}P_{e_{n}}^{T}+\sigma _{d {\hat{\mathcal{I }}}}^{2} R_{e_{n}}\mu \mu ^{T}R_{e_{n}}^{T} \end{aligned}$$
(48)

with \(\sigma _{d{\hat{\mathcal{I }}}}^{2}\!=\! (\frac{1}{2}\mu ^{T}Q_{pp}^{-1}P_{e_{n}}^{\perp }\mu \!+\! \sigma _{d\mathcal{I }}^{-2})^{-1},P_{e_{n}}^{\perp } \!=\!I_{n}-P_{e_{n}},P_{e_{n}}= e_{n}(e_{n}^{T}Q_{pp}^{-1}e_{n})^{-1}e_{n}^{T}Q_{pp}^{-1}\) and \(R_{e_{n}}=I_{n}+P_{e_{n}}\).

Note that the variance matrix is a sum of three matrices, the entries of which may differ substantially in size. The first matrix is governed by the precision of the phase observables and will therefore have small entries. The second matrix is governed by the precision of the code observables and will therefore have generally much larger entries than the first matrix in the sum. The third matrix depends, next to the precision of the code observables, also on \(\mu \) and \(\sigma _{d\mathcal I }^{2}\). Its entries will become smaller if \(\sigma _{d{\hat{\mathcal{I }}}}^{2}\) gets smaller. This happens for smaller \(\sigma _{d\mathcal I }^{2}\) (smoother ionospheric delays) and/or larger \(\mu ^{T}Q_{pp}^{-1}P_{e_{n}}^{\perp }\mu \) (better code precision and/or larger frequency diversity). Thus if \(\sigma _{d\mathcal I }^{2}=\infty \), frequency diversity is needed (i.e., \(\mu ^{T}Q_{pp}^{-1}P_{e_{n}}^{\perp }\mu \ne 0\)) so as to avoid the entries of the third matrix in (48) to become infinite.

We now discuss the detectability of the phase loss-of-lock for \(n \ge 2\). The single-frequency case \(n=1\) is already treated (cf. 30), since phase loss-of-lock is then equivalent to having a phase-slip.

7.2 Bounding the MDB vector

The variance matrix (48) can be used together with (25) to determine the phase loss-of-lock MDB-vector. Its length depends on the direction \(d\) in which the multivariate slip occurred,

$$\begin{aligned} ||\mathrm{MDB}|| = \sqrt{\frac{\lambda _{0}}{d^{T}Q_{\hat{b}\hat{b}}^{-1}d}} \end{aligned}$$
(49)

For certain directions, this may result in a short vector, while for other directions, it may be a long vector.

For its length, the following upper bound can be used:

$$\begin{aligned} ||\mathrm{MDB}|| \le \sigma _{d^{T}\hat{b}} \sqrt{\lambda _{0}} \end{aligned}$$
(50)

where \(\sigma _{d^{T}\hat{b}}^{2}=d^{T}Q_{\hat{b}\hat{b}}d\) is the variance of \(d^{T}\hat{b}\), with \(d\) being the unit vector that points in the direction of the slip. The upper bound is easier to obtain as it avoids the inversion of the variance matrix (48).

Considering (48), it is not difficult to see in which directions the MDB-vector will be short. If \(d \perp e_{n}\), then \(P_{e_{n}}^{T}d=0\), meaning that the second term of (48) will not contribute. And if \(d \perp \mathrm{span}\{e_{n}, \mu \}\), then \(R_{e_{n}}^{T}d=0\) and \(P_{e_{n}}^{T}d=0\), meaning that now also the third term will not contribute. Thus

$$\begin{aligned} ||\mathrm{MDB}|| \le \sqrt{2\lambda _{0}d^{T}Q_{\phi \phi }d}\;\;\mathrm{if}\;\;d \perp \mathrm{span}\{e_{n}, \mu \} \end{aligned}$$
(51)

This shows that the length of the MDB vector is very small indeed if \(d\) lies in the \((n-2)\)-dimensional space \(\mathrm{span}\{e_{n}, \mu \}^{\perp }\). In this case, the phase loss-of-lock has very good detectability, since the MDB is then solely driven by the very precise carrier phase data.

The situation changes drastically, however, if \(d\) is taken to lie in \(\mathrm{span}\{e_{n}, \mu \}\). In that case the large code variance dependent second and third term of (48) will contribute as well. The largest possible value that the length of the MDB vector can take corresponds with \(d\) being the eigenvector of \(Q_{\hat{b}\hat{b}}\) with largest eigenvalue. The corresponding bounds for the ionosphere-fixed and ionosphere-float case are given in the following Lemma:

Lemma 3

(Phase loss-of-lock MDB upper bounds) Let \(Q_{\phi \phi }=\sigma _{\phi }^{2}I_{n}, Q_{pp}=\sigma _{p}^{2}I_{n}\). Then

$$\begin{aligned} ||\mathrm{MDB}|| \le \left\{ \begin{array}{ll} \sigma _{p} \sqrt{2(1+\epsilon )\lambda _{0}}&\mathrm{if}\;\;\sigma _{d\mathcal I }^{2}=0 \\ \sigma _{p} \sqrt{2\left(1+\epsilon +\frac{2}{\sqrt{f}-1}\right)\lambda _{0}}&\mathrm{if}\;\;\sigma _{d\mathcal I }^{2}=\infty \end{array} \right. \end{aligned}$$
(52)

with \( f=1+\left(\frac{\sigma _{\mu }}{\bar{\mu }}\right)^{2} \), where \(\sigma _{\mu }^{2}=\frac{1}{n}\sum _{i=1}^{n}(\mu _{i}-\bar{\mu })^{2}\) and \(\bar{\mu }=\frac{1}{n}\sum _{i=1}^{n}\mu _{i}\).

Proof

see Appendix. \(\square \)

The ionosphere-fixed upper bound corresponds with a slip in the \(e_{n}\)-direction, while the ionosphere-float upper bound corresponds with a slip in the direction \(e_{n}+\frac{\sqrt{n}}{||\mu ||}\mu \). Thus phase loss-of-lock is most difficult to detect if it results in a slip with such direction. For example, for the ionosphere-fixed, dual- and triple-frequency (\(q=2, 3\)) cases, the length of the MDB-vector will then be about six to seven times the code standard deviation.

To conclude, we note that we can apply the duality of phase and code to the above lemma and so obtain directly also the length of the MDB vector \(||\mathrm{MDB}||_{p}\) that corresponds to the case that the complete \(n\)-dimensional code vector is outlying. By interchanging the phase- and code variance in (52), we obtain

$$\begin{aligned} ||\mathrm{MDB}||_{p} \le \left\{ \begin{array}{ll} \sigma _{p} \sqrt{2(1\!+\!\epsilon )\lambda _{0}}&\mathrm{if}\;\;\sigma _{d\mathcal I }^{2}\!=\!0 \\ \sigma _{p} \sqrt{2\left(1\!+\!\epsilon (1\!+\! \frac{2}{\sqrt{f}\!-\!1}) \right)\lambda _{0}}&\mathrm{if}\;\;\sigma _{d\mathcal I }^{2}\!=\!\infty \end{array} \right.\nonumber \\ \end{aligned}$$
(53)

The ionosphere-fixed upper bound is the same as in (52), but the ionosphere-float upper bound differs. In this second bound we note that the effect of frequency diversity (i.e., the effect of \(f\)) gets reduced due to its multiplication with the small phase-code variance ratio \(\epsilon \). This corresponds to our earlier findings in Sect. 5.1.2, where it was stated that over the considered range of \(\sigma _{d \mathcal I }^{2}\), the code-outlier MDB is much more insensitive to frequency diversity than the phase-slip MDB is.

8 Summary and conclusions

In this contribution we presented an analytical and numerical study of the integrity of the multi-frequency single-receiver, single-channel GNSS model. The UMPI test statistics for spikes and slips are derived and their detection capabilities are described by means of the concept of minimal detectable biases (MDBs). Analytical closed-form expressions of the phase-slip and code outlier MDBs have been given, thus providing insight into the various factors that contribute to the detection capabilities of the various test statistics. This was also done for the phaseless and codeless cases, as well as for the case of loss-of-lock.

The MDBs were evaluated numerically for the several GPS and Galileo frequencies. From these analyses it can be concluded that detectability of dual- and triple-frequency phase-slips works well for \(k=l=2\). Single-frequency phase-slip detectability, however, is problematic, thus requiring more epochs of data.

From the codeless phase-slip MDBs it follows that detectability is not possible in the single-frequency case, but that it is possible for the dual- and triple-frequency cases. In the dual-frequency case the codeless phase-slip MDBs are less then 10 cm if \(\sigma _{d \mathcal I } \le 3\) cm, while for the triple-frequency case this is already true for \(\sigma _{d \mathcal I } \le 1\) m. In the triple-frequency case, the phase-slip MDBs get even as small as a few centimeters if \(\sigma _{d \mathcal I } \le 3\) cm. These codeless results are important as it shows that in the presence of code multipath, one can do away with the code data and then still have integrity for phase slips.

The code outlier MDBs are, except for the single-frequency case, all relatively insensitive to the smoothness of the ionosphere. The effect of the frequencies is also hardly present in the multi-frequency code-outlier MDBs. Their value is predominantly determined by the precision of the code measurements. From the phaseless code-outlier MDBs it follows that, except for the single-frequency case, code outlier detection is still possible. The multi-frequency phaseless code-outlier MDBs all lie around 1 m for \(\sigma _{d \mathcal I } \le 10\) cm. They increase rapidly, however, for larger values of \(\sigma _{d \mathcal I }\).