2022年2022年卡尔曼滤波算法 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年2022年卡尔曼滤波算法 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年卡尔曼滤波算法 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、卡尔曼滤波算法实现代码C+实现代码如下:=kalman.h= / kalman.h: interface for the kalman class. / /#if !defined(AFX_KALMAN_H_ED3D740F_01D2_4616_8B74_8BF57636F2C0_INCLUDED_) #define AFX_KALMAN_H_ED3D740F_01D2_4616_8B74_8BF57636F2C0_INCLUDED_ #if _MSC_VER 1000 #pragma once #endif/ _MSC_VER 1000#include #include cv.h class
2、 kalman public: void init_kalman(int x, int xv, int y, int yv); CvKalman* cvkalman; CvMat* state; CvMat* process_noise; CvMat* measurement; const CvMat* prediction; CvPoint2D32f get_predict(float x, float y); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页
3、- - - - - - - - - kalman(int x=0,int xv=0,int y=0,int yv=0); /virtual kalman(); ; #endif/ !defined(AFX_KALMAN_H_ED3D740F_01D2_4616_8B74_8BF57636F2C0_INCLUDED_)=kalman.cpp= #include kalman.h #include /* tester de printer toutes les valeurs des vecteurs*/* tester de changer les matrices du noises */*
4、replace state by cvkalman-state_post ? */CvRandState rng; constdouble T = 0.1; kalman:kalman(int x, int xv, int y, int yv) cvkalman = cvCreateKalman( 4, 4, 0 ); state = cvCreateMat( 4, 1, CV_32FC1 ); process_noise = cvCreateMat( 4, 1, CV_32FC1 ); measurement = cvCreateMat( 4, 1, CV_32FC1 ); int code
5、 = -1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - /* create matrix data */constfloat A = 1, T , 0, 0, 0, 1, 0, 0, 0, 0, 1, T, 0, 0, 0, 1 ; constfloat H = 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 ; constfloat P = pow(320,2), pow(
6、320,2)/T, 0, 0, pow(320,2)/T, pow(320,2)/pow(T,2), 0, 0, 0, 0, pow(240,2), pow(240,2)/T, 0, 0, pow(240,2)/T, pow(240,2)/pow(T,2) ; constfloat Q = pow(T,3)/3, pow(T,2)/2, 0, 0, pow(T,2)/2, T, 0, 0, 0, 0, pow(T,3)/3, pow(T,2)/2, 0, 0, pow(T,2)/2, T ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
7、- - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - constfloat R = 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 ; cvRandInit( &rng, 0, 1, -1, CV_RAND_UNI ); cvZero( measurement ); cvRandSetRange( &rng, 0, 0.1, 0 ); rng.disttype = CV_RAND_NORMAL; cvRand( &rng, state ); memcpy( cvkalman-transi
8、tion_matrix-data.fl, A, sizeof (A); memcpy( cvkalman-measurement_matrix-data.fl, H, sizeof (H); memcpy( cvkalman-process_noise_cov-data.fl, Q, sizeof (Q); memcpy( cvkalman-error_cov_post-data.fl, P, sizeof (P); memcpy( cvkalman-measurement_noise_cov-data.fl, R, sizeof (R); /cvSetIdentity( cvkalman-p
9、rocess_noise_cov, cvRealScalar(1e-5) ); /cvSetIdentity( cvkalman-error_cov_post, cvRealScalar(1); /cvSetIdentity( cvkalman-measurement_noise_cov, cvRealScalar(1e-1) ); /* choose initial state */ state-data.fl0=x; state-data.fl1=xv; state-data.fl2=y; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
10、 - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - state-data.fl3=yv; cvkalman-state_post-data.fl0=x; cvkalman-state_post-data.fl1=xv; cvkalman-state_post-data.fl2=y; cvkalman-state_post-data.fl3=yv; cvRandSetRange( &rng, 0, sqrt(cvkalman-process_noise_cov-data.fl0), 0 ); cvRand( &rng, proce
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年卡尔曼滤波算法 2022 卡尔 滤波 算法
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内