欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    卡尔曼滤波器及其matlab代码.doc

    • 资源ID:3003647       资源大小:214.32KB        全文页数:22页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    卡尔曼滤波器及其matlab代码.doc

    .信息融合大作业维纳最速下降法滤波器,卡尔曼滤波器设计及Matlab仿真时间:2010-12-6专业:信息工程班级:09030702学号:2007302171 姓名:马志强1. 滤波问题浅谈估计器或滤波器这一术语通常用来称呼一个系统,设计这样的系统是为了从含有噪声的数据中提取人们感兴趣的,接近规定质量的信息。由于这样一个宽目标,估计理论应用于诸如通信、雷达、声纳、导航、地震学、生物医学工程、金融工程等众多不同的领域。例如,考虑一个数字通信系统,其基本形式由发射机、信道和接收机连接组成。发射机的作用是把数字源(例如计算机)产生的0、1符号序列组成的消息信号变换成为适合于信道上传送的波形。而由于符号间干扰和噪声的存在,信道输出端收到的信号是含有噪声的或失真的发送信号。接收机的作用是,操作接收信号并把原消息信号的一个可靠估值传递给系统输出端的某个用户。随着通信系统复杂度的提高,对原消息信号的还原成为通信系统中最为重要的环节,而噪声是接收端需要排除的最主要的干扰,人们也设计出了针对各种不同条件应用的滤波器,其中最速下降算法是一种古老的最优化技术,而卡尔曼滤波器随着应用条件的精简成为了普适性的高效滤波器。2维纳最速下降算法滤波器2.1 最速下降算法的基本思想考虑一个代价函数J(w),它是某个未知向量w的连续可微分函数。函数J(w)将w的元素映射为实数。这里,我们要寻找一个最优解w。使它满足如下条件J(w0)J(w)(2.1)这也是无约束最优化的数学表示。特别适合于自适应滤波的一类无约束最优化算法基于局部迭代下降的算法:从某一初始猜想w(0)出发,产生一系列权向量w1,w2,,使得代价函数J(w)在算法的每一次迭代都是下降的,即Jwn+1<J(w(n)其中w(n)是权向量的过去值,而wn+1是其更新值。我们希望算法最终收敛到最优值w0。迭代下降的一种简单形式是最速下降法,该方法是沿最速下降方向连续调整权向量。为方便起见,我们将梯度向量表示为g=Jw=J(w)w(2.2)因此,最速下降法可以表示为wn+1=wn-12g(n)(2.3)其中n代表进程,是正常数,称为步长参数,1/2因子的引入是为了数学上处理方便。在从n到n+1的迭代中,权向量的调整量为wn=wn+1-wn=-12g(n)(2.4)为了证明最速下降算法满足式(2.1),在wn处进行一阶泰勒展开,得到Jwn+1Jwn+gHnw(n)(2.5)此式对于较小时是成立的。在式(2.4)中设w为负值向量,因而梯度向量g也为负值向量,所以使用埃尔米特转置。将式(2.4)用到式(2.5)中,得到Jwn+1Jwn-12g(n)2此式表明当为正数时,Jwn+1<J(w(n)。因此,随着n的增加,代价函数Jn减小,当n=时,代价函数趋于最小值J。2.2最速下降算法应用于维纳滤波器考虑一个横向滤波器,其抽头输入为un,un-1,u(n-M+1),对应的抽头权值为w0n,w1n,wM-1n。抽头输入是来自零均值、相关矩阵为R的广义平稳随机过程的抽样值。除了这些输入外,滤波器还要一个期望响应d(n),以便为最优滤波提供一个参考。在时刻n抽头输入向量表示为u(n),滤波器输出端期望响应的估计值为d(n|Un),其中Un是由抽头输un,un-1,u(n-M+1)所张成的空间。空过比较期望响应d(n)及其估计值,可以得到一个估计误差e(n),即en=dn-dnUn=dn-wHnu(n)(2.6)这里wHnu(n)是抽头权向量w(n)与抽头输入向量u(n)的内积。w(n)可以进一步表示为wn=w0n,w1n,wM-1nT同样,抽头输入向量u(n)可表示为un=un,un-1,un-M+1T如果抽头输入向量un和期望响应dn是联合平稳的,此时均方误差或者在时刻n的代价函数J(n)是抽头权向量的二次函数,于是可以得到Jn=d2-wHnp-pHwn+wHnRw(n)(2.7)其中,d2为目标函数dn的方差,p抽头输入向量un与期望响应dn的互相关向量,及R为抽头输入向量un的相关矩阵。从而梯度向量可以写为Jn=J(n)a0(n)+jJ(n)b0(n)J(n)a1(n)J(n)aM-1(n)+jJ(n)b1(n)J(n)bM-1(n)=-2p+2Rw(n)(2.8)其中在列向量中J(n)ak(n)和J(n)bk(n)分别是代价函数Jn对应第k个抽头权值wkn的实部ak(n)和虚部bk(n)的偏导数。对最速下降算法应用而言,假设式(2.8)中相关矩阵R和互相关向量p已知,则对于给定的抽头权向量wn+1为wn+1=wn+p-Rwn(2.9)它描述了为那滤波中最速下降法的数学表达式。3.卡尔曼滤波器3.1卡尔曼滤波器的基本思想卡尔曼滤波器是用状态空间概念描述其数学公式的,另外新颖的特点是,他的解递归运算,可以不加修改地应用于平稳和非平稳环境。尤其是,其状态的每一次更新估计都由前一次估计和新的输入数据计算得到,因此只需存储前一次估计。除了不需要存储过去的所有观测数据外,卡尔曼滤波计算比直接根据滤波过程中每一步所有过去数据进行估值的方法都更加有效。z-1I+v1(n) x(n+1) xn y(n)F(n+1,n) C(n) v2(n)图3.1 线性动态离散时间系统的信号流图表示“状态”的概念是这种表示的基础。状态向量,简单地说状态,定义为数据的最小集合,这组数据足以唯一地描述系统的自然动态行为。换句话说,状态由预测系统未来特性时所素要的,与系统的过去行为有关的最少的数据组成。典型地,比较有代表性的情况是,状态x(n)是未知的。为了估计它,我们使用一组观测数据,在途中用向量y(n)表示。y(n)成为观测向量或者简称观测值,并假设它是N维的。在数学上,图3.1表示的信号流图隐含着一下两个方程:(1) 过程方程xn+1=Fn+1,nxn+v1(n)(3.1)式中,M1向量v1(n)表示噪声过程,可建模为零均值的白噪声过程,且其相关矩阵定义为Ev1nv1Hk=Q1n n=kO nk(2) 测量方程yn=Cnxn+v2(n)(3.2)其中Cn是已知的NM测量矩阵。N1向量v2(n)称为测量噪声,建模为零均值的白噪声过程,其相关矩阵为Ev2nv2Hk=Q2n n=kO nk(3.3)测量方程(3.2)确立了可测系统输出yn与状态xn之间的关系,如图3.1所示。3.2 新息过程为了求解卡尔曼滤波问题,我们将应用基于新息过程的方法。根据之前所述,用向量y(n|yn-1)表示n=1时刻到n-1时刻所有观测数据过去值给定的情况下,你时刻观测数据y(n)的最小均方估计。过去的值用观测值y1,y2,y(n-1)表示,他们张成的向量空间用yn-1表示。从而可以定义新息过程如下:n=yn-y(n|yn-1)(3.4)其中M1向量n表示观测数据yn的新息。3.3 应用新息过程进行状态估计下面,我们根据信息过程导出状态x(i)的最小均方估计。根据推导,这个估计可以表示成为新息过程1,2,n序列的线性组合,即xiyn=k=1nBik(k)(3.5)其中Bi(k)k=1n是一组待定的MN矩阵。根据正交性原理,预测状态误差向量与新息过程正交,即Ei,nHm=Exi-xiynH(m)=O(3.6)将式(3.5)代入式(3.6),并利用新息过程的正交性质,即得ExiHm=BimEmH(m)=BimR(m)(3.7)因此,式(3.7)两边同时右乘逆矩阵R-1(m),可得Bim的表达式为Bim=ExiHmR-1(m)(3.8)最后,将式(3.8)带入式(3.5),可得最小军方差估计xiyn=k=1nExiHkR-1(k)k=k=1n-1ExiHkR-1(k)k+ExiHnR-1(n)n(3.9)故对于i=n+1,有xn+1yn=k=1n-1Exn+1HkR-1(k)k+Exn+1HnR-1(n)n(3.10)然而,n+1时刻的状态x(n+1)与n时刻的状态x(n)的关系式由式可以推导出对于0kn,有Exn+1Hk=EFn+1,nxn+v1nHk=Fn+1,nExnH(k)(3.11)其中k只与观测数据y1,y2,y(k)有关。因此可知,v1n与k彼此正交(其中0kn)。利用式(3.11)以及当i=n时xiyn的计算公式,可将式(3.10)右边的求和项改写为k=1n-1Exn+1HkR-1(k)k=Fn+1,nk=1n-1ExnHkR-1kk=F(n+1,n) xnyn-1(3.12)为了进一步讨论,引入如下基本定义。3.4 卡尔曼增益定义MN矩阵Gn=Ex(n+1)H(n) R-1(k)(3.13)其中Ex(n+1)H(n)是状态向量x(n+1)和新息过程(n)的互相关矩阵。利用这一定义和式(3.12)的结果,可以将式(3.10)简单重写为xn+1yn= Fn+1,nxnyn-1+Gn(n)(3.14)式(3.14)具有明确的物理意义。它标明:线性动态系统状态的最小均方估计xn+1yn可以由前一个估计xnyn-1求得。为了表示对卡尔曼开创性贡献的认可,将矩阵Gn称为卡尔曼增益。现在剩下唯一要解决的问题是,怎样以一种便于计算的形式来表示卡尔曼增益Gn。为此,首先将x(n+1)与H(n)乘积的期望表示为Exn+1Hn=Fn+1,nExnHn,n-1CH(n)(3.15)式中利用了状态xn与噪声向量v2(n)互不相关这一事实。其次,由于预测状态误差向量(n,n-1)与估计xnyn-1正交,因此xnyn-1与Hn,n-1乘机的期望为零。这样,用预测状态误差向量(n,n-1)代替相乘因子xn,将不会引起式(3.15)变化,故有Exn+1Hn=Fn+1,nE(n,n-1)Hn,n-1CH(n)(3.16)由此,可将上式进一步变化为Exn+1Hn=Fn+1,nK(n,n-1)CH(n)(3.17)现在我们重新定义卡尔曼增益。为此,将式(3.17)代入式(3.13)得Gn=Fn+1,nK(n,n-1)CH(n) R-1(k)(3.18)现在我们已经了解了卡尔曼滤波的整个过程和相应的参数设置,为了能够更为方便利用计算机仿真实现,特将其中参数变量进行小结。卡尔曼变量和参数小结变量定义维数x(n)n时刻状态M1y(n)n时刻状态值N1F(n+1,n)从n时刻到n+1时刻的转移矩阵MMC(n)n时刻的测量矩阵NMQ1(n)过程噪声v1(n)的相关矩阵MMQ2(n)过程噪声v2(n)的相关矩阵NNxnyn-1给定观测值y1,y2,y(n-1)在n时刻状态的预测估计M1xnyn给定观测值y1,y2,y(n)在n时刻状态的滤波估计M1G(n)n时刻卡尔曼增益矩阵MN(n)n时刻新息向量N1R(n)新息向量(n)的相关矩阵NNK(n,n-1)xnyn-1中误差相关矩阵MMK(n)xnyn中误差相关矩阵MM基于单步预测的卡尔曼滤波器的小结观测值= y1,y2,y(n-1)转移矩阵=F(n+1,n)测量矩阵=C(n)过程噪声的相关矩阵=Q1(n)测量噪声的相关矩阵=Q2(n) Gn=Fn+1,nKn,n-1CHnCnKn,n-1CHn+Q2(n)-1 n=yn-C(n)xnyn-1 xn+1yn= Fn+1,nxnyn-1+Gn(n) Kn=Kn,n-1-Fn,n+1GnCnK(n,n-1) Kn+1,n=Fn+1,nKnFHn+1,n+Q1(n)4 Matlab仿真为了简化,这里只讨论简单的一维单输入单输出线性系统模型,其中加入白噪声作为系统的扰动,具体仿真结果可以获得如下4.1 维纳最速下降法滤波器仿真结果以上为最速下降法中不同的递归步长所导致的跟踪效果变化,对于最速下降法中的步长是影响其算法稳定的关键,最速下降算法稳定的充分必要条件是条件步长因子为小于输入自相关矩阵的最大特征值倒数的2倍。上面的序列分别从相关矩阵的随大特征之2倍的0.4倍开始变化至其1倍,最后一幅图象能够看出其已经不再收敛,下面是大于输入相关矩阵的最大特征值2倍步长时所表现的跟踪结果可以看出其已经明显发散,不再是我们所期望的滤波算法。因此可以总结出,对于最速下降法来说,步长的选取是很重要的,根据不同条件的需求,选取正确的步长,能为算法的快速高效提供基础。4.2 卡尔曼滤波器仿真结果从图中可以发现,卡尔曼滤波器能够非常有效地在比较大的干扰下比较准确地反映真实值,如果观测端加入干扰较大时,卡尔曼滤波器能够较为有效地进行滤波,不过当状态端的干扰增大时,卡尔曼滤波器的滤波效果也会随之下降。如下图,是加大了状态端的干扰,所呈现的滤波效果。如上图所示,状态端的干扰导致状态不稳定,卡尔曼滤波器的估计值也出现了比较大的波动。如果将状态端的干扰再增大,则会出现更为严峻的滤波考验,滤波效果如下。这是的状态已经很勉强了,所以,研究更为有效的多方法卡尔曼滤波器也显得十分必要了。4.3 一种不需初始化的卡尔曼滤波器仿真这种滤波器只是实现了无需对部分变量进行初始化的设计,没有特别意义上的改进经典卡尔曼滤波器本身性能的特点。仿真图如下4.4 后联平滑滤波的卡尔曼滤波器仿真只是在经典卡尔曼滤波器后端联接了平滑滤波器,对性能改进的效果并不特别明显,仿真图如下如图中所表示,即使平滑过的估值与观测值之间的差别也不是特别令人满意,所以,对于经典卡尔曼滤波的研究还需要更深一步进行,由于时间和能力有限,本次的作业对于卡尔曼及其他滤波器的研究只能达到这种程度,希望在以后的学习中,能发现更好的对经典卡尔曼滤波器的改进方法。5 Matlab源代码(部分参考自互联网)5.1经典卡尔曼滤波器clearN=200;w(1)=0;x(1)=5;a=1;c=1;Q1 = randn(1,N)*1;%过程噪声Q2 = randn(1,N);%测量噪声for k=2:N;x(k)=a*x(k-1)+Q1(k-1); end%状态矩阵for k=1:N;Y(k)=c*x(k)+Q2(k);endp(1)=10;s(1)=1;for t=2:N; Rww=cov(Q1(1:t);Rvv=cov(Q2(1:t);p1(t)=a.2*p(t-1)+Rww;b(t)=c*p1(t)/(c.2*p1(t)+Rvv);%kalman增益s(t)=a*s(t-1)+b(t)*(Y(t)-a*c*s(t-1);p(t)=p1(t)-c*b(t)*p1(t);endt=1:N;plot(t,s,r,t,Y,g,t,x,b);%红色卡尔曼,绿色观测值,蓝色状态值legend(kalman estimate,ovservations,truth);5.2 最速下降法clcclear allN=30;q=2.1;%q>1&&q<2/Ryx最大特征值hn=zeros(1,N);hn(:)=5;vg=0;Rxx=xcorr(1);Ryx=min(min(corrcoef(1, 1+randn);echo offfor i=1:N-1; %vg=2*Rxx*hn(:,i)-2*Ryx; %hn(:,i+1)=hn(:,i)-1/2*q*vg; vg=2*Rxx*hn(i)-2*Ryx; hn(i+1)=hn(i)-1/2*q*vg; m(i)=1;endt=1:N-1;plot(t,hn(t),r-,t,m(t),b-);5.3 后联平滑滤波器的卡尔曼滤波器clearclc;N=300;CON = 5; x = zeros(1,N);x(1) = 1;p = 10;Q = randn(1,N)*0.2;%过程噪声协方差R = randn(1,N);%观测噪声协方差y = R + CON;%加过程噪声的状态输出for k = 2 : N Q1 = cov(Q(1:k-1);%过程噪声协方差 Q2 = cov(R(1:k-1); x(k) = x(k - 1);%预估计k时刻状态变量的值 p = p + Q1;%对应于预估值的协方差 kg = p / (p + Q2);%kalman gain x(k) = x(k) + kg * (y(k) - x(k); p = (1 - kg) * p;endFilter_Wid = 10;smooth_res = zeros(1,N);kalman_p = zeros(1,N);for i = Filter_Wid + 1 : N tempsum = 0; kalman_m = 0; for j = i - Filter_Wid : i - 1 tempsum = tempsum + y(j); kalman_m = kalman_m+x(j); end kalman_p(i) = kalman_m/Filter_Wid; smooth_res(i) = tempsum / Filter_Wid;%平滑滤波end% figure(1);% hist(y);t=1:N;figure(1);expValue = zeros(1,N);for i = 1: N expValue(i) = CON;endplot(t,expValue,r,t,x,g,t,y,b,t,smooth_res,k,t,kalman_p,m);legend(truth,estimate,measure,smooth result,smooth kalman);%axis(0 N 0 30)xlabel(Sample time);ylabel(Room Temperature);title(Smooth filter VS kalman filter);

    注意事项

    本文(卡尔曼滤波器及其matlab代码.doc)为本站会员(小**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开