wifi定位方法

来源:互联网 发布:各种下载软件的软件 编辑:程序博客网 时间:2024/06/10 20:27

作者:王辰
链接:https://www.zhihu.com/question/20593603/answer/22807877
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

wifi定位方法基本上可以分为两大类:

1.不基于RSSI
TOA(time ofarrival)
TDOA(time difference of arrival)
AOA(angle of arrival)
但是这些值的获取需要特殊的wifi模块,在智能机上无法获取,因此这类方法无法使用。

2.基于RSSI

在智能手机上,可以通过系统SDK获取到周围各个AP(Access Point)发送的信号强度RSSI及AP地址,利用RSSI来定位目前看来是最可行的方法,因此下面着重介绍,基于RSSI定位主要有两个算法:三角定位算法,指纹算法。
三角定位:
如果我们已经知道了这些AP的位置,我们可以利用信号衰减模型估算出移动设备距离各个AP的距离,然后根据智能机到周围AP距离画圆,其交点就是该设备的位置。很容易发现,三角定位算法需要我们提前知道AP的位置,因此对于环境变化较快的场合不适合使用。
指纹算法
指纹算法类似于机器学习算法,分为两个阶段:
离线训练阶段
将需要室内定位区域划分网格,建立采样点(间距1~2m)
使用wifi接受设备逐个采样点采样,记录该点位置、所获取的RSSI及AP地址。
对采样数据进行处理(滤波、均值等)
在线定位阶段
用户持移动设备在定位区域移动,实时获取当前RSSI及AP地址,将该信息上传到服务器进行匹配(匹配算法有NN、KNN、神经网络等) 得到估算位置。
匹配算法有NN、KNN、神经网络等。
比较:
指纹算法相比较三角定位算法精度更高。
三角定位算法需要提前知道所有AP的位置
指纹算法需要提前绘制一幅信号Map。

总结:
智能手机基于WIFI的室内定位应用,更适合使用基于RSSI信号的指纹算法,原因在于我们不需要提前知道所有AP的位置,而且指纹算法可以应对AP位置或状态的改变。可以提前将测绘指纹数据库储存到服务器上,移动设备在定位区域将自己得到的周围AP信息实时发送给服务器,由服务器进行匹配并返回坐标位置给客户端。一旦AP状态或位置变化,只需要更新定位区域数据库而并不需要在客户端作出改变。

0 0