发明名称 一种基于双套指纹叠加的WLAN室内定位方法
摘要 一种基于双套指纹叠加的WLAN室内定位方法,属于无线通信的技术领域,是对对无线局域网环境下的室内人员/资产进行定位的方法。该方法在离线阶段首先采集参考点的信号特征,建立第一套RSS指纹数据库;然后平移第一套指纹数据库中全部参考点的位置坐标,使两套指纹交错叠加在一起,再采集平移后的参考点的信号特征,建立第二套RSS指纹数据库。在线定位阶段,先分别判定待定位点在两套指纹地图中的网格位置,利用网格中心点坐标取均值进行定位;若局部定位环境不理想,还可采用交叉筛选指纹的方式选出最优的一套指纹进行定位,有效减弱个别异常指纹对定位计算造成的影响。本发明简单易行,定位精度高。
申请公布号 CN104066058A 申请公布日期 2014.09.24
申请号 CN201410332222.3 申请日期 2014.07.14
申请人 大连理工大学 发明人 王洪玉;宋强;王洁;张茂龙;邵凌;方勇;于天成;党大鹏;徐珩
分类号 H04W4/04(2009.01)I;H04W64/00(2009.01)I 主分类号 H04W4/04(2009.01)I
代理机构 大连理工大学专利中心 21200 代理人 赵连明;梅洪玉
主权项 一种基于双套指纹叠加的WLAN室内定位方法,其特征在于以下步骤:A、将待定位区域划分成均匀网格,每一个网格的边长为l,单套指纹共m个参考节点,将网格的顶点作为参考点的位置并接收来自n个参考点AP的信号强度RSS值,构建第一套RSS指纹地图;B、平移第一套指纹地图中的全部m个参考点,构建第二套RSS指纹地图,并结合两套指纹地图构建直角坐标系;具体如下:(1)先将第一套指纹水平向右平移l/2距离,再水平向下平移l/2距离,同样将网格的顶点作为参考点的位置并接收来自n个AP的RSS值,将其值存在信号强度RSS矩阵中;(2)构建第二套指纹地图的<img file="FDA0000536954560000011.GIF" wi="151" he="84" />矩阵,令<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mover><msub><mi>RSS</mi><mi>mn</mi></msub><mo>&OverBar;</mo></mover><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mover><msub><mi>RSS</mi><mn>11</mn></msub><mo>&OverBar;</mo></mover></mtd><mtd><mover><msub><mi>RSS</mi><mn>12</mn></msub><mo>&OverBar;</mo></mover></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mover><msub><mi>RSS</mi><mrow><mn>1</mn><mi>n</mi></mrow></msub><mo>&OverBar;</mo></mover></mtd></mtr><mtr><mtd><mover><msub><mi>RSS</mi><mn>21</mn></msub><mo>&OverBar;</mo></mover></mtd><mtd><mover><msub><mi>RSS</mi><mn>22</mn></msub><mo>&OverBar;</mo></mover></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mover><msub><mi>RSS</mi><mrow><mn>2</mn><mi>n</mi></mrow></msub><mo>&OverBar;</mo></mover></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><mover><msub><mi>RSS</mi><mrow><mi>m</mi><mn>1</mn></mrow></msub><mo>&OverBar;</mo></mover></mtd><mtd><mover><msub><mi>RSS</mi><mrow><mi>m</mi><mn>2</mn></mrow></msub><mo>&OverBar;</mo></mover></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mover><msub><mi>RSS</mi><mi>mn</mi></msub><mo>&OverBar;</mo></mover></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000536954560000012.GIF" wi="1032" he="340" /></maths>其中m表示参考点的总数,n表示AP的总数;(3)将第二套指纹的最下边作为x轴,取向右为正方向,将第一套指纹的最左边作为y轴,取向上为正方向,分别将两套指纹中每个网格的中心点坐标与其在指纹地图中的位置编号一一对应存入两个不同的GC矩阵中,令<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>GC</mi><mi>ij</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mn>11</mn></msub></mtd><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mn>12</mn></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mrow><mn>1</mn><mi>j</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mn>21</mn></msub></mtd><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mn>22</mn></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mrow><mn>2</mn><mi>j</mi></mrow></msub></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mrow><mi>i</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mrow><mi>i</mi><mn>2</mn></mrow></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mi>ij</mi></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000536954560000013.GIF" wi="882" he="281" /></maths>其中i表示指纹地图中参考网格的行总数,j表示指纹地图中参考网格的列总数,(x,y)表示网格的中心点坐标;分别将两套指纹中每个参考点的坐标存入两个不同的RP矩阵中,令<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>RP</mi><mi>ij</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mn>11</mn></msub></mtd><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mn>12</mn></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mrow><mn>1</mn><mi>j</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mn>21</mn></msub></mtd><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mn>22</mn></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mrow><mn>2</mn><mi>j</mi></mrow></msub></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mrow><mi>i</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mrow><mi>i</mi><mn>2</mn></mrow></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mi>ij</mi></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000536954560000021.GIF" wi="871" he="281" /></maths>其中,i表示指纹地图中参考点的行总数,j表示指纹地图中参考点的列总数,(x,y)表示参考点的坐标;C、在线定位阶段,根据待定位点的实时RSS值,分别判定其所在第一套指纹及第二套指纹中的网格位置,并将其所属网格作为该套指纹的候选网格;具体如下:(1)待定位点的实时RSS采样次数为N,将其平均信号强度值作为该点的实时RSS值,分别计算实时RSS与两套指纹地图中各个参考点的RSS值之间的欧氏距离,利用如下公式:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>D</mi><mi>i</mi></msub><mo>=</mo><msqrt><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msup><mrow><mo>(</mo><msub><mi>RSS</mi><mi>j</mi></msub><mo>-</mo><mover><msub><mi>RSS</mi><mi>ij</mi></msub><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mn>2</mn></msup></msqrt></mrow>]]></math><img file="FDA0000536954560000022.GIF" wi="551" he="164" /></maths>其中,D<sub>i</sub>表示实时RSS到第D<sub>i</sub>个参考点之间的欧式距离值,i=1,2,……,m,m为参考点总数,j=1,2,……,n,n为AP总数;(2)在其中的一套指纹中,找到最小的前四个欧氏距离D值,并找到其对应的参考点坐标,先取出前三个最小的欧氏距离所对应的参考点坐标,判断其中任意两个参考点的横、纵坐标的差值Δx和Δy是否满足区域判定条件(0≤Δx≤2l∩0≤Δy≤2l,l表示网格的边长);若满足上述条件,则通过如下公式计算权重指标:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>&omega;</mi><mi>i</mi></msub><mo>=</mo><mfrac><msubsup><mi>D</mi><mi>i</mi><mn>2</mn></msubsup><mrow><munderover><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mn>3</mn></munderover><msubsup><mi>D</mi><mi>k</mi><mn>2</mn></msubsup></mrow></mfrac></mrow>]]></math><img file="FDA0000536954560000023.GIF" wi="255" he="215" /></maths>其中,i=1,2,3;k=1,2,3;通过如下公式计算待定位点在该套指纹中的平均坐标:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mrow><mo>(</mo><mover><mi>x</mi><mo>&OverBar;</mo></mover><mo>,</mo><mover><mi>y</mi><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mn>3</mn></munderover><msub><mi>&omega;</mi><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000536954560000024.GIF" wi="429" he="140" /></maths>其中,i=1,2,3;在指纹地图中判断待定位点属于哪一个网格,用如下公式:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>d</mi><mi>ij</mi></msub><mo>=</mo><msqrt><msup><mrow><mo>(</mo><mover><mi>x</mi><mo>&OverBar;</mo></mover><mo>-</mo><msub><mi>x</mi><mi>ij</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mover><mi>y</mi><mo>&OverBar;</mo></mover><mo>-</mo><msub><mi>y</mi><mi>ij</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt></mrow>]]></math><img file="FDA0000536954560000031.GIF" wi="616" he="104" /></maths>其中,d<sub>ij</sub>表示待定位点与指纹地图中任意网格中点坐标的距离,<img file="FDA0000536954560000032.GIF" wi="123" he="82" />表示待定位点在该套指纹地图中的坐标,(x<sub>ij</sub>,y<sub>ij</sub>)表示指纹地图中网格中心点坐标,i=1,2,……,j=1,2,……;选取最小的d<sub>ij</sub>值所对应的坐标即为待定位点所在指纹地图中的网格中心点坐标,将该网格作为待定位点在该套指纹中的候选网格;(3)若不满足上述条件,则选取最小的前四个欧氏距离D值所对应的参考点坐标,计算这四个参考点的平均坐标,用下述公式表示:<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><mrow><mo>(</mo><mover><mi>x</mi><mo>&OverBar;</mo></mover><mo>,</mo><mover><mi>y</mi><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mn>4</mn></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mn>4</mn></munderover><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000536954560000033.GIF" wi="419" he="140" /></maths>分别计算这四个参考点与其平均坐标值之间的距离dis<sub>i</sub>,用下述公式表示:<maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><msub><mi>dis</mi><mi>i</mi></msub><mo>=</mo><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>-</mo><mover><mi>x</mi><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><mover><mi>y</mi><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mn>2</mn></msup></msqrt></mrow>]]></math><img file="FDA0000536954560000034.GIF" wi="592" he="99" /></maths>将dis<sub>i</sub>中的最大值所对应的坐标剔除掉,利用其余的三个坐标值先判断条件,若满足条件,则计算权重指标ω<sub>i</sub>,计算待定位点坐标并找到其在指纹地图中的网格,具体步骤见C2;若仍然不满足条件,则认为待定位点在该套指纹地图中无法通过参考点聚类的方法精确定位,定位误差较大,即真实的网格位置无法判定,此时选取待定位点在该套指纹地图中最小的前两个欧氏距离值所对应的坐标;D、分别选出两套指纹地图中的候选网格,根据特定算法确定待定位点的位置;具体如下:(1)若两套指纹地图中均存在候选网格,则用两个候选网格的中心点坐标取平均值作为待定位点坐标;(2)若两套指纹地图中仅存在一个候选网格,则用判断该网格成立的前三个最小欧氏距离点所对应的坐标取平均值作为待定位点坐标;(3)若两套指纹地图中均不存在候选网格,则取各自指纹地图中与待定位点最近的前两个参考点,计算这四个点的平均值作为待定位点坐标。
地址 116024 辽宁省大连市甘井子区凌工路2号