无传感器网络目标定位算法研究与实现
项目简介
本项目旨在MATLAB环境中构建一个完整的无传感器(Device-free)无源定位仿真系统。该系统利用无线传感器网络本身射频信号(RSSI)受物理阻挡产生的阴影效应(Shadowing Effect),在目标不携带任何电子标签的情况下感知其位置。
核心技术基于无线电层析成像(Radio Tomographic Imaging, RTI)理论,结合卡尔曼滤波(Kalman Filter)对移动目标进行轨迹跟踪和平滑,并提供可视化的性能评估工具。
功能特性
- 无线网络环境构建:模拟10x10米监测区域,支持由20个无线节点构成的密集全连接网络,节点均匀分布在区域四周。
- 信号扰动与阴影建模:基于对数正态阴影模型,通过几何计算模拟目标物体遮挡“发射机-接收机”链路时产生的信号衰减。
- RTI 图像重建:采用基于椭圆模型的权重计算方法,利用带正则化的最小二乘法重建监测区域的信号衰减热力图。
- 高精度轨迹跟踪:集成CV(恒速)模型的卡尔曼滤波器,有效地融合观测数据,平滑定位轨迹并降低噪声干扰。
- 多维度性能评估:自动计算均方根误差(RMSE)和累积分布函数(CDF),并通过多子图界面实时展示RTI成像效果、链路状态及轨迹对比。
系统要求
- MATLAB R2016a 或更高版本
- Statistics and Machine Learning Toolbox(用于绘制CDF图)
使用方法
- 确保MATLAB路径中包含本项目脚本。
- 直接运行主函数。
- 系统将自动清理工作区,开始仿真循环,并在计算结束后弹出可视化窗口和在命令行输出RMSE评估结果。
核心算法与实现细节
本项目代码完全在一个主函数中实现,逻辑流程如下:
1. 网络拓扑与环境初始化
- 区域定义:设定10x10米的仿真空间。
- 节点部署:代码通过逻辑计算,将20个传感器节点均匀排列在矩形区域的四条边上(上、下、左、右)。
- 链路构建:生成全网络拓扑,即所有节点两两互联(Full Mesh),计算总链路数 $N(N-1)/2$。
2. RTI 权重矩阵预计算(基于椭圆模型)
- 网格划分:将监测区域划分为0.5x0.5米的像素网格。
- 权重计算:遍历所有链路与所有像素点。采用椭圆模型判断像素是否在于特定链路的菲涅尔区(Fresnel Zone)内。
- 判定条件:若 $d_{Tx, pixel} + d_{Rx, pixel} < d_{link} + lambda$,则认为该像素影响该链路信号。权重值设为链路长度的倒数平方根,并构建稀疏矩阵 $W$。
3. 目标运动与信号测量仿真
- 真实轨迹:生成“8”字形的连续移动轨迹模拟目标运动。
- 阴影效应判定:在每一仿真步,计算目标坐标到每条链路(线段)的垂直距离以及投影点位置。仅当目标位于链路之间且距离小于目标半径时,判定为“遮挡”。
- RSSI生成:
*
基准信号:基于对数距离路径损耗模型计算空载RSSI。
*
测量信号:若判定遮挡,在基准信号基础上减去固定衰减值(6dB)并叠加高斯白噪声;若无遮挡,仅叠加噪声。
*
差分提取:计算 $|RSSI_{测量} - RSSI_{基准}|$,并设置阈值(1.0)滤除微小噪声,提取显著受扰动的差分向量 $y$。
4. 图像重建与坐标定位
- 线性反演:构建线性方程组 $y = Wx + n$。
- 正则化求解:由于问题具有病态性(Ill-posed),代码使用 Tikhonov 正则化求解图像向量 $x$。公式实现为 $x = (W^TW + alpha I)^{-1} W^T y$。
- 坐标提取:将求解出的图像向量重塑为二维矩阵,寻找灰度值最大的像素中心作为RTI估算的原始目标位置。
5. 卡尔曼滤波跟踪
- 状态空间模型:建立常速(CV)模型,状态向量包含 $[x, y, v_x, v_y]$。
- 参数配置:设定状态转移矩阵 $F$、观测矩阵 $H$(仅观测位置)、过程噪声 $Q$ 和观测噪声 $R$。
- 迭代更新:在每一步利用RTI解算的坐标作为观测值,执行“预测-校正”循环,输出平滑后的估计坐标。
可视化与结果展示
仿真结束后生成的图形窗口包含四个子图:
- RTI成像热力图:展示仿真中间时刻的信号衰减分布成像,并标记真实目标位置与传感器节点,直观反映算法对目标位置的响应。
- 网络链路状态:动态绘制网络拓扑,将判定为受目标遮挡(扰动)的链路用红色高亮显示,展示阴影效应的几何分布。
- 轨迹跟踪对比:在同一坐标系下绘制真实轨迹(黑色实线)、RTI原始估计轨迹(绿色虚线)和卡尔曼滤波后轨迹(红色点线),直观对比跟踪效果。
- 定位误差CDF:绘制“RTI原始误差”与“滤波后误差”的累积分布函数曲线,用于量化分析定位精度的概率分布情况。
命令行窗口将同步输出两种方法的均方根误差(RMSE)数值统计。