计算机实习报告 MATLAB 对卡尔曼滤波的仿真实现 MATLAB 对卡尔曼滤波的仿真实现 实验目的 基于卡尔曼滤波原理,利用matlab针对以下模型编制代码进行仿真 225 (1x(k)=0
5x(k-1)+8cos[1
2(1)](1)1+x(k-1)( )( )( )20x kkw kx ky kv k) 1:仿真100 次,每次50 步
从 100 次仿真中任选一次,将其对应的状态真值和滤波结果曲线绘制在同一副图上,绘制时选用不同的线型,颜色并进行标注
2:用均方根误差评价算法的精度,均方根误差定义为 ^1/2,,1( )(() /)Mk jk jjREMS kxxM M 为仿真次数,k 为离散时间点的索引值,,k jx 为第 j 次仿真时第 K拍的真值
请绘制出 RMSE(k)随 k 变化的曲线
程序设计 程序代码如下: A=zeros(50,100);B=zeros(50,100);C=zeros(50,100); x=0; for i=1:1:100 for k=1:1:50 x=0
5*x+25*x/(1+x^2)+8*cos(1
2*(i-1))+randn; A(k,i)=x; end end xk=0;P=1; for i=1:1:100 for k=1:1:50 xkk=0
5*xk+25*x/(1+xk^2)+8*cos(1
2*(k-1)); F=1/2+25/(1+xk^2)-50*xk^2/(1+xk^2)^2; P=1+F*P*F; H=xk/10; S=H*P*H+10; K=P*H/S; xk=xkk+K*(xk^2/20+sqrt(10)*randn-xkk^2/20-sqrt(10)*randn); Pk=P-K*S*K; B(k,i)=xk;C(k,i)=Pk; end end D=A-B; Q=zero