ibeacon室内定位算法及代码

电子常识

2636人已加入

描述

  1、iBeacon定位算法

  近邻法是确定性匹配算法中最具代表性的一种算法,通过计算实时RSS样本向量与数据库中各个指纹应的RSS均值向最之间的欧式距离,得到距离最近或最相似的一个或多个指纹,再经过对选取指纹的位置坐标进行平均或加权平均得出待测点的位置。

  1)最近邻算法

  最近邻算法(Nearest Nei ghborhood,NN) 是最基本的近邻法。由公式(1) 可计算出RSS测试样本向量与指纹均值向量间的欧式距离;

  iBeacon

  式中,RSS‘ 为实时测量时第j 个AP的RSS值,RSS;’ 为在第i(i=1,2,“”,.n) 个参考点上: 来自于第j个AP的RSS均值,其值存储在数据库中,n为选取参考点个数,m为AP的个数。

  NN算法返回数据库中与实时RSS序列间欧氏距离最小的参考点位置信息相联系,并直接将其作为用户定位

  结果,所以,NN法只选取最近邻的- 一个指纹位置作为最终的定位结果将其返回,定位精度直接由最近邻指纹的匹配情况决定,匹配算法单一绝对化,因此,稳定性较差,定位精度不高。

  K近邻算法吲(RK Nearest Neighborhood,KIN) 是基FNN算法的改进算法,在计算出各个参考点相对于实时RSS值的欧式距离序列后,对距离序列进行升序排列,选取距离最小的前K(K=2) 个参考点作为候选点,对其位置信息进行均值处理后即可得到用户的最后位置坐标:

  iBeacon

  式中,(x,y) 为第i 个候选点所对应的: 二维位置坐标,(x,y) 为返回的用户二维位置坐标。

  2)加权近邻算法

  加权近邻算法(Weighted Nearest Neighborhood,WKNN )在KNN算法的基础上对得到的候选点位置信息的处理有所不同,实际情况下,K个指纹与实测RSS信号距离的不同,则不同近邻参考点的权重应该是不同的。WKIN算法在计算得出最近邻的候选点后,不是计算它们的平均坐标作为最后用户的定位结果,而是给对应的参考点坐标乘上一个归一化加权系数:

  iBeacon

  式中,d,为计算得出的欧式距离,1为加权系数归一化参数,e 为很小的正常数,以防止分母出现零的情况。加权系数与信号欧式距离成反比,因此与实时测量的RSS距离越小的候选点其位置坐标的权重越高,其计算结果更接近真实性,一定程度上提高了定位精度。

  我们采用的加权近邻算法与上面有所不同,是参考倒数距离加权插值方法的思想,确定权值。倒数距离加权插值,又称“反距离加权平均”或“Shepard方法”。其思想是设有n个点,平面坐标为(x,n),重直高度为z,(i=1,2,”,n),倒数距离加权插值的插值函数

  为

  iBeacon

  式中,d,.V(x-x )‘+(-y ) 是(x,y)点到(x,y;)点的水平距离,j=1,2,“”。.p是一个大于0的常数,称为加权幂指数。参考上述思想,采用如下算法确定权值:假设有n 个参考点,对应第i 号参考点i=1,2,“”,n的权值为w,若存在参考点i 与待定位点(x,y)的欧氏距离d;为0,则该i 参考点的权值w;=1,其他n-1个参考点的权值均为0; 若任一参考点与待定位点(x,y) 的欧氏距离均不为0,则

  iBeacon

  最后由x,y=ln {wX (x,y,)) 得到待定点位置。

  2、实际的算法编程是:

  iBeacon

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分