卡尔曼无线传感网络定位

上传人:今*** 文档编号:108192965 上传时间:2019-10-22 格式:DOCX 页数:12 大小:153.71KB
返回 下载 相关 举报
卡尔曼无线传感网络定位_第1页
第1页 / 共12页
卡尔曼无线传感网络定位_第2页
第2页 / 共12页
卡尔曼无线传感网络定位_第3页
第3页 / 共12页
卡尔曼无线传感网络定位_第4页
第4页 / 共12页
卡尔曼无线传感网络定位_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《卡尔曼无线传感网络定位》由会员分享,可在线阅读,更多相关《卡尔曼无线传感网络定位(12页珍藏版)》请在金锄头文库上搜索。

1、数字信号处理课程报告 题 目:基于卡尔曼滤波的无线传感器网络的定位 院 系: 专 业: 学生姓名: 学 号: 目 录一、研究背景3二、卡尔曼滤波原理3三、基于卡尔曼的无线传感网络定位应用43.1 无线传感网络的定位原理43.2 卡尔曼的应用53.3 应用结果与分析63.4 结论7结束语9参考文献10附录11一、研究背景针对基于测距技术的无线传感器网络室位问题,测距的精度直接影响到定位的精度。由于超声波信号在复杂的室内环境传播过程中受白噪声的干扰,我们测量到的距离数据并不完全正确。对于同一时刻的室内温度基本不变,视温度信号为加性白噪声信号。因此我们通过设计卡尔曼滤波器,利用卡尔曼滤波去除噪声,减

2、少测量距离的误差。二、卡尔曼滤波原理设该测量系统k时刻的状态变量为xk,系统测量距离的观测值为yk其中k=1,2,n,则状态方程和观测方程表示为:xk+1=Akxk+kyk=Ck+vk其中,k表示时间,这里指第k步迭代时相应信号的取值;Ak为系统转移矩阵和Ck是观测矩阵,这里对所有K,Ak=Ck=1。随机变量k和vk代表系统噪声和观测噪声,且相互独立,这里设系统噪声和观测噪声的协方差矩阵分别为Q,R。可得: Q=2,R=v2=covyk 将以上参数代入卡尔曼递推公式,得到测量更新方程(校正):卡尔曼增益:Hk= Pk(Pk+Rk)-1 测量值更新状态估计: xk=xk-1+Hk(yk-xk-1

3、) 更新误差协方差估计: Pk=(1-Hk)Pk 时间更新方程:更新状态:xk=xk-1 更新先验协方差估计:Pk= Pk-1+Qk-1 根据初始条件x0=EY以及P0=1,利用前面得到的卡尔曼递推公式迭代的流程为:xk-1,Pk-1 Pk Hk xk,Pk三、基于卡尔曼的无线传感网络定位应用3.1 无线传感网络的定位原理无线传感器网络在室内定位中应用,基于测距的定位的技术典型的有到达时间差法(TDoA)和接收信号强度指示法(RSSI)。这里我们所使用的定位测量技术是TDoA。TDoA典型技术是结合RF和超声波,主要特点是利用超声波传播较慢特性作为传播延时信号测出与RF信号的时差值。然而,影响

4、TDoA技术测量精度主要因素在室内复杂的环境下的多径效应,室内温度,发送接收响应时间,非视线可见等因素。这里我们是假定可视和RF和超声波发送情况下进行测量,那么此时影响TDoA技术测量精度主要是多径效应和室内温度。气体中声速受到温度的影响最大,给定40KH的超声波频率下,声速受温度的影响为v=v0sqrt1+273. 这里为室内环境温度,v0=340m/s。如下图1所示,Listener同时发送RF和超声波,beacon接收RF和超声波的时间差为T=dv-dvrf。由于RF信号速度vrfv,则距离近似为dTv图1 TDOA距离测量3.2 卡尔曼的应用首先通过VC软件编写卡尔曼滤波c+语言代码,

5、将测得的距离数据作为卡尔曼观察值输入(数据存储在example.txt文件),经过卡尔曼滤波后输出数据(数据存储在result.txt、covariance文件),最后进行对比分析数据,作出图表,卡尔曼滤波c语言代码见附录。程序实验框图如下:图2 实验流程图在实际测量当中,对于同一测量值,我们是通过多次测量d的方法来进行寻取最优解。测得50组观测数据Y如下(单位/m):5.018 4.897 5.094 5.031 5.013 5.051 5.026 4.905 4.983 4.985 4.946 5.168 4.912 4.951 4.928 4.882 4.980 4.972 5.153

6、4.975 4.893 5.160 5.123 4.977 4.849 4.955 4.984 5.027 4.973 5.044 5.039 4.874 4.905 4.925 4.949 4.967 5.001 4.697 4.954 5.124 4.893 5.093 5.035 4.997 5.018 4.843 4.991 5.160 5.009 5.004 观测数据经过卡尔曼滤波程序运算后输出的估计值为:4.987 5.018 4.958 5.003 5.010 5.011 5.017 5.019 5.004 5.002 5.000 4.995 5.010 5.002 4.998

7、4.993 4.986 4.985 4.984 4.994 4.993 4.988 4.997 5.003 5.002 4.995 4.993 4.992 4.994 4.993 4.995 4.997 4.992 4.988 4.986 4.984 4.983 4.984 4.973 4.972 4.978 4.975 4.979 4.981 4.982 4.983 4.978 4.978 4.985 4.986 4.987 相应的误差协方差值为:1.000000 0.008108 0.004073 0.002723 0.002048 0.001644 0.001376 0.001185 0

8、.001043 0.0009325 0.0008451 0.0007741 0.0007155 0.0006663 0.0006247 0.0005889 0.000558 0.0005311 0.0005075 0.0004867 0.0004683 0.0004518 0.0004371 0.0004239 0.0004121 0.0004014 0.0003916 0.0003828 0.0003748 0.0003675 0.0003609 0.0003548 0.0003492 0.0003441 0.0003394 0.000335 0.0003311 0.0003274 0.00

9、0324 0.0003209 0.000318 0.0003154 0.0003129 0.0003107 0.0003086 0.0003066 0.0003048 0.0003031 0.0003016 0.0003001 0.0002988 3.3 应用结果与分析将卡尔曼滤波程序运行结果作出图如下所示:图3 实验结果图3 蓝色曲线为观测数据波形,红色曲线为经过卡尔曼滤波得到的信号估计波形,绿色曲线为真实值。图4 协方差变化过程图4 红色曲线为卡尔曼公式递推时误差协方差估计值变化过程图3蓝色的曲线是针对同一理想值下经过多次测量得出的数据后绘画出来,可见波动很大,即测量数据受到室内复杂的环境

10、下产生的多径效应影响以及温度的影响相当大,实际上测量的过程当中也会受到硬件电路的噪声和芯片反应时间的影响而产生偏差。测量的50组数据当中,与理想值5最大偏移量为0.303。图中红色的曲线是经过卡尔曼滤波后绘画出来的,估计值在数值5左右上下波动与预定的理想值相接近,最大偏移量为0.042,误差结果明显整体变小了。从两曲线的整体波动情况来分析,经过卡尔曼滤波后的红色曲线,在当前估计值下,不会因为当前测量值的突然很大的变大或变小而与上一估计值相差很大,而是很平滑的变动。图4表明了距离测量值在卡尔曼滤波过程中误差不断减小,趋向于0。3.4 结论实验数据经过卡尔曼滤波后能够很好的滤去噪声部分信息,从而能

11、够使我们的测量系统测量得到的数据更接近理想数值。可见,卡尔曼滤波是一种高效率的递归滤波器(自回归滤波器), 它能够从一系列的不完全及包含噪声的测量中,估计动态系统的状态。结束语经过亲自动手去完成卡尔曼(Kalman)滤波实验,过程当中包括认真看懂卡尔曼原理以及应用,还有就是动手编写C+程序。直到看到实验数据画出来的图,深深地感受到卡尔曼滤波的好处。卡尔曼滤波不仅可以在信号领域主要用于去除噪声,实际上在很多控制领域上用于状态估计和参数估计都是很好的方法。比如在课程材料提到的无线传感器网络在室内定位,可以利用卡尔曼滤波去实验目标的跟踪定位,的确是个不错的方法。随着科技的发展,在雷达、声呐、通信、视

12、频图像处理、故障诊断等领域,对信号检测和状态参数估计的研究,有着重要的价值。在应用实例方面,已基本掌握系统建模问题,即卡尔曼滤波中的状态方程和观测方程的建立。两个方程中的状态、矩阵参数的设置不同,就代表着不同的系统。在此实验过程当中,收获的不仅是弄懂了卡尔曼的使用,更多的是在学习当中让你去思考卡尔曼滤波与自己研究的课题当中是否有可用之处,在一定的程度上激发了我研究的思考。参考文献1丁美玉等.数字信号处理时域离散随机信号处理.西安:西安电子科技大学出版社,20022黄小平等.卡尔曼滤波原理及其应用MATLAB仿真.北京:电子工业出版社,20153谭浩强.C程序设计(第三版).北京:清华大学出版社

13、,20054马祖长等.无线传感网络综述.通信学报.2004,25(4)5黄晓利等.无线传感网络TDoA定位系统的设计与实现.计算机测量与控制.2008,13(2)附录/ kalman.cpp : 卡尔曼滤波程序#include stdafx.h#include #include #include #include #define NUM 50 /定义从文件中读数的个数using namespace std;float cov(float Y,int n);/求取数组Y的协方差float mean(float Y,int n);/求取数组Y的均值void inputfile(float IN,i

14、nt n,char *filename);/从文件中读取实验数据void outputfile(float OUT,int n,char *filename);/输出数据到指定文件int main()int k;float YNUM,XNUM+1,PNUM+1,P_UNNUM+1,HNUM,A,C,Q,R;/*从文件中读取实验数据*/cout观测数据:endl;inputfile(Y,NUM,example.txt);coutendl;/*卡尔曼滤波*/递推参数 A=1; /状态转移矩阵C=1; /观测矩阵Q=1E-5; /系统噪声的协方差R=cov(Y,NUM);/观测噪声的协方差/初始条件X0=mean(Y,NUM);P0=

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号