基于距离测量的定位方法

目前,基于距离测量的定位技术主要有到达时间法 TOA、到达时间差法 TDOA、到达角度法 AOA 和基于接收信号强度 RSSI 的定位方法。

到达时间法 TOA

到达时间(Time of Arrival,TOA) 定位技术与基于传播模型的 RSSI 信号强度法的定位原理相似,都是利用几何方法来定位(将在后面的 RSSI 基于传播模型的距离估计部分重点论述其几何原理),唯一不同点是得到圆半径的方式是不同的,一种是通过传播时间来计算距离,而另一种则是通过信号强度与距离的关系。

根据 AP 发出信标帧的时间和 MS(移动终端)接收到 AP 信号时间,可以得到信号的传播时间,进而计算出 MS 到无线 AP 之间的距离。TOA 定位相对与 AOA有更高的定位效果,因为 AOA 定位精确度会随着 MS 与 AP 的距离增加而降低,而 TOA 则不存在这种情况,但电磁信号的传播速度非常快,因此,TOA 对于时间的测量精度要求非常高,微小的时间误差会造成很大的距离误差,因此要求准确地对信号实际的传播时间进行测量[14]。同时需要在 MS 与 AP 之间实现严格的时间同步,由于对时间的精度要求非常高,也照成了成本的提升,很难在实际中应用。

到达时间差法 TDOA

TDOA(Time Difference of Arrival)即为到达时间差法,该定位技术是对 TOA的改进,它同样使用信号到达时间来作为定位的标记信息量。但与 TOA 不同,它利用移动终端 MS 从多个无线 AP 接收到信号的时间差来计算 MS 移动终端的位置,TDOA 在时间同步上没有 TOA 的要求,这样可以避免由于移动终端与无线 AP时间不同步带来的误差,能在一定程度上提高定位精度。

TDOA 的获取方式有两种。第一种是利用 2 个无线 AP 信号的到达时间 TOA的差值来获得,这是利用 TOA 的结果来获取[15]。第二种是通过移动终端向多个 AP发送信号,由于距离的不同,无线 AP 接收信号到的时间也不同,利用两个 AP 接收到信号的时间差,可以得到 TDOA 值[15]。这种时间测量算法可以在无线 AP 和移

动终端不同步的情况下运用,由于在实际应用中,往往很难做到无线 AP 与移动终端两者间的时间严格同步,所以利用两个无线 AP 相关计算算法计算出 TDOA 的值,再进行定位计算更具有实际意义。无线终端发射信号波时,信号波在同一介质中的传输速率相同,而无线 AP 距离移动终端的距离不一样,不同的无线 AP 接收信号波有一个时间差,利用时间差可以计算出移动终端到达两个无线 AP 之间的距离差。平面上到两个定点距离之差为定值的点的轨迹,正好是一条双曲线的一支,双曲线的顶点即为两个无线 AP 的位置,而移动终端则位于双曲线上。两个无线 AP 便能确定一条双曲线,其顶点即是 AP 的位置。多个个无线 AP,就能得到可以多条双曲线,而这些双曲线理论上会交于一点,这个点就是移动终端的位置。TDOA双曲线定位原理如图 2-3 所示:

android开发判断wifi信号强度_数据库

到达角度法AOA

到达角度定位法即AOA,需要移动接收端通过天线阵列测量出无线AP电磁波的相位差,需要添加天线阵列来测量信号波的入射角度,不具有很好的实用性。

android开发判断wifi信号强度_数据库_02

RSSI 基于传播模型的定位技术

利用 WiFi 信号强度 RSSI 作为距离测量的信息量,是因为信号强度 RSSI 与距离的紧密相关性。WiFi 作为一种电磁波,其传播符合电磁波的传播规律,而其信号强度 RSSI 与距离符合一定的传播模型。理论上,电磁波传播与距离符合自由空间传播模型,然而理论模型过于理想化,在实际环境中,传播环境复杂,传播规律与理论模型存在偏差,因此通常以理论模型为基础,实际测量研究信号强度 RSSI与距离的关系,建立相应的经验模型。根据经验模型,将信号强度 RSSI 的测量值代入模型中计算,就能得到测量位置与无线 AP 发射点的距离。在已知距离的情况下,使用相应的定位算法,就可以估计出移动终端的大概位置。

RSSI 基于信号传播模型的距离估计方法原理

基于信号传播模型的距离估计方法是利用几何学原理估计用户位置的定位方法,首先根据 RSSI 在无线信道下的损耗模型,估算出移动终端到各个无线 AP 的位置,再采用三边定位法,求出移动终端位置[18]。

android开发判断wifi信号强度_移动终端_03

第一种情况

如图 2-6 所示,三个圆两两相交,但三个圆的公共部分不是一个

点,而是由三条圆弧组成一个区域,取围成区域圆弧的 3 个交点的几何质心,作为定位位置的估计点。

android开发判断wifi信号强度_数据库_04

第二种情况

三个圆并无公共相交部分,但是三个圆可以确定 6 个交点,每两个圆确定两个交点,在这两个交点中,只选择离第三个圆的圆心距离较近的点,按照此方法可以从 6 个交点中选择出个 3 个参考交点,再取这 3个参考交点的几何质心作为定位的估计位置。

android开发判断wifi信号强度_定位_05

无关距离的定位方法

多边形几何质心法

多边形质心法的定位过程相对简单,定位开始阶段,移动终端通过测量周边AP 信号,得到附近的 WiFi 信号强度,一段时间后会接收到很多的信标帧,其中有 AP 的身份 ID 即 MAC 地址,如果在这段时间内收到大量的信标帧,可以认为在该测试位置,移动终端与 AP 是联通的,同时根据测量的信号强度值,可以将信号强度较大的 AP 认为是联通的,而某些无线 AP 的信号强度较弱,虽然也能接收到信号,但在质心法中可以舍去,认为不连通。多边形几何质心算法无需 AP 与移动终端之间的协调,完全取决于无线的网络连通性。

基于 RSSI 的指纹定位法

指纹定位方法通常包括两个阶段:离线采集阶段与在线定位阶段。

离线采集阶段
本阶段的主要目的是建立一个位置指纹数据库,定位测试人员在 WiFi 布置区域内,遍历实验区域内的所有位置,同时在每个位置上采集来自不同 AP 接入点的RSSI 值,并且将各个 AP 的 MAC 地址、RSSI 值和参考点的位置信息记录并存储,得到指纹定位数据库。

在线定位阶段
定位用户在定位区域中,通过测量设备,实时采集所有 AP 接入点的 RSSI 值,得到某 AP 的 MAC 地址和 RSSI 信号强度值组成的二元组,作为位置匹配算法的输入数据,通过匹配算法,进行位置估计。

基于 RSSI 的指纹定位匹配算法

离线指纹库的采集和在线定位匹配算法是指纹定位的基本过程,同时也是影响定位精度的关键因数。下文将介绍几种常用的确定性匹配算法和概率匹配算法。

NNSS 算法 (差的平方和)

最近邻法(NNSS)是最基本的确定性指纹匹配算法:

NNSS 定位算法在定位时,移动终端定位设备首先获取接收到的各个 AP 的信号强度,记为向量 Rt=(R1,R2,R3,…Rn),Rn为定位设备接收到的 APn的信号强度,然后将此向量与指纹数据库中的向量 Fi=(fi1,fi2,fi3,…,fin)进行匹配,其中 fin表示在第 i 个参考位置处接收到 APn的指纹信息。Rt与第 i 个参考位置的欧式距离表达

如下公式(2-11):

android开发判断wifi信号强度_移动终端_06

KNN 算法

匹配算法,改进了最后定位的参考点个数,取信号强度欧式距

离最小的 K 个点而不是一个点,作为定位的参考点,这 K 个点表征了定位位置的大致区域。将 K 个点的几何质心作为定位位置的估计位置,能充分利用定位测试点与指纹库中指纹的相关性,提高定位的精度[24]。KNN 匹配算法的公式如式(2-12)所示。

android开发判断wifi信号强度_数据库_07

WKNN 算法

WKNN 匹配算法按照信号强度的欧式距离选择出 K 个点,可以按照欧式距离的大小为参考点设定权值,欧式距离小,表示该参考点与定位点的相似性较大,分配一个较大的权值;欧式距离大,表示该参考点与定位点的相似性相对较小,分配一个相对较小的权值[

25]。经过加权后的近邻发 WKNN定位公式如下式(2-13)所示。

android开发判断wifi信号强度_数据库_08

朴素贝叶斯算法

方法同样分成两个阶段,离线训练阶段和在线定位阶段。训练阶段,将定位区域按照一定的大小,划分为一个一个的栅格,在每个栅格中,收集定位 AP的 RSSI 信号强度数据,形成指纹数据并存储于数据库。在线定位阶段,根据在定位点测量得到 RSSI 信号强度值,按贝叶斯公式计算得到各个指纹点的后验概率,将后验概率最大的指纹点作为定位的估计位置。

WiFi定位实践检验

实验1.0版:

离线采集阶段:采用安卓手机采集房间内四个角(长六米,宽四米左右)的RSSI信号强度的值保存到数据库中。

在线定位阶段:根据一定的算法设计是否能判断出设备所处位置,检查精确性和可行性。

准备阶段:开发手机APP获取数据上传至数据库中。