《chan算法定位-matlab》由会员分享,可在线阅读,更多相关《chan算法定位-matlab(3页珍藏版)》请在金锄头文库上搜索。
1、Chan算法及其验证 由于实际条件,以TOA得出测量值对硬件要求很高,难以实现。所以我们由TDOA来得出算法所需的测量值。 实际中,基站根据接受到的信号难以得到移动点到基站的具体距离,则TDOA定位是接收移动台发出的信号到达不同基站的时间差,由此计算出移动台到基站间的距离之差。根据移动台到两个基站的距离差能建立唯一的一条双曲线,根据至少3个基站建立的双曲线方程组求解求交点来得到移动台的坐标。而实际中由于种种误差,完全一致的交点是不存在的,需要较多的基站得到超过未知量数目(2)的方程组得到更多的冗余信息,来实现更准确的定位。Chan算法则是一种处理TDOA测量值得到估计点的可行的方法。 Chan
2、算法是非递归双曲线方程组解法,具有解析表达式解。其主要的特点为在测量误差服从理想高斯分布时,它的定位精度高、计算量小,并且可以通过增加基站数量来提高算法精度。该算法的推导的前提是基于测量误差为零均值高斯随机变量,对于实际环境中误差较大的测量值,比如在有非视距误差的环境下,该算法的性能会有显著下降。Chan算法可分为只有三个BS参与定位和三个以上BS定位两种。而实际中往往采用三个以上BS定位。 当基站的数量大于3时,TDOA值得到的非线性方程组个数要多于未知变量的个数,现将初始的TDOA方程组化为线性方程组,然后用加权最小二乘法得到初始解,再用第一次的到的初始解等约束变量进行第二次加权最小二乘估
3、计,最后得到改进的位置估计。以下为该处理过程的matlab语句如下:%计算第一次WLS估计结果(远距算法)Za = inv(Ga.*inv(Q)*Ga)*Ga.*inv(Q)*ha%第一次计算(近距算法)Va2 = sqrt(Za2(1)-Pbs(2:N,1).2+(Za2(2)-Pbs(2:N,2).2)Ba2 = diag(Va2);Fa2 = Ba2*Q*Ba2;Za2 = inv(Ga.*inv(Fa2)*Ga)*Ga.*inv(Fa2)*ha;Zacov2 = inv(Ga.*inv(Fa2)*Ga);%第二次计算(近距算法)hb = (Za2(1)-Xb)2;(Za2(2)-Yb)
4、2;Za2(3)2 Gb = 1 0;0 1;1 1;Bb2 = Za2(1)-Pbs(1,1) 0 0;0 Za2(2)-Pbs(1,2) 0;0 0 sqrt(Za2(1)-Pbs(1,1)2+(Za2(2)-Pbs(1,2)2);Fb2 = 4*Bb2*Zacov2*Bb2;Zb2 = inv(Gb*inv(Fb2 )*Gb)*Ga.*inv(Fb2 )*hb;POS_ref = Za2(1:2,1); %第一次WLS的估计结果,作为参考作最终定位结果的判决POS1 = sqrt(Zb2)+Pbs(1,:).; %定位结果1POS2 = -sqrt(Zb2)+Pbs(1,:).; %定位
5、结果2POS3 = -sqrt(Zb2(1);sqrt(Zb2(2)+Pbs(1,:).;%定位结果3POS4 = sqrt(Zb2(1);-sqrt(Zb2(2)+Pbs(1,:).;%定位结果4上述关键程序可得到四个定位结果,可根据有关辐射源位置的先验信息进行消除。其余相关验证如下图:图1:Chan算法基站环境图图2: Chan算法位置估计散点图图3 :4个基站的Chan算法仿真图图4 :5个基站的Chan算法仿真图图5 :6个基站的Chan算法仿真图可以看出,Chan算法的定位精度随着基站数量的增加有一定提高,其中,当基站数量有从4个增加到5个时,定位精度有明显提高。当从5个增加到6个时,定位精度不在有明显提高,说明Chan算法的基站数量多于5个时,Chan算法不再对基站数量敏感。