[0055] 图1中,描述了基于RSS线性相关与二次加权质心算法的WLAN指纹定位方法的流程图,下面结合图1给出详细说明。
[0056] 步骤S1,离线指纹数据库的建立
[0057] 1.1RSS样本采集
[0058] 在目标定位环境中布置Q个参考点,在参考点采集不同AP的RSS样本数据,以参考点K为例,对参考点K采集到的RSS样本数据进行限幅平均滤波法滤波处理,最终得到N组通过滤波处理的RSS样本序列{sK:RSSK,1 RSSK,2 … RSSK,N};
[0059] K表示所述参考点,N表示参考点K所收集的RSS样本组数,sK表示参考点K的RSS样本序列,RSSK,N表示参考点K的第N组RSS样本。
[0060] 将该样本序列可以表示成一个矩阵:
[0061]
[0062] 其中K为所述参考点,N为RSS样本组数,P为AP数量,rssP,N,K表示所述参考点K第N组RSS信息中第P个AP的RSS值。
[0063] 1.2计算参考点K的RSS鲁棒性
[0064] 首先计算参考点K每一AP的RSS方差,接着对所求的P个方差进行均值处理,P指所述参考点K所收集到的AP数量,利用该计算结果作为所述参考点K的权值wK,权值越大表示该参考点RSS值变化越剧烈。权值的计算公式如下所示:
[0065]
[0066] 其中,P表示所采集的AP数目,N为RSS样本组数,RSSn,k表示第K个位置样本中第n组RSS样本,μK表示第K个位置参考点RSS样本均值。
[0067] 1.3RSS样本处理与指纹构建
[0068] 为了精确表示指纹库样本与在线RSS样本的线性相关性,对RSSK矩阵每一行RSS数值按降序排列,即可得到新的一组RSS矩阵RSS'K:
[0069]
[0070] 矩阵RSS'K中,每一行元素满足
[0071] rssi,j,k≥rssi,j+1,k,i=1,2,…R j=1,2,…N-1
[0072] RSS'K表示在所述参考点K经过排序处理的RSS样本矩阵,rss'P,N,K表示所述参考点K第N组RSS信息中第P个AP的RSS值。
[0073] 将RSS'K等分为M个子矩阵,对每个子矩阵的每行求均值得到:
[0074]
[0075] 由 矩阵表示所述位置K处的指纹矩阵信息。
[0076] 所述M的取值需要和在线定位阶段终端接收的RSS矩阵维度相同,实验表明M的增大有助于提升定位的精度,考虑到定位的实时性,M的取值不益过大,一般取值在3至6。RSSM表示指纹矩阵信息中第M列RSS信息。
[0077] 步骤S2,在线定位
[0078] 2.1构建RSS测量矩阵
[0079] 终端采集M组通过滤波处理的RSS样本序列,构建成一个P×M的RSS测量矩阵,对*RSS测量矩阵每一行按降序排列,即可得到最终需要的在线RSS矩阵RSS:
[0080]
[0081] 其中M表示RSS样本组数,P表示AP数量, 表示第M组RSS样本中第P个AP的RSS值。
[0082] 2.2计算相关性
[0083] 根据皮尔森相关系数公式乘以参考点RSS权值计算在线终端接收样本与指纹数据库样本的线性相关系数rK:
[0084]
[0085] 其中rssi,j,K与 分别表示在指纹数据库中第K个参考点指纹与在线终端接收的RSS测量矩阵的第i行第j列的数值,wk表示指纹库中参考点的权值,μK表示指纹数据库中第K组指纹的均值,μuser表示在线RSS矩阵的均值。μK的计算如下式:
[0086]
[0087] 将所述Q个相关系数计算好后,对其进行降序排序,选取前k个相关系数所对应的位置点{P1 P2 … Pk},Pk=(xk yk rk)。
[0088] Pk表示所述Q个相关系数降序排序后的第k个相关系数所对应的参考点信息,xk yk分别是第k个相关系数所对应的坐标值,rk表示第k个相关系数,本方法中k的取值应大于3。
[0089] 2.3二次加权值质心法进行位置匹配
[0090] 2.3.1一次质心算法计算
[0091] 将所述Pk变为两个数组VX和VY
[0092]
[0093] VX和VY表示所述k个相关系数所对应的参考点信息中x坐标数组和y坐标数组,vxk和vyk表示第k个相关系数对应参考点的x坐标和y坐标信息。
[0094] 对所述k个位置节点利用质心算法进行第一次计算,算出未知节点I'(x'y');质心算法如下:
[0095]
[0096] k表示所述Q个相关系数降序排序后取得的参考点数量,ri表示第i个参考点所对应的相关系数,xi yi分别表示第i个参考点对应的位置坐标信息,x'y'分别表示求得的位置坐标信息。
[0097] 2.3.2二次质心算法计算
[0098] 由于k个线性相关位置节点是随机分布,初次质心算法计算的未知节点坐标误差较大。在VX数组和VY数组中,分别用数组中坐标值减去未知节点的坐标值并进行绝对值处理得到Φx,k=|xk-x'|,Φy,k=|yk-y'|,求出最大的α个Φx,k和Φy,k,将所对应的坐标信息在VX数组和VY数组中删除(α的取值和k值有关,一般为k/3),经过删除处理后可得到新的数组VX'和VY';
[0099] 对VX'和VY'数组进行第二次加权质心算法计算,得到最终的定位结果I(x y)。
[0100] 在步骤S1中,所采集的RSS样本只要进行滤波处理,本发明采用限幅平均滤波法,相当于“限幅滤波法”+“递推平均滤波法”;每次采样到的新数据先进行限幅处理,再将数据进行递推平均滤波处理。
[0101] 限幅滤波处理:对所述参考点采集到的RSS样本数据,首先预定允许的最大偏差值ε(经验值,依照不同地方RSS鲁棒性而设定,一般取5至10之间),计算同一AP相邻样本数据RSS的差值δi=|rssi,K,P-rssj,K,P|,i=j+1,如果δi>ε,则修改
[0102]
[0103] δi表示相邻样本RSS差值,i和j表示RSS样本数据组数,rssi,K,P表示在所述采样点K第i次测量的第P个AP的RSS值;
[0104] 递推平均滤波处理:对限幅滤波处理处理后的RSS样本序列再进行递推平均滤波处理,把连续取得的L个采样值看成一个队列,队列的长度固定为L,每次采样到一组新RSS数据放入队尾,并扔掉原来队首的一组RSS数据(先进先出原则),把队列中的L个数据进行算术平均运算:
[0105]
[0106] 用计算得到的RSS信息充当本次的RSS样本,处理完后得到N组通过滤波处理的RSS样本序列{sK:RSSK,1 RSSK,2 … RSSK,N}。
[0107] L表示所述滤波队列的长度,考虑到在线定位阶段终端接收的RSS样本数量有限,一般L的取值范围为3至5,RSSi表示第i组RSS样本,RSSK,N表示参考点K的第N组RSS样本。
[0108] 滤波处理后的效果如图2所示。
[0109] 在步骤S2中,本发明提出二次加权质心算法用于最终定位匹配计算,用于降低质心算法计算所产生的误差,二次加权质心算法的原理图如图4所示。对图4进行分析可知,如果把距离未知节点Q较远的节点用较近的节点代替进行加权质心运算,可以一定程度上减小较远先标节点的影响,进一步减小定位误差。基于这一思想,首先按照标准质心算法第一次计算,求得质心后,分别对比每一个位置节点X、Y距离计算,分别去除X和Y距离最远的值,从而可以得到一个新的位置节点。在对其进行第二次的加权质心算法计算,求得最终估算位置点。
[0110] 在图3中描述不同移动终端(MT)同一位置点接收滤波处理后的信号强度差异性示意图,观察曲线图发现不同种端接收的RSS样本变化趋势大致相同,也就是说他们是线性相关的。下面进行具体分析:
[0111] 对一个具体的AP、MT组合,假定P(d)和P(d0)分别表示与AP相距任意距离d和相距参考距离d0处的接收信号强度。根据对数正态阴影模型,有:
[0112]
[0113] 其中,第一部分为路径损耗部分(β是路径损耗因子),第二部分则是一个正态随机变量 上式也可写成:
[0114]
[0115] 其中PAP是AP的发送功率;GAP是AP的天线增益;GMT是移动终端MT的天线增益;l是系统损耗因子;λ是无线信号的波长。由公式可知,在AP距离d处得到的RSS依赖于AP和MT的硬件参数。
[0116] 两个不同终端在同一位置对某一个AP的RSS观测值如下:
[0117]
[0118]
[0119] 由P(d)1-P(d)2可得:
[0120]
[0121] 从上式可以看出,对不同终端RSS值做差后,结果和AP配置几乎无关,尽管结果受到终端天线增益G、系统损耗因子l、路径损耗因子β、随机变量X等因素影响,但当不同终端在采集RSS是外界条件相同的理想条件下,这些配置都是保持不变的,因此,不同终端的差值是趋于一个常量。由此可知,在不同终端的情况下,各个终端所采集的RSS样本值是线性相关的,如图3所示。因此采用线性相关进行在线定位过程中的计算是可以一定程度上降低不同终端的影响。
[0122] 从图3中,还可以分析出当RSS较强时,这种相关性比较明显,当RSS较弱时,相关性不太明显,因此在定位阶段,应该做好AP的选择,摒弃那些较弱的AP,这样有助于提高室内定位精确度。