随着低功耗蓝牙(BLE)技术的不断发展,蓝牙定位的测距算法也越来越多,但是市场最常见的还是通过蓝牙信号强度RSSI的定位方式,小编下面介绍下蓝牙信标蓝牙信标Ibeacon距离和信号强度RSSI的关系。
蓝牙信标室内定位算法
一、距离 d 和 RSSI 的计算公式
d=10^((ABS(RSSI)-A)/(10*n))------------(1)
其中 d 为距离,单位是 m。
RSSI 为手机接收到蓝牙信标的信号强度,为负数。
A 为手机距离蓝牙信标 1m 时接收到的 RSSI 的值的绝对值。
n 为环境衰减因子,需要测试矫正。
下图是根据 A=63, n=1.56 制作的图形:
如何确定 A 和 n 的值?
使用华为手机在空旷的环境中,分别采集 5 个蓝牙信标距离手机 1m,2m,……10m 时手机接收到的 RSSI 值,每次取 100 个数据求平均值。以 1m 处 RSSI 的信号强度的绝对值作为 A,以 6m 处 RSSI 的信号强度代入公式(1)求得 n 值。
下图数据引用了我司蓝牙信标G802,发射功率-8dBm 的情况下的测试值。根据计算得到的 A 和 n 值,计算了不同信号强度对应的距离(计算值)与实际距离的误差,在 8m 以内距离,测量值和实际值的误差小于 1.15m。
二、对于不同手机接收灵敏度的差异如何进行调整?
影响手机接收蓝牙信标的信号强度有两种误差,一种误差是系统误差,如由于手机接收灵敏度的强弱引起的 RSSI 的增加或者减少,另外一种是随机误差,如遮挡等原因引起的测量误差。手机在一个环境里面会收到很多信标的信号,并且信号强的少(距离近的少)信号弱的多(距离远的多),所以取平均值应该不合理,我们可以考虑取中间值。
我们可以在一个场所用华为手机(预先获取)和导航手机(导航时获取)获取信号值并排序:如果华为手机获取的信号如下:
-60,-61,-62,-63,-64,......-70, -71, ......
(可以取整数,也可以按照 0.5 的精度)
实际导航手机获取的信号如下:
-57,-58,-59,-60,-61,......-67, -68, ......
(可以取整数,也可以按照 0.5 的精度)
手机离地面高度为 1.1 米,蓝牙信标高度为 2.8 米,蓝牙信标 8 米布置一个,则理论上手机离蓝牙信标最短距离为 1.7 米,最长距离为 5.9 米,对应华为手机的信号强度分别为-68,-75。考虑部分手机接收灵敏度比华为手机弱,所以我们可以重点分析信号强度大于-85的信号。
如果按照 1dBm 的精度排序,可以各取前面 10 个信号值求平均,差值就是要调整的A值。随着手机接收信号数据的增多,重复以上计算,会将 A 值调整到一个合理的范围。总体来说就是手机 A 和手机 B 接收到的信号强度的前面最强的 10 个值比较,差值就是要调整的部分。
全部0条评论
快来发表一下你的评论吧 !