卡尔曼滤波matlab实现
卡尔曼滤波器的简单介绍,以及matlab程序实现。
卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法,其基本思想是:采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状态变量的估计,求出现时刻的估计值。它适合于实时处理和计算机运算。
卡尔曼滤波的实质是由量测值重构系统的状态向量。它以“预测—实测—修正”的顺序递推,根据系统的量测值来消除随机干扰,再现系统的状态,或根据系统的量测值从被污染的系统中恢复系统的本来面目。
Matlab 程序如下:
N=200;
w(1)=0;
w=randn(1,N)
x(1)=0;
a=1;
for k=2:N;
x(k)=a*x(k-1)+w(k-1);
end
V=randn(1,N);
q1=std(V);
Rvv=q1.^2;
q2=std(x);
Rxx=q2.^2;
q3=std(w);
Rww=q3.^2;
c=0.2;
Y=c*x+V;
p(1)=0;
s(1)=0;
for t=2:N;
p1(t)=a.^2*p(t-1)+Rww;
b(t)=c*p1(t)/(c.^2*p1(t)+Rvv);
s(t)=a*s(t-1)+b(t)*(Y(t)-a*c*s(t-1));
p(t)=p1(t)-c*b(t)*p1(t);
end
t=1:N;
plot(t,s,'r',t,Y,'g',t,x,'b');
function [x, V, VV, loglik] = kalman_filter(y, A, C, Q, R, init_x, init_V, varargin) % Kalman filter.
% [x, V, VV, loglik] = kalman_filter(y, A, C, Q, R, init_x, init_V, ...)
%
% INPUTS:
你可能喜欢
- 卡尔曼滤波代码
- 模糊PID控制
- 扩展卡尔曼滤波
- 加速度计
- 卡尔曼滤波代码2页
- 卡尔曼滤波简介及其算法实现代码14页
- 卡尔曼滤波简介及其算法实现代码(C _C_MATLAB)[1]116页
- 卡尔曼滤波简介+ 算法实现代码4页
- 卡尔曼滤波matlab 代码3页
- 卡尔曼滤波算法及其实现代码4页
- 模糊PID控制算法在电动舵机控制中的应用4页
- 基于MATLAB的自适应模糊PID控制系统计算机仿真4页
- 基于Smith算法的模糊PID控制器的设计2页
- 自适应模糊PID控制器的研究与应用5页
- 基于模糊理论与常规PID控制的模糊PID控制方法研究4页
- 电动舵机模糊自适应PID控制研究6页


