系统的拓扑结构数据库
基于信号强度的定位技术(RSSI, Received Signal Strength Indication) 数组
无线信号的信号强度随着传播距离的增长而衰减,接收方与发送方离得越近, 则接收方的信号强度就越强;接收方离发送方越远,则接收到的信号强度就越弱。 根据移动终端测量接收到的信号强度和已知的无线信号衰落模型,能够估算出收发方之间的距离,根据多个估算的距离值,能够计算出移动终端的位置。在室内环境下,AP(Access Point)的信号覆盖范围通常在 100 米的范围之内,无线信号在传输过程当中,接收信号的功率强度与传输距离存在着某种变化关系,找出特定环境中的变化关系,就能够应用于定位技术。目前基本的无线信号传播模型主要有两种:肯定性模型 和 经验模型。服务器
肯定性模型又称射线光学或射线跟踪模型,即将高频无线信号看做向不一样方向发出光线,再依靠对室内环境信息的详细建模,对每一根射线进行跟踪来创建无线信号传播模型。当无线信号在自由空间传播时,其路径可认为是链接收发信机的一条射线,可用 Ferris 公式计算自由空间的电波传播损耗:app
PL = – Gr – Gt + 20log(4πR/λ) = Gr + Gt + 22 + 20log(R/λ)数据库设计
式中 Gr 和 Gt 分别表明接收天线和发射天线增益(dB),R 是收发信机之间的距离,单位为米,λ 是波长。 当 λ = 12.3 cm 时 (f = 2.44GHz) 可得出:函数
PL(2.44) = – Gr – Gt + 40.2 + 20log(R)(3.2) spa
经验模型是基于某一特定环境下的实际测量结果。在实际中发射机和接收机在特定环境中置于不一样的距离和位置,测量其功率损耗,经过收集大量的数据导出功率损耗曲线及其函数。平均值结果显示其功率衰落要远大于自由空间的传播公式所得出的结果。在自由空间模型中,功率衰落同收发信机的距离的平方成反比。室内 传播经验公式显示在室内环境中的功率衰落同距离的 3 或 4 次方成反比。这是由于经过不一样路径到达接收天线的电磁波产生的多径效应对主信号产生严重干扰的结果。设计
用 最小均差法 算出传播损耗的近似值。
PL(indoor-2.4GHz) = 40 + 31log(R) + 8 ;R 即为系统在室内环境中传播的最大距离。3d
从室内无线信号传播的特色分析,经验模型更适合室内定位系统的建模。咱们采用 如式 (1) 所示模型对无线信号的路径损耗平均值进行预测: 指针
其中,nA 为由环境决定的路径损耗指数,对同一楼层的不一样区域根据实际测量采用不一样值;WAF 为需由实验测定的墙壁衰减因子,需对不一样墙体进行实际测量;df 为发射天线周围可等效为自由空间的范围,一般为2米;d0 = 1m 为参考点距离, 此时 PL(dO) ≈ 40dB。
定位环境中因为空气的流动,温度的变化,人员走动等缘由,空间中每个点测得的信号强度会随时发生变化,同时收发天线的方向也可以影响该点的信号强度,移动终端测得的信号强度值的随机性比较大,对移动终端的信号强度采用的不一样处理方法会影响定位偏差。为了达到减少定位偏差增长定位精确度的目的,咱们采用几率模型的方法。在定位系统中创建几率模型。
首先,实验代表实际无线通讯中同一个信号源,在同一空间的同一位置的无线信号强度被认为是服从高斯分布的。无线信号在空间传播的理想状况是,信号强度与空间传播距离存在函数关系。可是因为实际环境中存在反射和散射等现象,形成了多径衰落,其余使用该频段的设备相互干扰等,使得相同信号源的无线信号在同一空间的同一位置上,其信号强度会随着时间变化发生变化并非一个肯定值,具备必定的随机性,可是服从高斯分布。
其次,使用基于信号强度的定位方法,定位服务器必须保存定位环境中不一样信号源在不一样点的信号强度的分布状况,想要保存每个点的信号强度的分布状况是不可能的,而定位环境中信号源在各个点的信号强度是服从高斯分布的,能够经过保存信号强度的高斯分布平均值与标准差,来保存信号源在每一个点信号强度的高 斯分布的特征而且尽量的减小要保存的数据量。
再次,不一样信号源的无线信号在空间同一位置的信号强度独立存在,即一个信号源的无线信号存在与否和信号强弱均不会影响其它信号源的无线信号在该点的信号强度。这样各个信号源的信号强度在空间同一位置的强弱被认为是几率学中的独立事件,不一样信号源之间的无线信号强度不会相互影响。因为不一样的信号源的无线信号在空间分布相互独立,而且信号源在空间给定位置的信号强度服从高斯分布,则可使用联合几率分布来描述多个接入点在空间无线信号的分布状况。
最后,进行实时定位时,移动终端须要将收集到的各个不一样信号源在该点的信号强度等定位数据,发送给定位服务器,定位服务器利用已经保存的定位环境中特定点的信号强度的高斯分布的平均值和标准差,根据在当前点实时测得的对应信号源的信号强度,去计算覆盖当前点的全部信号源的联合高斯分布几率。这个几率值 越大,表示移动终端当前位置越靠近定位服务器已经保存的点。 因为定位空间的连续性和定位服务器存储空间的有限性,将定位环境内全部点的信号强度的高斯分布特征保存下来是不可能的。因此在定位环境中根据环境的特色选取一些特定的称为训练点,并将这些训练点的信号强度的高斯分布特征保存下来,使这些点成为定位移动终端的基准点,全部的定位结果都是以训练点做为参考点来产生的。
对于每个室内环境的无线局域网,首先构建无线信号强度分布图,即构建信号强度经验值数据库。室内平面图,AP 位置,AP 发射功率等均已肯定,在移动终端可能出现的几率较大的地方分不一样方向(天线具备必定的方向性),屡次采集信号强度,以此做为构建经验值数据库的数据。采集的数据格式以下:
(position_x, position_y, RSSI, MAC) (2)
其中,position_X,position_y 是当前位置坐标,RSSI 是当前位置所收到的信号强度,MAC 是该 AP 点的 MAC 地址,用来区分不一样的 AP 点。 完成采集之后,对采集的值数据进行预处理,目标数据格式以下:
(position_x,position_y,RSSI_AVG,RSSI_DEV,MAC) (3)
其中,position_x,position_y 是当前位置坐标,RSSI_AVG 是该 AP 的 RSSI 均值,RSSI_DEV 是该 AP 的 RSSI 的标准误差,MAC 是该 AP 点的 MAC地址。 为了保存训练点的信号强度高斯分前i的特征,同时考虑到对这些数据的修改与更新的方便,使用数据库来保存这些数据。因为实时定位时定位服务器须要接入点 MAC 地址等信息,因此保存训练点信号强度的数据库的表的结构定义为以下:
系统软件整体设计
系统软件分为服务器端软件和客户端软件。
服务端软件按功能主要分为:定位模块,系统管理模块,定位显示模块三大模块。
客户端软件按主要功能分为:数据采集模块和数据发送模块。
客户端定位数据消息格式
客户端发送给定位服务器的消息主要包括在当前点有无线信号的接入点的总数和这些接入点的 MAC 地址以及这些接入点的信号强度。
定位信息的链表结构
接受定位数据模块使用链表来保存定位信息,链表的长度由客户端发送消息中第一个字段肯定,链表节点保存的信息包括接入点的 MAC地址、对应接入点的信号强度值和下一个节点的位置。
1 typedef struct Info{ 2 char MAC[13]; 3 float RSSI; 4 struct Info *next; 5 }LS_info
计算定位结果模块
以定位信息链表的头结点做为参数,根据定位链表中的信息使用 ODBC 从数据库中取出相应的值,计算出当前点与每一个训练点的接近几率。选出接近几率最大的三个训练点,将这三个点的坐标求算术平均值获得定位结果。计算定位结果模块伪码以下:
1 输入参数:定位消息链表头指针 2 输出参数:指向定位结果的指针 3 4 BEGIN 5 6 循环标量 i 初始化为1; 7 获取定位数据库中训练点总数 TP_Num; 8 9 WHILE( i <= TP_Num){ 10 11 循环变量 j 初始化为 0; 12 将链表头指针赋值给局部指针变量; 13 临时总的接近几率 temp_prob 初始化为 1; 14 获取链表长度 Li_Len; 15 16 WHILE( j < Li_Len){ 17 18 根据局部指针读取定位信息链表中的MAC地址和信号强度值; 19 根据MAC地址和循环标量 i 从数据库取出对应的信号强度平均值和标准差; 20 计算当前接入点高斯分布几率 prob; 21 temp_prob = temp_prob * prob; 22 局部指针指向链表的下一个节点; 23 j++; 24 } 25 26 比较 temp_prob 与 最大几率保存数组中最小值的大小; 27 若是 temp_prob 较大,则用 temp_prob 替换数组中的最小值,并保存该训练点的相关信息; 28 i++; 29 } 30 31 将最大几率数组对应的训练点的坐标就是平均值的定位结果 32 将定位结果写入定位日志; 33 返回定位结果; 34 35 END
服务端数据库设计
一、用户表
字段 | 类型 | 描述 |
ID | number | 用户ID号 |
Name | text | 登陆系统的用户名 |
Pwd | text | 登陆系统的密码 |
Role_Code | char | 用户权限(Admin/User) |
二、移动设备表
字段 | 类型 | 描述 |
ID | Number | 设备 ID 号 |
Name | text | 设备名 |
Des | text | 设备描述 |
三、AP 表
字段 | 类型 | 描述 |
ID | Number | AP ID 号 |
Name | Text | AP 名 |
Des | Text | AP 描述 |
Ssid | Tetx | AP SSID 描述 |
Mac | Text | AP MAC 描述 |
四、定位数据表
字段 | 类型 | 描述 |
id | Number | 主键 |
x | Number | 某一点的 x 坐标 |
y | Number | 某一点的 y 坐标 |
dire | Char | 某一点朝向 |
num_ap | Number | AP 编号 |
rssi_avg | Number | 该 AP 在某一点某方向的信号强度平均值 |
rssi_dev | Number | 该 AP 在某一点某方向的信号强度标准误差 |
ssid | Char | 该 AP 的 SSID |
mac_addr | Char | 该 AP 的 MAC 地址 |
add_info | Char | 备注 |
【参考文献】
一、《2010.基于WiFi技术的定位系统的设计与实现》
二、《一种基于WiFi的室内定位系统设计与实现》
【附录】