# Ambiguity Resolution

Ambiguity resolution and validation are perhaps the most popular GNSS-related research topics. A plethora of methods were developed for this purpose such as the popular ratio test, the difference test, the projector test, the W-test, etc. However, the techniques that worked for short-baseline RTK don’t perform as well for long-baseline RTK or PPP.

The main reason is the presence of the ionosphere. For short-baseline RTK, ambiguity residuals are only correlated with positioning errors. As the baseline length increases, satellite-dependent errors creep in and make the ambiguity validation process much more complex. Partial ambiguity resolution aimed at solving this problem, but knowing which satellites to select/discard is not always a simple task.

My preferred method for ambiguity resolution in kinematic applications is the so-called “BIE” approach. The first paper I know describing it was written by Blewitt [1989], although it was deemed unpractical at the time because of the heavy computational load. The basic idea consists of computing a weighted average of integer vectors. The outcome can be summarized as:

• Poorly-defined solution = float solution
• Precise solution = fixed solution
• Otherwise = somewhere between the float and fixed solutions (generally!)

Hence, BIE offers a nice and smooth convergence to an ambiguity-fixed solution and is valid for short-baseline RTK or PPP. Be aware that BIE can go very wrong if your stochastic model is incorrect… but more on this topic in a subsequent post!

Reference

Blewitt, G. (1989). “Carrier-phase ambiguity resolution for the global positioning system applied to geodetic baselines up to 2000 km,” Journal of Geophysical Research, Vol. 94, No. B8, pp. 10187-10203. doi:10.1029/JB094iB08p10187.

Write a comment

• #1

Denis (Tuesday, 05 May 2015 14:44)

Hello Simon,
is there an open implementation of the BIE somewhere ?

Thanks
Denis

• #2

Simon Banville (Tuesday, 05 May 2015 21:35)

Hi Denis,

I don't know of any open-source code for BIE. I am currently using a modified version of the LAMBDA code originally provided by Delft University. In the search routine, I output a list of all "meaningful" integer vectors from which I compute the weighted average.