# Multiple integer candidates ambiguity resolution: a unification ambiguity resolution algorithm

## Abstract

Among all the ambiguity resolution techniques, the Full Ambiguity Resolution (FAR), Partial Ambiguity Resolution (PAR) and Best Integer Equivariant (BIE) estimator are widely used. Although the researches have been done on the different classes of ambiguity resolution, we still hope to find the relationships among these specific algorithms. In this work, we unify the PAR and FAR algorithms under a whole framework of BIE by applying multiple integer candidates. A concise estimation formula of the variance of Gaussian BIE estimator based on the variance of float solution and the probability distribution of the candidates is first derived. Then, we propose an algorithm named Multiple Integer Candidates Ambiguity Resolution (MICAR) to discover as many ambiguities in the BIE as possible that can be estimated more precisely by PAR (FAR) algorithm instead of BIE. In the experiments, we utilize the simulated data of GPS (Global Positioning System) + BDS (BeiDou Navigation Satellite System) + Galileo (Galileo navigation satellite system) to contrast the effects of MICAR and single candidate estimator, i.e., FAR. By taking the threshold of 5 cm at 95% confidence level as an example, MICAR accelerates the convergence process by about 3.0 min. When the positioning sequence converges, MICAR reduces the root mean square of the positioning error by 9.8% in horizontal directions and 3.5% in vertical direction, which is attributed to more fixed NL.

## Introduction

The observation equation of the Global Navigation Satellite System (GNSS) precise positioning as a mixed integer linear model can be expressed as follows (Teunissen 1995; 1999A), Xu 2006):

\begin{aligned} E(\varvec{ y }) = \varvec{H}_{\varvec{a }}\varvec{ a } + \varvec{H}_{\varvec{b }}\varvec{ b } \end{aligned}
(1)

where $$\varvec{ y }$$ is the observation vector, $$\varvec{H}_{\varvec{a }}$$ and $$\varvec{H}_{\varvec{b }}$$ are designed matrices, $$\varvec{ a } \in {\mathbb {Z}}^{ n }$$ and $$\varvec{ b } \in {\mathbb {R}}^m$$ are parameters of integer ambiguities and real-valued unknown geometry components, respectively.

Assume that the observation vector $$\varvec{ y }$$ follows a multivariate normal distribution with the covariance matrix given by $$D (\varvec{ y })=\varvec{ Q} _{\varvec{ y }}$$. Regardless the integer nature of the ambiguities, Eq. (1) can be solved by the least-squares to derive the so-called “float solution”, and the estimate and its covariance matrix is written as

\begin{aligned} \left( \begin{array}{l} \hat{\varvec{ a }}\\ \hat{\varvec{ b }} \end{array}\right) , \left( \begin{array}{ll} \varvec{ Q} _{\hat{\varvec{ a }}} &{} \varvec{ Q} _{{\hat{\varvec{ a }}}{\hat{\varvec{ b }}}} \\ \varvec{Q} _{\hat{\varvec{ b} }\hat{\varvec{a} }} &{} \varvec{ Q _{\hat{ b }}} \end{array}\right) \end{aligned}
(2)

The essence of the ambiguity resolution technique is to take the integer nature of the ambiguities into account and give an integer ambiguity estimate $$\check{\varvec{ a }} \in {\mathbb {Z}}^{ n }$$. Having this, we can obtain the “fixed solution” as $$\check{\varvec{ b }}=\hat{\varvec{ b }}-\varvec{Q} _{\hat{\varvec{ b} }\hat{\varvec{a} }}\varvec{Q} _{\hat{\varvec{{a }}}}^{-1}(\hat{\varvec{ a }}-\check{\varvec{ a }})$$.

Concerning the Precise Pointing Positioning (PPP), the Uncalibrated Phase Delays (UPDs) caused by initial phase biases together with the signal dependent hardware effects destroy the integer property of the zero-difference ambiguities, and thus integer ambiguity resolution cannot be achieved straightforwardly (Gu et al. 2015). As a result, the traditional PPP is usually performed with float ambiguity and takes about 30 mins to converge to centimeter-level accuracy (Bisnath 2009). To overcome this dilemma, Gabor and Nerem (1999) attempted to perform Ambiguity Resolution (AR) in PPP solution. Since then, PPP-AR has been a research hotspot, and many researchers in the GNSS community have intensively studied the issue (Collins 2008; Ge et al. 2008; Laurichesse et al. 2009). Although AR was demonstrated as an efficient technique to accelerate the convergence speed of PPP, it still took almost 10 min to get an accuracy at centemeter-level (Li et al. 2020). Until more recently, instantaneous convergence PPP was achieved with triple-frequency integer ambiguity resolution and multi-constellation measurements (Tao et al. 2022). Consequently, solving the fixed solution of ambiguities is crucial. To estimate the best integer solution, several Integer (I) estimators were proposed, such as integer rounding, Integer Bootstrapping (IB), and Integer Least-Squares (ILS) estimator, and ILS was proved to have the highest success rate among all integer estimators (Teunissen 1999A).

These traditional AR techniques determined the entire ambiguity vector to an integer vector. However, due to either the noisy observation or the biased model, the ambiguity may be wrongly determined, and consequently, an unacceptable error is introduced into the positioning result (Li et al. 2014). To overcome this difficulty, several validation methods such as the F-ratio test (Frei 1990), R-ratio test (Euler and Schaffrin 1991), difference test (Tiberius and Jonge 1995), and W-ratio test (Wang et al. 1998) were proposed to control the risk of accepting the false ambiguity. As one of the most popular validation methods, the R-ratio test is defined as

\begin{aligned} R = \frac{\Vert \hat{\varvec{ a }} - \check{\varvec{ a }}_2\Vert _{\varvec{Q} _{\hat{\varvec{{a }}}}}^2}{\Vert \hat{\varvec{ a }} - \check{\varvec{ a }}_1\Vert _{\varvec{Q} _{\hat{\varvec{{a }}}}}^2} \ge \mu \end{aligned}
(3)

where the integer vector $$\check{\varvec{ a }}_1$$ and $$\check{\varvec{ a }}_2$$ have respectively the minimum and second minimum quadratic form with $$\hat{\varvec{ a }}$$; $$\mu$$ is the threshold that can be determined with either the empirical approach or the fixed failure rate approach (Wang & Verhagen 2015). Once Eq. (3) holds, we have the integer ambiguity estimate $$\varvec{ a } = \check{\varvec{ a }}_1$$.

Instead of determining the entire vector of ambiguity to integers, i.e., Full Ambiguity Resolution (FAR), the Partial Ambiguity Resolution (PAR) technique introduced by Teunissen (1999B) tried to fix a subset of the entire ambiguity vector. As demonstrated by Psychas et al. (2020), PAR is more efficient than FAR once a sufficiently large subset of ambiguities is fixed. It should be noted that the subset in PAR can also be the linear combinations of the entire vector of ambiguity (Teunissen et al. 1999B). Thus, it can be expressed as $$\varvec{ Ta }=\check{\varvec{ z }}$$ with $$\varvec{ T }\in {\mathbb {R}}^{ k \times n }$$ the transformation matrix, $$\check{\varvec{ z }}$$ the linear combinations of the integer ambiguities, and $$k < n$$ in PAR technique. Note that in case $$k = n$$, we can get the inverse of $$\varvec{ T }^{-1}$$, and it is expected that $$\varvec{ a } = \varvec{ T }^{-1}\check{\varvec{ z }} = \check{\varvec{ a }}_1$$, i.e., the FAR solution. Therefore, if we allow the condition to be relaxed as $$k \le n$$, FAR is a special case of PAR.

Both FAR and PAR belongs to the class of Integer Aperture (IA) estimator (Teunissen 2003A; 2004) since some of the ambiguities are fixed to their float solution, and they usually use an I estimator (Teunissen 2003B) to fix the ambiguities such as ILS (the optimal IA estimator is given in Teunissen 2003A; Teunissen 2004). However, for a short observation period the R-ratio test (3) may fail, even for a subset of ambiguities. Thus, the Integer Equivariant (IE) estimator is proposed as a trade-off between the fixed and float solution and is larger than the class of I estimator (Teunissen 2003B) or IA estimator (Teunissen 2003A; Teunissen 2004). In particular, the Best Integer Equivariant (BIE) Estimator is put forward as the minimum variance unbiased estimator within the IE class. In this paper, by considering $$\varvec{ y }$$ is normally distributed, the BIE estimator of the ambiguities is given as

\begin{aligned} \varvec{ a }_{\text {BIE}} = \displaystyle \frac{\sum \limits _{\varvec{ z }\in {\mathbb {Z}}^{ n }}\varvec{ z }\cdot \exp \, \left( -\displaystyle \frac{1}{2}\big \Vert \hat{\varvec{ a }}-\varvec{ z }\big \Vert ^2_{\varvec{Q} _{\hat{\varvec{ a }}}}\right) }{\sum \limits _{\varvec{ z }\in {\mathbb {Z}}^{ n }}\exp \, \left( -\displaystyle \frac{1}{2}\big \Vert \hat{\varvec{ a }}-\varvec{ z }\big \Vert ^2_{\varvec{Q} _{\hat{\varvec{ a }}}}\right) } \end{aligned}
(4)

In addition, through Bayesian theory (Blewitt 1989; Betti 1993; Wu and Bian 2015) we can derive the posterior probability

\begin{aligned} P _{ i }(\hat{\varvec{{ a }}})=P(\varvec{ a }=\varvec{ z }_ i |(\hat{{\varvec{ a }}},{\varvec{Q} _{\hat{\varvec{ a }}}})) = \displaystyle \frac{\exp \, \left( -\displaystyle \frac{1}{2}\Vert \hat{{\varvec{ a }}} - \varvec{ z }_ i \Vert ^2_{\varvec{Q} _{\hat{\varvec{ a }}}}\right) }{\sum \limits _{\varvec{ z }\in {\mathbb {Z}}^{ n }}\exp \, \left( -\displaystyle \frac{1}{2}\Vert \hat{{\varvec{ a }}} - \varvec{ z } \Vert ^2_{\varvec{Q} _{\hat{\varvec{ a }}}}\right) } \end{aligned}
(5)

Thus, the BIE estimator can also be regarded as the mean value of all the integers (Odolinski & Teunissen 2020). However, since it is impossible to treat the infinite integer vectors as candidates, a practical method to address it is to select a finite subset of integers to approximate the integer set. Teunissen (2005) presented a searching method based on Chi-square distribution, and Wu and Bian (2015) presented a searching method using a lower bound based on the likelihood of estimated integer ambiguities. Notably, Yu et al. (2020) further derived an approximation for the covariance matrix of the Gaussian case BIE estimator. Based on this work, we derive a more concise estimation formula for this covariance matrix. With our formula, we can make intuitive connections between the covariance matrix between the float solution, the candidate set, and the BIE.

More recently, Teunissen (2021) presented a new approach, i.e., Vectorial Integer Bootstrapping (VIB), that can combine various estimators together. Concretely, it expands IB to a vectorial form, which can sequentially apply different estimators to artificially partitioned ambiguity sub-vectors.

In this paper, we put forward a novel algorithm: Multiple Integer Candidates Ambiguity Resolution (MICAR), to combine FAR and PAR estimator in the Gaussian case BIE. Our contribution mainly lies in the following two aspects. First, we derive a concise estimation formula to compute the variance of the Gaussian case BIE estimator which deepens our understanding of the relationships between the float solution, the candidate set, and the BIE. Secondly, based on the Gaussian case BIE solution, we use the maximal linearly independent set to fully exploit the linear relationship among ambiguity candidates, enabling as many ambiguity elements as possible to be estimated by the PAR (FAR) estimator with zero variance, which offers higher precision than the original BIE solution.

This paper is organized as follows: In Section “Notation”, we give some notations about the symbols used in the text. In Section “Variance of BIE estimator”, we derive the estimation formula for the variance of the Gaussian case BIE estimator. In Section “Multi-integer candidate ambiguity resolution”, we present the MICAR algorithm. In Section “Discussion”, we discuss MICAR. In Section “Experiment”, we demonstrate the experiment.

## Notation

In this paper, we adopt the following conventions:

Scalars are denoted with regular lower-case letters, (column) vectors are denoted in bold lower-case letters, and matrices are denoted in bold capitals. $$\varvec{ I }_ n$$ denotes an identity matrix of dimension $$n$$. $$P ( A )$$ denotes the probability of event $$A$$. $$E (\varvec{ a })$$ and $$D (\varvec{ a })$$ are the mean and covariance operators of the random vector $$\varvec{ a }$$, which are also denoted as $$\bar{\varvec{ a }}$$ and $$\varvec{ Q }_{\varvec{ a }}$$ respectively. In addition, $$\text{tr} \, \varvec{ A }$$ and $$\text{rank}\, \varvec{ A }$$ denote the trace and rank of matrix $$\varvec{ A }$$, respectively.

## Method

In this section, we first derive the estimation formula for the variance of the Gaussian case BIE estimator. Then, we present the algorithm of MICAR.

### Variance of BIE estimator

As mentioned in Section “Introduction”, the Gaussian case BIE estimator is given as Eq. (4). Since it can be regarded as the mean value of integers, we denote it as $$\bar{\varvec{ a }}$$ for simplicity.

Since the infinite terms in the denominator are impossible to calculate, a subset $$A = \{\check{\varvec{ a }}_1, \check{\varvec{ a }}_2, \ldots , \check{\varvec{ a }}_m\} \subset {\mathbb {Z}}^{ n }$$ is usually selected to replace all integers, e.g., the set of all the integers that pass the R-ratio test. Hence, the posterior probability can be approximately substituted by

\begin{aligned} P _{ i }(\hat{\varvec{ a }}) = \displaystyle \frac{\exp \, \left( -\displaystyle \frac{1}{2}\Vert \hat{\varvec{ a }} - \check{\varvec{ a }}_ i \Vert ^2_{\varvec{Q} _{\hat{\varvec{ a }}}}\right) }{\sum \limits _{ j =1}^{ m }\exp \, \left( -\displaystyle \frac{1}{2}\Vert \hat{\varvec{ a }} - \check{\varvec{ a }}_ j \Vert ^2_{\varvec{Q} _{\hat{\varvec{ a }}}}\right) } \end{aligned}
(6)

Then the BIE estimator is expressed as

\begin{aligned} \bar{\varvec{ a }} = \displaystyle \frac{\sum \limits _{ i =1}^{ m } \check{\varvec{ a }}_ i \cdot \exp \, \left( -\displaystyle \frac{1}{2}\big \Vert \hat{\varvec{ a }}-\check{\varvec{ a }}_ i \big \Vert ^2_{\varvec{Q} _{\hat{\varvec{ a }}}}\right) }{\sum \limits _{ i =1}^{ m }\exp \, \left( -\displaystyle \frac{1}{2}\big \Vert \hat{\varvec{ a }}-\check{\varvec{ a }}_ i \big \Vert ^2_{\varvec{Q} _{\hat{\varvec{ a }}}}\right) } \end{aligned}
(7)

If the subset is chosen reasonably where $$A$$ consists of $$\check{\varvec{ a }}_ i$$ close to $$\hat{\varvec{ a }}$$, Eq. (7) is a good approximation since the exponential power vanishes rapidly as $$\check{\varvec{ a }}_ i$$ moves away from $$\hat{\varvec{ a }}$$. Besides $$\bar{\varvec{ a }}$$, its covariance matrix $$\varvec{Q} _{\bar{\varvec{a}}}$$ is another crucial factor. Let the probability $$P(\varvec{ a }=\check{\varvec{ a }}_ i |\hat{\varvec{ a }}, \varvec{Q} _{\hat{\varvec{{a }}}})$$ be defined as $$P _{ i }$$ in (6), so we can calculate $$D (\varvec{ a }|\hat{\varvec{ a }}, \varvec{Q} _{\hat{\varvec{{a }}}})$$, denoted by $$\varvec{Q} _{\varvec{a}|\hat{\varvec{a} }}$$. Then, by taking the first order approximation of $$\bar{\varvec{ a }}$$, we have

\begin{aligned} {\varvec{Q} _{\bar{\varvec{ a }}}} \approx \varvec{Q} _{\varvec{a}|\hat{\varvec{a} }}\varvec{ Q }^{-1}_{\hat{\varvec{ a }}}\varvec{ Q }^{\text{T}}_{\varvec{a}|\hat{\varvec{a} }} \end{aligned}
(8)

which is proved in the appendix. We denote the approximation of $$\varvec{Q} _{\bar{\varvec{a}}}$$ as $$\tilde{\varvec{Q}}_{\bar{ a }}$$. Theoretically, this equation also applies to the original infinite probability space of $$\varvec{ a }$$. The float solution can be improved with the constraint

\begin{aligned} \bar{\varvec{ a }} = \varvec{ a }, \varvec{P} _{\bar{\varvec{ a} }} = \tilde{\varvec{ Q }}^{-1}_{\bar{\varvec{ a }}} \end{aligned}
(9)

where $$\varvec{P} _{\bar{\varvec{ a} }}$$ is the weight matrix.Footnote 1

Although $$\varvec{Q} _{\hat{\varvec{{a }}}}^{-1}$$ is positive definite, the rank-defect in $$\varvec{Q} _{\varvec{a}|\hat{\varvec{a} }}$$ can cause singularity in the approximation for $$\varvec{Q} _{\bar{\varvec{a}}}$$. For instance, when the value of a certain ambiguity is identical among the candidate set $$A$$, the corresponding variance in $$\varvec{Q} _{\varvec{a}|\hat{\varvec{a} }}$$ will be zero, resulting in the zero-variance in the approximation $$\tilde{\varvec{ Q }}_{\bar{ a }}$$. We argue that this approximation makes sense since in the case that the value among $$A$$ is identical, the corresponding variance in the true value of $$\varvec{Q} _{\bar{\varvec{a}}}$$ is very close to zero. This inspires the design of MICAR.

Since linear transformation can be taken on the ambiguities, a linear transformation can be found to explore the linear structure in set $$A$$ as much as possible. As a simple example, let $$A = \{\check{\varvec{ a }}_1 = (1\ 2\ 3\ 4)^{\text{T}}, \check{\varvec{ a }}_2 = (2\ 3\ 3\ 3)^{\text{T}}, \check{\varvec{ a }}_3 = (3\ 4\ 2\ 2)^{\text{T}}\}$$ be the candidate set. Although there is yet no zero-variance of ambiguities in $$\varvec{Q} _{\varvec{a}|\hat{\varvec{a} }}$$, i.e., no any ambiguities are identical in A, we can take a linear transformation on the ambiguities to make them identical, since there are potential linear structure in the set $$A$$. Let $$\varvec{ T } = \begin{pmatrix} 0 &{}\quad 0 &{}\quad 1 &{}\quad 0 \\ 0 &{}\quad 0 &{}\quad 0 &{}\quad 1 \\ 1 &{}\quad 0 &{}\quad 0 &{}\quad 1 \\ 0 &{}\quad 1 &{}\quad 0 &{}\quad 1 \\ \end{pmatrix}$$, Then $$\varvec{T}\check{\varvec{a}}_1 = (3\ 4\ 5\ 6)^{\text{T}}$$, $$\varvec{T}\check{\varvec{a}}_2 = (3\ 3\ 5\ 6)^{\text{T}}$$, $$\varvec{T}\check{\varvec{a}}_3 = (2\ 2\ 5\ 6)^{\text{T}}$$. Now there are two ambiguities that are identical in the candidate set, and the covariance matrix of the candidate set becomes $$\begin{pmatrix} \varvec{ Q }' &{} {\textbf{0}} \\ {\textbf{0}} &{} {\textbf{0}} \end{pmatrix}$$, which results in two elements of the BIE having zero-variance approximately. The goal of MICAR is to find a linear transformation that makes the zero-variance ambiguities as many as possible.

### Multi-integer candidate ambiguity resolution

In this section, we present the MICAR technique. The main idea of this method is to find a linear transformation to divide the BIE estimator $$\bar{\varvec{ a }}$$ into two parts: the first part with approximately zero variances, and the second part with non-zero variances. The first part of BIE estimators should be all integers since they are essentially the weighted sum of identical integers. Thus it can be seen as PAR as well. Therefore, we call the first part the PAR part, and the second part the BIE part for simplicity. Intuitively, we want to find a linear transformation that makes the size of the PAR part as large as possible.

Without loss of generality, let $$r = \text{rank}\, \varvec{Q} _{\varvec{a}}|\hat{\varvec{a} }\le n$$, and suppose there exists an invertible matrix $$\varvec{ T }$$ so that the covariance matrix of $$A _T:=\{\varvec{T}\check{\varvec{a}}_1, \varvec{T}\check{\varvec{a}}_2, \cdots , \varvec{T}\check{\varvec{a}}_m\}$$, denoted as $$\varvec{ Q} _{\varvec{Ta}|\varvec{T}\hat{\varvec{a} }}$$, is of the form

\begin{aligned} \varvec{ Q} _{\varvec{Ta}|\varvec{T}\hat{\varvec{a} }} = \begin{pmatrix} \varvec{ Q} _{\varvec{Ta}|\varvec{T}\hat{\varvec{a} }}' &{} {\textbf{0}} \\ {\textbf{0}} &{} {\textbf{0}} \end{pmatrix} = \varvec{ T Q _{a|\hat{ a }}T}^{{\text{T}}} \end{aligned}
(10)

where $$\varvec{ Q _{Ta|T\hat{ a }}'}\in {\mathbb {R}}^{r \times r}$$ is positive definite.Footnote 2 Under this transformation, the BIE becomes $$\varvec{ T \bar{ a }}$$ As mentioned in the last section, this is equivalent to

\begin{aligned} \varvec{Q} _{ \varvec{T} \bar{\varvec{a}}} = {\varvec{T}\varvec{Q} _{\bar{\varvec{a}}}T}^{\text{T}} \approx \begin{pmatrix} {\varvec{Q} _{\textbf{11}}} &{} {\textbf{0}} \\ {\textbf{0}} &{} {\textbf{0}} \end{pmatrix} \end{aligned}
(11)

where $$\varvec{ Q _{11}}\in {\mathbb {R}}^{ r \times r }$$ is a positive definite matrix.

Let

\begin{aligned} \varvec{ T } = \left( \begin{array}{c} \varvec{ T _1} \\ \varvec{ T _2} \end{array}\right) \end{aligned}
(12)

where $$\varvec{ T _1}\in {\mathbb {R}}^{ r \times n }$$. From Eq. (11) ad (12) we have $$\varvec{ Q _{ T _1\bar{ a }}} \approx \varvec{ Q _{11}}$$ and $$\varvec{ Q _{ T _2\bar{ a }}} \approx {\textbf{0}}$$, and $$\varvec{ T _1\bar{ a }}$$ is uncorrelated with $$\varvec{ T _2\bar{ a }}$$. Since $$\varvec{ T _2\bar{ a }}$$ is degenerate, there is a constant vector $$\varvec{ c _0}$$ which satisfies $$\varvec{ T _2\bar{ a }} = \varvec{ c _0}$$. Thus, $$\varvec{ T _2\bar{ a }}$$ is the PAR part of $$\varvec{ T \bar{ a }}$$ since its approximate variance vanishes. For the BIE part, we use the formula of Eq. (8) to calculate the approximation for $$\varvec{ Q _{11}}$$, which is $$\tilde{\varvec{ Q }_{11}}$$.

Besides, we take the idea in Yu et al. (2020) that a validation condition $$\text{tr}\, {\tilde{\varvec{Q}}_{\bar{ a }}} < {\text{tr}}\,{\varvec{Q}} _{\hat{\varvec{{a }}}}$$ should be satisfied for BIE estimators, which is under the thought that the accuracy of BIE estimators should not be worse than the float solution, or we can directly utilize the latter. However, $$\text{tr}\,{\tilde{\varvec{ Q }}_{\bar{ a }}} < \text{tr}\,{\varvec{Q}} _{\hat{\varvec{{a }}}}$$ has no connection with $$\text{tr}\,{\tilde{\varvec{ Q }}_{ T \bar{ a }}} < \text{tr}\,\varvec{ Q _{ T \hat{ a }}}$$ for an arbitrary $$\varvec{ T }$$.Footnote 3 This means that the evaluation result depends on the transformation matrix $$\varvec{ T }$$, and this is obviously unreasonable. Therefore, we set a restriction that the transformation for BIE should be an identity matrix $$\varvec{ I }$$ to utilize the BIE part. With this, the evaluation process has no controversy. Under this restriction, $$\varvec{ T _1}$$ can only apply identity transformation on some of the ambiguities. Considering the assumption of (11), we have $${\varvec{ T _1}} = \begin{pmatrix} {\varvec{ I }}_ r&{\textbf{0}} \end{pmatrix}$$.

Next, the matrix $$\varvec{ T _2}$$ is to be determined. To achieve the goal, we need to use the concept of maximal linearly independent set.

Definition: Maximal Linearly Independent Set (MLIS). A subset of a vector set $$M \subset {\mathbb {R}}^{ n }$$ is maximally linearly independent if including any other vector in the span of $$M$$ would make it linearly dependent (i.e., if any other vector in the span of $$M$$ can be expressed as a linear combination of elements of a maximal set).

Determination of an MLIS is simple through Gaussian elimination. Regard $$\varvec{Q} _{\varvec{a}|\hat{\varvec{a} }}$$ as a set of row vectors, which is $$\varvec{Q} _{\varvec{a}|\hat{\varvec{a} }} = \begin{pmatrix}\varvec{ Q }_1&\cdots&\varvec{ Q }_ n ^{{\text{T}}}\end{pmatrix}^{{\text{T}}}$$. Since its rank is r, we can determine an MLIS that contains r row vectors in $$\varvec{Q} _{\varvec{a}|\hat{\varvec{a} }}$$. Without loss of generality, we assume that the MLIS contains the first r row vectors. Then, the last $$n - r$$ row vectors can be represented as linear combinations of the vectors in the MLIS. This means that there exists a matrix $$\varvec{ B }\in {\mathbb {R}}^{( n - r )\times r }$$ so that

\begin{aligned} \varvec{ B } \left( \begin{array}{c} \varvec{ q }_1^{{\text{T}}} \\ \vdots \\ \varvec{ q }_ r ^{{\text{T}}} \end{array}\right) = \left( \begin{array}{c} \varvec{ q }_{r+1}^{{\text{T}}} \\ \vdots \\ \varvec{ q }_ n ^{{\text{T}}} \end{array}\right) \end{aligned}
(13)

Thus we obtain $$\varvec{ T _2} = \begin{pmatrix} \varvec{-B}&\varvec{ I }_{ n - r } \end{pmatrix}$$. Let

\begin{aligned} \varvec{ T } = \begin{pmatrix} \varvec{ I }_{r} &\quad {\textbf{0}} \\ -\varvec{ B } &\quad \varvec{ I }_{ n - r } \end{pmatrix} \end{aligned}
(14)

Then we have

\begin{aligned} \varvec{ T \varvec{Q} _{\varvec{a}|\hat{\varvec{a} }}T}^{{\text{T}}} = \begin{pmatrix} \varvec{\varvec{ Q} _{\varvec{Ta}|\varvec{T}\hat{\varvec{a} }}'} &\quad {\textbf{0}} \\ {\textbf{0}} &\quad {\textbf{0}} \end{pmatrix} \end{aligned}
(15)

Subsequently, the covariance matrix of $$\varvec{ T \bar{ a }}$$ becomes

\begin{aligned} \varvec{ T Q _{\bar{ a }}T}^{{\text{T}}} \approx \begin{pmatrix} \tilde{\varvec{ Q }_{11}} &\quad {\textbf{0}} \\ {\textbf{0}} &\quad {\textbf{0}} \end{pmatrix} \end{aligned}
(16)
\begin{aligned} \varvec{ T } \begin{pmatrix} \bar{ a }_1 \\ \vdots \\ \bar{ a }_ r \\ \vdots \\ \bar{ a }_ n \end{pmatrix} = \begin{pmatrix} \bar{ a }_1 \\ \vdots \\ \bar{ a }_ r \\ \varvec{ c _0} \end{pmatrix} \end{aligned}
(17)

The first r vectors of ambiguity is kept unchanged through the transformation $$\varvec{ T }$$, while $$\varvec{ c _0}$$ is an $$n - r$$ dimensional constant vector.

Recalling Eqs. (9), (14) and (16), the MICAR solution is written as

\begin{aligned} \left. \begin{array}{cccccccc} \begin{pmatrix} \bar{ a }_1 \\ \vdots \\ \bar{ a }_ r \end{pmatrix} &{} = &{} \begin{pmatrix} a _1 \\ \vdots \\ a _ r \end{pmatrix} &{}, &{} \varvec{ P } = \tilde{\varvec{ Q }}^{-1}_{\varvec{11}} \\ \varvec{ c _0} &{} = &{} -\varvec{ B }\begin{pmatrix} a _1 \\ \vdots \\ a _ r \end{pmatrix}+ \begin{pmatrix} a _{r+1} \\ \vdots \\ a _n \end{pmatrix}&,&\varvec{ P } = \infty \end{array} \right\} \end{aligned}
(18)

Obviously, the first constraint corresponds to the BIE part, while the second one corresponds to the PAR part.

### Discussion

The motivation behind dividing the full ambiguity vector into two parts is to find a transformation that minimizes the number of ambiguities with zero variance. In this scenario, PAR solution can be executed without the requirement for iterative finding of a subset of integers (Li & Zhang 2015). In addition, the idea of VIB (Teunissen 2021) also suggested dividing the ambiguity vector into multiple subsets. Thus, MICAR can be seen as a concrete implementation of Gaussian case BIE estimator and VIB solution. In this study, we not only derive a concise estimate formula of the variance of BIE estimator (Eq. 8), but also determine a linear transformation to seize a better solution (Eq. 18).

Specifically, let an float ambiguity solution $$\hat{\varvec{ a }}=(\hat{\varvec{ a }}_1,\ldots , \hat{\varvec{ a }}_v)^\top \in {\mathbb {R}}^{ n }$$ with $$\hat{\varvec{ a }}_ i \in {\mathbb {R}}^{n_ i }, i =1,\ldots ,v$$ be its sub-vectors, and $$n=\sum _{ i =1}^{ v }n_ i$$. Then its VIB solution $$\varvec{ a }^{_{\text {VIB}}} = (\varvec{ a }^{_{\text {VIB}}}_1,\ldots , \varvec{ a }^{_{\text {VIB}}}_v)$$ is calculated by

\begin{aligned} \begin{array}{cclcl} \varvec{ a }^{_{\text {VIB}}}_1 &{} = &{} [\hat{\varvec{ a }}_1]_1 &{} &{} \\ \varvec{ a }^{_{\text {VIB}}}_2 &{} = &{} {[}\hat{\varvec{ a }}_{2|1}]_2 &{}:= &{} {[}\hat{\varvec{ a }}_2-\varvec{ Q }_{21}\varvec{ Q }_{11}^{-1}(\hat{\varvec{ a }}_1-\check{\varvec{ a }}_1)]_2 \\ &{} \vdots &{} &{} &{} \\ \varvec{ a }^{_{\text {VIB}}}_{ v } &{} = &{} {[}\hat{\varvec{ a }}_{ v|V }]_v &{}:= &{} {[}\hat{\varvec{ a }}_v-\sum _{ j =1}^{ v -1}\varvec{ Q }_{ vj|J }\varvec{ Q }_{ jj|J }^{-1}(\hat{\varvec{ a }}_{ j|J }-\check{\varvec{ a }}_ j )]_{ v } \\ \end{array} \end{aligned}
(19)

where $$[\cdot ]_ i :{\mathbb {R}}^{n_ i }\mapsto {\mathbb {Z}}^{ n _ i }$$ is an arbitrary admissible integer mapping Teunissen (1999A) and $$\varvec{ Q }_{ ij|J }$$ are relative variance/covariance matrices. It extends the principle of IB to a vectorial form and considers dividing the ambiguity vector into several subsets and sequentially apply different integer estimators to them, e.g., ILS or BIE, according to the integer success rate Odolinski and Teunissen (2020).

However, as discussed above, MICAR can be regarded as whole BIE estimator and do not sequentially updates the variance of the subsets as the Eq. (20) does. For instance, it may first determine the PAR part, then updates the conditional variance of the BIE part. In addition, MICAR presented a novel idea to divide the ambiguity vector into multiple subsets. While the study that apply the idea of VIB to MICAR is interesting and we look for later researches.

Moreover, it is clear to see the relationship between AR methods (FAR and PAR) and MICAR. When only one candidate is selected, all the ambiguities have zero variance and MICAR becomes FAR. If the BIE part does not pass the validation process, MICAR becomes PAR.

Lastly, the transformation matrix $$\varvec{ T }_2$$ can also be derived directly from the structure of $$A$$, and this algorithm is like the one proposed by Lawrence (2009). To meet the constraint on $$\varvec{ T }_1$$, one may still need an MLIS to determine the “left-null space” in that paper.

## Experiment

To verify the feasibility and performance of MICAR, we use software the FUS-ING (FUSing IN Gnss). FUSING is capable of the multi-GNSS filter precise orbit determination (Gong et al. 2018; Lou et al. 2022), real-time satellite clock solution (Shi et al. 2019; Gu et al. 2023), satellite bias estimation (Lou et al. 2017; Gu et al. 2022A), atmosphere modeling (Luo et al. 2020; Gu et al. 2022B), and multi-sensor navigation (Gu et al. 2021; Gu et al. 2022C). While we developed the AR module based on the LAMBDA package (Psychas et al. 2020; Verhagen et al. 2012). Based on FUSING, we carry out PPP-AR and compare the results of MICAR and FAR in terms of positioning precision and convergence in this section.

### Data and strategy

In the experiment, 233 stations shown in Fig. 1 were simulated on September 1, 2020 (Day of the Year 245, or DOY 245) for GPS (Global Positioning System) + BDS (BeiDou Navigation Satellite System) + Galileo (Galileo navigation satellite system) with 30 s sampling rate. The GPS constellation includes 32 Medium Orbit Satellites (MEO), the Galileo constellation includes 30 MEO, and the BDS constellation includes 3 Geostationary Orbit Satellites (GEO), 3 Inclined GeoSynchronous Orbit (IGSO), and 24 MEO. The simulation and positioning strategies are shown in Table 1. The simulated data is utilized to prioritize the derivation of theoretical methods, as it allows us to avoid potential outliers and other abnormal measurements that may occur in real observational settings. Moreover, we can only get the “true” value of each ambiguity from the simulated data to analysis the efficiency of AR with different algorithms. It is worth noting that to ensure the independence of data simulation and positioning, the data simulation in this paper uses PANDA (Position And Navigation Data Analyst) software in the Earth Central Inertial (ECI) system (Liu and Ge 2003; Shi et al. 2008; Chen et al. 2014), and data processing uses FUSING software in the Earth Central Earth Fixed (ECEF) system. In addition, this paper adopts the IGS global high-precision ionospheric grid map, i.e. IGSG, to simulate the ionospheric delay. To obtain more samples, the solution is restarted every hour in data processing, and there are more than 5000 samples involved in positioning convergence and accuracy analysis.

### Results analysis

To verify the effectiveness of the MICAR algorithm, we contrast it with FAR for the effects of single candidate and multiple candidates estimators.

To determine the multi-candidate ambiguity vectors $$\varvec{ a }$$, we utilize a method based on the R-ratio test. The essence of our selection strategy is to fix $$\check{\varvec{ a }}_1$$ and test every integer vector $$\check{\varvec{ a }_ i }$$ to see if it satisfies (3) (let $$\check{\varvec{ a }_ i }$$ be $$\check{\varvec{ a }}_2$$). An integer vector $$\check{\varvec{ a }_ i }$$ does not satisfy (3) means that it is relatively close to $$\hat{\varvec{ a }}$$, so it cannot be ignored. Hence, $$\varvec{ a }$$ consists of the integer vector with the smallest quadratic form, along with all the other integer vectors that do not satisfy (3). In this experiment, we set the ratio threshold $$\mu$$ as 3.

As for the evaluation metrics, we calculate the number of correctly and falsely fixed NL, its correct rate, and the convergence sequence of both methods. Note that the number of correctly fixed NL $$r_0$$ can be derived in this experiment since the “true integer value” for each ambiguity (or their linear combination) is exactly “0” as simulated. Thus, we can only talk about the concept of “correctly fixed ambiguity” for strong constraints, i.e., FAR and PAR constraints.

Figure 2 shows the number of correctly and falsely fixed NL with their correct rate of FAR and MICAR in the first 30 min. Since the FAR is a special case of MICAR, MICAR will fix more NL than FAR. In this period, FAR gives 5.79 fixed NL per epoch on average with 5.11 correct ones (88.2%), while MICAR gives 9.31 fixed NL with 8.02 correct ones (86.2%), and extra 0.21 NL constrained by the BIE part. Concerning the correct rate, the MICAR performs better than FAR during the first few minutes, and both of their correct rates are lower than 60%. Later FAR exceeds MICAR, and their correct rates are nearly 90% for both.

Figure 3 shows the convergence sequences at 95% confidence level of FAR (blue) and MICAR (red) in the first 30 min. As we can see, the convergence is accelerated with MICAR. Taking the threshold of 5 cm as an example, the vertical component takes 21.5 min and 18.5 min for convergence with FAR and MICAR, respectively. While the horizontal component takes 23.5 min and 18.0 min for convergence with FAR and MICAR, respectively. Moreover, Table 2 shows the Root Mean Square (RMS) error of two methods in the last 30 min, where the positioning sequence has already converged. Although in most epochs the correct rate of FAR exceeds that of MICAR, this does not result in the precision of positioning. Instead, thanks to more correctly fixed ambiguities, MICAR performs slightly better in positioning.

## Conclusion

In this study, we derive a concise estimate formula of the variance of the Gaussian case BIE estimator, dominated by the variance of the float solution and the probability distribution of the integer solution candidates.

With this, an algorithm, MICAR was put forward to unify FAR and PAR solution in a single BIE estimator. MICAR uses a maximal linearly independent group to divide the ambiguities into two parts and apply different transformations to them. We gave two versions of MICAR with the same essence but from different aspects. As was demonstrated, FAR and PAR solutions are special cases of MICAR.

In the experiment, we utilize simulated data to compare the performance of MICAR and FAR. Generally, MICAR correctly fixes 57% more NL ambiguities than FAR, resulting in a significant enhancement in positioning performance. Concerning the positioning convergence with the threshold of 5 cm at 95% confidence level as an example, it takes 21.5 min and 18.5 min for vertical convergence with FAR and MICAR, respectively. While it takes 23.5 min and 18.0 min for horizontal convergence with FAR and MICAR, respectively. In addition, when the positioning sequence converges, MICAR reduces the root mean square of the positioning errors by 9.8% in horizontal directions and 3.5% in vertical direction.

## Availability of data and materials

The datasets used and analyzed during the current study can be accessed from sftp://59.172.178.34:10016, username: tmp-user, password: Multi-sensor@FUSING. For example, input the command “sftp -P 10016 tmp-user@59.172.178.34”.

## Notes

1. In the case that $$\varvec{ Q }^{-1}_{\bar{\varvec{ a }}}$$ is not invertible, $$\varvec{P} _{\bar{\varvec{ a} }}$$ can be approximated by $$(\varvec{ Q }_{\bar{\varvec{ a }}}+ \varepsilon \varvec{I}_ n )^{-1}$$ with $$\varepsilon$$ efficiently small instead.

2. Here we let the variance of the last elements of $$\varvec{ Ta }$$ to be zero. In general, by modifying the transformation matrix $$\varvec{ T }$$, these elements can be positioned arbitrarily.

3. Notice that the trace is invariant under similarity transformation. Hence, as long as the spectrum of $$\varvec{Q} _{\bar{\varvec{a}}}$$ and $$\varvec{Q} _{\hat{\varvec{{a }}}}$$ is different, $$\text{tr}\,{\varvec{ Q _{ T \bar{ a }}}}$$ and $$\text{tr}\,{\varvec{ Q _{ T \hat{ a }}}}$$ has no corresponding numerical relationship as $$\varvec{ T }$$ changes.

## References

• Betti, B. (1993). A geometric illustration of ambiguity resolution in GPS theory and a Bayesian approach. Manuscripta Geodaetica, 18, 317–330.

• Bisnath, S., & Gao, Y. (2009). Current state of precise point positioning and future prospects and limitations. In Observing our changing earth (pp. 615–623). Springer.

• Blewitt, G. (1989). Carrier phase ambiguity resolution for the Global Positioning System applied to geodetic baselines up to 2000 km. Journal of Geophysical Research: Solid Earth, 94(B8), 10187–10203.

• Collins, P. (2008). Isolating and estimating undifferenced GPS integer ambiguities. In Proceedings of the 2008 national technical meeting of the institute of navigation (pp. 720–732).

• Chen, H., Jiang, W. P., Ge, M. R., Wickert, J., & Schuh, H. (2014). An enhanced strategy for GNSS data processing of massive networks. Journal of Geodesy, 88(9), 857–867. https://doi.org/10.1007/s00190-014-0727-7

• Euler, H. J., & Schaffrin, B. (1991). On a measure for the discernibility between different ambiguity solutions in the static-kinematic gps-mode. Springer.

• Frei, E. (1990). Rapid static positioning based on the fast ambiguity resolution approachFARA’: Theory and first results. Manuscripta Geodaetica, 15, 325–356.

• Gabor, M. J., & Nerem, R. S. (1999). GPS carrier phase ambiguity resolution using satellite-satellite single differences. In Proceedings of the 12th international technical meeting of the satellite division of the institute of navigation (ION GPS 1999) (pp. 1569–1578).

• Ge, M., Gendt, G., Rothacher, M. A., Shi, C., & Liu, J. (2008). Resolution of GPS carrier-phase ambiguities in precise point positioning (PPP) with daily observations. Journal of Geodesy, 82, 389–399.

• Gong, X., Lou, Y., Zheng, F., Gu, S., Shi, C., Liu, J., & Jing, G. (2018). Evaluation and calibration of BeiDou receiver-related pseudorange biases. GPS Solutions, 22(4), 98. https://doi.org/10.1007/s10291-018-0765-3

• Gu, S., Shi, C., Lou, Y., & Liu, J. (2015). Ionospheric effects in uncalibrated phase delay estimation and ambiguity-fixed PPP based on raw observable model. Journal of Geodesy, 89, 447–457.

• Gu, S., Dai, C., Fang, W., Zheng, F., Wang, Y., Zhang, Q., Lou, Y., & Niu, X. (2021). Multi-GNSS PPP/INS tightly coupled integration with atmospheric augmentation and its application in urban vehicle navigation. Journal of Geodesy, 2021, 95. https://doi.org/10.1007/s00190-021-01514-8

• Gu, S., Wang, Y., Zhao, Q., Zheng, F., & Gong, X. (2022). BDS-3 differential code bias estimation with undifferenced uncombined model based on triple-frequency observation. Journal of Geodesy, 94(4), 45. https://doi.org/10.1007/s00190-020-01364-w

• Gu, S., Gan, C., He, C., Lyu, H., Hernandez-Pajares, M., Lou, Y., & Zhao, Q. (2022). Quasi-4-dimension ionospheric modeling and its application in PPP. Satellite Navigation, 3(1), 24. https://doi.org/10.1186/s43020-022-00085-z

• Gu, S., Dai, C., Mao, F., & Fang, W. (2022). Integration of multi-GNSS PPP-RTK/INS/vision with a cascading Kalman filter for vehicle navigation in urban areas. Remote Sens-Basel, 14(17), 4337. https://doi.org/10.3390/rs14174337

• Gu, S., Mao, F., Gong, X., Lou, Y., & Shi, C. (2023). Improved short-term stability for real-time GNSS satellite clock estimation with clock model. Journal of Geodesy, 97(6), 61. https://doi.org/10.1007/s00190-023-01747-9

• Laurichesse, D., Mercier, F., Berthias, J. P., Broca, P., & Cerri, L. (2009). Integer ambiguity resolution on undifferenced GPS phase measurements and its application to PPP and satellite precise orbit determination. Navigation, 56(2), 135–149.

• Lawrence, D. G. (2009). A new method for partial ambiguity resolution. In Proceedings of the 2009 international technical meeting of the institute of navigation (pp. 652–663).

• Li, B., Verhagen, S., & Teunissen, P. J. G. (2014). Robustness of GNSS integer ambiguity resolution in the presence of atmospheric biases. Gps Solutions, 18(2), 283–296. https://doi.org/10.1007/s10291-013-0329-5

• Li, P., & Zhang, X. (2015). Precise point positioning with partial ambiguity fixing. Sensors, 15(6), 13627–13643. https://doi.org/10.3390/s150613627

• Li, P., Jiang, X., Zhang, X., Ge, M., & Schuh, H. (2020). GPS+ Galileo+ BeiDou precise point positioning with triple-frequency ambiguity resolution. GPS Solutions, 24, 1–13.

• Liu, J., & Ge, M. (2003). PANDA software and its preliminary result of positioning and orbit determination. Wuhan University Journal of Natural Sciences, 8(2), 603–609. https://doi.org/10.1007/BF02899825

• Lou, Y., Dai, X., Gong, X., Li, C., Qing, Y., Liu, Y., Peng, Y., & Gu, S. (2022). A review of real-time multi-GNSS precise orbit determination based on the filter method. Satellite Navigation, 3(1), 15. https://doi.org/10.1186/s43020-022-00075-1

• Lou, Y., Gong, X., Gu, S., Zheng, F., & Feng, Y. (2017). Assessment of code bias variations of BDS triple-frequency signals and their impacts on ambiguity resolution for long baselines. Gps Solutions, 21(1), 177–186. https://doi.org/10.1007/s10291-016-0514-4

• Luo, X., Gu, S., Lou, Y., Cai, L., & Liu, Z. (2020). Amplitude scintillation index derived from C/N0 measurements released by common geodetic GNSS receivers operating at 1 Hz. Journal of Geodesy, 94(2), 27. https://doi.org/10.1007/s00190-020-01359-7

• Odolinski, R., & Teunissen, P. J. G. (2020). Best integer equivariant estimation: Performance analysis using real data collected by low-cost, single- and dual-frequency, multi-GNSS receivers for short- to long-baseline RTK positioning. Journal of Geodesy, 94(9), 91. https://doi.org/10.1007/s00190-020-01423-2

• Psychas, D., Verhagen, S., & Teunissen, P. J. G. (2020). Precision analysis of partial ambiguity resolution-enabled PPP using multi-GNSS and multi-frequency signals. Advances in Space Research, 66(9), 2075–2093. https://doi.org/10.1016/j.asr.2020.08.010

• Shi, C., Guo, S., Gu, S., Yang, X., Gong, X., Deng, Z., Ge, M., & Schuh, H. (2019). Multi-GNSS satellite clock estimation constrained with oscillator noise model in the existence of data discontinuity. Journal of Geodesy, 93(4), 515–528. https://doi.org/10.1007/s00190-018-1178-3

• Shi, C., Zhao, Q., Geng, J., Lou, Y., Ge, M., & Liu, J. (2008). Recent development of PANDA software in GNSS data processing. In D. Li, J. Gong, & H. Wu (Eds.), Proceedings of SPIE, the international society for optical engineering (Vol. 7285, p. 72851S). SPIE. https://doi.org/10.1117/12.816261

• Tao, J., Chen, G., Guo, J., Zhang, Q., Liu, S., & Zhao, Q. (2022). Toward BDS/Galileo/GPS/QZSS triple-frequency PPP instantaneous integer ambiguity resolutions without atmosphere corrections. GPS Solutions, 26(4), 127.

• Teunissen, P. (1999). An optimality property of the integer least-squares estimator. Journal of Geodesy, 73(11), 587–593.

• Teunissen, P. J. G., Joosten, P., & Tiberius, C. C. J. M. (1999). Geometry-free ambiguity success rates in case of partial fixing. In Proceedings of the 1999 national technical meeting of the institute of navigation (pp. 201–207).

• Teunissen, P. J. G. (2003). Theory of integer equivariant estimation with application to GNSS. Journal of Geodesy, 77(7–8), 402–410.

• Teunissen, P. (2003). Integer aperture GNSS ambiguity resolution. Artificial Satellites, 38(3), 79–88.

• Teunissen, P. J. G. (2004). Penalized GNSS ambiguity resolution. Journal of Geodesy, 78(4–5), 235–244.

• Teunissen, P. (2005). On the computation of the best integer equivariant estimator. Artificial Satellites, 40(3), 161–171.

• Teunissen, P. J. G., Massarweh, L., & Verhagen, S. (2021). Vectorial integer bootstrapping: Flexible integer estimation with application to GNSS. Journal of Geodesy, 95(9), 1–14.

• Teunissen (1995). The least-squares ambiguity decorrelation adjustment: a method for fast GPS integer ambiguity estimation. Journal of Geodesy, 70, 65-82.

• Tiberius, C. C. J. M., & De Jonge, P. J. (1995). Fast positioning using the LAMBDA method. Proceedings DSNS-95, Paper 30(8).

• Verhagen, S., Li, B., and Teunissen, P.J.G. (2012). LAMBDA - Matlab implementation, version 3.0. Delft University of Technology and Curtin University.

• Wang, J., Stewart, M. P., & Tsakiri, M. (1998). A discrimination test procedure for ambiguity resolution on-the-fly. Journal of Geodesy, 72(11), 644–653.

• Wang, L., & Verhagen, S. (2015). A new ambiguity acceptance test threshold determination method with controllable failure rate. Journal of Geodesy, 89(4), 361–375. https://doi.org/10.1007/s00190-014-0780-2

• Wu, Z., & Bian, S. (2015). Gnss integer ambiguity validation based on posterior probability. Journal of Geodesy, 89(10), 961–977.

• Xu, P. (2006). Voronoi cells, probabilistic bounds, and hypothesis testing in mixed integer linear models. IEEE Transactions on Information Theory, 52(7), 3122–3138. https://doi.org/10.1109/tit.2006.876356

• Yu, X., Xia, S., & Gao, W. (2020). A practical method for calculating reliable integer float estimator in GNSS precise positioning. Survey Review, 2, 1–11.

## Acknowledgements

This study is sponsored by the National Natural Science Foundation of China (42174029). The authors are grateful to Delft University of Technology for providing the LAMBDA software package.

## Funding

National Natural Science Foundation of China, 42174029, Shengfeng Gu.

## Author information

Authors

### Contributions

SG and WJ proposed the general idea of this contribution. LF developed the mathematical formula. LF and SG wrote the manuscript. All authors read and approved the final manuscript.

### Corresponding author

Correspondence to Shengfeng Gu.

## Ethics declarations

### Competing interests

The authors declare that they have no Conflict of interest.

### Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

## Appendices

### Appendix A: Proof of Eq. (8)

From Eq. (7) we have $${\bar{\varvec{ a }}} = \sum \limits _{ i =1}^{ m } P _{ i }(\hat{\varvec{ a }}) \cdot \check{\varvec{ a }_ i }$$, differentiating it

\begin{aligned} {\text{d}}{\bar{\varvec{ a }}}&= \sum \limits _{ i =1}^{ m }{\text{dP}}_ i ({\hat{\varvec{ a }}}) \cdot \check{{\varvec{ a }}_ i } \\&= \sum \limits _{ i =1}^{ m }\check{{\varvec{ a }}_ i }\frac{\partial P _{ i }({\hat{\varvec{ a }}})}{\partial {\hat{\varvec{ a }}}^{{\text{T}}}}\text{d}{\hat{\varvec{ a }}} \end{aligned}
(20)

Let

\begin{aligned} N _ i = \exp \, \left( -\frac{1}{2}\Vert \hat{\varvec{ a }} - \check{\varvec{ a }_ i }\Vert _{\varvec{Q} _{\hat{\varvec{ a }}}}^{2}\right) \end{aligned}

Then

\begin{aligned} P _{ i }(\hat{\varvec{ a }}) = \frac{ N _ i }{\sum \limits _{ j =1}^{ m } N _ j } \end{aligned}

So we have

\begin{aligned} \frac{\partial P _{ i }(\hat{\varvec{ a }})}{\partial \hat{\varvec{ a }}^{{\text{T}}}} = \frac{\frac{\partial N _ i }{\partial \hat{\varvec{ a }}^{{\text{T}}}}\sum \limits _{ j =1}^{k} N _ j - N _ i \sum \limits _{ j =1}^{k}\frac{\partial N _ j }{\partial \hat{\varvec{ a }}^{{\text{T}}}}}{\left( \sum \limits _{ j =1}^{ m } N _ j \right) ^2} \end{aligned}
(21)

Taking the derivatives of $$N _ i$$, we have

\begin{aligned} \frac{\partial N _ i }{\partial \hat{\varvec{ a }}^{{\text{T}}}}&= \frac{\partial \exp (-\frac{1}{2}\Vert \hat{\varvec{ a }} - \check{\varvec{ a }_ i }\Vert ^{2}_{\varvec{Q} _{\hat{\varvec{ a }}}})}{\partial \hat{\varvec{ a }}^{{\text{T}}}}\\&= - N _ i (\hat{\varvec{ a }}-\check{\varvec{ a }_ i })^{{\text{T}}} \varvec{ Q }^{-1}_{\hat{\varvec{ a }}} . \end{aligned}
(22)

Substituting (22) into (21), we have

\begin{aligned} \frac{\partial P _{ i }(\hat{\varvec{ a }})}{\partial \hat{\varvec{ a }}^{{\text{T}}}}&= \frac{\frac{\partial N _ i }{\partial \hat{\varvec{ a }}^{{\text{T}}}}\sum \limits _{ j =1}^{ m } N _ j - N _ i \sum \limits _{ j =1}^{ m }\frac{\partial N _ j }{\partial \hat{\varvec{ a }}^{{\text{T}}}}}{\left( \sum \limits _{ j =1}^{ m } N _ j \right) ^2}\\&= \frac{- N _ i (\hat{\varvec{ a }} - \check{\varvec{ a }_ i })^{{\text{T}}}\varvec{ Q }^{-1}_{\hat{\varvec{ a }}}\sum \limits _{ j =1}^{ m } N _ j + N _ i \sum \limits _{ j =1}^{k} N _ j (\hat{\varvec{ a }} - \check{ a }_ j )^{{\text{T}}}\varvec{ Q }^{-1}_{\hat{\varvec{ a }}}}{\left( \sum \limits _{ j =1}^{ m } N _ j \right) ^2}\\&= \frac{\check{\varvec{ a }_ i }^{{\text{T}}}\sum \limits _{ j =1}^{ m } N _ j - \sum \limits _{ j =1}^{ m } N _ j \check{ a }_ j ^{{\text{T}}}}{\left( \sum \limits _{ j =1}^{ m } N _ j \right) ^2} N _ i \varvec{ Q }^{-1}_{\hat{\varvec{ a }}}\\&= \frac{\check{\varvec{ a }_ i }^{{\text{T}}}\sum \limits _{ j =1}^{ m }P_ j (\hat{\varvec{ a }}) - \sum \limits _{ j =1}^{ m }P_ j (\hat{\varvec{ a }})\check{ a }_ j ^{{\text{T}}}}{\left( \sum \limits _{ j =1}^{ m }P_ j (\hat{\varvec{ a }})\right) ^2} P _{ i }(\hat{\varvec{ a }})\varvec{ Q }^{-1}_{\hat{\varvec{ a }}}\\&= (\check{\varvec{ a }_ i } - \bar{\varvec{ a }})^{{\text{T}}} P _{ i }(\hat{\varvec{ a }})\varvec{ Q }^{-1}_{\hat{\varvec{ a }}} \end{aligned}
(23)

The last equation is based on the fact that

\begin{aligned} \sum \limits _{ j =1}^{ m }P_ j (\hat{\varvec{ a }}) = 1 \end{aligned}

and

\begin{aligned} \bar{\varvec{ a }} = \sum \limits _{ j =1}^{ m }\check{\varvec{ a }}_ j P_ j (\hat{\varvec{ a }}) \end{aligned}

Then

\begin{aligned} \sum _{ i =1}^{ m }\check{\varvec{ a }_ i }\frac{\partial P _{ i }(\hat{\varvec{ a }})}{\partial \hat{\varvec{ a }}^{{\text{T}}}}&= \sum \limits _{ i =1}^{ m }\check{\varvec{ a }_ i }(\check{\varvec{ a }_ i } - \bar{\varvec{ a }})^{{\text{T}}} P _{ i }(\hat{\varvec{ a }})\varvec{ Q }^{-1}_{\hat{\varvec{ a }}}\\&= \left( \sum \limits _{ i =1}^{ m }\left( P _{ i }(\hat{\varvec{ a }})\check{\varvec{ a }_ i }\check{\varvec{ a }_ i }^{{\text{T}}}\right) - \bar{\varvec{ a }\bar{ a }}^{{\text{T}}}\right) \varvec{ Q }^{-1}_{\hat{\varvec{ a }}}\\&= \left( E (\varvec{ a a}^{{\text{T}}}|\hat{\varvec{ a }}, \varvec{ Q _{\hat{\varvec{ a }}}}) - E (\varvec{ a }|\hat{\varvec{ a }}, \varvec{ Q _{\hat{\varvec{ a }}}}) E (\varvec{ a }|\hat{\varvec{ a }}, \varvec{ Q _{\hat{\varvec{ a }}}})^{{\text{T}}}\right) \varvec{ Q }^{-1}_{\hat{\varvec{ a }}}\\&= \varvec{Q} _{\varvec{a}|\hat{\varvec{a} }}\varvec{ Q }^{-1}_{\hat{\varvec{ a }}} \end{aligned}
(24)

Now we have obtained the first order approximation $$\bar{\varvec{ a }} \approx \hat{ a }+\displaystyle \frac{\text{d}\bar{\varvec{a}}}{\text{d}\hat{\varvec{a}}^{{\text{T}}}}\cdot \varepsilon$$ where $$\varepsilon$$ is the error of $$\hat{ a }$$. According to the law of error propagation, we have

\begin{aligned} \varvec{Q} _{\bar{\varvec{a}}}&\ \approx \left( \sum _{ i =1}^{ m }\check{\varvec{ a }_ i }\frac{\partial P _{ i }(\hat{\varvec{ a }})}{\partial \hat{\varvec{ a }}^{{\text{T}}}}\right) \varvec{ Q _{\hat{\varvec{ a }}}}\left( \sum _{ i =1}^{ m }\check{\varvec{ a }_ i }\frac{\partial P _{ i }(\hat{\varvec{ a }})}{\partial \hat{\varvec{ a }}^{{\text{T}}}}\right) ^{{\text{T}}}\\&= \varvec{Q} _{\varvec{a}|\hat{\varvec{a} }}\varvec{ Q }^{-1}_{\hat{\varvec{ a }}}\varvec{ Q }^{{\text{T}}}_{\varvec{a}|\hat{\varvec{a} }} \end{aligned}
(25)

Q.E.D.

### Appendix B: Example

In order to enhance readers’ understanding, here we present an example from the simulation data to concretely demonstrate the MICAR algorithm. Suppose we have the float ambiguity solution

\begin{aligned} \hat{\varvec{ a }}= & {} \left( \begin{array}{lllllllll} -0.2969&-3.4934&-3.4065&-2.6495&-0.6531&-2.8687&0.0620&-0.7806&0.4633 \end{array}\right) ^{{\text{T}}} \\ \varvec{ Q _{\hat{\varvec{ a }}}}= & {} \begin{pmatrix} 0.4979&{}\quad -0.2520&{}\quad 0.4182&{}\quad -0.4109&{}\quad -0.1387&{}\quad 0.6874&{}\quad -0.2148&{}\quad -0.3445&{}\quad 0.3081\\ -0.2520&{}\quad 1.9161&{}\quad 0.9552&{}\quad 1.7689&{}\quad 0.6737&{}\quad 0.6137&{}\quad 0.5699&{}\quad 0.7523&{}\quad -0.3094\\ 0.4182&{}\quad 0.9552&{}\quad 1.5046&{}\quad 0.3040&{}\quad -0.3265&{}\quad 1.2634&{}\quad -0.6848&{}\quad 0.0822&{}\quad -0.1393\\ -0.4109&{}\quad 1.7689&{}\quad 0.3040&{}\quad 2.0557&{}\quad 1.2167&{}\quad 0.2172&{}\quad 1.3466&{}\quad 0.7954&{}\quad -0.1046\\ -0.1387&{}\quad 0.6737&{}\quad -0.3265&{}\quad 1.2167&{}\quad 1.1826&{}\quad 0.0446&{}\quad 1.4677&{}\quad 0.3005&{}\quad 0.3262\\ 0.6874&{}\quad 0.6137&{}\quad 1.2634&{}\quad 0.2172&{}\quad 0.0446&{}\quad 1.4881&{}\quad -0.1626&{}\quad -0.1673&{}\quad 0.3043\\ -0.2148&{}\quad 0.5699&{}\quad -0.6848&{}\quad 1.3466&{}\quad 1.4677&{}\quad -0.1626&{}\quad 1.8849&{}\quad 0.3111&{}\quad 0.4483\\ -0.3445&{}\quad 0.7523&{}\quad 0.0822&{}\quad 0.7954&{}\quad 0.3005&{}\quad -0.1673&{}\quad 0.3111&{}\quad 0.4297&{}\quad -0.2579\\ 0.3081&{}\quad -0.3094&{}\quad -0.1393&{}\quad -0.1046&{}\quad 0.3262&{}\quad 0.3043&{}\quad 0.4483&{}\quad -0.2579&{}\quad 0.4372 \end{pmatrix} \end{aligned}

First, from the ratio test, we can obtain a subset $$\varvec{ a }$$ and the corresponding approximate posterior probabilities given by Table 3.

With this, we obtain $$\bar{\varvec{ a }}$$ and $$\varvec{Q} _{\varvec{a}|\hat{\varvec{a} }}$$. Then, from (8) we have

\begin{aligned} \varvec{Q} _{\bar{\varvec{a}}} = \begin{pmatrix} 0.0038&{}\quad -0.0482&{}\quad -0.0215&{}\quad -0.0496&{}\quad -0.0242&{}\quad -0.019&{}\quad -0.0256&{}\quad -0.0192&{}\quad 0.0025\\ -0.0482&{}\quad 0.6419&{}\quad 0.2868&{}\quad 0.6619&{}\quad 0.3269&{}\quad 0.2586&{}\quad 0.3469&{}\quad 0.2546&{}\quad -0.0282\\ -0.2151&{}\quad 0.2868&{}\quad 0.1282&{}\quad 0.1022&{}\quad -0.2411&{}\quad -0.2715&{}\quad -0.4257&{}\quad 0.1137&{}\quad -0.3997\\ 0.3376&{}\quad 0.6619&{}\quad 0.2958&{}\quad 1.0698&{}\quad 1.1116&{}\quad 1.0413&{}\quad 1.5195&{}\quad 0.2624&{}\quad 0.7455\\ 0.5565&{}\quad 0.3269&{}\quad 0.1461&{}\quad 0.9180&{}\quad 1.3284&{}\quad 1.2938&{}\quad 1.9196&{}\quad 0.1295&{}\quad 1.1477\\ 0.1745&{}\quad 0.2586&{}\quad 0.1156&{}\quad 0.4605&{}\quad 0.5194&{}\quad 0.4921&{}\quad 0.7213&{}\quad 0.1024&{}\quad 0.3764\\ 0.9423&{}\quad 0.3469&{}\quad 0.1551&{}\quad 1.3259&{}\quad 2.1132&{}\quad 2.0765&{}\quad 3.0922&{}\quad 0.1374&{}\quad 1.9214\\ -0.0192&{}\quad 0.2546&{}\quad 0.1137&{}\quad 0.2624&{}\quad 0.1295&{}\quad 0.1024&{}\quad 0.1374&{}\quad 0.1010&{}\quad -0.0113\\ 0.3897&{}\quad -0.0282&{}\quad -0.0125&{}\quad 0.3583&{}\quad 0.7605&{}\quad 0.7636&{}\quad 1.1470&{}\quad -0.0114&{}\quad 0.7762 \end{pmatrix} \end{aligned}

Let $$\varvec{Q} _{\bar{\varvec{a}}} = \begin{pmatrix}\varvec{ q }_1^{{\text{T}}}&\varvec{ q }_2^{{\text{T}}}&\cdots&\varvec{ q }_ n ^{{\text{T}}} \end{pmatrix}^{{\text{T}}}$$, where $$\varvec{ q }_ i$$ are row vectors of $$\varvec{Q} _{\bar{\varvec{a}}}$$. By calculation we have that $$\{\varvec{ q }_1, \varvec{ q }_2, \varvec{ q }_3, \varvec{ q }_8\}$$ is an MLIS of the row vectors of $$\varvec{Q} _{\bar{\varvec{a}}}$$.

Then by taking projection, we have

\begin{aligned} \varvec{ B } \left( \begin{array}{c} \varvec{ q }_1\\ \varvec{ q }_2\\ \varvec{ q }_3\\ \varvec{ q }_8 \end{array}\right) = \left( \begin{array}{c} \varvec{ q }_4\\ \varvec{ q }_5\\ \varvec{ q }_6\\ \varvec{ q }_7\\ \varvec{ q }_9 \end{array}\right) \end{aligned}

where

\begin{aligned} \varvec{ B } = \begin{pmatrix} -1&{}\quad -2&{}\quad 2&{}\quad 0\\ -2&{}\quad -2&{} 3&{}\quad 0\\ -2&{}\quad -1&{}\quad 1&{}\quad 0\\ -3&{}\quad -3&{}\quad 5&{}\quad 0\\ -2&{}\quad -1&{}\quad 2&{}\quad 0 \end{pmatrix} \end{aligned}

Let

\begin{aligned} \varvec{ T } = \begin{pmatrix} 1&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0\\ 0&{}\quad 1&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0\\ 0&{}\quad 0&{}\quad 1&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0\\ -1&{}\quad -2&{}\quad 2&{}\quad 1&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0\\ -2&{}\quad -2&{}\quad 3&{}\quad 0&{}\quad 1&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0\\ -2&{}\quad -1&{}\quad 1&{}\quad 0&{}\quad 0&{}\quad 1&{}\quad 0&{}\quad 0&{}\quad 0\\ -3&{}\quad -3&{}\quad 5&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 1&{}\quad 0&{}\quad 0\\ 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 1&{}\quad 0\\ -2&{}\quad -1&{}\quad 2&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 1 \end{pmatrix} \end{aligned}

Then, we obtain

\begin{aligned} \varvec{ Q _{ T \bar{ a }}} = \left( \begin{array}{ccccccccc} 0.0038&{}\quad -0.0482&{}\quad -0.0215&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad -0.0192&{}\quad 0\\ -0.0482&{}\quad 0.6419&{}\quad 0.2868&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0.2545&{}\quad 0\\ -0.2151&{}\quad 0.2868&{}\quad 0.1282&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0.1137&{}\quad 0\\ 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0\\ 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0\\ 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0\\ 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0\\ -0.0192&{}\quad 0.2545&{}\quad 0.1137&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0.1010&{}\quad 0\\ 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0 \end{array}\right) \end{aligned}

For the PAR part, from (18) we have

\begin{aligned} \left( \begin{array}{c} a _4 \\ a _5 \\ a _6 \\ a _7 \\ a _9 \end{array}\right) - \varvec{ B } \left( \begin{array}{c} a _1 \\ a _2 \\ a _3 \\ a _8 \\ \end{array}\right) = \varvec{ c _0} \end{aligned}

Since $$\varvec{T}\check{\varvec{a}}_1 = \begin{pmatrix}0&-1&-2&-2&-3&-2&-5&0&-2\end{pmatrix}^{{\text{T}}}$$, we have $$\varvec{ c _0} = \begin{pmatrix}-2&-3&-2&-5&-2\end{pmatrix}^{{\text{T}}}$$.

For the BIE part, by calculation, the sum of the 1, 2, 3, and 8th diagonal elements of $$\varvec{ Q _{ T \bar{ a }}}$$ is 0.8749, while that of $$\varvec{ T Q _{\hat{ a }}}$$ is 4.3483 (as is mentioned, we can calculate it directly by the corresponding elements in $$\varvec{Q} _{\hat{\varvec{{a }}}}$$). Thus, the BIE validation passes, and the constraint is given as

\begin{aligned} \left( \begin{array}{c} a _1 \\ a _2 \\ a _3 \\ a _8 \\ \end{array}\right) = \left( \begin{array}{c} 0.0003 \\ -1.0071 \\ -2.0032 \\ -0.0028 \\ \end{array}\right) , \varvec{ P } = \begin{pmatrix} 0.0038&{}\quad -0.0482&{}\quad -0.0215&{}\quad -0.0192\\ -0.0482&{}\quad 0.6419&{}\quad 0.2868&{}\quad 0.2545\\ -0.2151&{}\quad 0.2868&{} \quad 0.1282&{}\quad 0.1137\\ -0.0192&{}\quad 0.2545&{}\quad 0.1137&{}\quad 0.1010 \end{pmatrix}^{-1} \end{aligned}
(26)

## Rights and permissions

Reprints and permissions

Gu, S., Fang, L. & Jiang, W. Multiple integer candidates ambiguity resolution: a unification ambiguity resolution algorithm. Satell Navig 5, 21 (2024). https://doi.org/10.1186/s43020-024-00141-w