基于LAMBDA算法搜索空间的研究
2018-12-26邹龙宽李英祥
邹龙宽,李英祥
(1.成都信息工程大学 通信工程学院, 成都 610225)
LAMBDA算法(最小二乘模糊度去相关算法)被广泛应用于GPS载波相位差分的整周模糊度解算过程中。载波相位差分解算大致分为3个过程[1]:①使用普通最小二乘估计法求出整周模糊度的浮点解及其协方差矩阵;②使用整数最小二乘估计法求整周模糊度固定解;③求解基线固定解。由于在原始浮点解及其协方差矩阵的基础上,用整数最小二乘估计法得出整数解时,整数解相关性大,其搜索空间狭长,搜索效率比较化[2],因此在第二步的过程中,在求出固定解之前,使用Z变换对其进行去相关,去相关后的模糊度搜索空间形状更规范[3],在超维情况下,搜索效率也将大大提高[4]。
本文简要介绍了LAMBDA算法的基本原理,包括搜索过程及常数X2的选择;在文章最后,对搜索空间进行了可视化仿真实验。在此实验的基础上,对二维情况下Z变换前后搜索空间及相关整数点进行分析。实验表明,Z变换后的整周搜索空间更规范,相关整数点更少。综上所述,本文针对搜索空间的可视化仿真实验,使得Z变换的效果更直观。
1 LAMBDA算法简介
在GPS载波相位测量中,双差观测方程的线性化形式可表示为[4]:
式中,若观测的卫星数为N,则y表示载波相位的双差观测值矢量;a为N-1维列向量,表示两卫星间的双差整周模糊度,为N-1维列向量;b表示与基站构成的基线矢量矩阵,其维度为(N-1)×3;A是双差整周模糊度矩阵的系数,其值为-1;B为原观测方程在线性化的过程中衍生的微分项矩阵,其维度为(N-1)×3;e表示观测过程中的噪声。运用普通最小二乘法对(1)式求解可得出a、b的浮点解及其协方差矩阵如式(2)所示:
得出浮点解及协方差矩阵后,进行如式(3)的整周模糊度求解:
式中,属于N-1维整数空间,其搜索空间是一个以a为中心的N-1维超椭球体,而搜索效率与椭球体的形状和尺寸(X)有很大的联系。而由浮点解及其构成的协方差矩阵相关性大,其构成的搜索空间形状狭长,搜索效率低,基于此,在对它进行整周模糊度解算前,对浮点解及其协方差矩阵进行Z变化,以使搜索空间较为规范,Z变换的转换公式如式(4)所示[1]:
式中,变换矩阵Z满足以下4个条件[4]:
1)模糊度变换矩阵中的元素为整数;
2)变换前后的模糊度体积保持不变(网格点);
3)变换后的模糊度方程之间的乘积减少;
4)变化后的协方差矩阵相关性减少。
基于以上4个条件,通过一系列的高斯变换和置换过程构建Z变换矩阵后,式(3)的整数搜索变换经过式(4)变换得到式(5)所示的搜索:
将模糊度协方差阵分解:
式中,L为对角线元素为1的下三角矩阵;D为对角矩阵,它们可从的Cholesky分解因子得出。若Z等于L-1,则下式成立:
在形式上,虽然式(5)与式(3)相似,但从(7)式可以看出,经过Z变换后的协方差矩阵Qz^近似等同于对角矩阵,其在空间上的形状更规范。
2 搜索空间及其过程的研究
2.1 LAMBDA算法搜索空间及搜索过程
由式(7)可将(5)展开得到以下式子:
可看出,式(8)构成的搜索空间是一个n维的超椭球空间,它以N-1维向量z为中心,常数X2决定椭球的大小。LAMBDA算法将在该椭球体内搜索所有可能构成的整数解。
显然,符合式(8)条件的zi也符合式(9):
由式(9)可以看出,zi的左右两边构成第i维的搜索空间,在此搜索空间内按整数从大到小开始搜索,每次只验证一个整数。如果当次搜索,第i维空间的整数值确定,则可按照同样方法搜索第i-1维中的整数;否则搜索第i+1维中的整数,而后再在第i维空间换一个整数继续搜索[5]。经历上述的搜索过程后,如果在第1维空间中搜索到了相关整数,则可确定一个整周模糊度的矢量解。如果为了提高搜索精度,需要p个整周模糊度的矢量解,按照上述过程迭代搜索p次即可。
2.2 常数X2的选择
χ2决定了超椭球空间的大小,它是一个常数,决定了搜索效率的大小。合理选择χ2的值可以避免搜索空间过大导致的搜索效率低以及搜索空间过小而造成的搜索失真等情况的发生[6]。在LAMBDA算法的搜索过程中,χ2的选取与整周模糊度度解的候选个数有关,通常可以通过计算超椭球空间的容积的方法来选取χ2, 在一个超椭球空间中,其容积[6]如下所示:
在式(10)中,Vn表示单位超球体的容积,可以通过迭代的方式求得。而表示方差阵的行列式。在搜索过程中,候选整周模糊度与容积之间的关系如下式[5]:
式(11)中,[*]表示不超过*的最大整数。根据(9)、(10)两式即可确定X2。此外,根据候选数与容积之间的关系,可确定椭球搜索环的大小,从而提高整周模糊度的解算效率。
3 LAMBDA搜索空间的可视化仿真实验
在本文前面几节的内容中提到,Z变换前的搜索空间狭长,而Z变换后的搜索空间比较规范。由于三维(及以上)情况下,数据量大,且仿真效果不明显,因此下面就在二维情况下,通过Matlab构建二维图像说明Z变换的实际意义。
3.1 实验准备
由于Matlab提供了很多的绘图工具包,其仿真效果比较好,因此整个可视化仿真实验在Matlab平台下完成。
RTKLIB是东京海洋大学的高须知二教授开发的一款精密定位开源软件包[7,8]。由于其定位精度较高、实用性好等特点,在本次实验中,采用该该软件包提供的Z变换算法程序。但软件包并没有独立的Z变换程序文件,因此在本次仿真实验中笔者从RTKLIB的源文件提取Z变换程序,重新定义头文件,并在Visual studio 2013下将其编译成.dll 的动态库文件。将上述的头文件及.dll文件导入项目文件目录,并在相关的.m文件中加载。
3.2 实验过程及分析
在Matlab中,随机构造一个浮点解向量及其协方差矩阵,将得到的浮点解和协方差矩阵代入式(3),并画出如图1所示的整周模糊度的搜索空间示意图。
图1 Z变换前搜索空间示意
椭圆区域是由x、y轴构成的Z变换之前的整周解的二维搜索空间。从图中可以看出,这个搜索空间形状不规范,长半轴狭长、短半轴相对较短,椭圆端点的切线与坐标轴不平行。而对于椭圆区域内的整数点,如图1所示的实心点,在二维空间的分布不均匀,即单位空间内整数点的分布不均匀。为了提高整周模糊度解的精度,避免周跳[9]等误差现象的产生,需要把椭圆内候选整数点附近的整数点考虑到搜索范围内,如图中的‘×’点所示。由于受到搜索空间相关性较大、搜索区域形状等因素影响,这些相关点较多,当在超维情况下,这些点在很大程度上将影响整周模糊度的搜索解算效率[6]。
调用上述动态库中的相关函数解出对应的Z变换矩阵及条件方差矩阵D,将Z代入(5)式得出z,将得到的z和D代入(7)式,并画出如图2所示的整周模糊度解的搜索空间。
图2 Z变换后的搜索空间示意
如图2所示,椭圆区域是由x和y轴构成的Z变换之后的整周解的二维搜索空间。从图2与图1的对比结果来看,图2的整周搜索区域更规范,即椭圆顶点上的切线与坐标轴平行,单位空间内的整数点如图2中椭圆内实心点所示,在x、y轴二维空间内分布更均匀。而为了避免周跳等现象额外纳入搜索范围的点,如图2中的‘×’点,对比去相关前的椭圆外整数点减少了很多,在超维情况下,非相关整数点相应地减少就更多了。
综上,在对浮点解进行整周模糊度搜索之前,利用Z变化对浮点解的协方差矩阵进行去相关操作,虽然程序上及步骤上多了一些操作,但是在解算搜索效率上,由于去相关操作规范了整周模糊度解的搜索空间,减少了相关整数点,从而减少了整体整数解算迭代次数,提高了解算效率,降低了搜索时间。
4 结 语
LAMBDA算法的提出对于GPS双差整周模糊度的解算有很大的意义。而LAMBDA算法的核心过程是:利用Z变换对浮点解去相关,规范超椭球体形状,减少与椭球体内整数点相关的整数点以提高整周模糊的搜索效率。
从MATLAB算法的可视化仿真图形可以看出,Z变换前后的搜索空间在搜索形状上相差较大。当上升到超维情况时,Z变换前的相关整数点将更多,此时对原始浮点解进行Z变换将大大减少相关整数点,减少迭代次数,提高搜索效率。