chan算法定位 matlab

更新时间:2023-03-15 08:11:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Chan算法及其验证

由于实际条件,以TOA得出测量值对硬件要求很高,难以实现。所以我们由TDOA来得出算法所需的测量值。

实际中,基站根据接受到的信号难以得到移动点到基站的具体距离,则TDOA定位是接收移动台发出的信号到达不同基站的时间差,由此计算出移动台到基站间的距离之差。根据移动台到两个基站的距离差能建立唯一的一条双曲线,根据至少3个基站建立的双曲线方程组求解求交点来得到移动台的坐标。而实际中由于种种误差,完全一致的交点是不存在的,需要较多的基站得到超过未知量数目(2)的方程组得到更多的冗余信息,来实现更准确的定位。Chan算法则是一种处理TDOA测量值得到估计点的可行的方法。

Chan算法是非递归双曲线方程组解法,具有解析表达式解。其主要的特点为在测量误差服从理想高斯分布时,它的定位精度高、计算量小,并且可以通过增加基站数量来提高算法精度。该算法的推导的前提是基于测量误差为零均值高斯随机变量,对于实际环境中误差较大的测量值,比如在有非视距误差的环境下,该算法的性能会有显著下降。Chan算法可分为只有三个BS参与定位和三个以上BS定位两种。而实际中往往采用三个以上BS定位。

当基站的数量大于3时,TDOA值得到的非线性方程组个数要多于未知变量的个数,现将初始的TDOA方程组化为线性方程组,然后用加权最小二乘法得到初始解,再用第一次的到的初始解等约束变量进行第二次加权最小二乘估计,最后得到改进的位置估计。以下为该处理过程的matlab语句如下:

%计算第一次WLS估计结果(远距算法) Za = inv(Ga.'*inv(Q)*Ga)*Ga.'*inv(Q)*ha

%第一次WLS计算(近距算法)

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);

%第二次WLS计算(近距算法)

hb = [(Za2(1)-Xb)^2; (Za2(2)-Yb)^2; Za2(3)^2] Gb = [1 0;0 1;1 1]; Bb2 = [Za2(1)-Pbs(1,1) 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;

Za2(2)-Pbs(1,2) 0;0 0

POS_ref = Za2(1:2,1); %第一次WLS的估计结果,作为参考作最终定位结果的判决 POS1 = sqrt(Zb2)+Pbs(1,:).'; %定位结果1 POS2 = -sqrt(Zb2)+Pbs(1,:).'; %定位结果2

POS3 = [-sqrt(Zb2(1));sqrt(Zb2(2))]+Pbs(1,:).';%定位结果3 POS4 = [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算法不再对基站数量敏感。

本文来源:https://www.bwwdw.com/article/r17v.html

Top