
BLE室内定位与PDR融合导航系统设计(UKF与粒子滤波对比仿真)、蓝牙6.0各定位方法MATLAB例程等
文章目录
- 系统总体设计
- BLE信号模型与指纹库构建
- 行人航位推算(PDR)模型
- 融合定位方法
- 粒子滤波融合方法
- 定位性能评估方法
- 蓝牙6.0定位方法扩展研究
- 适合作为课程设计或毕业设计的研究方向
低功耗蓝牙(Bluetooth Low Energy,BLE)因其 成本低、功耗小、部署方便 等特点,成为当前室内外定位研究的重要方向之一。在智慧建筑、智慧医疗、仓储物流、机器人导航以及人员定位等领域,BLE定位技术均具有广泛应用价值。
然而,单独使用蓝牙信号进行定位时,容易受到 多径传播、遮挡、信号衰减和环境变化 等因素影响,导致定位精度不稳定。另一方面,基于惯性测量单元(IMU)的 行人航位推算(Pedestrian Dead Reckoning,PDR) 可以在短时间内提供连续定位,但其误差会随着时间 累积漂移。因此,对BLE与PDR进行融合,并利用 滤波算法进行状态估计,成为当前室内定位研究的一个重要方向。
本文介绍一个 BLE指纹定位与PDR融合的室内定位仿真系统,并分别采用 无迹卡尔曼滤波(UKF) 和 粒子滤波(PF) 进行融合估计,同时与单独的 BLE 定位与 PDR 定位结果进行对比分析。该系统适用于 课程设计、毕业设计以及室内定位算法研究。
系统总体设计
本仿真系统主要用于验证 BLE与PDR融合定位算法 在室内环境中的性能。系统整体流程包括:
通过该流程,可以直观比较以下几种定位方法的性能:
- 单独 PDR定位
- 单独 BLE指纹定位
- BLE + PDR + UKF 融合定位
- BLE + PDR + PF 融合定位
该系统能够输出 定位轨迹图、误差曲线图以及统计误差指标,用于评估不同算法的定位精度与稳定性。
BLE信号模型与指纹库构建
在仿真环境中,首先在二维定位区域内部署若干 BLE接入点(Access Point, AP)。BLE信号传播通常采用 对数距离路径损耗模型(Log-distance Path Loss Model) 来描述信号强度与距离之间的关系:
R
S
S
I
(
d
)
=
R
S
S
I
0
−
10
n
log
10
(
d
d
0
)
+
ε
RSSI(d) = RSSI_0 – 10n\\log_{10}\\left(\\frac{d}{d_0}\\right) + \\varepsilon
RSSI(d)=RSSI0−10nlog10(d0d)+ε
其中
-
R
S
S
I
(
d
)
RSSI(d)
RSSI(d) 为距离d
d
d 处的接收信号强度 -
R
S
S
I
0
RSSI_0
RSSI0 为参考距离d
0
d_0
d0 处的信号强度 -
n
n
n 为路径损耗指数 -
ε
\\varepsilon
ε 为测量噪声
在定位区域内按照固定分辨率建立 网格点(Grid Point),计算每个网格点到所有 AP 的 RSSI 值,并存入数据库,从而形成 BLE指纹库(Fingerprint Database)。
在实时定位阶段,测量当前的 RSSI 向量,并与指纹库进行匹配。常用的方法是 KNN(K-Nearest Neighbor)最近邻搜索算法,通过寻找最相似的指纹点来估计目标位置。
行人航位推算(PDR)模型
PDR定位方法主要依赖 惯性传感器(IMU) 数据,通过步长与航向角进行位置递推。
在二维平面中,PDR位置更新可表示为
x
k
=
x
k
−
1
+
L
k
cos
(
θ
k
)
x_k = x_{k-1} + L_k \\cos(\\theta_k)
xk=xk−1+Lkcos(θk)
y
k
=
y
k
−
1
+
L
k
sin
(
θ
k
)
y_k = y_{k-1} + L_k \\sin(\\theta_k)
yk=yk−1+Lksin(θk)
其中
-
L
k
L_k
Lk 为第k
k
k 步的步长 -
θ
k
\\theta_k
θk 为当前航向角
由于 IMU 传感器存在 随机噪声和系统误差,步长和航向角都会出现偏差,从而导致 PDR误差随时间不断累积,产生明显漂移。
因此,需要利用外部定位信息(如BLE定位)对其进行校正。
融合定位方法
为了抑制 PDR 的误差漂移,可以将 BLE定位结果作为观测量,并采用 卡尔曼滤波(Kalman Filter, KF) 进行状态估计。
非线性的情况使用UKF、EKF。
系统状态向量可定义为
x
k
=
[
x
k
,
;
y
k
,
;
v
k
,
;
θ
k
]
T
x_k = [x_k,;y_k,;v_k,;\\theta_k]^T
xk=[xk,;yk,;vk,;θk]T
系统预测由 PDR 模型提供,而 BLE 定位结果作为观测信息。通过预测与更新步骤,可不断修正 PDR 的累计误差,从而得到更加稳定的融合定位结果。
UKF相比传统 EKF 的优势在于:
- 不需要计算雅可比矩阵
- 非线性估计精度更高
- 数值稳定性更好
粒子滤波融合方法
除了KF方法外,系统还实现了 粒子滤波(Particle Filter, PF) 融合定位算法。
粒子滤波是一种 基于蒙特卡洛采样的贝叶斯估计方法,利用大量粒子来表示系统状态的概率分布。每个粒子代表一个可能的位置状态,并通过权值表示其概率。
PF的主要步骤包括:
为了避免粒子权值退化问题,系统采用 系统重采样(Systematic Resampling) 方法对粒子进行重新采样。
最终将所有粒子的 加权均值 作为系统状态估计,从而得到融合定位结果。
粒子滤波的优点在于:
- 能够处理 高度非线性、非高斯系统
- 对复杂环境具有较强适应能力
但其计算复杂度通常高于卡尔曼滤波。
定位性能评估方法
为了评估不同定位算法的性能,系统采用 欧氏距离误差(Euclidean Distance Error) 作为定位精度指标:
e
k
=
(
x
k
−
x
k
t
r
u
e
)
2
+
(
y
k
−
y
k
t
r
u
e
)
2
e_k = \\sqrt{(x_k – x_k^{true})^2 + (y_k – y_k^{true})^2}
ek=(xk−xktrue)2+(yk−yktrue)2
同时统计以下常见误差指标:
- 平均误差(Mean Error)
- 中位数误差(Median Error)
- 标准差(Standard Deviation)
- 最大误差(Max Error)
- 均方根误差(RMSE)
通过这些统计指标,可以全面比较不同算法在 精度、稳定性以及鲁棒性 方面的差异。
参考链接:【MATLAB代码】低功耗蓝牙(BLE)指纹定位与行人航位推算(PDR)融合的定位仿真系统,附完整的代码,粘贴到MATLAB中即可直接运行 部分运行结果:

蓝牙6.0定位方法扩展研究
在蓝牙技术不断发展的背景下,Bluetooth 6.0 引入了多种新的定位方法,例如:
RSSI定位(Received Signal Strength Indicator) 基于信号强度进行距离估计,是传统BLE定位方法,但容易受到环境影响。
RTT测距(Round Trip Time) 通过测量信号往返传播时间估计距离,其精度通常高于RSSI。
PBR相位测距(Phase-Based Ranging) 通过测量信号相位差来计算距离,在短距离定位中具有更高精度。
仿真代码可用于比较 RSSI、RTT、PBR 三种定位方法 的定位性能。系统首先计算 基站(Beacon)到目标位置的真实距离,然后分别模拟三种测距方式,并利用 最小二乘法(Least Squares) 求解目标位置。
程序最终会输出:
- 基站位置
- 真实目标位置
- 三种定位方法的估计位置
- 各自的定位误差
并绘制可视化图像进行对比分析。
参考链接:【课题讲解】蓝牙6.0定位多方法仿真与性能比较,附定位结果、误差分析。附代码下载链接 部分运行结果: 
适合作为课程设计或毕业设计的研究方向
基于该仿真系统,可以进一步扩展为多个研究课题,例如:
这些方向既具有 理论研究价值,又具有 工程应用意义,非常适合作为:
- 毕业设计、课程设计
- 室内定位算法研究项目
如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者




