• PUDN用户
    了解作者
  • matlab
    开发工具
  • 1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 1
    下载次数
  • 2016-04-08 17:08
    上传日期
卡尔曼滤波由于其在求解时不需要贮存大量的观测数据,并且当得到新的观测数据时可随时算得新的参数滤波值,便于实时的处理观测结果,因此被越来越多的应用于动态数据处理中
kalman.zip
  • Kalman.m
    2.4KB
内容介绍
clear all; clc; %===============================·??????°=================================== sigma=10000; T=2; t=300; Vx=15; H=[1 0 0;0 1 0]; Q=[1 0 0;0 1 T;0 0 1]; eXk(:,t)=[0 0 0]';eXz(:,t)=[0 0 0]';eeXz(:,t)=[0 0]'; N=10;%?????¨?????? for i=1:N for j=1:t Zk(:,j)=[2000+wgn(1,1,40);-10000+Vx*T*(j-1)+wgn(1,1,40)]; end for j=1:300 if j==1 Xk(:,1)=[Zk(1,1),Zk(2,1),0]';Xk1(:,1)=Xk(:,1); Xk(:,2)=[Zk(1,2),Zk(2,2),(Zk(2,2)-Zk(2,1))/T]';Xk1(:,2)=Xk(:,2); Pk=[sigma,0,0;0,sigma,sigma/T;0,sigma/T,2*sigma/T]; else if j>2 Xk1(:,j)=Q*Xk(:,j-1);%?¤?? Pk1=Q*Pk*Q';%?¤???ó????·??? Kk=Pk1*H'*inv(H*Pk1*H'+sigma*eye(2));%kalman???? Xk(:,j)=Xk1(:,j)+Kk*(Zk(:,j)-H*Xk1(:,j));%???¨ Pk=(eye(3)-Kk*H)*Pk1;%???¨??·??? end end %% %1000???ó???ù eXk(:,j)=eXk(:,j)+Xk(:,j)/N;%???¨ eXz(:,j)=eXz(:,j)+([2000;-10000+Vx*(j-1)*T;0]-Xk(:,j))/N;%???¨?ó???ù?? eeXz(:,j)=eeXz(:,j)+[(2000-Xk(1,j))^2;(-10000+Vx*(j-1)*T-Xk(2,j))^2]/N;%???¨?ó??±ê×??? end end %===========================????==================================== %?????ì?????????ì?? subplot(2,1,1);j=0:0.1:t;plot(-10000+Vx*(j-1)*T,2000); title('目标真实轨迹');xlabel('X(米))');ylabel('Y(米)'); subplot(2,1,2);plot(Zk(2,:),Zk(1,:)); title('测量轨迹');xlabel('X(米)');ylabel('Y(米)'); %???¨????·??????????¨??·??? figure; subplot(2,1,1); plot(Xk(2,:),Xk(1,:),'g'); title('单次滤波数据曲线');xlabel('X(米)');ylabel('Y(米)'); subplot(2,1,2); plot(eXk(2,:),eXk(1,:));title('1000次滤波数据曲线'); xlabel('X(米)');ylabel('Y(米)'); % j=1:t; figure;subplot(211);plot(j,eXz(2,:));title('x滤波误差均值曲线'); xlabel('采样次数');ylabel('Y(米)'); subplot(212); for j=1:t eeXz(1,j)=sqrt(eeXz(1,j)-eXz(1,j)^2); eeXz(2,j)=sqrt(eeXz(2,j)-eXz(2,j)^2); end j=1:t; plot(j,eeXz(2,:));title('x滤波误差标准差曲线'); xlabel('采样次数');ylabel('Y(米)'); figure;subplot(211);plot(j,eXz(1,:)); title('y滤波误差均值曲线');xlabel('采样次数');ylabel('Y(米)'); subplot(212);plot(j,eeXz(1,:));title('y滤波误差标准差曲线'); xlabel('采样次数');ylabel('Y(米)'); figure;subplot(211);plot(j,Xk(3,:));title('单次滤波速度估计'); subplot(212);plot(j,eXk(3,:));title('100次滤波速度估计'); xlabel('采样次数');ylabel('Y(米)');
评论
    相关推荐
    • DSP算法大全C语言版本-完整版
      §2.2中值滤波……38 §23图像锐化…… 鲁平t自d “*………382 §2.4图像平滑 P····383 第三章图像边缘检测……………………….356 831 Roberts算子边缘检测…46 §32拉普拉斯算子边缘检测……… ...
    • 计算机视觉:CSE527-2019秋季-作业
      计算机视觉 CSE527-2019秋季-作业 1号 高斯卷积 中值过滤器 可分离卷积 高斯拉普拉斯算子 直方图均衡 低通和高通滤波器 hw2 SIFT功能*场景匹配*对象识别 hw3场景识别 微小的图像 最近邻居分类 ...卡尔曼滤波
    • 常用滤波算法
      包含 移动平均滤波中值平均滤波,一阶滞后滤波 三种常用滤波,可用于各种采样,AD,温度等等
    • STM32F103VE_sonic_t0-master(完成滤波卡尔曼中值法).zip
      利用野火开发板STM32F103VET6 +超声波HC-SR04 完成倒车雷达功能,距离越近蜂鸣器频率越高,距离值通过中值滤波算法,以及卡尔曼滤波算法,算法系数可调,也可用在ADC数据采集滤波上,或者其他原始数据采集上
    • 数字信号处理c语言程序集
      2.2中值滤波 2.3图像锐化 2.4图像平滑 3.1Roberts算子边缘检测 第三章 图像边缘检测 3.2拉普拉斯算子边缘检测 3.3Sobel算子边缘检测 3.4Robinson算子边缘检测 3.5Kirsch算子边缘检测 3.6Prewitt算子边缘...
    • 数字信号处理c语言程序集
      2.2中值滤波 2.3图像锐化 2.4图像平滑 3.1Roberts算子边缘检测 第三章 图像边缘检测 3.2拉普拉斯算子边缘检测 3.3Sobel算子边缘检测 3.4Robinson算子边缘检测 3.5Kirsch算子边缘检测 3.6Prewitt...
    • 卡尔曼滤波算法亲测OK.rar
      标量 卡尔曼滤波算法的实现,亲测可用,可直接修改后移植到项目中。
    • KF_matlab.zip
      卡尔曼滤波,通过车辆纵向运动学,加速度传感器的读数是实际加速度和重力加速度沿着坡道方向的加速度的和,以此原理估算道路坡度。详细的matlab程序,注释很清楚,一看就懂。
    • 各种滤波方法代码
      针对RSSI的几种滤波方法,包括卡尔曼滤波、均值滤波、中值滤波等方法
    • matlabcnhelp.rar
      matlab中文帮助很难找的,快速下载