码迷,mamicode.com
首页 > 其他好文 > 详细

关于卡尔曼滤波(Kalman Filter)的很好讲解

时间:2016-10-05 12:44:19      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

http://bilgin.esme.org/BitsAndBytes/KalmanFilterforDummies

C#代码:

 1 double[] Data = new double[] { 0.39, 0.50, 0.48, 0.29, 0.25, 0.32, 0.34, 0.48, 0.41, 0.45 };
 2         private void kalman()
 3         {
 4             sb = new StringBuilder();
 5            for(int j=0;j<50;j++)
 6                 for (int i = 0; i < Data.Length; i++)
 7                 {
 8                     double k = lp / (lp + 0.1);
 9                     double x = lx + k * (Data[i] - lx);
10                     double p = (1 - k) * lp;
11                     sb.Append(string.Format("{0}:  {1:F3};  {2:F3};  {3:F3} \n", i, Data[i], x, p));
12                     richTextBox1.BeginInvoke(new EventHandler(delegate
13                     {
14                         richTextBox1.Text = sb.ToString();
15                         richTextBox1.SelectionStart = richTextBox1.TextLength;
16                         richTextBox1.ScrollToCaret();
17                     }));
18                     Thread.Sleep(1000);
19                     lx = x;
20                     lp = p;
21                 }
22         }

经多次迭代,p值得到很好收敛,是不是很简单,但实际使用还需要完善模型,调整速度、加速度、测量噪声等参数!

关于卡尔曼滤波(Kalman Filter)的很好讲解

标签:

原文地址:http://www.cnblogs.com/xrll/p/5931983.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!