人类的指纹具有唯一性,将人的指纹与我们现在的总体指纹库匹配,即可获取这个人的信息。位置指纹获得某个位置特定参数,与已经建立好的指纹数据库相对应,则可获得该点处的位置信息。
位置指纹定位技术也称为模式匹配方法,位置指纹指的是某一位置可识别的信息。如:射频信号的接收强度信号,空间谱信息等。在无线通信中不同的位置上的射频信号不同,射频信号与位置一一对应,因此射频信号可直接匹配到对应的位置。
RSSI:Received Signal Strength Indication
K近邻法(k-nearest neighbor,K-NN)是一种分类和回归的方法。该算法在已经给定训练集,对输入的预测数据,在训练集中找到与此数据距离最相近的K个数据。K近邻定位的核心思想是找到指纹数据库中与定位终端最相近的K个指纹信息,然后利用这K个指纹信息的位置得出所要预测的位置信息。首先需要获取定位终端对各个基站的RSSI值,然后通过与指纹数据库中的每个指纹做对比并记录他们之间的距离,找出最小的K个,然后对这些指纹坐标求平均值。
实现方法:Python
K近邻仿真结果:
将预测测试集坐标(x_i,y_i )所出现的误差做出误差累积分布图(CDF)累积分布函数也称分布函数,能直观的提供误差分布图
定位误差随K值变化图,找出最合适的K
BP神经网络就是反向传播网络,该算法连接调整采用的就是反向传播(BackPropagation)。而神经网络则是将多个神经元按一定准则联系起来而形成的网络。神经网络,不需要提前确定输入输出之间数据之间的关系,而是通过后期的训练学习一定的准则,在给定输入信息时,就能够预测到输出信息。
BP的网络架构可以让中间单元的循环结构计算依靠神经元内部运算的输出值。即使输入不变化输出也可能不同直到网络内的值达到稳定的状态。单元之间不仅有单方向连接的网络,也有反方向的网络,这些反方向的网络称为前馈网络。
正向传播阶段首先让数据从输入层进入隐藏层,逐渐进入各隐藏层,最后从隐藏层到输出层。若输出层的实际输出与我们的期望值不同则需要转到下一阶段,否则结束学习过程。反向传输阶段将期望输出与实际的输出差值(输出误差)按之前的路径输入进行反向传输计算。由输出层进入各层隐藏层,经过各隐藏层反向传输到输入层。在反向传输的过程中将误差分到每层的每个单元,然后将误差信息用作权值的修正,使用梯度下降法完成这一过程。经过不断的调整,能使误差信号减小到最小。
如图,是单隐藏层的神经网络。
图3—1 BP神经网络结构图
实现方法:MATLAB的ANN工具箱
仿真结果:
均方误差随迭代次数的变化;
BP训练数据的梯度和均方误差之间的关系图
BP神经网络预测数据与R的关系,找出最优的R
关键词:无线网络定位,位置指纹,K-近邻算法/神经网络