Chan
算法及其验证
由于实际条件?/p>
?/p>
TOA
得出测量值对硬件要求很高?/p>
难以实现?/p>
所以我们由
TDOA
来得出算法所需的测量值?/p>
实际中,
基站根据接受到的信号难以得到移动点到基站的具体距离,
?/p>
TDOA
定位是接收移动台发出的信号到达不同基站的时间?/p>
,
由此计算出移动台到基?/p>
间的距离之差。根据移动台到两个基站的距离差能建立唯一的一条双曲线
,
根据
至少
3
个基站建立的双曲线方程组求解求交点来得到移动台的坐标?/p>
而实际中?/p>
于种种误差,
完全一致的交点是不存在的,
需要较多的基站得到超过未知量数?/p>
?/p>
2
)的方程组得到更多的冗余信息,来实现更准确的定位?/p>
Chan
算法则是一?/p>
处理
TDOA
测量值得到估计点的可行的方法?/p>
Chan
算法是非递归双曲线方程组解法
,
具有解析表达式解。其主要的特点为
在测量误差服从理想高斯分布时
,
它的定位精度高、计算量?/p>
,
并且可以通过增加
基站数量来提高算法精度?/p>
该算法的推导的前提是基于测量误差为零均值高斯随
机变?/p>
,
对于实际环境中误差较大的测量?/p>
,
比如在有非视距误差的环境?/p>
,
该算
法的性能会有显著下降?/p>
Chan
算法可分为只有三?/p>
BS
参与定位和三个以?/p>
BS
定位两种。而实际中往往采用三个以上
BS
定位?/p>
当基站的数量大于
3
?/p>
,TDOA
值得到的非线性方程组个数要多于未知变量的
个数
,
现将初始?/p>
TDOA
方程组化为线性方程组
,
然后用加权最小二乘法得到初始
?/p>
,
再用第一次的到的初始解等约束变量进行第二次加权最小二乘估?/p>
,
最后得?/p>
改进的位置估计。以下为该处理过程的
matlab
语句如下?/p>
%
计算第一?/p>
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;