|
看了三天的卡尔曼滤波 写了个小的滤波程序
- %%% 观测值 噪声 定义 比如超生波 噪声主要是观测噪声
- N=800;
- real=linspace(4,5,N);
- z=real; % 观测值
- w=0.5*randn(1,N); %观测噪声
- z=z+w; % 加上观测噪声后的观测值
- R=(std(w))^2; % 观测噪声的协方差
- v=0.01*randn(1,N); % 定义过程噪声
- Q=(std(v))^2; %由过程噪声求出协方差
- %%% 变量初始化
- p(1)=1;
- x(1)=0;
- %%% 卡尔曼滤波程序 其中A=1 U=0 H=1
- for t=2:N;
- x_(t)=x(t-1);
- p_(t)=p(t-1)+Q;
- k(t)=p_(t)/(p_(t)+R);
- x(t)=x_(t)+k(t)*(z(t)-x_(t));
- p(t)=(1-k(t))*p_(t);
- end
- t=1:N;
- plot(t,z,'b',t,x,'r',t,real,'k'),legend('观测值','滤波后','实际值');
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|