三角定位算法

 这是一种常见的定位算法

 

  平面上有三个不共线的基站 A,B,C,和一个未知终端 D,并已测出三个基站到终端D的距离分别为R1,R2,R3,则以三个基站坐标为圆心,三基站到未知终端距离为半径可以画出三个相交的圆,如图下图所示,未知节点坐标即为三圆相交点

三角定位算法_第1张图片

  在实际测量中,往往由于测量的误差,使三个圆并不交于一点,而相交于一块区域,如下图所示。在此种情况下,便需用其他算法进行估计,这里采用最小二乘法进行求解。

三角定位算法_第2张图片

  • 建立方程,得到如下方程组:

三角定位算法_第3张图片

  •   用上述的前n-1个方程依次减去第n个方程,可以得到如下的矩阵表示形式:

  其中:

三角定位算法_第4张图片

对其采用最小二乘求解,则是求  AX-b 二范数的最小值。  即:

 

 

  • 用最小二乘法求解上边方程得:

 

       X 便是未知终端的坐标计算值。

 

 

 

 

在TD应用 wifi定位库:今天的行为库+昨天的定位库
   对于今天的行为库:经纬度不为0的, 以(bssid, ssid) 为key,可以得Array((time,alt,lat,lng,acc,level))。我们需要在后面有一堆经纬度,找到一个。如果(bssid, ssid)后面的array点少于3,则取信号强度最强的那个点的经纬度。 否则会进行三点定位。
   根据信号强度计算出距离。 
   根据经纬度建立。
   最后得到一个唯一的经纬度。

你可能感兴趣的:(数据结构)