Introduction

Many algorithms have been developed for ambiguity fixing recent decades. Examples are the ambiguity function algorithm (Counselman and Gourevitch 1981) and its modifications (Baselga 2010; Cellmer et al. 2010), FARA algorithm (Frei and Beutler 1990), Cholesky decomposition algorithm (Euler and Landau 1992; Xu 2001), LAMBDA (Teunissen 1993) and its modifications (Chang et al. 2005), and the ARCE algorithm (Park et al. 1997). These algorithms are very successful; however, most of them are designed to fix the ambiguities based on several epochs of observation.

The development of the GNSS constellations and more frequencies makes reliable instantaneous precise positioning possible. Although Wang et al. (2009), Teunissen et al. (2011) and Chen and Qin (2012) achieve reliable single-frequency single-epoch ambiguity resolution, their resolutions require baseline constraints. Others have reported about unaided instantaneous precise positioning. Sjoeberg (1993, 1998) and Pratt et al. (1997) have developed single-epoch ambiguity resolution algorithms based on precise code observables. However, these observables are not available for civilian receivers. Teunissen et al. (1997) discuss the performance of LAMBDA as applied in dual-frequency GPS fast resolution. Later, many contributions discuss the Real Time Kinematic (RTK) performance combining observations of two or more constellations. For example, Tiberius et al. (2002) and Odijk et al. (2012) discuss the instantaneous positioning combined GPS and Galileo by the means of simulation and real data, and combined GPS and BDS RTK results can be found in Deng et al. (2014), He et al. (2014), Li et al. (2013) and Teunissen et al. (2014). Odolinski et al. (2014) demonstrate single-frequency RTK combining observations of available Code Division Multiple Access (CDMA) satellite systems, i.e., GPS, BDS, Galileo and QZSS.

Multi-frequency information provides more reliability and freedom for ambiguity resolution. At present, carrier phase combinations are linear functions of the original carrier phases that include integer parameters. In case of GPS, these can be expressed in unites of cycles as follows ϕ = c 1 ϕ 1 + c 2 ϕ 2 + c 5 ϕ 5, where ϕ 1, ϕ 2 and ϕ 5 are carrier phase observations of L1, L2 and L5, respectively, with c k  ∊ Z, (k ∊ {1, 2, 5}) are the combination parameter. Specifically, this equation degenerates to dual-frequency carrier phase combination when one of the parameters is zero. Based on such combination, Jung (1999) and Hatch et al. (2000) developed cascade integer resolution (CIR) method. Forssell et al. (1997) introduced the geometry-free three-carrier ambiguity resolution (TCAR) method for triple-frequency case. Generally speaking, a combined carrier phase with long wavelength and small noise is preferable for integer ambiguity fixing (Richert and El-Sheimy 2007; Cocard et al. 2008). However, long wavelength and small noise is a pair of paradox in the traditional carrier phase combination approach. When trying to get a long wavelength combination, we must use large combination parameter, which accompanies large observation noise. When a combined carrier phase with small observation noise is obtained, its wavelength is always short. This situation is particularly severe for the dual-frequency carrier phase combination.

We propose a new way of carrier phase combination in order to attain a combined carrier phase with long wavelength and small noise at the same time. This new method will be introduced in the following sections, and its potential for single-epoch positioning is discussed. In the first section, we discuss the new approach of mapped carrier phase generation. Due to the observation noise, the possible values of mapped carrier phase are not unique; however, only one of them is correct. The various values are regarded as candidates of the mapped carrier phase. In order to determine the correct value, we discuss the geometric model of positioning in the following section, including pseudoranges to sift the candidates of mapped carrier phase. The remaining candidates are sifted by minimizing a Gaussian least-squares residual function in the subsequent section. Combining the process introduced in these sections, we develop an algorithm for single-epoch precise positioning. Two experiments are carried out to preliminarily verify the real-time performance and reliability of the proposed algorithm.

New method for carrier phase combination

In order to obtain a combined carrier phase with long wavelength and small noise, we develop a dimension-added approach for carrier phase combination, instead of the traditional linear addition way. First, we consider a dual-frequency combination free of observation noise to interpret the ideal case. We get the fractional parts of the double-difference carrier phase observables in both frequencies by rounding φ 0 i  = ϕ 0 i  − [ϕ 0 i ], ϕ 0 i is the ideal carrier phase free of noise (in unit of cycles), and “[·]” denotes rounding to the nearest integer. We regard the observable φ 0 i and φ 0 j as the basis of the carrier phase space. The new combined carrier phase we are proposing is a point in this space, which is denoted as (φ 0 i φ 0 j ). Considering φ 0 i and φ 0 j periodic, it is easy to prove that (φ 0 i φ 0 j ) is a periodical variable whose period is the least common multiple of the original carrier phase periods. The mathematical expression of (φ 0 i φ 0 j ) is as follows:

$$\left\{ \begin{gathered} \begin{array}{*{20}c} {(\varphi_{i}^{0} ,\varphi_{j}^{0} )} & {\varphi_{i}^{0} ,\varphi_{j}^{0} \in ( - \tfrac{1}{2},\tfrac{1}{2}]} & {i \ne j;i,j \in \{ 1,2,5\} } \\ \end{array} \hfill \\ \begin{array}{*{20}c} {T_{r} = \hbox{min} T:} & {\{ f_{i} T \in Z,f_{j} T \in Z,T \ne 0\} } \\ \end{array} \hfill \\ \end{gathered} \right.$$
(1)

with T r being the period of the combined carrier phase, and f i and f j are the frequency of φ 0 i and φ 0 j . However, the combined carrier phase (φ 0 i φ 0 j ) is an abstract two-dimensional variable that cannot be intuitively used in numerical calculation. So we must find a bidirectional mapping to transform it to a single-dimensional variable for the convenience of calculation as

$$(\varphi_{i}^{0} ,\varphi_{j}^{0} )\underset{{}}{\overset{{t < T_{r} }}{\longleftrightarrow}}\varphi_{r}^{0}$$
(2)

where φ 0 r is the mapping of (φ 0 i φ 0 j ), and t < T r means the bidirectional mapping is within a period of (φ 0 i φ 0 j ). The type of bidirectional mapping used here is expressed as

$$\begin{array}{*{20}c} {\left\{ \begin{gathered} f_{i} t = \varphi_{i}^{0} + N_{i} \hfill \\ f_{j} t = \varphi_{j}^{0} + N_{j} \hfill \\ \end{gathered} \right.\overset {} \longleftrightarrow \left\{ \begin{gathered} f_{r} t = \varphi_{r}^{0} \hfill \\ f_{r} = \gcd (f_{i} ,f_{j} ) \hfill \\ \end{gathered} \right.} & {N_{i} ,N_{j} \in Z;t \in [0,T_{r} )} \\ \end{array}$$
(3)

where N i and N j are the ambiguities of the original carriers, “gcd(ab)” denotes the greatest common divisor of a and b, and f r is the frequency of the new variable φ 0 r . The expression of φ 0 r can be solved from (3) as

$$\begin{array}{*{20}c} {\left\{ \begin{gathered} N_{i} = {{(\varphi_{j}^{0} + N_{j} )f_{i} } \mathord{\left/ {\vphantom {{(\varphi_{j}^{0} + N_{j} )f_{i} } {f_{j} }}} \right. \kern-0pt} {f_{j} }} - \varphi_{i}^{0} \hfill \\ \varphi_{r}^{0} = {{f_{r} (\varphi_{i}^{0} + N_{i} )} \mathord{\left/ {\vphantom {{f_{r} (\varphi_{i}^{0} + N_{i} )} {f_{i} }}} \right. \kern-0pt} {f_{i} }} \hfill \\ \end{gathered} \right.} & {N_{j} \in Z,N_{j} \in [0,{{f_{j} } \mathord{\left/ {\vphantom {{f_{j} } {f_{r} }}} \right. \kern-0pt} {f_{r} }})} \\ \end{array}$$
(4)

It is obvious from (4) that the values of φ 0 r would not be the same for any two arbitrarily different values of N j . When the scale range of N j is limited within [0, f j /f r ), i.e., one period of (φ 0 i φ 0 j ), the bidirectional mapping is one-to-one. It is also noted that if the role of φ 0 i and φ 0 j is interchanged, the outcome φ 0 r will remain the same. Figure 1 shows the sketch of this mapping. Since N i and N j are unknown integers, using the integer nature of N i and N j , the scale range of N j , φ 0 r can be easily fixed from (4). We call this new variable φ 0 r the mapped carrier phase since it is obtained from a mapping of (φ 0 i φ 0 j ). This mapped carrier phase has the same period as (φ 0 i φ 0 j ) and can be intuitively used in numerical calculation.

Fig. 1
figure 1

Sketch map of mapping free of noises

The set of mapped carrier phase candidates

In the previous subsection, we derived the expressions of the mapped carrier phase on the assumption of no noise. However, observation noise is inevitable in measurement. In this subsection, we discuss the influence of the observation noise. The practical double-difference carrier phase observable can be expressed as φ k  = φ 0 k  + e k , where e k is the random stochastic noise assumed to conform to normal distribution. Regarding φ i and φ j , rather than φ 0 i and φ 0 j as the basis of the carrier phase space, (φ 0 i φ 0 j ) is not a definite point in the carrier phase space anymore. On the contrary, it can be any point in a specific region in the carrier phase space, for example, the red region in Fig. 2. The size of the region is determined by the confidence interval of the noises, which is set by the user. Equation (4) could be changed as follows to describe the given mapped carrier phase noise,

$$\begin{array}{*{20}c} {\left\{ \begin{gathered} \hat{N}_{i} = {{(\varphi_{j}^{0} + N_{j} )f_{i} } \mathord{\left/ {\vphantom {{(\varphi_{j}^{0} + N_{j} )f_{i} } {f_{j} }}} \right. \kern-0pt} {f_{j} }} - \varphi_{i}^{0} + {{e_{j} f_{i} } \mathord{\left/ {\vphantom {{e_{j} f_{i} } {f_{j} }}} \right. \kern-0pt} {f_{j} }} - e_{i} \hfill \\ \varphi_{r} = {{f_{r} (\varphi_{i}^{0} + e_{i} + [\hat{N}_{i} ])} \mathord{\left/ {\vphantom {{f_{r} (\varphi_{i}^{0} + e_{i} + [\hat{N}_{i} ])} {f_{i} }}} \right. \kern-0pt} {f_{i} }} \hfill \\ \end{gathered} \right.} & {N_{j} \in Z,N_{j} \in [0,{{f_{j} } \mathord{\left/ {\vphantom {{f_{j} } {f_{r} }}} \right. \kern-0pt} {f_{r} }})} \\ \end{array}$$
(5)

where φ r is the mapped carrier phase given noise. \(\hat{N}_{i}\) is no longer an integer given the observation noise. We denote its bias as \(e_{{N_{i} }}\), with \(e_{{N_{i} }} = {{e_{j} f_{i} } \mathord{\left/ {\vphantom {{e_{j} f_{i} } {f_{j} }}} \right. \kern-0pt} {f_{j} }} - e_{i}\). This bias degrades the probability that \([\hat{N}_{i} ]\) is fixed to the correct integer.

Fig. 2
figure 2

New approach of carrier phase combination with observation noise

To further describe in what way that \(e_{{N_{i} }}\) influences the correct fixing of \([\hat{N}_{i} ]\), we assume there is another ambiguity \(N_{j}^{\prime }\), with \(N_{j}^{\prime }\) = N j  + δN j , δN j being an arbitrary nonzero integer. Replacing N j with \(N_{j}^{\prime }\) in (5), a wrong integer ambiguity estimate is obtained,

$$\hat{N}^{\prime}_{i} = {{(\varphi_{j}^{0} + N_{j} )f_{i} } \mathord{\left/ {\vphantom {{(\varphi_{j}^{0} + N_{j} )f_{i} } {f_{j} }}} \right. \kern-0pt} {f_{j} }} - \varphi_{i}^{0} + {{\delta N_{j} f_{i} } \mathord{\left/ {\vphantom {{\delta N_{j} f_{i} } {f_{j} }}} \right. \kern-0pt} {f_{j} }} + e_{{N_{i} }}$$
(6)

with \(\hat{N}^{\prime}_{i}\) being the wrong integer ambiguity estimate. The difference of \(\hat{N}^{\prime}_{i}\) and \(\hat{N}_{i}\) is δN j f i /f j . If the fractional part of δN j f i /f j is not much larger than the size of \(e_{{N_{i} }}\), the fractional part of \(\hat{N}^{\prime}_{i}\) would be about the same size as the fractional part of \(\hat{N}_{i}\). It is hard to distinguish \(\hat{N}_{i}\) from \(\hat{N}^{\prime}_{i}\) using the integer nature of the ambiguity in such a situation. We denote the fractional part of δN j f i /f j as FP ij for short,

$${\text{FP}}_{ij} = {{\delta N_{j} f_{i} } \mathord{\left/ {\vphantom {{\delta N_{j} f_{i} } {f_{j} }}} \right. \kern-0pt} {f_{j} }} - [{{\delta N_{j} f_{i} } \mathord{\left/ {\vphantom {{\delta N_{j} f_{i} } {f_{j} }}} \right. \kern-0pt} {f_{j} }}]$$
(7)

On the other hand, the variance of double-difference carrier phase observation noise σ 20 satisfies 2σ 0 ≤ 0.05(cy) under the present measurement precision. Denoting the variance of \(e_{{N_{i} }}\) as \(\sigma_{{N_{i} }}^{2}\), it is easy to calculate that \(\sigma_{{N_{i} }}^{2}\) and σ 20 satisfy \(\sigma_{{N_{i} }}^{2} = \sigma_{0}^{2} ({{(f_{i} } \mathord{\left/ {\vphantom {{(f_{i} } {f_{j} }}} \right. \kern-0pt} {f_{j} }})^{2} + 1)\). We graph the values of FP ij as a function of δN j in dual-frequency combinations, i.e., L1 and L2, L1 and L5, and L2 and L5 in Fig. 3. The range of \(e_{{N_{i} }}\) under the confidence probability 99 % is shown by red dashes. The top panel presents values of FP ij and \(e_{{N_{i} }}\) in the L1 and L2 combination versus δN 2; the middle panel presents the L2 and L5 combination versus δN 5; and the bottom panel presents L1 and L5 combination versus δN 5. Most of the blue dots in the figure lie above the top or below the bottom red dash lines, and quiet a few of them lie between the red lines. That means the fractional part of δN j f i /f j could be submerged in the noise for certain values of δN j . As a result, it is hard to distinguish \(\hat{N}_{i}\) from some wrong estimates \(\hat{N}^{\prime}_{i}\) using integer constraint. In other words, there are more than one possible values of \([\hat{N}_{i} ]\). Inserting these in (5), several possible values of the mapped carrier phase can be obtained. These values compose a candidate set of mapped carrier phase.

Fig. 3
figure 3

Biases caused by wrong ambiguity estimates and observation noise of dual-frequency combinations. Top L1 and L2 combination. Middle L2 and L5 combination. Bottom L1 and L5 combination

We denote the mapped carrier phase candidate set by \(S_{{1 - \alpha_{1} }} (\varphi_{r} )\), where subscript 1 − α 1 is the confidence level of \(e_{{N_{i} }}\). The mapping from (φ i φ j ) to the mapped carrier phase given observation noise is shown in Fig. 4, and expression is as

$$(\varphi_{i} ,\varphi_{j} )\overset {t < T_{r} } \longleftrightarrow S_{{1 - \alpha_{1} }} (\varphi_{r} )$$
(8)

The candidate set \(S_{{1 - \alpha_{1} }} (\varphi_{r} )\) is defined as

$$S_{{1 - \alpha_{1} }} (\varphi_{r} ) = \{ \hat{N}_{i} |\varphi_{r} = {{f_{r} (\varphi_{i} + [\hat{N}_{i} ])} \mathord{\left/ {\vphantom {{f_{r} (\varphi_{i} + [\hat{N}_{i} ])} {f_{i} }}} \right. \kern-0pt} {f_{i} }}\}$$
(9)

where \(\hat{N}_{i}\) is defined in (5), with the user-defined confidence level 1 − α 1, \(P\{ \left| {{{(\hat{N}_{i} - [\hat{N}_{i} ])} \mathord{\left/ {\vphantom {{(\hat{N}_{i} - [\hat{N}_{i} ])} {\sigma_{{N_{i} }} }}} \right. \kern-0pt} {\sigma_{{N_{i} }} }}} \right| \le u_{{1 - {{\alpha_{1} } \mathord{\left/ {\vphantom {{\alpha_{1} } 2}} \right. \kern-0pt} 2}}} \} = 1 - \alpha_{1}\).

Fig. 4
figure 4

Sketch of mapping given noise

Obviously, the number of possible values has a close relationship with the confidence level of \(e_{{N_{i} }}\). Taking Fig. 3, for example, the width between two red lines determines how many dots lie between them. Choosing a proper confidence level is important in mapped carrier phase resolution.

The process of obtaining the mapped carrier phase in a triple-frequency combination is similar to the case of dual-frequency combination. We give the expressions of the mapped carrier phase based on triple-frequency combination as follows,

$$\begin{array}{*{20}c} {\left\{ \begin{gathered} f_{r} = \gcd (f_{1} ,f_{2} ,f_{5} ) \hfill \\ \hat{N}_{j} = {{(\varphi_{k}^{0} + N_{k} )f_{j} } \mathord{\left/ {\vphantom {{(\varphi_{k}^{0} + N_{k} )f_{j} } {f_{k} }}} \right. \kern-0pt} {f_{k} }} - \varphi_{j}^{0} + {{e_{k} f_{j} } \mathord{\left/ {\vphantom {{e_{k} f_{j} } {f_{k} }}} \right. \kern-0pt} {f_{k} }} - e_{j} \hfill \\ \hat{N}_{i} = {{(\varphi_{j}^{0} + [\hat{N}_{j} ])f_{i} } \mathord{\left/ {\vphantom {{(\varphi_{j}^{0} + [\hat{N}_{j} ])f_{i} } {f_{j} }}} \right. \kern-0pt} {f_{j} }} - \varphi_{i}^{0} {{ + e_{j} f_{i} } \mathord{\left/ {\vphantom {{ + e_{j} f_{i} } {f_{j} }}} \right. \kern-0pt} {f_{j} }} - e_{i} \hfill \\ \varphi_{r} = {{f_{r} (\varphi_{i}^{0} + e_{i} + [\hat{N}_{i} ])} \mathord{\left/ {\vphantom {{f_{r} (\varphi_{i}^{0} + e_{i} + [\hat{N}_{i} ])} {f_{i} }}} \right. \kern-0pt} {f_{i} }} \hfill \\ \end{gathered} \right.} & {N_{k} \in Z,N_{k} \in [0,{{f_{k} } \mathord{\left/ {\vphantom {{f_{k} } {f_{r} }}} \right. \kern-0pt} {f_{r} }})} \\ \end{array}$$
(10)

with f 5 being the frequency of L5, and N k and e k being the ambiguity and observation noise for the third double-difference observable. To fix the triple-frequency mapped carrier phase, \([\hat{N}_{i} ]\) and \([\hat{N}_{j} ]\) must be fixed first. Similar to the dual-frequency mapped carrier phase, \(\hat{N}_{i}\) and \(\hat{N}_{j}\) are not well determined because of the bias caused by the noise. We graph the size of noise and the bias caused by wrong integer estimates for \(\hat{N}_{i}\) and \(\hat{N}_{j}\) in Fig. 5, whose abscissa is δN 5. There are a few blue and black dots in the figure submerged in the noise at the same time for certain δN 5. In such a situation, it is hard to determine which values of \(\hat{N}_{i}\) and \(\hat{N}_{j}\) are correct using integer constraint. As a result, the value of the triple-frequency mapped carrier phase is not well determined. These possible values compose a candidate set of triple-frequency mapped carrier phase. This set can be regard as the intersection of two dual-frequency mapped carrier phase candidate sets

$$S_{{(1 - \alpha_{1} )^{2} }} (\varphi_{r} ) = S_{{1 - \alpha_{1} }} (\varphi_{ij} ) \cap S_{{1 - \alpha_{1} }} (\varphi_{jk} )$$
(11)

where \(S_{{(1 - \alpha_{1} )^{2} }} (\varphi_{r} )\) is the set of triple-frequency mapped carrier phase candidates, with (1 − α 1)2 being the confidence level, and φ ij and φ jk are dual-frequency mapped carrier phases generated by the L i and L j and L j and L k combinations, respectively. The possible values of the triple-frequency mapped carrier phase are much less than the dual-frequency mapped carrier phase.

Fig. 5
figure 5

Biases caused by wrong ambiguity estimates and observation noise of triple-frequency combination

Now we would like to make some comments on the traditional carrier phase combination and the mapped carrier phase. The traditional carrier phase combinations are linear functions of the original carrier phases and include integer parameters. They can be regard as the inner product of the carrier phase vector and the parameter vector ϕ = (ϕ 1ϕ 2ϕ 5) · (c 1c 2c 5)T. The mapping from original carrier phases to ϕ is an unidirectional mapping (ϕ 1ϕ 2ϕ 5) → ϕ, which means that ϕ only contains part of the information in the original carrier phases. In order to obtain a unique inverse mapping, one has to use more than one of these mappings. The mapping from original carrier phases to φ r is a bidirectional mapping (φ 1φ 2φ 5) ↔ φ r , so φ r contains all the information in the original carrier phases. One can get the unique inverse mapping using a single mapped carrier phase. There are four kinds of mapped carrier phases for GPS, i.e., the combinations of L1 and L2, L1 and L5, L2 and L5, L1, and L2 and L5, respectively. The wavelengths of these mapped carrier phases are shown in Table 1. These mapped carrier phases have two great advantages: (1) The wavelengths are very long, so the integer ambiguities can be easily fixed, and (2) once the correct value of mapped carrier phase is determined, its observation noise is equal to the original carrier in unites of meters. However, the correct value of the mapped carrier phase is not well determined due to the observation noise. We use the integer constraint of original carrier phase integer ambiguity, set a certain confidence interval of the noises, and only obtain some possible values of mapped carrier phase. In following sections, we will introduce further steps to determine the correct value from the candidates set.

Table 1 Frequency and wavelength of the four mapped carrier phases

Shrinking the mapped carrier phase candidates set

In the previous section, we have illustrated the approach of mapped carrier phase construction. We obtain a set of mapped carrier phase candidates for each carrier phase observable. In this section, we focus on shrinking these sets utilizing the pseudorange observation information and the geometry model. Assuming A and B are the endpoints of a baseline \(\vec{x}\), with their precise positions unknown. K is a satellite in common view. Seen in Fig. 6, the direction vectors from A and B to K are \(\vec{r}_{1}\) and \(\vec{r}_{2}\), respectively. The included angle of \(\vec{r}_{1}\) and \(\vec{r}_{2}\) is denoted as α. The angle α is so small that it could be neglected in the ultrashort baseline, but cannot be neglected in short or middle short baselines. Setting BK equal to CK, AD is the projection of the baseline \(\vec{x}\). The following equations are satisfied according to the geometrical structure

$$\left\{ \begin{gathered} \beta = {\alpha \mathord{\left/ {\vphantom {\alpha 2}} \right. \kern-0pt} 2} \hfill \\ d(v) = \sqrt {\left| {\vec{x}} \right|^{2} - (\vec{x} \cdot \vec{r}_{1} )^{2} } \tan \beta \hfill \\ \end{gathered} \right.$$
(12)

where d(v) is the difference of the baseline projection AD and the range difference AC. The relationship between AC and the projection of baseline is

$${\text{AC}} = - \vec{x} \cdot \vec{r}_{1} - d(v)$$
(13)
Fig. 6
figure 6

Geometry model of short baseline positioning

We call d(v) the distance amendment variable. Its value can be precisely calculated from the baseline solution using pseudoranges, because β is a very small angle in the short baseline model.

Assuming there being n + 1 satellites in common view, the GPS single-epoch double-difference mathematical models of mapped carrier phases and pseudoranges can be expressed as

$$\left\{ \begin{gathered} \begin{array}{*{20}c} {y_{r} = a + {{Bb} \mathord{\left/ {\vphantom {{Bb} {\lambda_{r} }}} \right. \kern-0pt} {\lambda_{r} }} + {{Dd} \mathord{\left/ {\vphantom {{Dd} {\lambda_{r} }}} \right. \kern-0pt} {\lambda_{r} }} + e_{r} ;} & {\sigma_{r}^{2} Q} \\ \end{array} \hfill \\ \begin{array}{*{20}c} {y_{c} = Bb + Dd + e_{c} ;} & {\sigma_{c}^{2} Q} \\ \end{array} \hfill \\ \end{gathered} \right.$$
(14)

where y r  ∊ R n is the observation vector of the mapped carrier phases, y c  ∊ R n is the observation vector of the pseudoranges, a ∊ Z n is the double-difference integer ambiguity vector of the mapped carrier phases, λ r is the wavelength of mapped carrier phase, b ∊ R 3 is the baseline vector, B ∊ R n×3 is the double-difference design matrix, d is the distance amendment vector, D is the single- to double-difference transformation matrix, and e r and e c are noise vectors of mapped carrier phases and pseudoranges, respectively. The symbols e r and e c conform to the normal distribution, whose variance covariance matrices are σ 2 r Q and σ 2 c Q, respectively, with σ r  = σ 0 f r /f i .

We set σ 0 = 0.5 cm and σ c  = 0.5 m in our computations. A rough baseline estimate can be solved from pseudorange observation as

$$\hat{b}_{c} = (B^{T} Q^{ - 1} B)^{ - 1} B^{T} Q^{ - 1} (y_{c} - Dd)$$
(15)

with \(\hat{b}_{c}\) being the baseline estimate. Inserting \(\hat{b}_{c}\) to the first equation of (14) and letting P B  = B(B T Q −1 B)−1 B T Q −1 yields

$$y_{r} = a + {{B\hat{b}_{c} } \mathord{\left/ {\vphantom {{B\hat{b}_{c} } {\lambda_{r} }}} \right. \kern-0pt} {\lambda_{r} }} + {{Dd} \mathord{\left/ {\vphantom {{Dd} {\lambda_{r} }}} \right. \kern-0pt} {\lambda_{r} }} + e_{r} - {{P_{B} e_{c} } \mathord{\left/ {\vphantom {{P_{B} e_{c} } {\lambda_{r} }}} \right. \kern-0pt} {\lambda_{r} }}$$
(16)

Estimates of any arbitrary element in vector a can be obtained from (16), which reads

$$E(\hat{a}(v)) = y_{r} (v) - {{B(v,:)\hat{b}_{c} } \mathord{\left/ {\vphantom {{B(v,:)\hat{b}_{c} } {\lambda_{r} }}} \right. \kern-0pt} {\lambda_{r} }} - {{D(v,:)d} \mathord{\left/ {\vphantom {{D(v,:)d} {\lambda_{r} }}} \right. \kern-0pt} {\lambda_{r} }}$$
(17)

with \(\hat{a}\) being the estimate of a, v being the v-th element, B(v,:) and D(v,:) being the v-th row of B and D, respectively. The covariance matrix of \(\hat{a}\) is

$$Q_{a} = {{\sigma_{c}^{2} P_{B} QP_{B}^{T} } \mathord{\left/ {\vphantom {{\sigma_{c}^{2} P_{B} QP_{B}^{T} } {\lambda_{r}^{2} }}} \right. \kern-0pt} {\lambda_{r}^{2} }} + \sigma_{r}^{2} I$$
(18)

The variable \(\hat{a}(v)\) is supposed to be normal distributed as \(\hat{a}(v) \sim N(a(v),Q_{a} (v,v))\). According to the sizes of σ c , σ r, and λ r , it is easy to derive that Q a (vv) is ≪1. Since a(v) is an integer, the value of \(\hat{a}(v)\) should not be far away from an integer when the value of y r (v) is correct. On the contrary, if the value of \(\hat{a}(v)\) is too far away from an integer, we can judge that the value of y r (v) used in (17) is incorrect. Taking advantage of this characteristic, many of the possible values of y r (v) can be rejected and its corresponding candidate set is, therefore, shrunk.

Similar to the previous section, we set a confidence level according to the distribution of \(\hat{a}(v)\) and sift the possible values in the candidate set. We insert each possible value of y r (v) into (17) to calculate the value of \(\hat{a}(v)\). If the value of \(\hat{a}(v)\) lies outside the confidence interval, we regard this possible value as incorrect and eliminate it. Through this step, a new candidate set with less possible values for y r (v) can be obtained,

$$\left\{ \begin{gathered} R_{{1 - \alpha_{2} }}^{(v)} = \{ \hat{a}(v)|y_{r}^{{S_{\text{cand}} }} (v) = \hat{a}(v) + {{B(v,:)\hat{b}_{c} } \mathord{\left/ {\vphantom {{B(v,:)\hat{b}_{c} } {\lambda_{r} }}} \right. \kern-0pt} {\lambda_{r} }} + {{D(v,:)d} \mathord{\left/ {\vphantom {{D(v,:)d} {\lambda_{r} }}} \right. \kern-0pt} {\lambda_{r} }}\} \hfill \\ \begin{array}{*{20}c} {y_{r}^{{S_{\text{cand}} }} (v) \in S_{{1 - \alpha_{1} }}^{(v)} } & {or} & {y_{r}^{{S_{\text{cand}} }} (v) \in S_{{(1 - \alpha_{1} )^{2} }}^{(v)} } \\ \end{array} \hfill \\ \end{gathered} \right.$$
(19)

where \(S_{{1 - \alpha_{1} }}^{(v)}\) and \(S_{{(1 - \alpha_{1} )^{2} }}^{(v)}\) are the initial candidate sets of y r (v) for the case of dual- and triple-frequency combinations, respectively; \(y_{r}^{{S_{\text{cand}} }} (v)\) is one of the possible values in the initial candidate set, \(R_{{1 - \alpha_{2} }}^{(v)}\) is the new candidate set, its subscript 1 − α 2 is the confidence level of \(\hat{a}(v)\), with \(P\{ \left| {{{(\hat{a}(v) - [\hat{a}(v)])} \mathord{\left/ {\vphantom {{(\hat{a}(v) - [\hat{a}(v)])} {\sqrt {Q_{a} (v,v)} }}} \right. \kern-0pt} {\sqrt {Q_{a} (v,v)} }}} \right| < u_{{1 - {{\alpha_{2} } \mathord{\left/ {\vphantom {{\alpha_{2} } 2}} \right. \kern-0pt} 2}}} \} = 1 - \alpha_{2}\). The confidence level can play a major role in eliminating incorrect candidates of the mapped carrier phase. It should not be set too conservative to possibly avoid eliminating the correct candidate.

Objective function threshold

We use a Gaussian least-squares objective function to determine the correct value of y r (v) from the remaining possible values in candidate set \(R_{{1 - \alpha_{2} }}^{(v)} (v = 1,2 \ldots n)\). After that, a threshold is developed to validate whether the value minimizing this objective function is correct. As mentioned in previous sections, the estimate \(\hat{a}\) is very close to integer, so it can be simply fixed by rounding to the nearest integer \(a = [\hat{a}]\). The least-squares solution of the baseline is

$$\hat{b} = \lambda_{r} (B^{T} Q^{ - 1} B)^{ - 1} B^{T} Q^{ - 1} (y_{r}^{{R_{\text{cand}} }} - [\hat{a}] - {{Dd} \mathord{\left/ {\vphantom {{Dd} {\lambda_{r} }}} \right. \kern-0pt} {\lambda_{r} }})$$
(20)

where \(y_{r}^{{R_{\text{cand}} }}\) is one of the possible values of y r . According to the least-squares principle, the objective function is the norm of observation residual

$$\left\{ \begin{gathered} \begin{array}{*{20}c} {\hbox{min} :} & {F = \left\| {y_{r}^{{R_{\text{cand}} }} - [\hat{a}] - {{B\hat{b}} \mathord{\left/ {\vphantom {{B\hat{b}} {\lambda_{r} }}} \right. \kern-0pt} {\lambda_{r} }} - {{Dd} \mathord{\left/ {\vphantom {{Dd} {\lambda_{r} }}} \right. \kern-0pt} {\lambda_{r} }}} \right\|_{Q}^{2} } \\ \end{array} \hfill \\ \begin{array}{*{20}c} {y_{r}^{{R_{\text{cand}} }} (v) \in R_{{1 - \alpha_{2} }}^{(v)} } & {(v = 1,2 \ldots n)} \\ \end{array} \hfill \\ \end{gathered} \right.$$
(21)

where “\(\left\| \cdot \right\|^2_{Q}\)” stands for (·)T Q −1 y (·) and \(y_{r}^{{R_{\text{cand}} }} (v)\) is the element of \(y_{r}^{{R_{\text{cand}} }}\). There are n candidate sets for n elements of y r , and each set contains one or more possible values. So the possible vectors of y r are surely not unique. Through enumerating every possible value of y r , i.e., \(y_{r}^{{R_{\text{cand}} }}\), the vector minimizing the objective function can be found. We denote this vector y min r and the corresponding value of objective function F min. We expect y min r to be the correct value of the mapped carrier phase vector, but sometimes it is not. The correct value might have been rejected by the previous two confidence levels illustrated in previous sections, if these confidence levels are set too conservative. In following analysis, we set another threshold to validate whether y min r is correct.

We denote the value of objective function by F t when the value of the mapped carrier phase vector is correct. Since F t /(n − 3) is an unbiased estimate of σ 2 r , it is supposed to distribute as

$${{F_{t} } \mathord{\left/ {\vphantom {{F_{t} } {\sigma_{r}^{2} }}} \right. \kern-0pt} {\sigma_{r}^{2} }} \sim \chi^{2} (n - 3)$$
(22)

with χ 2(n − 3) the Chi-square distribution with n − 3 degrees freedom. Setting a confidence level 1 − α 3 for the value of F t /σ 2 r as

$$P\{ {{F_{t} } \mathord{\left/ {\vphantom {{F_{t} } {\sigma_{r}^{2} }}} \right. \kern-0pt} {\sigma_{r}^{2} }} < \chi_{{1 - \alpha_{3} }}^{2} (n - 3)\} = 1 - \alpha_{3}$$
(23)

and inserting σ r  = σ 0 f r /f i in (23) yields

$$F_{t} < F_{{1 - \alpha_{3} }} = ({{\sigma_{0} f_{r} } \mathord{\left/ {\vphantom {{\sigma_{0} f_{r} } {f_{i} }}} \right. \kern-0pt} {f_{i} }})^{2} \chi_{{1 - \alpha_{3} }}^{2} (n - 3)$$
(24)

Equation (24) states that F t should be smaller than \(F_{{1 - \alpha_{3} }}\) under the confidence level 1 − α 3. If \(F_{\hbox{min} } \ge F_{{1 - \alpha_{3} }}\), we regard the corresponding vector y min r not the correct value of y r . The correct value might have been rejected by previous two confidence levels. In this situation, the first or the second confidence levels should be enlarged.

Algorithms for single-epoch positioning

Three steps are introduced to construct each mapped carrier phase and to fix the correct value of mapped carrier phase vector. These approaches are summarized in algorithms. We only present algorithms of the mapped carrier phase of dual-frequency combination for brevity since the triple-frequency cases are analogous. The process of forming the initial candidate set is presented in the algorithm InitialSet. We obtain an initial candidate set for a mapped carrier phase through this algorithm.

figure f

After that, the possible values in each candidate set are sifted including the GPS positioning geometry model. This approach is summarized in the algorithm ShrunkSet. In this algorithm, the superscript v of the candidate set indicates that it is the set of the vth element of the mapped carrier vector.

figure g

The possible values of each candidate set are dramatically reduced after the second step. We select the value of the mapped carrier phase vector minimizing the Gaussian objective function based on these shrunk candidate sets. Then, a threshold is developed to verify our result, and if passed, the algorithm terminates; otherwise, each mapped carrier phase will be recalculated. The entire algorithm for single-epoch positioning is summarized in the algorithm MappedCarrResolut. There are three confident levels specified and used in this algorithm. These confident levels must be set properly and reasonably. We initially set the first confident level using a relatively conservative value 1 − α 1 = 99 %. The second and third thresholds are set much more optimistic, with 1 − α 2 = 1 − α 3 = 99.7 %. The advantage of this setting is that only the first threshold needs to be enlarged and the others two can remain unchanged if the result is denied by our validation.

figure h

Experiments

Two sets of double-difference GPS baseline data are used to verify the performance of the new precise positioning algorithm. One set refers to an ultrashort GPS baseline observed in Wuhan, China, and the other set was collected at two CORS stations about 9 km apart in USA. In these experiments, we only use the mapped carrier phase generated by combining L1 and L2, because L5 is not available in our GPS receivers. Detailed information of the data is presented in Table 2. The PDOP and number of satellites in common view during the experiments are shown, respectively, in Fig. 7. During the data processing, the baselines were solved epoch by epoch independently using the new algorithm and the LAMBDA method. The ambiguity resolution results of these two algorithms are compared to illustrate the advantages and disadvantages of the new algorithm.

Table 2 Information of two experiments
Fig. 7
figure 7

PDOP and the number of visible satellites. Top experiment 1 (Wuhan). Bottom experiment 2 (USA)

Solutions of positioning

The precise positioning solutions of these two experiments using the new algorithm are shown in Fig. 8. The solutions’ comparison of the new method and LAMBDA is summarized in Table 3. The successful fixed rate of the new algorithm is slightly below that of the LAMBDA method. That is mainly because the first two thresholds of the new algorithm do not take the correlation of the double-difference observation data into account. Considering the optimal property of the LAMBDA method (Teunissen 1999), the resolution performance of the new algorithm is still reliable.

Fig. 8
figure 8

Positioning results of the new algorithm. Top experiment 1 (Wuhan). Bottom experiment 2 (USA)

Table 3 Successful fixing rate comparison of the new algorithm and LAMBDA algorithm

Computational workload

Along with the successful fixing rate, the computational workload is another index one is most concerned with. We processed the observations using MATLAB software in Windows XP operation system, with the hardware Intel Core2 Duo CPU and 2 GB RAM. The computational time consumption curves of the new algorithm and LAMBDA are shown in Fig. 9. The total and average time costs are presented in Table 4. The time required by the new algorithm is less than that for LAMBDA in most epochs. But in a few epochs the new method takes longer. This might occur because the new algorithm is closed loop. If the value of objective function is denied by the third confidence level, the new method will enlarge its first confidence level with a certain value and repeat the whole calculation, again and again, until the objective function threshold is passed. In a few epochs, the circulation might be executed more often than in others, and their computational consumption is, therefore, higher.

Fig. 9
figure 9

Computational time comparison of the new algorithm and LAMBDA. Top experiment 1 (Wuhan). Bottom experiment 2 (USA)

Table 4 Computational time comparison of the new algorithm and LAMBDA

Conclusions

For multi-frequency positioning, a carrier phase with long wavelength and low noise level is preferable for integer ambiguity fixing. Traditional carrier phase combinations are linear functions of the original carrier phase observations containing integer parameters. A new way for carrier phase combination is proposed. We regard the original double-difference carrier phases as the basis of the carrier phase space, and the combined carrier phase is a point of this space. Then, the point is mapped to a new single-dimensional carrier phase called mapped carrier phase by a bidirectional mapping. The advantages of the mapped carrier phase are as follows: (1) It contains all the information in the original carrier phases; (2) its noise remains the same as the original carrier phases; and (3) its wavelength is very long. However, the correct value of mapped carrier phase is not easy to be fixed due to the noise in the observed carrier phases.

Three steps are developed to fix the correct value of the mapped carrier phase. In the first step, we use the integer nature of the original carrier phase ambiguity, set a confidence level of the noise and obtain a candidate set for the each mapped carrier phase. In the second step, we explore the geometry model, solve the float solution of the mapped carrier phase ambiguity vector, and shrink all the candidate sets by setting confidence level of the float solution. In the third step, an objective function according to Gaussian least-squares principle is set to determine the correct value from the remaining candidates; then, we validate the result using a confidence level of the residual error. Selecting the values of those confidence levels reasonably, a closed-loop algorithm for GPS single-epoch positioning is formed.

Two GPS dual-frequency single-epoch positioning experiments have been carried out. The performances of the new algorithm and LAMBDA are compared in these experiments. The results show (1) the new algorithm is reliable and, however, suboptimal because the first two thresholds of the new algorithm do not take the correlation of the double-difference observations into account; (2) the algorithm is computationally more efficient than LAMBDA in most cases.