室内定位导航专题研究(一)

  1. 引言
    场景分析法的原理是根据观测场景的环境特征来推断未知节点的位置,这种方法不再是通过实际测量的数据的计算来得到移动终端的位置,而是记录在特定环境中可以表征场景的特征信息,用这些信息表示环境中的特定位置,然后用这些特定位置和特征信息构建指纹数据库。在线定位阶段时,根据移动终端处的实时特征信息与指纹数据库中的特征信息进行匹配,找出最相似的特征信息所对应的特征位置就认为是移动终端的位置。在室内定位领域中,常把接收信号的强度值RSS和信噪比SNR作为常用的场景特征信息,另外还有在室内环境中的磁感应强度值或者是GPS信号强度也可以用作指纹。
    基于位置指纹的方法是场景分析中常用的一种算法,该算法分为两个阶段:离线测量阶段和在线定位阶段。在离线测量阶段,完成指纹数据库的构建,通过采集室内环境中的WiFi信号的强度值来表示特征信息,将特征信息和物理坐标相组合形成参考点的指纹,将所有参考点的指纹构成数据库;在线定位阶段,在移动终端处收集到的WiFi信号的强度值与指纹数据库中每一个参考点处的信号强度值进行比对,找出最相似的参考点的指纹,该指纹包含的物理位置坐标就认为是移动终端的位置。基于位置指纹的方法最主要的困难是如何克服WiFi信号在室内环境传播过程中会受到衍射,反射,散射和人体吸收的影响。虽然,基于位置指纹的方法在构建指纹数据库的过程中会耗费一定的人力物力,但是与其他的方法相比而言,该方法可以利用已部署在室内环境中的WiFi设备来实现定位,并且不需要事先知道WiFi设备的具体位置。

  2. 原理描述
    引言中已经提到过AP的信号强度值可以作为场景分析中的特征信息,利用场景中的特征信息完成移动终端的定位。而位置指纹算法就是场景分析中的一种常用的算法,位置指纹算法的核心思想就是在离线测量阶段构建指纹数据库,在线定位阶段完成待定位点的定位。
    室内定位导航专题研究(一)_第1张图片
    基于近邻的确定性位置指纹算法有最近邻(NN)算法、 K 近邻(KNN)算法、加权 K 近邻(WKNN) 算法,这三种算法的共同点是根据在线定位阶段移动终端在待定位点处检测到的指纹数据与指纹数据库中的各个参考点上的指纹数据进行比对,而这种比对是根据待定位点上接收到的信号强度向量与指纹数据库里参考点的信号强度向量计算距离来表现的。
    a.NN算法
    最近邻算法是最基本的位置指纹定位方法,该方法首先计算移动终端所处的位置处的接收信号强度向量与指纹数据库的信号强度向量的距离,然后把距离最小的指纹数据库中的指纹所对应的参考点的坐标就认为是移动终端所在的位置。具体的实现如下所示:假设待定位区域有n个参考点,m个AP,第i个参考点的信号强度向量 R S S I i , j ‾ \overline{RSSI_{i,j}} RSSIi,j 可表示为 ( R S S I i , 1 ‾ , . . . , R S S I i , j ‾ , . . . , R S S I i , m ‾ ) (\overline{RSSI_{i,1}},...,\overline{RSSI_{i,j}},...,\overline{RSSI_{i,m}}) (RSSIi,1,...,RSSIi,j,...,RSSIi,m) ,移动终端在待定位点处检测的信号向量RSS为 ( R S S I 1 , . . . , R S S I j , . . . , R S S I m ) (RSSI_{1},...,RSSI_{j},...,RSSI_{m}) (RSSI1,...,RSSIj,...,RSSIm) ,待定位点与每一个参考点之间的距离函数表达式为:
    d i s i = ( ∑ j = 1 m ( R S S I j − R S S I i , j ‾ ) q ) 1 / q ( i = 1 , 2 , . . . , n ) dis_{i}=(\sum_{j=1}^{m}(RSSI_{j}-\overline{RSSI_{i,j}})^{q})^{1/q} (i=1,2,...,n) disi=(j=1m(RSSIjRSSIi,j)q)1/q(i=1,2,...,n)
    其中 d i s i dis_{i} disi表示了第i个参考点与移动终端待定位点之间的距离, R S S I i , j ‾ \overline{RSSI_{i,j}} RSSIi,j表示经过方差滤波的第i个参考点接收到第j个AP的信号强度值的平均值, R S S I j RSSI_{j} RSSIj表示了移动终端在待定位点处检测的第j个AP的信号强度值。
    当q=1时,dis为曼哈顿距离;当q=2时,dis为欧氏距离;本文选用欧氏距离,dis表示参考点与移动终端待定位点之间的相似度,dis越小表示待定位点位置与参考点越接近。NN算法最简单,是直接选择欧氏距离最小的参考点的坐标就认为是待定位点的坐标。
    由于NN算法的定位结果只与一个参考点的位置信息有关,这样可能会导致定位误差比较大,于是就出现了KNN算法。
    b.KNN算法
    KNN算法则是选取欧氏距离从小到大的前K个参考点,将K个参考点的位置坐标的平均值作为移动终端的待定位点的坐标,与NN算法相比,KNN算法提高了定位精度。
    假设参考点的坐标为 ( x l , y l ) , l ∈ [ 1 , K ] (x_{l},y_{l}),l\in[1,K] (xl,yl),l[1,K] ,则移动终端待定位点的坐标为:
    ( x , y ) = 1 K ∑ l = 1 K ( x l , y l ) (x,y)=\frac{1}{K}\sum_{l=1}^{K}(x_{l},y_{l}) (x,y)=K1l=1K(xl,yl)
    KNN算法是选取K个参考点的坐标求平均值作为移动终端待定位点的坐标,但这样就无法体现出各个参考节点的位置对移动终端待定位点位置影响程度。因此就出现了WKNN算法。
    c.WKNN算法
    该算法根据每个参考点对待定位位置的贡献度不同来决定待定位点的坐标。与KNN算法相比,该算法能够明显提高定位精度。在WKNN算法中,移动终端待定位点的坐标为:
    ( x , y ) = ∑ l = 1 K 1 d i s l ( x l , y l ) ∑ l = 1 K 1 d i s l (x,y)=\frac{\sum_{l=1}^{K}\frac{1}{dis_{l}}(x_{l},y_{l})}{\sum_{l=1}^{K}\frac{1}{dis_{l}}} (x,y)=l=1Kdisl1l=1Kdisl1(xl,yl)
    其中 d i s l dis_{l} disl
    表示了第l个参考点与移动终端待定位点之间欧氏距离。

  3. 室内定位相关文章
    a. 室内定位导航系统设计实现指南
    b. 有关室内定位导航的大趋势的几点观察和思考

你可能感兴趣的:(室内定位)