蓝牙RSSI测距算法及参数标定

蓝⽛RSSI测距算法及参数标定(Received Signal Strength Indication)
二氨基马来腈测距算法公式:
abs(RSSI)−A
d=1010×n
符号说明
d计算所得距离(单位:m)
RSSI接收信号强度(单位:dB)
A发射端和接收端相隔1⽶时的信号强度
n环境衰减因⼦
小样机
测距实践:
1.标定A值和n值:多组值可以同时标定A和n值
2.实时获取RSSI值,求出瞬时距离
3.各种滤波算法(平均时间/平均距离/加权等)
蓝⽛硬件:传感器漂移/单天线/多天线⽅案
环境因素:空旷场地/地下停车场/信号遮蔽阻挡反射
连接因素:不同品牌的⼿机(需要适配不同类型)
兑换券制作
三维空间:多⾓度/多⾼度/多朝向
应⽤场景:
1.智能门禁
2.蓝⽛钥匙
3.室内定位
退火窑
4.智能防丢
标定⽅案:
1.测试幕布及⽀架/不同品牌的⼿机
2.多⽅位多⾓度多⾼度采集数据
3.根据采集的数据计算A值和n值
双柱汽车举升机4.标定算法确定A值和n值
采集两组不同的d值与RSSI值,分别为(d1, RSSI1), (d2, RSSI2):
根据距离与信号强度计算n值公式:自动杀菌净手器
abs(RSSI1)−abs(RSSI2)
n=10×(lg d1−lg d2)
根据距离与信号强度计算A值公式:
lg d1×abs(RSSI2)−lg d2×abs(RSSI1)
A=lg d1−lg d2
当n值确定后计算A值公式:
A=abs(RSSI)−10×n×lg d
因n值及d值均确定,实际A值只与RSSI值相关
Python
import math
def rssi_cal_d(RSSI, A, n):
return pow(10, float((abs(RSSI) - A) / (10 * n)))
def rssi_cal_A(d1, RSSI1, d2, RSSI2):
return (math.log10(d1) * abs(RSSI2) - math.log10(d2) * abs(RSSI1)) / (math.log10(d1) - math.log10(d2))
def rssi_cal_n(d1, RSSI1, d2, RSSI2):
return (abs(RSSI1) - abs(RSSI2)) / (10 * (math.log10(d1) - math.log10(d2)))
t_d1 = 1
t_d2 = 2
t_rssi1 = 1
t_rssi2 = 2
print(rssi_cal_A(t_d1, t_rssi1, t_d2, t_rssi2))
print(rssi_cal_n(t_d1, t_rssi1, t_d2, t_rssi2))
参考:

本文发布于:2024-09-24 15:22:52,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/215058.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:计算   算法   距离
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议