发明名称 一种基于Matlab2008的室内指纹定位系统的仿真方法
摘要 一种基于Matlab2008的室内指纹定位系统的仿真方法,涉及一种室内指纹定位系统的仿真方法,属于室内指纹定位技术领域。它解决了现有的室内指纹定位系统中指纹图的建立工作量大,验证指纹图采集密度和定位算法等因素对定位结果的影响时采集数据量大的问题。本发明基于Matlab2008实现,包括两部分的内容。第一部分是室内电磁波传播模型的建立,利用它可以模拟室内任意一点的信号强度;第二部分是定位方法的实现,以第一部分的模型为基础,进行环境设置、指纹图采集、定位和误差统计,从而达到对算法性能的仿真验证。本发明主要适用于基于WLAN的室内指纹定位技术领域。
申请公布号 CN103941225A 申请公布日期 2014.07.23
申请号 CN201410161052.7 申请日期 2014.04.21
申请人 哈尔滨工业大学 发明人 韩帅;巩紫君;陈雷;邹德岳;孟维晓
分类号 G01S5/00(2006.01)I;H04B17/00(2006.01)I 主分类号 G01S5/00(2006.01)I
代理机构 哈尔滨市松花江专利商标事务所 23109 代理人 杨立超
主权项 一种基于Matlab2008的室内指纹定位系统的仿真方法,其特征在于所述仿真方法的实现是按照以下步骤进行的:步骤A、室内电磁波传播模型的建立,即待测点信号强度的仿真:设待测点坐标为(x,y),AP,即WIFI接入点的坐标为(x<sub>ap</sub>,y<sub>ap</sub>),具体过程如下:步骤A1、计算待测点与AP之间的距离d:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>d</mi><mo>=</mo><msqrt><msup><mrow><mo>(</mo><mi>x</mi><mo>-</mo><msub><mi>x</mi><mi>ap</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mi>y</mi><mo>-</mo><msub><mi>y</mi><mi>ap</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000494206770000011.GIF" wi="657" he="94" /></maths>步骤A2、根据环境中墙和门的分布,判断待测点与AP之间隔着的墙的数目l和门的数目h,利用下式计算等效的穿墙数目<img file="FDA0000494206770000012.GIF" wi="61" he="63" />DWR=DAF/WAF   (2)<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mover><mi>l</mi><mo>~</mo></mover><mo>=</mo><mrow><mo>(</mo><mi>l</mi><mo>+</mo><mi>DWR</mi><mo>&CenterDot;</mo><mi>h</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000494206770000013.GIF" wi="450" he="70" /></maths>其中DAF代表信号穿过一扇门时引起的衰减,衰减范围为10~20dB,WAF代表信号穿过一堵墙时引起的衰减,衰减范围为1.5~5.5dB,DWR的物理意义为:一扇门对信号的衰减作用相当于DWR堵墙;步骤A3、根据<img file="FDA0000494206770000014.GIF" wi="31" he="63" />的大小来判断信号的传播:<img file="FDA0000494206770000015.GIF" wi="97" he="62" />时,P<sub>l</sub>(d<sub>0</sub>)=41.5dB,n=1.9dB;<img file="FDA0000494206770000016.GIF" wi="101" he="63" />时,P<sub>l</sub>(d<sub>0</sub>)=37.7dB,n=3.3dB,其中P<sub>l</sub>(d<sub>0</sub>)为第一米路径衰减,n为路径衰减因子;步骤A4、将步骤A1中得到的d、步骤A2中得到的<img file="FDA0000494206770000017.GIF" wi="66" he="64" />步骤A3中得到的P<sub>l</sub>(d<sub>0</sub>)和n带入下面的式子,计算路径衰减P<sub>l</sub>:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>P</mi><mi>l</mi></msub><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>P</mi><mi>l</mi></msub><mrow><mo>(</mo><msub><mi>d</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>+</mo><mn>10</mn><mo>&CenterDot;</mo><mi>n</mi><mo>&CenterDot;</mo><mi>log</mi><mrow><mo>(</mo><mi>d</mi><mo>/</mo><msub><mi>d</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>+</mo><mover><mi>l</mi><mo>~</mo></mover><mo>&CenterDot;</mo><mi>WAF</mi><mrow><mo>(</mo><mover><mi>l</mi><mo>~</mo></mover><mo>&le;</mo><mn>2</mn><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>P</mi><mi>l</mi></msub><mrow><mo>(</mo><msub><mi>d</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>+</mo><mn>10</mn><mo>&CenterDot;</mo><mi>n</mi><mi>log</mi><mrow><mo>(</mo><mi>d</mi><mo>/</mo><msub><mi>d</mi><mn>0</mn></msub><mo>)</mo></mrow><mo>+</mo><mn>2</mn><mo>&CenterDot;</mo><mi>WAF</mi><mrow><mo>(</mo><mover><mi>l</mi><mo>~</mo></mover><mo>></mo><mn>2</mn><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000494206770000018.GIF" wi="967" he="151" /></maths>步骤A5、利用Matlab2008自带函数norm(·)生成一个均值为0、标准差为3的随机数,代表阴影衰落P<sub>s</sub>;步骤A6、将步骤A4得到的路径衰减P<sub>l</sub>、步骤A5得到的阴影衰落P<sub>s</sub>,带入下面的式子计算待测点的接收信号强度rss:rss=P<sub>t</sub>‑P<sub>l</sub>‑P<sub>s</sub>   (5)其中P<sub>t</sub>为AP发射功率,范围为‑40dBm到0dBm之间;步骤B、定位方法的实现,具体过程如下:步骤B1、设定仿真环境大小为L米×W米,L&gt;0,W&gt;0,在这个范围内设定墙和门的位置,以及M个AP的位置;步骤B2、在步骤B1设定的环境中,均匀选取N个点,间隔为0.5到1米,设第i个点的坐标为(x<sub>i</sub>,y<sub>i</sub>),其中i=1,2,…,N;步骤B3、利用式(5)在步骤B2中的每个点(x<sub>i</sub>,y<sub>i</sub>)处仿真信号强度,在每个点仿真T次取平均值,得到第i个点的接收信号强度向量RSS<sub>i</sub>,RSS<sub>i</sub>=[rss<sub>i1</sub>,rss<sub>i2</sub>,…,rss<sub>iM</sub>],rss<sub>i1</sub>表示第1个AP在第i个点处的平均信号强度,依次类推;步骤B4、设定定位过程中仿真次数为T<sub>s</sub>次,在步骤B1的仿真环境里随机选取T<sub>s</sub>个(x<sub>p</sub>,y<sub>p</sub>)坐标作为测试点,其中p=1,2,…,T<sub>s</sub>,设置迭代次数计数值cnt的初值为0;步骤B5、设置迭代次数计数值cnt加1,在步骤B4得到的T<sub>s</sub>个坐标中随机选择第cnt个坐标(x<sub>cnt</sub>,<sub>ycnt</sub>)作为要定位的点,利用式(5)仿真得到该点信号强度RSS<sub>0</sub>,RSS<sub>0</sub>=[rss<sub>01</sub>,rss<sub>02</sub>,…,rss<sub>0M</sub>],rss<sub>01</sub>表示第l个AP在该点处的平均信号强度,依次类推;对RSS<sub>0</sub>与步骤B3中每一个RSS<sub>i</sub>,分别计算欧氏距离d<sub>i</sub>:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>d</mi><mi>i</mi></msub><mo>=</mo><msup><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msup><mrow><mo>(</mo><mi>r</mi><msub><mi>ss</mi><mi>ij</mi></msub><mo>-</mo><msub><mi>rss</mi><mrow><mn>0</mn><mi>j</mi></mrow></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>)</mo></mrow><mrow><mn>1</mn><mo>/</mo><mn>2</mn></mrow></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000494206770000021.GIF" wi="632" he="153" /></maths>步骤B6、在步骤B5从小到大排序的欧氏距离d<sub>i</sub>中选取前k个,重新从小到大排序后得到欧氏距离<img file="FDA0000494206770000022.GIF" wi="78" he="68" />其中q=1,2,…,k;<img file="FDA0000494206770000023.GIF" wi="59" he="73" />对应的坐标为<img file="FDA0000494206770000024.GIF" wi="261" he="77" />步骤B7、利用步骤B6中得到的坐标<img file="FDA0000494206770000025.GIF" wi="213" he="77" />和欧氏距离<img file="FDA0000494206770000026.GIF" wi="86" he="73" />得到定位结果<img file="FDA0000494206770000027.GIF" wi="184" he="78" /><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mover><mi>x</mi><mo>^</mo></mover><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>q</mi><mo>=</mo><mn>1</mn></mrow><mi>k</mi></munderover><mi>f</mi><mrow><mo>(</mo><msub><mover><mi>d</mi><mo>~</mo></mover><mi>q</mi></msub><mo>)</mo></mrow><msub><mover><mi>x</mi><mo>~</mo></mover><mi>q</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000494206770000028.GIF" wi="457" he="131" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mover><mi>y</mi><mo>^</mo></mover><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>q</mi><mo>=</mo><mn>1</mn></mrow><mi>k</mi></munderover><mi>f</mi><mrow><mo>(</mo><msub><mover><mi>d</mi><mo>~</mo></mover><mi>q</mi></msub><mo>)</mo></mrow><msub><mover><mi>y</mi><mo>~</mo></mover><mi>q</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000494206770000029.GIF" wi="465" he="131" /></maths>其中,f(·)为被测试的定位方法;步骤B8、比较步骤B5给出的真实位置(x<sub>cnt</sub>,y<sub>cnt</sub>),步骤B7给出的定位结果<img file="FDA00004942067700000211.GIF" wi="202" he="64" />得到定位误差err<sub>cnt</sub>:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>err</mi><mi>cnt</mi></msub><mo>=</mo><msup><mrow><mo>(</mo><msup><mrow><mo>(</mo><mover><mi>x</mi><mo>^</mo></mover><mo>-</mo><msub><mi>x</mi><mi>cnt</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mover><mi>y</mi><mo>^</mo></mover><mo>-</mo><msub><mi>y</mi><mi>cnt</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>)</mo></mrow><mrow><mn>1</mn><mo>/</mo><mn>2</mn></mrow></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA00004942067700000210.GIF" wi="962" he="118" /></maths>步骤B9、判断迭代次数的计数值cnt是否达到T<sub>s</sub>,若cnt&lt;T<sub>s</sub>,则回到步骤B5进行下一次迭代,否则,就统计定位误差,其结果为[err<sub>1</sub>,err<sub>2</sub>,…,err<sub>Ts</sub>],其中,err<sub>1</sub>代表第1次仿真的定位误差,依此类推,共进行了T<sub>s</sub>次,统计误差方差var和平均误差mean,用来判断被测方法f(·)的定位误差的大小:<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><mi>var</mi><mo>=</mo><mfrac><mn>1</mn><msub><mi>T</mi><mi>s</mi></msub></mfrac><mrow><mo>(</mo><msup><msub><mi>err</mi><mn>1</mn></msub><mn>2</mn></msup><mo>+</mo><msup><msub><mi>err</mi><mn>1</mn></msub><mn>2</mn></msup><mo>+</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>+</mo><msubsup><mi>err</mi><msub><mi>T</mi><mi>s</mi></msub><mn>2</mn></msubsup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000494206770000031.GIF" wi="833" he="139" /></maths><maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><mi>mean</mi><mo>=</mo><mfrac><mn>1</mn><msub><mi>T</mi><mi>s</mi></msub></mfrac><mrow><mo>(</mo><msub><mi>err</mi><mn>1</mn></msub><mo>+</mo><msub><mi>err</mi><mn>2</mn></msub><mo>+</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>+</mo><msub><mi>err</mi><msub><mi>T</mi><mi>s</mi></msub></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>11</mn><mo>)</mo></mrow><mo>.</mo></mrow>]]></math><img file="FDA0000494206770000032.GIF" wi="846" he="139" /></maths>
地址 150001 黑龙江省哈尔滨市南岗区西大直街92号