logo资料库

TDOA定位Taylor算法.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
基于TDOA的经典定位算法分为两类,一类是可以求出解析解的算法,如Fang算法、Chan算法的;另一 类是迭代算法,如Taylor算法。 Taylor级数展开法是一种迭代算法,在Taylor级数展开的基础上,利用初始迭代值进行WLS估计,然后 求解位置估计误差的局部最小二乘解,并对标签的位置进行更新。Taylor算法的前提是需要标签位置的 初始估计值,而算法的主要思想是通过不断迭代来修正待定位标签位置的估计值,最后逐渐逼近标签真 实的位置坐标。 标签与基站之间的约束关系可以通过某一函数 示, 在满足条件: 时停止迭代计算。 来表达,该函数的测量值可以用 来表 ,其中, 为函数的真实值, 表示测量误差。用 来代表误差门限值,那么,应 假设标签坐标的初始值为 ,真实值为 ,且 , ,那么函数 在 处的Taylor级数展开结果如下: 由基于TDOA的定位方法,可以得到以下的方程组: 其中 表示标签的坐标, 表示标签到第 个基站与到第1个基站的距离差值。 由上式构造函数 : 将 在 处进行泰勒展开,并忽略二阶以上的分量,有: 转化为矩阵的形式,有: 其中, 为误差矢量,另有
表示在一次迭代计算中标签和第i个基站之间的距离。 上式的加权最小二乘解为: 其中, 表示TDOA测量值的协方差矩阵。在下一次递归计算中,令 新标签的坐标值进行迭代计算。重复以上过程,直到误差满足设定的门限值时停止迭代计算,即: , ,更   代码实现(matlab) X_estimate = 50; Y_estimate = 50; Xb = [200 200]; X = [200 0; -100 173; -100 -173]; Noise = 0.1*randn(3,1); Real_ms = [20 20]; BSN = size(X,1);       x = X_estimate; y = Y_estimate; MS = [x,y];   iEP = MS; %% Rb = sqrt((Real_ms(1) - Xb(1))^2+(Real_ms(2) - Xb(2))^2); RD = zeros(BSN,1); for i = 1:BSN                    RD(i) = -Rb+sqrt((Real_ms(1)- X(i,1))^2+(Real_ms(2) - X(i,2))^2)+Noise(i); end %% % TDOA协方差矩阵Q Q = 0.01*eye(BSN);   delta = [1 1];   kk = 0;   % Taylor级数展开法 while ((abs(delta(1)) + abs(delta(2))) > 0.01)      R1 = sqrt((iEP(1) - Xb(1))^2 + (iEP(2) - Xb(2))^2);      R = zeros(1,BSN);    kk = kk+1;    for i = 1: BSN        R(i) = sqrt((iEP(1) - X(i,1))^2 + (iEP(2) - X(i,2))^2);    end        % hi    hi = zeros(BSN,1);
   for i = 1: BSN        hi(i) = RD(i) - (R(i) - R1);    end        % Gi    Gi = zeros(BSN,2);    for i = 1: BSN        Gi(i, 1) = (Xb(1)-iEP(1))/R1 - (X(i,1) - iEP(1))/R(i);        Gi(i, 2) = (Xb(2)-iEP(2))/R1 - (X(i,2) - iEP(2))/R(i);    end        % delta    delta = inv(Gi'*inv(Q)*Gi)*Gi'*inv(Q)*hi;      if (abs(delta(1))+abs(delta(2))) > 0.01          EP = iEP + delta';          iEP = EP;   % 更新迭代值    end end % 输出 z_out = iEP;   % 标签坐标估计值 mse = sqrt((z_out(1)-Real_ms(1))^2+(z_out(2)-Real_ms(2))^2);   % 均方误差  
分享到:
收藏