ibeacon室内定位算法及代码

来源:网络整理 作者:2017年11月20日 17:35
关键词:iBeacon

  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

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
声明:电子发烧友网转载作品均尽可能注明出处,该作品所有人的一切权利均不因本站而转移。
作者如不同意转载,既请通知本站予以删除或改正。转载的作品可能在标题或内容上或许有所改动。
收藏 人收藏
分享:
发表评论

elecfans网友

分享到:

用户评论(0