蓝牙RSSI定位入门到精通(2)--指纹法

下篇地址蓝牙RSSI定位入门到精通(3)-指纹法实现

点击:室内定位主页目录+一维实战+二维实战+安卓惯性导航基础

前言

继上篇文章,由于信号的严重衰减和多径效应,使得三点定位算法得到的坐标精准度太差。尝试使用其他的算法提高精准度。这里我使用室内定位指纹法


指纹法介绍

指纹法将环境的位置与特定的指纹联系起来,指纹中存储一种或多种特征,当实际定位中,通过实际获得的多个特征与指纹中的特征匹配,从而获得适配的指纹的坐标从而定位,在室内定位中,用得最多的特征也就是RSSI定位。
指纹定位分为两个阶段:离线阶段和在线阶段。离线阶段将每个位置的坐标记录以及保存特征(RSSI),最后收集完所有指纹得到指纹库。在线阶段则通过实际的特征查询指纹库获得定位。当然,实际的特征中不可能刚好和指纹库中特征相同,这时就需要一定的算法得到最佳适配的指纹。
指纹库

指纹法的算法

1确定性的算法

确定性算法即在指纹库的N个指纹中,与实际测量的特征进行欧几里得度量计算,得到N个欧式距离,从中选择距离最小的指纹当做定位。假设位置指纹是N维的,也就是说有N个可见的AP,M个网格点,这样指纹库里面有M个指纹。r和ρ的欧氏距离为:
欧式距离

2概率性的算法

概率性的算法认为实际的rssi值应该是一个分布 简单地使用RSS的边缘分布的乘积作为联合分布。假设观测到的RSS向量为r=[r1,r2,r3,⋅⋅⋅,rN],估计位置时将选择一个网格点,这个网格点上有最大的概率可能产生这个r。对于给定的r,可以使用贝叶斯准则来估计移动设备的位置,某个网格点上能产生r的概率可以这样计算:
这里写图片描述

指纹实现–KNN最近邻算法

knn属于一种确定型算法,也是最简单的机器学习算法,正好适合我这种菜鸟使用。
knn是给定一个训练数据集。对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是K个邻居)。这K个实例的多数属于某个类,就把该输入实例分类到这个类中。但用于定位中需要的是某个特定的位置而不是分类。故将k=1,当做找最近邻居使用。


在下篇文章中,将用指纹法的knn来实现室内定位。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

工农村贴膜小哥

我倒是要看看是那个憨憨在给我打

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值