Keywords

1 Introduction

For the past few decades, GPS has become a very important tool for geodetic research. Baseline estimation of GPS receivers is useful to infer global plate motions, boundary deformation, and permanent deformation caused before and after the occurrence of earthquakes. Precise positioning estimation by multi-epoch measurements and batch processing methods results in positioning errors. The errors can be reduced by processing epoch-by-epoch for position estimation. Generally, in 24-h data used for precise positioning, the parameters are estimated for every 30 s or by least squares or similar multi-epoch measurements [1].

GPS satellites transmit navigation and observation file in Receiver Independent Exchange Format (RINEX). The navigation file consists of different parameters such as time of epoch (toe), mean anomaly, corrections for the elliptical satellite orbits, etc. The observation file consists of pseudoranges, carrier phases, and Doppler data of L1 and L2, respectively. In the observation file, the information is recorded per second. This time information is called as tsec. Instantaneous time is measured as

$${\text{t}}_{\text{k}} \; = \;{\text{t}}_{ \sec } \; - \;{\text{t}}_{\text{oe}}$$
(1)

This instantaneous time is calculated for the GPS receivers on the baseline and also for the receiver position estimation of the same satellites. If the value of tk is less than 302400 s of GPS week, the value of tk is calculated as

$${\text{t}}_{\text{k}} = {\text{t}}_{\text{k}} - 604800$$
(2)

and if it is greater than 302400 s of GPS week, the value of tk is calculated as

$${\text{t}}_{\text{k}} = {\text{t}}_{\text{k}} + 302400$$
(3)

This tk is considered to calculate the position information of the receiver [2]. The variations in “tk” cause errors in calculating the receiver position on the baseline. This instantaneous time is to be smoothed before the calculation of receiver position. In this work, an attempt is made to correct epoch time using Kalman filter.

Kinematic and rapid static processing of GPS data needs data for several minutes for precise site positioning. These were used to calibrate GPS arrays installed over the fault lines [3, 4]. The method of instantaneous approach reduces the necessity of GPS data rearrangement since receiver lock and cycle clips are irrelevant at single epoch level [5]. This method also reduces the complexity of integer cycle phase ambiguities, basic requirement for precise positioning services [6, 7]. It is easier to recognize erroneous data than to correct it. Elimination of such data leads to more robust results that are attainable in batch or filter-oriented processing techniques.

Smoothing of epoch time data recorded from GPS receivers over a baseline gives a good estimation of the precise positioning for geodetic applications. Kalman filter is used to smooth the raw epoch data obtained from GPS receivers. It uses Bayesian inference and estimates the joint probability distribution of variables for every epoch time. It is a real-time recursive algorithm using only present input measurements, previous state, and its uncertainty matrices. The smoothing of epoch data using Kalman filter has provided better results for precise position estimation.

2 Methodology

Kalman filter, a recursive filter gives a best estimate of the present state by considering the previous estimate of the variable. It thus helps in reduction of storage of data. This filter can be applied to all stationary and nonstationary problems. This filter has a set of mathematical equations which optimize the state variable with minimum error covariance. This method uses the observed variables (tk1, tk2, tk3,…, tkn) to estimate the state (xi) with a minimum value. Kalman filter has two steps.

  1. 1.

    Prediction

  2. 2.

    The correction

The procedure of Kalman filter is given in Fig. 1.

Fig. 1
figure 1

Procedure for Kalman filter

2.1 Nomenclature

\({\hat{\text{x}}}({\text{k}}\left| {\text{k}} \right.)\) :

State vector at estimate for time t(k), including a measurement at time t(k)

\({\hat{\text{x}}}({\text{k}} + 1\left| {\text{k}} \right.)\) :

State vector at estimate for time t(k + 1) based upon the state vector estimate at time t(k)

\({\hat{\text{x}}}({\text{k}} + 1\left| {{\text{k}} + 1 )} \right.\) :

Corrected state vector estimate for time t(k + 1), including a measurement at time t(k + 1)

ts:

Time sample, t(k + 1) − t(k)

\({\text{F}}({\text{k}} + 1 | {\text{k}})\) :

Transition matrix

\({\text{p}}({\text{k}}\left| {\text{k}} \right.)\) :

Covariance matrix of \({\hat{\text{x}}}({\text{k}}\left| {\text{k}} \right.)\)

\({\text{p}}({\text{k}} + 1\left| {\text{k}} \right.)\) :

Covariance matrix of \({\hat{\text{x}}}({\text{k}} + 1\left| {\text{k}} \right.)\)

\({\text{p}}({\text{k}} + 1\left| {{\text{k}} + 1} \right.)\) :

Covariance matrix of \({\hat{\text{x}}}({\text{k}} + 1\left| {{\text{k}} + 1} \right.)\)

\({\text{H}}({\text{k}} + 1)\) :

Measurement matrix at time t(t + 1)

\({\text{w(k}} + 1)\) :

Input covariance matrix at time t(k + 1)

\({\text{K}}({\text{k}} + 1)\) :

Kalman gain at time t(k + 1)

\({\text{b}}_{\text{m}} ({\text{k}} + 1)\) :

Epoch measurement at time t(k + 1)

\({\text{b}}({\text{k}} + 1)\) :

True epoch value at time t(k + 1)

The algorithm is implemented in MATLAB as follows:

It is implemented in five steps.

  • Step 1: Calculate the pre-estimation of state.

First, we calculate the post-estimation of state \(\hat{x}_{t - 1}^{ + }\). Now, pre-estimation state is calculated by multiplying the post-estimation state with the transition matrix. The equation to find pre-estimation state is given in Eq. 12.

  • Step 2: Calculate the pre-error covariance of the epoch time.

Here, the probability of the epoch time given at the instant k − 1 is multiplied with the transposed transition matrix and the standard deviation of the probability distribution of pre-estimation error is added to it. The equation to find pre-error covariance is given in Eq. 13.

  • Step 3: Calculation of Kalman gain.

The pre-estimation error is multiplied with the transposed measurement matrix. The product is multiplied with measurement matrix and the standard deviation of the normal distribution function. The equation to find the Kalman gain is given in Eq. 14.

  • Step 4: Calculation of post-estimated state.

First, we calculate the product of pre-error estimation state with the measured value. It is then subtracted from the present epoch value tk. This is multiplied with the Kalman gain and is added to pre-error estimation state to find out post-estimation state of the epoch time. The equation to find out post-error estimation is given in Eq. 15.

  • Step 5: Calculation of the post-error covariance.

Finally, the post-error covariance is calculated as a product of the pre-estimation covariance and the S. S is given as

$${\text{S}} = (1 - {\text{k}}_{\text{t}} {\text{H}})$$

The equation for the calculation of post-error covariance is given in Eq. 15.

The three operations filtering, prediction, and interpolation are done depending on the value of the estimated state. If the present state i = t filtering performed, i > t predicted value is considered, i < t then interpolation is performed. The state and measurement equations are given as

$${\text{x}}_{{{\text{t}} + 1}} = {\text{Fx}}_{\text{t}} + {\text{w}}_{\text{t}}$$
(4)
$${\text{t}}_{\text{k}} = {\text{Hx}}_{\text{t}} + {\text{v}}_{t} ,$$
(5)

where wt and vt are white noise vectors (P(w): N(0,Q) and P(v): N(0,R)), “P” is the probability distribution function and N is the normal distribution function with standard deviation parameters Q and R, respectively. The transition matrix F takes values from time t to t + 1 and H is called the measurement matrix. Let us consider “xi” the real state at time t to t + 1. So, the pre-estimation error and pre-error covariance are given as

$${\text{e}}_{\text{t}}^{ - } = {\text{x}}_{\text{t}} - {\hat{\text{x}}}_{\text{t}}^{ - }$$
(6)
$$p_{t}^{ - } = E(e_{t}^{ - } e_{t}^{\prime -} )$$
(7)

The post-estimation error and post-error covariance are given as

$$e_{t}^{ + } = x_{t} - \hat{x}_{t}^{+}$$
(8)
$$p_{t}^{ + } = E(e_{t}^{ + } e_{t}^{\prime +} )$$
(9)

The Kalman filter mainly estimates the post-error state ‘\(\hat{x}_{t}^{ + }\) (post-estimation of state)’ using linear integration of \({\hat{\text{x}}}_{\text{t}}^{ - }\) (pre-estimation of state). It calculates the measured error \(({\text{t}}_{\text{k}} - \text{H}\hat{\text{x}}_{\text{t}}^{ - } )\) as

$$\hat{x}_{t}^{ + } = \hat{x}_{t}^{ - } + k_{t} ({\text{t}}_{\text{k}} - \text{H}\hat{\text{x}}_{\text{t}}^{ - } ),$$
(10)

where kt is the Kalman coefficient. It is defined based on the minimum of post-error covariance given as

$${\text{k}}_{\text{t}} = {\text{p}}_{\text{k}}^{ - } {\text{H}}^{\text{T}} ({\text{Hp}}_{\text{k}}^{ - } {\text{H}}^{\text{T}} + {\text{R}})^{ - 1}$$
(11)

These filter measurements are good when the covariance of error measurements is close to zero. These filter equations are catalogued into time update and measurement update equations. The time update equations calibrate the state and covariance matrices depends on pre measurements. The measurement matrix equations are used for feedback purpose and the time update is used to study system effects in the leading toward optimum state measurements. These are given as

$${\hat{\text{x}}}_{\text{t}}^{ - } = \text{F}\hat{\text{x}}_{{{\text{t}} - 1}}^{ + }$$
(12)
$${\text{p}}_{\text{t}}^{ - } = {\text{F}}_{{{\text{p}}_{{{\text{t}} - 1}} }} {\text{F}}^{\text{T}} + {\text{Q}}$$
(13)
$${\text{k}}_{\text{t}} = {\text{p}}_{\text{t}}^{ - } {\text{H}}^{\text{T}} ({\text{Hp}}_{\text{t}}^{ - } {\text{H}}^{\text{T}} + {\text{R}})^{ - 1}$$
(14)
$${\hat{\text{x}}}_{\text{t}}^{ + } = {\hat{\text{x}}}_{\text{t}}^{ - } + {\text{k}}_{\text{t}} ({\text{t}}_{\text{k}} - \text{H}\hat{\text{x}}_{\text{t}}^{ - } )$$
(15)
$${\text{p}}_{\text{t}}^{ + } = ( 1- {\text{k}}_{\text{t}} {\text{H}}){\text{p}}_{\text{t}}^{ - }$$
(16)

Hence, the process of prediction is done initially. The predicted value is corrected depending on the observations and thus the prediction process replicated [8].

The available measured epoch data contains noise. The state vector consists of only one component, i.e., smoothed epoch data. State vector and its covariance vector are initiated with average epoch value of 25, and its variance as 0.001. After the mean is available, Kalman gain is calculated. The state and its covariance vectors are updated. The updated state and its variance indicate the standard deviation of the error in estimated or smoothed epoch. The state and its covariance vector are extrapolated for the next epoch time. Again, once the measurement is available, Kalman gain is calculated. The process is repeated for every epoch arrival.

3 Results and Discussion

In the present work, the epoch time data of a GPS receiver over a baseline is considered for precise positioning of receiver on the baseline. The epoch data for 125 data points is represented in Fig. 2.

Fig. 2
figure 2

Epoch data for 125 data points

The epoch data is corrected using Kalman filter. The smoothed epoch data given in Figs. 3 and 4 represents the Kalman gain and the smoothing of the epoch data using Kalman filter. From Fig. 2, it is clearly understood that the Kalman filter has smoothed the variations in the epoch measurements. It has given a good estimate of the input data. Thus, the analysis of position estimation using the smoothed data will result in precise GPS receiver positions on the baseline. If the positions of the GPS receivers are calculated similarly by calibrating the epoch measurements over the baseline, then it is possible to study the baseline deformations caused by earthquakes.

Fig. 3
figure 3

Gain of Kalman filter and probability distribution function of state covariance vector

Fig. 4
figure 4

Epoch smoothing using Kalman filter

The variations observed in the initial part of the data for the 50 epochs are caused due to the removal of erroneous data recorded remain unchanged and the rest of the data have been smoothened. This is mainly because of cycle slips or loss of lock of the receiver. But the variation seen from 50 to 125 epoch measurements has been smoothed to give a good estimate of the epoch data thus reducing the variations in the calibration of the position estimation of the GPS receiver.

The analysis clearly shows that the epoch data has been smoothed. Thus, it has reduced the errors in the calibration of the GPS receiver position on the baseline. The above analysis used helps in studying the plate tectonic motions, crustal deformations caused by coseismic, preseismic motions, and earthquakes. This method reduces the risk of cycle clips, lock of lock, and also the correction of the erroneous data. It gives better estimation of the position of the GPS receivers on the baseline. These studies will lead for the better understanding of crustal deformations occurred in the fault line and will also help in estimation of new fault lines.

4 Conclusions

Implementation of Kalman filter on the epoch measurements has reduced the error caused by inaccurate time measurement in the GPS receivers. This also reduces the stringent problem of repairing the erroneous data which is not possible in the traditional processing techniques. The processed method reduces the inaccuracies in the baseline estimation of the GPS receivers. This new technique provides better opportunities in the research areas of geodesy, GPS seismology, etc.