基于ZigBee网络RSSI的室内无线定位技术
1 无线网络定位技术
在无线定位中,有基于测距和非测距两种方式。前者需要测量相邻节点间的绝对距离或方位,并利用节点间的实际距离来计算未知节点的位置;后者无需测量节点的绝对距离或方位,而是利用节点间的估计距离计算节点位置。基于测距的算法主要包含以下几种:三边测量、三角测量、极大似然估计等;基于非测距的算法主要有质心算法、DV-Hop算法、D_distance算法、凸规划算法等。对定位算法的性能评价指标主要有定位精度、节点密度、容错和自适应性、功耗和代价、网络规模等几个部分。综合以上因素以及结合现有的设备,本文选用基于RSSI测距的定位方式。其流程图如图1所示。
从图1可以看出定位由两部分组成:一是通过RSSI测距;二是根据距离以及参考节点位置计算盲节点位置。
2 RSSI测距模型
2.1 模型确立
无线信号传输中普遍采用的理论模型为Shadowing模型。该模型为:
式中:do是参考距离;po是距离为do时接收到的信号强度,其中还包含了遮蔽外衰减或环境造成的损耗参考(中值);d是真实距离;ζ是以dB为单位的遮蔽因子,其均值为O,均方差为σdb(dB)正态随机变量;p是接收信号强度;n是路径损耗指数,它的值依赖于环境和建筑物的类型。在实际测量中,选用以下的模型:
即不统计遮挡因子对RSSI的影响,在实际环境下对RSSI影响最大的是非视距的影响。其中,射频参数A被定义为用dBm表示的距离发射器1 m接收到的平均能量绝对值,也就是距发射节点1 m处的接收信号强度;n为信号传输常数,与信号传输环境有关;d为距发射节点的距离。
2.2 参数优化
在使用A和n进行距离计算时,首先要面临的一个问题是A和n的取值问题。A和n的取值不同,对测距的误差影响很大。为了使模型能够尽量真实地反映出当前室内环境中的传播特性,保证RSSI测距的精度,需要对A和n进行优化,得到最适合该室内环境情况的参数值。
通过线性回归分析来估计参数A和n的值,假设从室内环境得到的实验测量数据为(RSSIi,di),i=1,2,…,n,RSSIi表示在距离di上所对应的RSSI测量值。
以实验室走廊为例,测得100组数据,代入上述公式得出A=4l,n=2.3。图2是参数优化后的RSSI测距模型曲线。在图中可以看出,根据线性回归分析可以很好地拟合出适应当前环境的模型曲线。
2.3 RSSI滤波处理
信号强度的定位算法中信号强度值随环境的改变有很高的灵敏度,这会限制测量的准确度。事实上信号强度与距离之间的关系很不让人满意,在环境中存在很大的波动性。在室内环境下实测得到的RSSI与节点间距离的关系曲线如图2所示。当传输距离较近的时候,RSSI值衰减得较快;当传输距离越远,衰减得越慢,接收强度对传输距离的变化表现不明显。在实际中,某一时间段内接收节点可以收到n个RSSI值,由于非视距和多径的影响,导致这些RSSI值具有很大的波动性,在代入公式进行计算之前,先进行滤波处理,得到一个比较准确的值,然后再进行计算。
本文采用高斯滤波模型进行RSSI滤波。引入高斯模型进行处理的原则是:在自然现象和社会现象中,大量随机变量都服从或近似正态分布,如材料性能、零件尺寸、化学成分、测量误差、人体高度等。
高概率发生区,选择概率大于O.6(O.6的取值是根据工程中的经验值)的范围。经过高斯滤波后,RSSI的取值范围为[0.15σ+μ,3.09 σ+μ]。其中:
把该范围内的RSSI值全部取出,再求几何平均值,即可得到最终的RSSI值。
在d=1 m处,采集50组RSSI值,进行高斯滤波处理。
如图3所示,滤波前RSSI波动比较大,滤波后比较平滑。滤波前|RSSI|的平均值为38.9,计算距离d=O.71 m;滤波后|RSSI|的平均值为39.42,计算距离d=O.81 m。显然,高斯滤波能很好地提高测距精度。
3 定位算法
假设无线定位网络中有N个已知位置的参考节点,坐标为(x1,y1),(x2,y2),…,(xN,yN),RSSI测量值为(RSSI1,RSSI2,…,RSSIN)。通过利用无线信号传播衰落模型计算得到待定位节点到四个已知位置的参考节点的距离为R1,R2,…,RN,则可以得到以下方程:
最终定位算法的研究就是求解该方程。在求解(x,y)过程中,选用基于泰勒级数展开迭代法进行计算。选用泰勒级数的原因基于以下几个方面
模拟电路 模拟芯片 德州仪器 放大器 ADI 模拟电子 相关文章:
- 12位串行A/D转换器MAX187的应用(10-06)
- AGC中频放大器设计(下)(10-07)
- 低功耗、3V工作电压、精度0.05% 的A/D变换器(10-09)
- PIC16C5X单片机睡眠状态的键唤醒方法(11-16)
- 用简化方法对高可用性系统中的电源进行数字化管理(10-02)
- 利用GM6801实现智能快速充电器设计(11-20)