• 基于 WiFi ( Wireless Fidelity) 的室内定位技术


    系统的拓扑结构

    基于信号强度的定位技术(RSSI, Received Signal Strength Indication) 

    无线信号的信号强度随着传播距离的增加而衰减,接收方与发送方离得越近, 则接收方的信号强度就越强;接收方离发送方越远,则接收到的信号强度就越弱。 根据移动终端测量接收到的信号强度和已知的无线信号衰落模型,可以估算出收发方之间的距离,根据多个估算的距离值,可以计算出移动终端的位置。在室内环境下,AP(Access Point)的信号覆盖范围一般在 100 米的范围以内,无线信号在传输过程中,接收信号的功率强度与传输距离存在着某种变化关系,找出特定环境中的变化关系,就可以应用于定位技术。目前基本的无线信号传播模型主要有两种:确定性模型 和 经验模型

    确定性模型又称射线光学或射线跟踪模型,即将高频无线信号看作向不同方向发出光线,再依靠对室内环境信息的详细建模,对每一根射线进行跟踪来建立无线信号传播模型。当无线信号在自由空间传播时,其路径可认为是连接收发信机的一条射线,可用 Ferris 公式计算自由空间的电波传播损耗:

    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)  

    经验模型是基于某一特定环境下的实际测量结果。在实际中发射机和接收机在特定环境中置于不同的距离和位置,测量其功率损耗,通过收集大量的数据导出功率损耗曲线及其函数。平均值结果显示其功率衰落要远大于自由空间的传播公式所得出的结果。在自由空间模型中,功率衰落同收发信机的距离的平方成反比。室内 传播经验公式显示在室内环境中的功率衰落同距离的 34 次方成反比。这是因为通过不同路径到达接收天线的电磁波产生的多径效应对主信号产生严重干扰的结果。

    最小均差法 算出传播损耗的近似值。
    PL(indoor-2.4GHz) = 40 + 31log(R) + 8 ;R 即为系统在室内环境中传播的最大距离。

    从室内无线信号传播的特点分析,经验模型更适合室内定位系统的建模。我们采用 如式 (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

    服务端数据库设计

    1、用户表

    字段 类型 描述
    ID number 用户ID号
    Name text 登录系统的用户名
    Pwd text 登录系统的密码
    Role_Code char 用户权限(Admin/User)

    2、移动设备表 

    字段 类型 描述
    ID Number 设备 ID 号
    Name text 设备名
    Des text 设备描述

    3、AP 表

    字段 类型 描述
    ID Number AP ID 号
    Name Text AP 名
    Des Text AP 描述
    Ssid Tetx AP SSID 描述
    Mac Text AP MAC 描述

    4、定位数据表 

    字段 类型 描述
    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 备注

    【参考文献】

    1、《2010.基于WiFi技术的定位系统的设计与实现》

    2、《一种基于WiFi的室内定位系统设计与实现》

    【附录】

  • 相关阅读:
    二叉树进阶之寻找一棵二叉树中的最大二叉搜索子树
    二叉树进阶之求一棵二叉树中结点间最大距离
    软件工程各阶段的UML图
    软件工程各阶段的开发文档
    二叉树应用进阶之折纸(二叉树的右根左遍历)
    二叉树进阶应用之查找结点的后继结点
    二叉树进阶之满二叉树和完全二叉树
    二叉树进阶之搜索二叉树的判断与找出搜索二叉树中出错的结点
    二叉树进阶之平衡二叉树的判断
    二叉树基础之序列化和反序列化二叉树
  • 原文地址:https://www.cnblogs.com/renzimu/p/4604856.html
Copyright © 2020-2023  润新知