fs=11025;f0=1312;
A=[cos(2*pi*f0/fs) -sin(2*pi*f0/fs);sin(2*pi*f0/fs) cos(2*pi*f0/fs)];
H=[1 0];
[m,n]=size(H);
T=800;
w=wgn(n,T,1,5);
v=wgn(m,T+1,1,5);
q1=std(w(1,:)).^2;
q2=std(w(2,:)).^2;
Q=[q1 0;0 q2];
r1=std(v(1,:)).^2;
R=r1;
x2c=zeros([n,1]);
Jc=10*eye(n);
x=[];
Z=[];
x1=[];
P=[];
x2=[];
J=[];
x(:,1)=zeros([n,1]);
for i=1:T-1
x(:,i+1)=A*x(:,i)+w(:,i);
Z(:,i+1)=H*x(:,i+1)+v(:,i+1);
end
for k=1:T
x1(:,k)=A*x2c;
P(:,[1:n],k)=A*Jc*A'+Q;
G(:,[1:m],k)=P(:,[1:n],k)*H'*((H*P(:,[1:n],k)*H'+R).^(-1));
x2(:,k)=x1(:,k)+G(:,[1:m],k)*(Z(:,k)-H*x1(:,k));
J(:,[1:n],k)=(eye(n)-G(:,[1:m],k)*H)*P(:,[1:n],k);
end
bc=x(1,:)-x2(1,:)
t=1:T;
plot(t,x(1,:),'r',t,x2(1,:),'b',t,bc,'g')
卡尔曼滤波器MATLAB编程实现
5星 · 超过95%的资源 需积分: 31 5 浏览量
2009-11-03
16:39:08
上传
评论 8
收藏 463B RAR 举报
linhaiyan927
- 粉丝: 0
- 资源: 1
最新资源
- Screenshot_20240509_034911_com.tencent.mtt.jpg
- 基于python实现的医学影像体脂分割+源代码+文档说明(课程设计)
- 基于python实现的医学影像(MIR, CT )图像分割源码+文档说明(高分课程设计)
- 基于python+JavaScript实现的医学影像分割+源代码+文档说明+截图演示+数据(高分毕业设计)
- 基于U-net+pytorch实现的医学影像分割python源码+文档说明+数据+界面截图+博客介绍
- 课程设计-基于Pytorch实现MNIST数据集的手写数字识别源码+数据(Gui界面)+文档说明+模型
- 软件开发国家标准.xls
- pytorch-CNN-SBATM-ubuntudemo
- matplotlibdemo
- pytorch-CNN-dht11温湿度传感器笔记
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论6