Introduction

GNSS positioning and navigation are based on one-way range measurements. More precisely, only pseudoranges are observed since the timescales of the satellites and the receiver are not synchronized. Usually, the timescales are linked to a third timescale, i.e., GNSS system time, by introducing so-called clock errors. To account for the satellite time and frequency offset, summarized as satellite clock error, appropriate corrections are provided via the navigation message in real time, or by orbit and clock products of the International GNSS Service (IGS, Dow et al. 2009) in post-processing. Due to the generally poor accuracy and limited long-term (>1 s) frequency stability of a GNSS receiver internal quartz oscillator, the so-called receiver clock error has to be estimated on an epoch-wise basis. Consequently, at least four satellites in view are required every epoch to solve the equation system comprising four unknowns, i.e., three receiver coordinates and one receiver clock error. The corresponding positioning geometry is the hyperbolic mode (Kleusberg 2003). This is the typical situation in single point positioning (SPP).

However, some drawbacks are immanent: (1) The up-coordinate is determined two to three times worse than the horizontal coordinates, (2) high correlations of up to 99  % between the up-coordinate and clock error persist, and (3) at least four satellites are necessary for positioning (Bednarz and Misra 2006); especially in case of kinematic positioning, the overall situation can be significantly improved if more stable receiver clocks are available and the information about their frequency stability can be introduced into the estimation process (Sturza 1983; Weinbach 2013). The basic requirement for this receiver clock modeling (RCM) approach is a clock noise smaller than the receiver noise over the modeling interval (Weinbach and Schön 2011).

Recent developments of low-priced, low power consuming, and stable miniaturized atomic clocks (MACs), especially chip-scale atomic clocks (CSACs), offer the required stability and accuracy and thus open up the possibility of using atomic clocks in real kinematic GNSS applications without severe restrictions regarding power supply and environmental influences on the clocks. When connecting one of these atomic clocks to a GNSS receiver, replacing or steering the internal oscillator accordingly, and modeling its behavior in a physically meaningful way instead of epoch-wise estimation, the navigation performance can be improved distinctly. The reason for these improvements is not the higher redundancy (one observation less would be needed in an ideal case of perfect synchronization) when exploiting the frequency stability. In fact, the hyperbolic geometry of GNSS positioning based on pseudorange observations gets somehow closer to trilateration based on true range measurements which has a better performance (van Diggelen 2009).

First, we present and discuss the performance evaluation of three different MACs. Subsequently, the basic idea and different concepts of receiver clock modeling in code-based GNSS navigation using a Kalman filter and a sequential least-squares approach, respectively, are described. The theoretical developments are then validated by means of a real kinematic experiment. The results are discussed quantifying the improvement of the GNSS performance.

Clock characterizations

Basically, a clock is an oscillator with a given nominal frequency ν nom coupled with a frequency counter generating a sinusoidal signal. According to Schön (2013), the deviation of the current frequency ν from ν nom with respect to a reference timescale t can be described as

$$\nu \left( t \right) = \nu_{\text{nom}} + \Delta \nu + D \cdot \left( {t - t_{0} } \right) + y\left( t \right)$$
(1)

where Δν and D are the frequency offset and drift, respectively, y(t) denotes random frequency fluctuations, and t 0 is an arbitrary starting point in time. Hence, in the time domain, the resulting clock error, i.e., the difference between nominal time t and time T(t) read on the clock at t, reads

$$\begin{aligned} T\left( t \right) - t & = T\left( {t_{0} } \right) - t + \frac{\Delta \nu }{{\nu_{\text{nom}} }}\left( {t - t_{0} } \right) \\ & \quad + \frac{D}{{2\nu_{\text{nom}} }}\left( {t - t_{0} } \right)^{2} + \mathop \smallint \limits_{{t_{0} }}^{t} y(\bar{t})d\bar{t} \\ \end{aligned}$$
(2)

which can be simplified to

$$\delta t = b_{0} + b_{1} \left( {t - t_{0} } \right) + b_{2} \left( {t - t_{0} } \right)^{2} + x\left( {t,t_{0} } \right)$$
(3)

with a time offset b 0, frequency offset b 1, and frequency drift b 2, and random noise x(t,t 0). Thus, the main part of a clock model can be described by a quadratic polynomial. The more interesting characteristics of a clock are contained in the underlying noise processes. Due to the fact that these processes are non-stationary—meaning their stochastic behavior changes over time—we cannot describe them by means of classical variances. A proper and widely used tool for clock characterization is the time-dependent Allan variance \(\sigma_{y}^{2}\) (Allan 1987). This measure then enables the determination of a modeling or predicting interval τ p , respectively, over which receiver clock modeling is physically meaningful, i.e., clock noise is smaller than GNSS receiver noise:

$$T\left( {t_{0} + \tau_{\text{p}} } \right) - \left( {t_{0} + \tau_{\text{p}} } \right) \approx b_{0} + b_{1} \tau_{\text{p}} + b_{2} \tau_{\text{p}}^{2} + \tau_{\text{p}} \sigma_{y} \left( {\tau_{\text{p}} } \right)$$
(4)

and \(\tau_{\text{p}} \cdot \sigma_{y} \left( {\tau_{\text{p}} } \right) < \sigma_{\text{rx}}\). The noise \(\sigma_{\text{rx}}\) of a typical commercial receiver can be assessed to approximately 1 % of the chip or wavelength of the signal in use, e.g., 3 m, 0.3 m, or 2 mm for C/A-code, P-code, or L1 carrier phase observations, respectively.

Devices under test

Three different MACs, each delivering 10-MHz output signals, were selected for our test purposes, namely:

Microsemi QuantumSA.45 s CSAC—the first generation was developed by Microsemi, Inc. (former: Symmetricom, Inc.) and Quantum™ and released to the market in 2011. It weighs about 35 g, is smaller than 17 cm3, and has a power consumption of less than 120 mW (Microsemi 2015).

Jackson Labs LN CSAC—a derivative of the Microsemi CSAC. In this device, the CSAC module is complemented by a very low phase-noise OCXO (oven controlled crystal oscillator) post-filter generating an additional output signal with higher short-term frequency stability (Jackson Labs 2015).

Stanford Research Systems PRS10—this legacy rubidium frequency standard delivers the highest (short-term) frequency stability of the devices under test. However, it has a bigger housing (600 g, 393 cm3) and a much higher requirements regarding input voltage and power consumption (Stanford Research Systems 2015).

Frequency stabilities

Since GNSS receivers almost exclusively can be fed by frequency signals of typically 5 and/or 10 MHz, and not timing signals, one prerequisite for receiver clock modeling is the knowledge about the frequency stability, i.e., Allan variances, of the device at hand. One source to gather this information is manufacturer’s data which, however, are mostly only given for few averaging times. In addition, these values are not instrument specific but valid for a whole product series. For that reason, and in order to validate manufacturer’s data, individual characterizations of our MACs are necessary. The results substantiating this necessity are shown in Krawinkel and Schön (2014a). Individual clock characterizations can even be carried out in a production environment, although this would be restricted to short-term stability. In order to ensure a certain statistical confidence, the comparison time with another frequency standard has to be at least 7–8 times longer than the averaging time of the Allan variance to be calculated.

The stability of a frequency standard can be determined by comparing it to another frequency standard of at least one magnitude higher stability. In this case, the three MACs were compared to an active hydrogen maser (H-maser) VREMYA-CH VCH-1003A at Physikalisch-Technische Bundesanstalt, Germany’s official metrology institute. The MACs’ and H-maser’s 10-MHz signals were compared by means of a multi-channel phase comparator (TimeTech GmbH) with selectable sampling intervals of 1 and 100 s, carried out for several hours and for about a week, respectively, to allow for an optimal determination of the short- and long-term stabilities of the test devices.

The frequency stability analysis consists of two parts: (1) raw data time series analyses and (2) the computation of Allan deviations. The raw data analysis gives insight into the principle offset and drift behavior of the output signals of the device (Krawinkel and Schön 2014a). Subsequently, these time and frequency offsets and drifts are then removed from the raw data so that the (fractional) frequency data are not biased by systematic effects anymore and its stochastic behavior can be explored. The most prevalent parameter of frequency stability is the Allan variance or Allan deviation (ADEV), respectively. Hence, for each MAC, we compute the overlapping ADEV because of its increased statistical confidence compared to the standard ADEV (Riley 2008):

$$\sigma_{y}^{2} \left( \tau \right) = \frac{1}{{2m^{2} \left( {M - 2m + 1} \right)}} \cdot \mathop \sum \limits_{j = 1}^{M - 2m + 1} \left( {\mathop \sum \limits_{i = j}^{j + m - 1} y_{i + m} - y_{i} } \right)^{2}$$
(5)

where y i is the ith of M fractional frequency values averaged over the sampling interval τ with averaging factor m.

The resulting ADEV curves are shown in the top panel of Fig. 1 for averaging times from one second to approximately 1 day. For comparison reasons, the manufacturer’s values are depicted in the bottom panel of Fig. 1. Note that manufacturer’s data are standard and not overlapping ADEV values. However, this does not degrade comparisons between them because using overlapping samples only reduces the ADEV’s variability but not the overall shape of the resulting ADEV curves (Riley 2008). Since these figures are displayed as log–log plots, the dominating noise processes at different averaging intervals τ can be determined by means of the slopes. In our case, four different noise types are present and listed in Table 1.

Fig. 1
figure 1

Allan deviations of investigated atomic clocks. Values determined for our devices (top) and values from manufacturer’s data (bottom). (Microsemi 2015; Jackson Labs 2015; Stanford Research Systems 2015)

Table 1 Clock noise types and their Allan deviation slopes in a log–log plot and power spectral density coefficient indices α

Based on the top panel of Fig. 1, we find that the Jackson Labs CSAC exhibits white noise frequency modulation (WFM) up to approximately 1 h and then transitions into flicker noise frequency modulation (FFM). The tested device performed about 1.5 times worse than manufacturer’s data indicate. As expected, the OCXO post-filtered signal shows a higher short-term stability than the raw CSAC signal. The steering of the OCXO signal to the CSAC module can also be seen in terms of long-term frequency stability after roughly half an hour.

The Microsemi CSAC shows similar noise types like the Jackson Labs device, although WFM is about half a magnitude \(\left( {\sigma_{y} = 5 \cdot 10^{ - 11} } \right)\) smaller. Subsequently, the flicker floor begins after approximately 3 h. Beyond that, the performance is more than five times better than specified by the manufacturer (Fig. 1).

Our third atomic frequency standard, the SRS PRS10, shows fluent passages of four different noise types. Starting with white noise phase modulation (WPM) for a short period of time of about 15–20 s and then transitioning into WFM, followed by FFM around \(\tau = 2\,{\text{h}}\) and ending with random walk frequency modulation (RFM). Due to the fact that only a few manufacturer values are available, it can only be stated that our calculated values agree well with the short-term stability shown in the bottom panel of Fig. 1. For further information on the clock characterizations, we refer to Krawinkel and Schön (2014a).

Concepts of receiver clock modeling

In order to apply the knowledge gained about the frequency stabilities of the device, appropriate models for GNSS data analysis have to be established. One prerequisite is that the clock noise has to be well below the GNSS receiver noise, i.e., the integrated random frequency fluctuations of the MACs cannot be resolved by the GNSS observations in use. We assume typical values for code and ionospheric-free carrier phase observations from modern geodetic GNSS receivers of 1 m and 5 mm, respectively. Since these observations are phase-based measures, we can model the dominating underlying noise process as WPM over time. The corresponding graphs are depicted in the top panel of Fig. 1 as dashed lines. The intersection points between the dashed GPS observation noise lines and the ADEV curves define maximal time intervals for physically meaningful receiver clock modeling in our case study. Depending on the MAC in use, receiver clock modeling (RCM) is applicable over time intervals of at least 10 min and up to 1 h in C/A-code-based applications, e.g., SPP. Due to the much lower noise of GNSS carrier phase observations, using the latter is reserved for precise point positioning (PPP, Zumberge et al. 1997) applications.

We compute two different solutions: (1) modeling the process noise in an extended Kalman filter (EKF) and (2) applying a clock polynomial in a sequential least-squares adjustment (SLSA). Note that the MACs in use exhibit only small time and frequency drifts compared to quartz oscillators of a typical commercial GNSS receiver. Thus, MACs do not reset their output signal which would cause so-called millisecond jumps in the clock error estimates, and the following clock models do not have to account for such jumps.

Kalman filtering

Using an EKF in kinematic GNSS data analysis is pretty common because of its naturally real-time applicability. The EKF’s initial system state contains a priori values for geocentric Cartesian coordinates X 0, Y 0, Z 0, and two clock errors, i.e., time offset Δt 0 and frequency offset Δf 0, resulting in a five-state vector:

$$\bar{x}_{0} = \left[ {\begin{array}{*{20}c} {X_{0} } & {Y_{0} } & {\begin{array}{*{20}c} {Z_{0} } & {\delta t_{0} } & {\delta f_{0} } \\ \end{array} } \\ \end{array} } \right]^{T}$$
(6)

The corresponding initial state variance–covariance matrix (VCM) reads

$$\varvec{C}_{x,0}^{ - } = \left[ {\begin{array}{*{20}l} {\varvec{C}_{{X_{0} ,Y_{0} ,Z_{0} }} } \hfill & 0 \hfill \\ 0 \hfill & {\varvec{C}_{{\delta t_{0} ,\delta f_{0} }} } \hfill \\ \end{array} } \right]$$
(7)

This system state is updated epoch-wise by GNSS pseudorange observations as a function of the unknown parameters

$$\bar{\varvec{l}}\left( t \right) = h\left( {\bar{\varvec{x}}\left( t \right),t} \right)$$
(8)

yielding the observation equation of a typical code-based single-frequency navigation solution

$$\begin{aligned} \bar{l}_{k}^{i} & = \sqrt {\left( {X^{i} - X_{\text{A}} } \right)^{2} + \left( {Y^{i} - Y_{\text{A}} } \right)^{2} + \left( {Z^{i} - Z_{\text{A}} } \right)^{2} } \\ & \quad + T_{\text{A}}^{i} + I_{\text{A}}^{i} + c \cdot \left( {\delta t_{\text{A}} - \delta t^{i} } \right) \\ \end{aligned}$$
(9)

where X i, Y i, and Z i denote the geocentric coordinates of satellite i at epoch k, \(T_{\text{A}}^{i}\) and \(I_{\text{A}}^{i}\) represent the tropospheric and ionospheric signal delays, respectively, δt A and δt i denote the receiver and satellite clock errors, respectively, and c is the speed of light.

Because of the nonlinear relation between observations and receiver coordinates in (9), we use the OMC (observed-minus-computed) vector between the GNSS observations \(\varvec{l}_{k}\) and its computed/modeled counterpart \(\bar{\varvec{l}}_{k}\):

$$\Delta \varvec{l}_{k} = \varvec{l}_{k} - \bar{\varvec{l}}_{k}$$
(10)

After linearization of (9) in the latest system state of the receiver coordinates, least-squares estimation of the filtering step reads

$$\Delta \widehat{\varvec{x}}_{k}^{ + } = \Delta \widehat{\varvec{x}}_{k}^{ + } + \varvec{K}_{k} \left( {\Delta \varvec{l}_{k} \varvec{A}_{k} \Delta \widehat{\varvec{x}}_{k}^{ + } } \right)$$
(11)
$$\varvec{C}_{x,k}^{ + } = \left( {\varvec{I} - \varvec{K}_{k} \varvec{ A}_{k} } \right) \varvec{C}_{x,k}^{ - }$$
(12)

with the Kalman gain matrix

$$\varvec{K}_{k} = \varvec{C}_{x,k}^{ - } \varvec{A}_{k} \left( {\varvec{C}_{{{\text{l}},k}} + \varvec{A}_{k} \varvec{C}_{x,k}^{ - } \varvec{A}_{k}^{T} } \right)^{ - 1}$$
(13)

the design matrix

$$A_{k} = \left. {\frac{\partial h}{\partial x}} \right|_{{x\left( {t_{k} } \right) = \bar{x}\left( {t_{k} } \right)}}$$
(14)

and the elevation-dependent (E) observations’ VCM

$$\varvec{C}_{{{\text{l,}}k}} \sim\sin^{2} \left( E \right)$$
(15)

The following prediction step, i.e., the time propagation of the updated system state, is based on an appropriately chosen dynamics model which in our case is defined as a random walk process for the coordinates and integrated random walk for the clock:

$$\Delta \varvec{x}_{k + 1}^{ - } = {\varvec{\Phi}}_{k} \Delta \varvec{x}_{k}^{ + }$$
(16)
$$\varvec{C}_{x,k + 1}^{ - } = {\varvec{\Phi}}_{k} \varvec{C}_{x,k}^{ + } {\varvec{\Phi}}_{k}^{\varvec{T}} + \varvec{C}_{\omega ,k}$$
(17)

where the state transition matrix reads

$${\varvec{\Phi}}_{k} = \left[ {\begin{array}{*{20}l} 1 \hfill & 0 \hfill & 0 \hfill & 0 \hfill & 0 \hfill \\ 0 \hfill & 1 \hfill & 0 \hfill & 0 \hfill & 0 \hfill \\ 0 \hfill & 0 \hfill & 1 \hfill & 0 \hfill & 0 \hfill \\ 0 \hfill & 0 \hfill & 0 \hfill & 1 \hfill & {\Delta t_{k} } \hfill \\ 0 \hfill & 0 \hfill & 0 \hfill & 0 \hfill & 1 \hfill \\ \end{array} } \right]$$
(18)

and the process noise is

$$\varvec{C}_{\omega ,k} = \left[ {\begin{array}{*{20}l} {\varvec{C}_{{\omega ,{\text{crd}}}} } \hfill & 0 \hfill \\ 0 \hfill & {\varvec{C}_{{\omega ,{\text{clk}}}} } \hfill \\ \end{array} } \right]$$
(19)

The latter consists of the sub-matrices \(\varvec{C}_{{\omega ,{\text{crd}}}}\) for the coordinates process noise chosen as 25 m2/s2 per component and \(\varvec{C}_{{\omega ,{\text{clk}}}}\) for the clock process noise, respectively. Herein, receiver clock modeling is applied according to van Dierendonck et al. (1985):

$$\varvec{C}_{{\omega ,{\text{clk}}}} = \left[ {\begin{array}{*{20}l} {q_{11} } \hfill & {q_{12} } \hfill \\ {q_{21} } \hfill & {q_{22} } \hfill \\ \end{array} } \right]$$
(20)

with

$$\begin{aligned} q_{11} & = \frac{{h_{0} }}{2}\Delta t + 2h_{ - 1} \Delta t^{2} + \frac{2}{3}\pi^{2} h_{ - 2} \Delta t^{3} \\ q_{12} & = q_{21} = h_{ - 1} \Delta t + \pi^{2} h_{ - 2} \Delta t^{2} \\ q_{22} & = \frac{{h_{0} }}{2\Delta t} + 4h_{ - 1} + \frac{8}{3}\pi^{2} h_{ - 2} \Delta t \\ \end{aligned}$$
(21)

and

$$h_{0} = \sigma_{y}^{2} \left( \tau \right) \cdot 2\tau$$
$$h_{ - 1} = \frac{{\sigma_{y}^{2} \left( \tau \right)}}{2 \ln 2}$$
(22)
$$h_{ - 2} = \sigma_{y}^{2} \left( \tau \right) \cdot \frac{3}{{2\pi^{2} \tau }}$$

where Δt is the filter update interval using the h α coefficients listed in Table 2. The conversion formulae (22) are taken from Barnes et al. (1971).

Table 2 PSD coefficients derived from Allan deviations

Sequential least-squares adjustment

A different but also common approach in kinematic GNSS data analysis is the use of a sequential least-squares adjustment which is, basically, similar to the Kalman filter. The main difference is the lack of an explicit dynamic model; i.e., estimation results are only based on GNSS observation Eq. (9). Since RCM is carried out by means of the process noise in the EKF approach, we have to apply a different method in SLSA. Herein, with respect to (4), the deviation of the receiver clock from GNSS system time is defined as polynomial

$$\delta t_{{{\text{A,}}k}} = \mathop \sum \limits_{i = 0}^{n} b_{i,m} \Delta t_{m}^{i}$$
(23)

where b i,m are coefficients for time offset (i = 0), frequency offset (i = 1), and frequency drift (i = 2), respectively, of the mth polynomial piece, and Δt denotes its (current) temporal length. Typically, at least a linear polynomial is used to account for time and frequency offset. For some clocks, an additional quadratic term is reasonable.

The maximal time intervals over which RCM is physically meaningful give a limit to the maximal number of measurement epochs contributing to one polynomial, leading to piece-wise modeling of the receiver clock error. Therefore, the parameter vector to be estimated reads

$$\varvec{x}_{k} = \left[ {\begin{array}{*{20}l} {X_{k} } \hfill & {Y_{k} } \hfill & {\begin{array}{*{20}c} {Z_{k} } & \varvec{b} \\ \end{array} } \hfill \\ \end{array} } \right]^{T}$$
(24)

with vector b denoting the clock parameters from (23).

Depending on the chosen polynomial degree, this approach requires five observations from two epochs (linear) or six observations from three epochs (quadratic), respectively, to solve for the unknowns. This drawback can be avoided by imposing constraints on the clock parameters, or incorporating Doppler observations. Nevertheless, this approach requires a couple of epochs as run-in time after initialization because the clock parameters are updated and not estimated anew like the coordinates every consecutive epoch.

In conformity with (10, 14, 15), the general least-squares parameter estimation reads

$$\Delta \widehat{x} = \left( {\varvec{A}^{\text{T}} \varvec{PA}} \right)^{ - 1} \varvec{A}^{\text{T}} \varvec{P}\Delta \varvec{l} = \varvec{N}^{ - 1} \varvec{A}^{\text{T}} \varvec{P}\Delta \varvec{l}$$
(25)

with the observation weighting matrix \(\varvec{P} = \varvec{C}_{l}^{ - 1}\) and the normal equation system N k .

In a SLSA, Eq. (25) is updated by every consecutive epoch leading to a recursive estimation scheme:

$$\Delta \varvec{l} = \left( {\begin{array}{*{20}c} {\Delta \varvec{l}} \\ {\Delta \varvec{l}_{k} } \\ \end{array} } \right)$$
(26)
$$\varvec{P} = \left( {\begin{array}{*{20}l} \varvec{P} \hfill & 0 \hfill \\ 0 \hfill & {\varvec{P}_{k} } \hfill \\ \end{array} } \right)$$
(27)

Due to the different estimation schemes for coordinates and clock parameters, we have to set up two sub-matrices for the design matrix A:

$$\varvec{A} = \left[ {\begin{array}{*{20}c} {\varvec{A}_{\text{crd}} } & {\varvec{A}_{\text{clk}} } \\ \end{array} } \right]$$
(28)

with

$$\varvec{A}_{\text{crd}} = \left[ {\begin{array}{*{20}l} {\varvec{A}_{\text{crd}} } \hfill & 0 \hfill \\ 0 \hfill & {\varvec{A}_{{{\text{crd}},k}} } \hfill \\ \end{array} } \right]$$
(29)
$$\varvec{A}_{{{\text{clk}},m}} = \left[ {\begin{array}{*{20}c} {\varvec{A}_{\text{clk}} } \\ {\varvec{A}_{{{\text{clk}},k}} } \\ \end{array} } \right]$$
(30)

Note that (30) is only valid for one clock modeling segment. Each new segment extends the clock related part of (28):

$$\varvec{A}_{\text{clk}} = \left[ {\begin{array}{*{20}l} {\varvec{A}_{{{\text{clk}},m}} } \hfill & 0 \hfill \\ 0 \hfill & {\varvec{A}_{{{\text{clk}},m + 1}} } \hfill \\ \end{array} } \right]$$
(31)

Consequently, this part of the design matrix has a block diagonal structure.

Application in GNSS navigation

In order to test and validate our receiver clock modeling approaches, we carried out a real kinematic experiment in the vicinity of Hannover, Germany, on an eight-shaped cart road in an approximately 500 × 800 m2 area with only a few natural obstructions in form of an alley (Fig. 2). The basic measurement configuration consisted of five JAVAD Delta TRE-G3T(H) receivers running an identical firmware version (3.4.14) and connected to one NovAtel 703GGG antenna via an active signal splitter (Fig. 3). Four of these receivers were fed by the 10-MHz signals of our three MACs. For comparison reasons, the fifth receiver was run by its internal oscillator.

Fig. 2
figure 2

Test track of about 500 × 800 m. The yellow ellipse marks an alley with signal obstructions

Fig. 3
figure 3

Measurement configuration of the kinematic experiment. Five identical JAVAD delta receivers are connected to a Leica AX1202GG antenna; each receiver uses a different clock

Each test drive with our motor vehicle lasted approximately 8–10 min. We recorded GPS and GLONASS data with a sampling interval of 1 s. That is also true for the local reference station, temporally installed in the middle of the test area. This station consisted of a Leica AX1202GG antenna mounted on a tripod and a Leica GRX1200 + GNSS receiver. Hence, we are able to generate reference solutions for the vehicle trajectories in differential mode with baselines less than some hundred meters. For that reason, first, a 2-h PPP solution for the reference station with the Bernese GNSS Software 5.2 (Dach et al. 2007) was computed, yielding a position accuracy of a few centimeters. These coordinates are then held fixed for the relative positioning with NovAtel Waypoint GrafNav 8.40 based on L1 phase observations only. The resulting reference trajectories of the five mobile receivers are combined to a weighted mean solution exhibiting coordinate accuracies well below 20 cm.

The RCM algorithms presented are implemented in our IfE GNSS MATLAB Toolbox. In order to compute a typical real-time navigation solution (SPP) based on GPS C/A-code observations only, the broadcast ephemeris was used. Tropospheric and ionospheric signal delays are corrected by models of Saastamoinen and Klobuchar, respectively.

At first, we exemplarily present the results with and without receiver clock modeling for one test drive in terms of improvements in the coordinate precision and reliability. In the following, we will investigate exemplarily one out of six test drives. Similar behavior can be found for the other trajectories.

Precision and accuracy

One of the most important GNSS performance parameters is the precision and accuracy of the coordinate solution. At first, we discuss the results computed from the sequential least-squares approach. Figure 4 shows topocentric coordinate differences with respect to the reference trajectory and clock error time series of the receiver driven by its internal quartz oscillator, without RCM. This is typical for almost all end users. The noise of the coordinates is in the range of 20–25 cm in the horizontal components and ca. 50 cm in the up-component, respectively. The (linearly detrended) receiver clock error exhibits values between roughly −100 and 200 ns which is typical for a quartz oscillator. Furthermore, certain coordinate offsets are visible due to remaining systematic effects, e.g., ionospheric delay and orbit errors. This could be attributed thanks to repeated analysis runs with different correction models, e.g., precise IGS final orbits or by forming the ionospheric-free linear combination. Hence, the assessment of the accuracy is difficult since its main contribution depends on the applied correction models and it is less influenced by RCM.

Fig. 4
figure 4

Topocentric coordinate deviations with respect to reference trajectory and clock errors. The receiver is driven by its internal oscillator. No receiver clock modeling is applied in a sequential least-squares adjustment. Note the different y-axis scales

Without applying RCM, the four receivers connected to the MACs show similar behavior in the coordinate domain. However, the clock residuals become very small compared to those of the internal oscillator (cf. Figs. 5, 7) and amount to only a couple of nanoseconds. Some spikes are visible roughly between minutes 5 and 7 when driving through the alley where the observation geometry suddenly changes due to obstructions (Fig. 2). The resulting jump in the up-coordinate directly translates into the clock residuals. This clearly indicates the high correlations between these two parameters. Furthermore, the Jackson Labs CSAC’s clock residuals also show a significant quadratic term indicating a frequency drift even over the short period of time of approximately 8 min (Fig. 6).

Fig. 5
figure 5

Topocentric coordinate deviations relative to the reference trajectory and clock errors for a receiver connected to the SRS PRS10 (ad) and the Microsemi CSAC (eh). The results without receiver clock modeling are depicted in blue and green. The results when applying a linear polynomial for clock modeling in a sequential least-squares adjustment are shown in red

Fig. 6
figure 6

Topocentric coordinate deviations with respect to reference trajectory and clock errors for a receiver connected to the SRS PRS10 (ad) and the Microsemi CSAC (eh). The results without receiver clock modeling are depicted in blue and green. The results for clock modeling in an extended Kalman filter are shown in red

This situation changes dramatically when applying RCM. Although, as expected, no changes in the time series of the north and east coordinates occur, a strong decrease in the up-coordinate residuals is clearly visible. The noise level is in the range of ca. 20–30 cm. Due to the applied polynomial clock model, the clock residuals are also reduced. Thanks to the increasing number of epochs/observations contributing to the estimation of the clock parameters, these residuals get smoother over time.

Spikes in the up-coordinate time series due to sudden signal obstructions (minutes 5–7) are almost eliminated thanks to RCM. Subsequently, the accuracy can be improved by up to 15 % and the solution is more robust against sudden changes in the satellite geometry caused by obstructions for example.

At this point, we can also see that the linear clock polynomial is sufficient in case of the SRS PRS10 and Microsemi CSAC devices (Fig. 5). However, this is not true for the Jackson Labs device, especially the raw CSAC signal depicted in Fig. 7e–h. Due to the clock’s non-modeled frequency drift, the up-coordinates start drifting away after approximately 3 min. The OCXO signal also causes such an effect due to its steering to the CSAC signal, but it is much smaller (cf. Fig. 7a–d). Consequently, when applying a quadratic clock polynomial, the drifts of the up-coordinates disappear as depicted in Fig. 8. Due to the fact that even an atomic clock shows a significant frequency drift over such a relatively short period of time, it is inevitable to apply a quadratic clock polynomial—to avoid the depicted coordinate deviations—if one has no a priori knowledge of the frequency drift behavior of the clock in use.

Fig. 7
figure 7

Topocentric coordinate deviations with respect to reference trajectory and clock errors for a receiver connected to the Jackson Labs’ OCXO (ad) and CSAC (eh) signal, respectively. The results without receiver clock modeling are depicted in blue and green. The results when applying a linear polynomial for clock modeling in a sequential least-squares adjustment are shown in red

Fig. 8
figure 8

Topocentric coordinate deviations with respect to reference trajectory and clock errors for a receiver connected to the Jackson Labs’ OCXO (ad) and CSAC (eh) signal, respectively. The results without receiver clock modeling are depicted in blue and green. The results when applying a quadratic polynomial for clock modeling in a sequential least-squares adjustment are shown in red

The numerical results are summarized in Table 3 listing the standard deviations of the topocentric coordinate time series with and without receiver clock modeling. When applying RCM, there are no improvements in the horizontal components, but the scatter of the up-coordinates is decreased in the range of 48 (Microsemi CSAC) to 69 % (SRS PRS10).

Table 3 Standard deviations (SDs) of topocentric coordinate time series from sequential least-squares solution with respect to reference solution

Our second RCM approach based on an existing EKF clock model (1122) shows comparable results, exemplarily shown for the Microsemi and SRS devices in Fig. 6. Compared to the sequential least-squares approach, the spikes in the up-coordinate and clock residual time series around minute six are not smoothed so strongly (Krawinkel and Schön 2014b).

Reliability and integrity

In addition to precision, reliability is a very important performance parameter in GNSS navigation and positioning, especially in safety–critical applications. In general, we distinguish between internal and external reliability, which are both measures for the robustness of the parameter estimation against gross errors in the observations. Thereby, good positioning reliability enhances outlier detection in GNSS data analysis.

Strictly speaking, internal reliability is calculated in form of minimal detectable biases (MDBs) of the GNSS observations. It gives lower bounds for how small gross observation errors can become to still be detectable, given a certain probability of error and test quality. Subsequently, external reliability describes the influence of these MDBs on the coordinates (Baarda 1968; Salzmann 1993).

In an EKF, MDB measures are computed based on the VCM of the innovation vector:

$$\varvec{C}_{{{\text{d}}_{k} }} = \varvec{C}_{{l,{k}}} + \varvec{A}_{k} \varvec{C}_{{x_{k}^{ - } }} \varvec{A}_{k}^{\text{T}}$$
(32)

Analogously, in least-squares estimation only, Eq. (32) is replaced by the VCM of the observation residuals

$$\varvec{C}_{{v_{k} }} = \varvec{C}_{l,k} - \varvec{A}_{k} \varvec{C}_{{\widehat{x}_{k} }} \varvec{A}_{k}^{\text{T}}$$
(33)

Depending on the non-centrality parameter λ calculated from a carefully chosen probability of error and test quality (here 80 and 1 %, respectively), the MDB vector at epoch k, considering one undetected gross error in the observation to satellite i, reads

$$\nabla l_{k} = \left[ {\begin{array}{*{20}c} 0 & \ldots & 0 & {\nabla l_{k}^{i} } & 0 & \ldots & 0 \\ \end{array} } \right]^{T}$$
(34)

with

$$\nabla l_{k}^{i} = \sqrt {\frac{\lambda }{{\left( {C_{d,k}^{ - 1} } \right)_{ii} }}}$$
(35)

in an EKF, or

$$\nabla l_{k}^{i} = \sqrt {\frac{\lambda }{{\left( {C_{{v,k}}^{ - 1} } \right)_{ii} }}}$$
(36)

in a SLSA, respectively.

Subsequently, the impact of the MDBs on the parameters can be calculated, yielding measures of external reliability:

$$\nabla x_{k}^{i} = \varvec{K}_{k} \nabla l_{k}^{i} = \varvec{C}_{x,k} \left( {\varvec{a}_{k}^{i} } \right)^{\text{T}} p_{k}^{i} \nabla l_{k}^{i}$$
(37)

Figure 9 shows the MDBs for the receiver connected to the Microsemi CSAC with and without receiver clock modeling during our exemplary test drive. Herein, the maximal improvement of 16.5 % is found for satellite G15. Its mean MDB is decreased from 15.6 to 13.0 m. Note that the MDB improvements depend not only on the individual satellite positions but also on the whole geometry. Satellite G10 is interrupted twice when passing through the alley yielding in jumps in the MDB time series (Fig. 9) which are also reduced.

Fig. 9
figure 9

Internal reliability of C/A-code observations in terms of minimal detectable bias (MDB) from receiver connected to the Microsemi CSAC. Values obtained without receiver clock modeling (top), and improved values when clock modeling is applied (bottom)

The values of external reliability for the coordinate parameters are depicted in Fig. 10 ordered with respect to their relative frequency. They are converted to topocentric values because we only expect improvements in external reliability of the up-coordinate. The changes in the horizontal components are negligibly small when applying RCM. However, no vertical values greater than 4 m remain (w/o RCM: 35 % > 4 m), and the number of values smaller than 2 m increases from 59 to 89 %. Thus, the vulnerability of the positioning solution with respect to outliers is significantly reduced.

Fig. 10
figure 10

Relative frequency of external reliability of horizontal and vertical coordinate components from a receiver connected to the Microsemi CSAC, without (top) and with receiver clock modeling (bottom)

Clock coasting

GNSS positioning requires at least four satellites in view. This can become a severe restriction in harsh environments, e.g., urban canyons. Applying an oscillator of high accuracy as well as known and predictable frequency stability enables positioning using only three satellites, thereby enhancing continuity and availability. This approach is called clock coasting (Knable and Kalafus 1984; Sturza 1983).

In order to show the performance of clock coasting obtained with our devices, we proceed as follows. In case of less than four satellites in view, the observations Eq. (9) are additionally corrected by a receiver clock term based on the latest clock coefficients. This is possible thanks to the stability of the clocks. In order to show the positive effects of our method, we generate partial satellite outages so that only three observations remain. The latter are chosen in such a way that typical situations in an urban canyon are simulated, i.e., only satellites with high elevation angles remain. The skyplot in Fig. 11 shows the satellite visibilities during our test drive. We generate two outages: (1) from minute one to two with only satellites G08, G26, G28 visible: In this case, only a few epochs have contribute to the determination of the clock coefficients; and (2) from minute five to seven with only satellites G09, G26, G28 in view: Here, the estimated clock coefficients should be more stable due to the increased number of epochs contributing to their determination.

Fig. 11
figure 11

Skyplot of satellite visibilities during the test drive; only the satellites color-coded in red are used for clock coasting

The resulting coordinate and clock time series are depicted in Fig. 12. When coasting through periods with only three satellites available, the horizontal coordinates become approximately two to three times noisier (1–2 m). Due to the poor observation geometry, an additional offset of about 1 m is induced in the north component during the first partial outage. Meanwhile, the noise of the up-coordinates is only slightly increased in both of those periods, although a significant drift is visible during the first one. Most likely, this is because the coefficients used for clock coasting are only based on 60 epochs until that time. During the second partial outage, this drifting behavior vanishes independently of the satellite geometry. Finally, the time series of the clock residuals show similar behavior compared to the bottom panel of Fig. 5. Due to the fact that the clock time series in Fig. 12 are linearly detrended and a linear clock polynomial is applied, the corresponding residuals during the coasting periods equal zero.

Fig. 12
figure 12

Topocentric coordinate deviations relative to reference trajectory and clock errors. The receiver is connected to the Microsemi CSAC. The solution is obtained from a sequential least-squares adjustment with clock coasting from minutes one to two and five to seven

Conclusions

Clocks are the core of any GNSS; however, the benefits from their frequency stability in precise GNSS navigation still seem to be often neglected. We propose two real-time applicable algorithms for receiver clock modeling in code-based GNSS navigation when using miniaturized and stable atomic clocks: (a) in an extended Kalman filter using spectral density coefficients derived from the clocks’ individual Allan deviations to model the process noise accordingly, and (b) in a sequential least-squares adjustment applying a linear or quadratic clock polynomial, respectively, whose coefficients are updated and not estimated anew each consecutive epoch. As a prerequisite, an individual characterization of the frequency stabilities of three miniaturized atomic clocks was carried out with respect to the phase of an active hydrogen maser showing an overall good agreement with manufacturer’s data.

A real kinematic experiment was carried out and typical code-based GPS navigation solutions are computed. We showed that the precision of the up-coordinate’s time series was improved by 48–69 %, depending on the clock in use. Furthermore, internal and external reliability are significantly increased as well as the impact of spikes due to obstructions is almost eliminated making the estimation process and the resulting coordinates more robust against blunder in GNSS observations. More precisely, the minimal detectable biases (internal reliability) are improved by up to 16 %, and the number of epochs in which the values of the external reliability of the up-coordinates are smaller than 2 m is increased from 59 to 89 %.

Finally, it was shown that our algorithm is capable of coasting through periods of partial satellite outages with only three satellites remaining in view. This enables GNSS positioning in harsh environments with poor satellite coverage, e.g., caused by high shadowing effects, multipath, or even outlier rejection, when only three observations are available, and thus increases availability and continuity.