wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3916|回復: 3
收起左側

C語言編寫卡爾曼濾波算法的C語言程序 大家自行移植到各平臺

  [復制鏈接]
ID:776760 發表于 2021-6-30 14:40 | 顯示全部樓層 |閱讀模式
  1. /*  kalman.c

  2.     This file contains the code for a kalman filter, an
  3.     extended kalman filter, and an iterated extended kalman filter.

  4.     For ready extensibility, the apply_measurement() and apply_system()
  5.     functions are located in a separate file: kalman_cam.c is an example.

  6.     It uses the matmath functions provided in an accompanying file
  7.     to perform matrix and quaternion manipulation.


  8.     J. Watlington, 11/15/95

  9.     Modified:
  10.     11/30/95  wad  The extended kalman filter section seems to be
  11.                    working now.
  12. */

  13. #include <stdio.h>
  14. #include <stdlib.h>
  15. #include <math.h>
  16. #include "kalman.h"

  17. #define ITERATION_THRESHOLD      2.0
  18. #define ITERATION_DIVERGENCE     20

  19. /*  The following are the global variables of the Kalman filters,
  20.     used to point to data structures used throughout.     */

  21. static m_elem  *state_pre;         /* ptr to apriori state vectors, x(-)     */
  22. static m_elem  *state_post;        /* ptr to aposteriori state vectors, x(+) */

  23. static m_elem  *iter_state0;
  24. static m_elem  *iter_state1;

  25. static m_elem  **cov_pre;          /* ptr to apriori covariance matrix, P(-) */
  26. static m_elem  **cov_post;         /* ptr to apriori covariance matrix, P(-) */
  27. static m_elem  **sys_noise_cov;    /* system noise covariance matrix (GQGt)  */
  28. static m_elem  **mea_noise_cov;    /* measurement noise variance vector (R)  */

  29. static m_elem  **sys_transfer;     /* system transfer function (Phi)    */
  30. static m_elem  **mea_transfer;     /* measurement transfer function (H) */

  31. static m_elem  **kalman_gain;      /* The Kalman Gain matrix (K) */

  32. int            global_step = 0;    /* the current step number (k) */
  33. int            measurement_size;   /* number of elems in measurement */
  34. int            state_size;         /* number of elements in state    */

  35. /*  Temporary variables, declared statically to avoid lots of run-time
  36.     memory allocation.      */

  37. static m_elem  *z_estimate;        /* a measurement_size x 1 vector */
  38. static m_elem  **temp_state_state; /* a state_size x state_size matrix */
  39. static m_elem  **temp_meas_state;  /* a measurement_size x state_size matrix */
  40. static m_elem  **temp_meas_meas;   /* a measurement_size squared matrix */
  41. static m_elem  **temp_meas_2;      /* another one ! */

  42. /*  Prototypes of internal functions  */

  43. static void alloc_globals( int num_state,
  44.                           int num_measurement );
  45. static void update_system( m_elem *z, m_elem *x_minus,
  46.                          m_elem **kalman_gain, m_elem *x_plus );
  47. static void estimate_prob( m_elem **P_post, m_elem **Phi, m_elem **GQGt,
  48.                           m_elem **P_pre );
  49. static void update_prob( m_elem **P_pre, m_elem **R, m_elem **H,
  50.                         m_elem **P_post, m_elem **K );
  51. static void take_inverse( m_elem **in, m_elem **out, int n );
  52. static m_elem calc_state_change( m_elem *a, m_elem *b );


  53. /******************************************************************

  54.   Linear Kalman Filtering

  55.   kalman_init()
  56.   This function initializes the kalman filter.  Note that for a
  57.   straight-forward (linear) Kalman filter, this is the only place that
  58.   K and P are computed...      */

  59. void kalman_init( m_elem **GQGt, m_elem **Phi, m_elem **H, m_elem **R,
  60.                 m_elem **P, m_elem *x, int num_state, int num_measurement )
  61. {
  62.   alloc_globals( num_state, num_measurement );

  63.   /*  Init the global variables using the arguments.  */

  64.   vec_copy( x, state_post, state_size );
  65.   mat_copy( P, cov_post, state_size, state_size );

  66.   sys_noise_cov = GQGt;
  67.   mea_noise_cov = R;

  68.   sys_transfer = Phi;
  69.   mea_transfer = H;

  70.   /*****************  Gain Loop  *****************/

  71.   estimate_prob( cov_post, sys_transfer, sys_noise_cov, cov_pre );
  72.   update_prob( cov_pre, mea_noise_cov, mea_transfer, cov_post, kalman_gain );
  73. }


  74. /*  kalman_step()
  75.     This function takes a set of measurements, and performs a single
  76.     recursion of the straight-forward kalman filter.
  77. */

  78. void kalman_step( m_elem *z_in )
  79. {
  80.   /**************  Estimation Loop  ***************/

  81.   apply_system( state_post, state_pre );
  82.   update_system( z_in, state_pre, kalman_gain, state_post );

  83.   global_step++;
  84. }

  85. /*  kalman_get_state
  86.     This function returns a pointer to the current estimate (a posteriori)
  87.     of the system state.         */

  88. m_elem *kalman_get_state( void )
  89. {
  90.   return( state_post );
  91. }

  92. /******************************************************************

  93.   Non-linear Kalman Filtering

  94.   extended_kalman_init()
  95.   This function initializes the extended kalman filter.
  96. */

  97. void extended_kalman_init( m_elem **GQGt, m_elem **R, m_elem **P, m_elem *x,
  98.                           int num_state, int num_measurement )
  99. {
  100. #ifdef PRINT_DEBUG
  101.   printf( "ekf: Initializing filter\n" );
  102. #endif

  103.   alloc_globals( num_state, num_measurement );

  104.   sys_transfer = matrix( 1, num_state, 1, num_state );
  105.   mea_transfer = matrix( 1, num_measurement, 1, num_state );

  106.   /*  Init the global variables using the arguments.  */

  107.   vec_copy( x, state_post, state_size );
  108.   vec_copy( x, state_pre, state_size );
  109.   mat_copy( P, cov_post, state_size, state_size );
  110.   mat_copy( P, cov_pre, state_size, state_size );

  111.   sys_noise_cov = GQGt;
  112.   mea_noise_cov = R;
  113. }


  114. /*  extended_kalman_step()
  115.     This function takes a set of measurements, and performs a single
  116.     recursion of the extended kalman filter.
  117. */

  118. void extended_kalman_step( m_elem *z_in )
  119. {
  120. #ifdef PRINT_DEBUG
  121.   printf( "ekf: step %d\n", global_step );
  122. #endif
  123.   /*****************  Gain Loop  *****************
  124.     First, linearize locally, then do normal gain loop    */

  125.   generate_system_transfer( state_pre, sys_transfer );
  126.   generate_measurement_transfer( state_pre, mea_transfer );

  127.   estimate_prob( cov_post, sys_transfer, sys_noise_cov, cov_pre );
  128.   update_prob( cov_pre, mea_noise_cov, mea_transfer, cov_post, kalman_gain );

  129.   /**************  Estimation Loop  ***************/

  130.   apply_system( state_post, state_pre );
  131.   update_system( z_in, state_pre, kalman_gain, state_post );

  132.   global_step++;
  133. }


  134. /* iter_ext_kalman_init()
  135.    This function initializes the iterated extended kalman filter
  136. */

  137. void iter_ext_kalman_init( m_elem **GQGt, m_elem **R, m_elem **P, m_elem *x,
  138.                           int num_state, int num_measurement )
  139. {
  140. #ifdef PRINT_DEBUG
  141.   printf( "iekf: Initializing filter\n" );
  142. #endif

  143.   alloc_globals( num_state, num_measurement );

  144.   iter_state0  = vector( 1, num_state );
  145.   iter_state1  = vector( 1, num_state );
  146.   sys_transfer = matrix( 1, num_state, 1, num_state );
  147.   mea_transfer = matrix( 1, num_measurement, 1, num_state );

  148.   /*  Init the global variables using the arguments.  */

  149.   vec_copy( x, state_post, state_size );
  150.   vec_copy( x, state_pre, state_size );
  151.   mat_copy( P, cov_post, state_size, state_size );
  152.   mat_copy( P, cov_pre, state_size, state_size );

  153.   sys_noise_cov = GQGt;
  154.   mea_noise_cov = R;
  155. }

  156. /*  iter_ext_kalman_step()
  157.     This function takes a set of measurements, and iterates over a single
  158.     recursion of the extended kalman filter.
  159. */

  160. void iter_ext_kalman_step( m_elem *z_in )
  161. {
  162.   int     iteration = 1;
  163.   m_elem  est_change;
  164.   m_elem  *prev_state;
  165.   m_elem  *new_state;
  166.   m_elem  *temp;

  167.   generate_system_transfer( state_pre, sys_transfer );
  168.   estimate_prob( cov_post, sys_transfer, sys_noise_cov, cov_pre );
  169.   apply_system( state_post, state_pre );

  170.   /*  Now iterate, updating the probability and the system model
  171.       until no change is noticed between iteration steps      */

  172.   prev_state = iter_state0;
  173.   new_state  = iter_state1;

  174.   generate_measurement_transfer( state_pre, mea_transfer );
  175.   update_prob( cov_pre, mea_noise_cov, mea_transfer,
  176.               cov_post, kalman_gain );
  177.   update_system( z_in, state_pre, kalman_gain, prev_state );
  178.   est_change = calc_state_change( state_pre, prev_state );

  179.   while( (est_change < ITERATION_THRESHOLD) &&

復制代碼
51hei.png

全部代碼51hei下載地址:
C語言卡爾曼濾波.zip (11.45 KB, 下載次數: 58)

評分

參與人數 1黑幣 +30 收起 理由
admin + 30 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:101990 發表于 2021-7-26 22:00 | 顯示全部樓層
學習學習啦!!效果不知道如何呢!收藏啦~~~
回復

使用道具 舉報

ID:258676 發表于 2021-8-25 16:23 | 顯示全部樓層
好東西 用在哪里?
回復

使用道具 舉報

ID:481966 發表于 2021-9-5 22:07 | 顯示全部樓層
好東西,學習了,有沒有c語言寫的低通,帶通濾波器呢
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
污网站在线观看视频| 中文字幕欧美专区| 欧美一区二区三区在线看| 久久久久久午夜| 激情综合五月婷婷| 国产欧美日韩专区| 人妻换人妻a片爽麻豆| 疯狂做受xxxx欧美肥白少妇| 欧美限制电影| 草莓污污视频在线观看| 中文字幕亚洲精品在线| 亚洲精品国产精品久久| 亚洲精品自在久久| av电影免费在线看| 奇米影视亚洲| www.91香蕉视频| 欧美亚洲色综久久精品国产| 91嫩草在线| 在线播放国产精品二区一二区四区| 国产一区91| 国产99在线观看| 日日爱夜夜操| 538精品在线观看| 乱熟女高潮一区二区在线| 在线播放日韩专区| 亚洲欧美日韩系列| 大地资源中文在线观看免费版| 在线视频精品免费| 国产真实乱子伦| 国产成人在线视频| 欧美日韩亚洲国产综合| 久久国内精品自在自线400部| 日韩大陆av| 国产小黄视频| 亚洲天堂日韩av| 性猛交ⅹ×××乱大交| 国产美女91呻吟求| 欧美精品一区二区三区高清aⅴ| 成人国产在线观看| 亚洲理论电影片| 在线的色视频| 亚洲国产日韩在线观看| 麻豆免费在线观看视频| 日韩中文在线字幕| 国产精品久久久久久久av大片| 91精品国产91久久综合| 黄色av免费在线看| 天堂中文字幕av| 久久午夜精品视频| 精产国品一区二区三区| 天天人人精品| 日韩av观看网址| 精品久久国产老人久久综合| 一区在线中文字幕| 丝袜诱惑制服诱惑色一区在线观看 | 欧美国产日韩在线| 色综合久久综合| 不卡的av电影| 国产精品综合二区| 亚洲乱码在线| 免费污视频在线一区| 在线一区观看| 免费的黄色片| 国产av无码专区亚洲av麻豆| 国产老头老太做爰视频| 亚洲视频在线a| 日本在线观看一区二区| 97精品国产97久久久久久| 欧美一卡2卡三卡4卡5免费| 午夜亚洲国产au精品一区二区| 国产精品资源网站| 国产电影一区二区三区| 欧美久久成人| 亚洲一二av| 蜜臀av在线播放| 阳光姐妹淘韩国版| 国产美女视频网站| 韩国xxxx做受gayxxxx| 国产男男gay体育生白袜| 2014亚洲天堂| 免费a v网站| 国产综合免费视频| 欧美性猛交xxx乱久交| 一区二区在线观| 久久久久观看| 午夜剧场免费在线观看| 成人一级片免费看| 国产一区视频免费观看| 色哟哟免费网站| 91色在线视频| 日韩一级黄色av| 国产激情一区二区三区四区| 石原莉奈一区二区三区在线观看| 亚洲在线一区| 成人看的羞羞网站| 精品国精品国产自在久国产应用| 午夜无码国产理论在线| 免费毛片在线| 白白色视频在线| 在线免费视频福利| 你懂的免费在线观看视频网站| 成黄免费在线| 动漫成人在线| 精品无吗乱吗av国产爱色| 日本亚洲一区| 色成人亚洲网| 美女高潮黄又色高清视频免费| av免费在线电影| 欧美精产国品一二三区| 99精品在线看| 男人用机机桶女人| 精品久久久噜噜噜噜久久图片| 97国产精东麻豆人妻电影| |精品福利一区二区三区| 97超碰蝌蚪网人人做人人爽| av7777777| 一个人看的www免费观看视频| 久操国产精品| 日韩av有码在线| 国产一区二区三区四区五区六区| 99国产精品久久久久99打野战| 国产欧美日韩91| 成人网在线观看| 国产高清一区在线观看| 中文字幕福利片| 午夜毛片在线| 成人动漫在线播放| 黑人精品视频| 九色porny自拍视频在线播放| 日韩一区二区三区免费| 精品五月天堂| 亚洲精选在线| 免费在线观看成人| 日本成人超碰在线观看| 日韩精品一卡二卡三卡四卡无卡| 亚洲在线视频| 久久精品一区二区| 久久五月婷婷丁香社区| 国产欧美日韩卡一| 国产精品久久久久久久浪潮网站| 久久久久久久免费视频了| 亚洲成人第一页| 色婷婷一区二区三区四区| 亚洲福利视频二区| 在线观看久久久久久| 欧美亚洲一区在线| 国产日韩欧美另类| 超碰国产精品久久国产精品99| 俄罗斯精品一区二区| 国产嫩草一区二区三区在线观看| 97视频中文字幕| 91.com在线| 免费高清在线观看免费| 一级做a爰片毛片| 日本激情视频一区二区三区| 一区二区国产欧美| 天天干天天摸天天操| 成人网址大全| 三妻四妾的电影电视剧在线观看| 在线观看福利电影| 香蕉久久一区| 国产视频一区欧美| 国产精品久久午夜夜伦鲁鲁| 日韩欧美一区二区在线视频| 日韩在线视频网站| 欧美中文字幕视频在线观看| 91天堂在线观看| 波多野结衣家庭教师在线播放| 日韩在线一卡二卡| 五月婷婷伊人网| 一个人免费观看在线视频www| 77导航福利在线| 中文.日本.精品| 在线视频精品| 久久亚区不卡日本| 日韩视频免费观看高清完整版在线观看 | 九九热最新视频//这里只有精品| 国产精品 欧美在线| 亚洲av综合色区| 超碰人人人人人人人| www.久久久久久久久久| 人人做人人草| 欧美777四色影视在线| 91嫩草精品| 粉嫩欧美一区二区三区高清影视| 日韩毛片在线免费观看| 亚洲欧美中文日韩在线| 欧美一级片在线播放| 免费看黄在线看| 久久精品综合视频| 日韩成人免费在线视频| 日韩在线视频第一页| 黄色小视频免费看| 成年人在线观看| 日本不卡高清| 国产精品久久久久久亚洲毛片| 伊人激情综合网| 伊人av成人| 久久综合综合久久| 熟妇高潮一区二区高潮| 国产一区二区影视| 久久精品国产亚洲夜色av网站| 国产精品a级| 亚洲午夜久久久久久久久电影院 | 亚洲精品久久久久久一区二区| 永久免费成人代码| 久久免费精品一区二区| 麻豆mv在线看| 免费视频最近日韩| 日韩精品一区二区三区老鸭窝| 日本中文字幕成人| 在线观看免费黄网站| 国产在线视频卡一卡二| 色呦呦视频在线| 91三级在线| 亚洲欧美tv| 成人欧美一区二区三区视频网页| 久久久精品久久| 日本高清不卡一区二区三| 自拍偷拍21p| 精品久久国产视频| 看黄网站在线| 日韩大片在线播放| 亚洲午夜精品网| 国产精品尤物福利片在线观看| 伊人精品视频在线观看| 日本三级免费看| 国产精品666| 日本在线中文字幕一区二区三区| 精品系列免费在线观看| 亚洲精品午夜精品| 精品一二三四五区| av中文字幕在线免费观看| 国产在线69| 久久66热偷产精品| 欧美视频在线观看一区| 国产精品va在线| 国产女主播在线播放| 国产成人麻豆精品午夜在线 | 久久香蕉精品| 亚洲精品v天堂中文字幕| 91传媒在线免费观看| 亚洲国产av一区| 99热免费在线| 天堂精品久久久久| 国产在线精品免费av| 在线播放91灌醉迷j高跟美女| 欧美在线性爱视频| 中国极品少妇xxxx| 美女与牲口做爰视频在线观看| 97一区二区国产好的精华液| 久久一区二区视频| 欧美一区二区三区免费观看| 艳妇乳肉豪妇荡乳xxx| 免费网站你懂的| 国产一区二区三区91| 国产欧美日韩久久| 国产精品自产拍在线观看| 丁香六月久久综合狠狠色| 福利片一区二区三区| 黄色成人在线网址| xnxx国产精品| 亚洲精品一区二区网址| 日本欧美视频在线观看| 亚洲经典一区二区三区| 亚洲天堂一区二区| 国产一区二区福利视频| 久久精品亚洲94久久精品| 欧美国产在线一区| 男人天堂影院| 一区二区三区亚洲变态调教大结局| 亚洲人吸女人奶水| 国产厕所精品在线观看| 久久高清免费视频| 夜色资源站国产www在线视频| 日本在线观看a| 成人在线免费视频观看| av在线播放观看| 香蕉久久夜色精品国产更新时间| 成人v精品蜜桃久久一区| 国产+人+亚洲| 国产不卡的av| 找av导航入口| 亚洲第一黄色| 日韩一级大片在线| 久久国产成人精品国产成人亚洲| 最新国产热播激情视频| 国产高清自产拍av在线| 国产精品毛片无遮挡高清| 99国产视频| 91福利在线观看视频| 国产精品第一| 在线看三级电影| 国产精品沙发午睡系列| 亚洲制服欧美中文字幕中文字幕| 国产精品久久久久久久一区二区| 国产视频久久久| 亚洲天堂久久| 91丨九色丨蝌蚪丨少妇在线观看| 国产精品久久久久久亚洲影视| 97国产真实伦对白精彩视频8| 亚洲黄色小说视频| 国产精品视频一区二区久久| 东方aⅴ免费观看久久av| 国产精品伦子伦免费视频| 中文字幕精品三级久久久| 99视频只有精品| 性做久久久久久免费观看欧美| 欧美777四色影视在线| 国产日韩精品suv| 欧美大片黄色| 亚洲色图视频网| 一级日韩一区在线观看| 国产一级久久久| 竹内纱里奈兽皇系列在线观看| 亚洲一区在线视频| youjizz.com在线观看| 亚洲av毛片基地| 91亚洲天堂| 亚洲专区一二三| 国产青青在线视频| 无国产精品白浆是免费| 99久久免费精品国产72精品九九| 欧美日韩国产一二三| 亚洲国产欧美一区| 欧美成人vr18sexvr| 亚洲天堂av一区二区| 国产精品久久人| 欧美一区三区| 久久偷看各类女兵18女厕嘘嘘| 女人扒开双腿让男人捅| 欧美色图另类| 成人欧美一区二区三区小说| 久久综合久久网| 国内精品2019| 久久黄色影院| 欧美激情女人20p| 91国产丝袜播放在线| 国产成年精品| 在线电影一区二区| 久久久免费精品视频| 国产精品探花视频| 999久久久国产精品| 97成人在线视频| 91.com在线| 久草福利资源站| 91在线精品一区二区| 91色p视频在线| 高清av中文在线字幕观看1| 一区三区视频| 91啪国产在线| 青青久精品观看视频最新| 美女在线视频一区| 久久精品国产精品青草色艺| 免费的毛片视频| 成人开心激情| 亚洲国产精品电影在线观看| 四季av中文字幕| 日韩一区二区三免费高清在线观看| 日韩av最新在线观看| 欧美人妻精品一区二区三区| 日本不卡免费高清视频在线| 91精品国产品国语在线不卡| 欧美老熟妇乱大交xxxxx| 男男激情在线| 大桥未久av一区二区三区| 精产国品一区二区三区| 欧洲一级精品| 亚洲欧美色图片| 五月婷六月丁香| 日韩一级特黄| 欧美成人小视频| 妺妺窝人体色www聚色窝仙踪| 精品视频在线观看免费观看 | 国产成人短视频| 男人的天堂视频网站| 国内精品久久久久影院色| 神马午夜伦理影院| av在线收看| 日韩一区二区麻豆国产| 91制片厂在线| 亚洲精品66| 久久九九国产精品怡红院| 性一交一乱一色一视频麻豆| 老司机久久99久久精品播放免费| 蜜桃av噜噜一区二区三| 色就是色欧美色图| 成人夜色视频网站在线观看| www国产精品内射老熟女| av网站在线免费播放| 欧美高清视频一二三区| 免费在线观看av网址| 欧美丰满日韩| 久久99精品久久久久久三级| 最新av中文字幕| 欧美亚洲国产怡红院影院| 国产精品久久久精品四季影院| 国产探花在线精品一区二区| 成人免费看片视频| 天天摸天天操天天干|