视频教程:卡尔曼滤波器的原理以及在MATLAB中的实现

视频教程:卡尔曼滤波器的原理以及在MATLAB中的实现。

最近一个月的所有周末都用在这上面了,希望大家喜欢。(分享自 @优酷) http://t.cn/RPPT9uz



示例代码:

[plain]  view plain  copy
  1. Z=(1:100); %观测值  
  2. noise=randn(1,100); %方差为1的高斯噪声  
  3. Z=Z+noise;  
  4.   
  5. X=[0; 0]; %状态  
  6. P=[1 0; 0 1]; %状态协方差矩阵  
  7. F=[1 1; 0 1]; %状态转移矩阵  
  8. Q=[0.0001, 0; 0 0.0001]; %状态转移协方差矩阵  
  9. H=[1 0]; %观测矩阵  
  10. R=1; %观测噪声方差  
  11.   
  12. figure;  
  13. hold on;  
  14.   
  15. for i=1:100  
  16.   
  17.   X_ = F*X;  
  18.   P_ = F*P*F'+Q;  
  19.   K = P_*H'/(H*P_*H'+R);  
  20.   X = X_+K*(Z(i)-H*X_);  
  21.   P = (eye(2)-K*H)*P_;  
  22.     
  23.   plot(X(1), X(2)); %画点,横轴表示位置,纵轴表示速度  
  24. end  


你可能感兴趣的:(视频教程:卡尔曼滤波器的原理以及在MATLAB中的实现)