1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > matlab chan算法定位 chan算法定位 matlab

matlab chan算法定位 chan算法定位 matlab

时间:2019-03-13 00:03:26

相关推荐

matlab chan算法定位 chan算法定位 matlab

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。