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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3878|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
日韩在线www| 黄色国产在线视频| 韩日精品中文字幕| 777精品伊人久久久久大香线蕉| 成人一级黄色片| 91九色精品国产一区二区| 免费成人美女女| 巨骚激情综合| 色视频线观看在线播放| www.av在线.com| 美国黄色小视频| 亚洲视频在线不卡| 成人免费看片'免费看| 5g影院天天爽成人免费下载| 波霸ol色综合久久| 日韩免费视频一区| 欧美日韩中文字幕在线| 国产日韩欧美精品电影三级在线| 视频一区二区三区中文字幕| 色乱码一区二区三区网站| 91嫩草国产线观看亚洲一区二区 | 欧美视频久久久| 日韩成人一区二区三区| 欧美 日本 国产| 男女无套免费视频网站动漫| 亚洲一区三区电影在线观看| 亚洲综合成人婷婷小说| 韩国三级日本三级少妇99| 亚洲欧美综合区自拍另类| 91麻豆精品国产91久久久久久 | 国产剧情av片巨作醉酒女邻居 | 大吊一区二区三区| 中文在线字幕观看| 色哟哟精品视频| 久久久久久www| 亚洲高清乱码| 欧美另类一区| 99理论电影网| 国产精品久久久久久久久久久久久 | h版电影在线播放视频网站| 成人免费一级视频| 黄色av网站免费| 婷婷国产成人精品视频| 精品中文字幕在线播放| 国内自拍视频网| 青青青青草视频| 亚洲成年人专区| 天堂精品一区二区三区| 成人h在线播放| 亚洲综合最新在线| 国产一区二区丝袜| 国产精品网址在线| 国产精品视频自在线| 欧美一区二区三区免费视| 欧美激情视频在线| 久久乐国产精品| 国产麻豆精品theporn| 日韩国产高清影视| 久久aⅴ国产紧身牛仔裤| 99在线|亚洲一区二区| 99精品在线免费在线观看| 一道在线中文一区二区三区| 加勒比色老久久爱综合网| 国产在线一区不卡| 日韩成人精品| 久久久免费毛片| 97久久亚洲| 高潮久久久久久久久久久久久久 | 国产精品灌醉下药二区| 亚洲国产成人一区二区三区| 国产精品入口麻豆九色| 亚洲国产精品成人久久综合一区| 久久久不卡网国产精品二区| 91丨九色丨蝌蚪丨老版| 久久久久久9999| 中文在线资源观看网站视频免费不卡| 日本一区二区视频在线| 国产精品污污网站在线观看| 国产精品三级av| 亚洲人成在线播放网站岛国| 亚洲尤物视频在线| 日韩欧美一区二区在线| 欧美日韩综合不卡| 精品日韩在线观看| 亚洲精品一区二区三区婷婷月| 亚洲欧美变态国产另类| xxx欧美精品| 97免费在线视频| 91精品国产综合久久久久久蜜臀| 亚洲一区中文字幕| 久久久影院一区二区三区| 亚洲午夜激情| 丰满爆乳一区二区三区| 三年中文在线观看免费大全中国| 国产大学生av| 美女100%露胸无遮挡| 久久精品国产亚洲av无码娇色| 久久青青草原亚洲av无码麻豆| 一级做a爱片久久毛片| 神马午夜电影一区二区三区在线观看 | 日本私人网站在线观看| av毛片在线免费看| 欧美黑人粗大| 亚洲三区欧美一区国产二区| 九九视频精品全部免费播放| 欧美日韩mv| 另类专区欧美蜜桃臀第一页| 2021国产精品久久精品| 一区二区三区四区不卡在线| 欧美亚洲免费在线一区| 亚洲精品电影网在线观看| 久久久精品久久久久| 久久亚洲精品国产精品紫薇| 一区二区在线观看av| 欧美性一二三区| 亚洲精品理论电影| 97免费中文视频在线观看| 亚洲自拍小视频| 日本一本草久p| 日本久久久久久久久久久久| 老牛影视av老牛影视av| 青青视频在线免费观看| 69av自拍偷拍| 成人福利视频在| 黄色在线免费看| 麻豆国产精品| 激情欧美一区二区三区| 成人深夜在线观看| 亚洲电影第三页| 亚洲成色999久久网站| 久久露脸国产精品| 欧美精品成人一区二区在线观看| 日韩中文字幕三区| 在线免费观看视频| 国产一区二区三区三州| 老太做爰xxxx| 黄色在线论坛| 精品日产乱码久久久久久仙踪林| 1024日韩| 亚洲国产精华液网站w| 日韩精品影音先锋| 热久久免费国产视频| 午夜精品一区二区在线观看| 91网址在线观看精品| 日韩av电影网| 免费精品国产自产拍在| 九色视频网站在线观看| 国产一区二区三区免费观看在线| 国语精品一区| 中文文精品字幕一区二区| 精品久久人人做人人爱| 国产精品视频永久免费播放| 欧美丰满熟妇bbbbbb百度| 久久精品三级视频| 黑人精品一区二区| 黄色漫画在线免费观看| 热三久草你在线| 欧美日本久久| 国产精品国产馆在线真实露脸 | 欧美亚洲色图视频| 色综合99久久久无码国产精品| 91午夜交换视频| 色婷婷亚洲十月十月色天| 不卡视频观看| 亚洲大片在线| 亚洲图片自拍偷拍| 另类视频在线观看| 国产树林野战在线播放| 91麻豆免费视频网站| 国产激情网址| 亚洲电影观看| 日韩av中文字幕一区二区三区| 精品欧美一区二区三区| 5278欧美一区二区三区| 国产中文字幕乱人伦在线观看| 国产乱国产乱老熟300| 国产一起色一起爱| 高端美女服务在线视频播放| 天堂中文在线视频| 91精品啪在线观看国产爱臀| 国产精品资源在线看| 欧美精品色综合| 亚洲精品免费在线视频| 中文字幕在线观看视频www| 精品人妻一区二区三区日产乱码| 三级黄视频在线观看| 中文精品一区二区| 日本一区二区三区高清不卡| 最近中文字幕mv在线一区二区三区四区| 欧美日韩在线精品| www.日本高清视频| 国产狂喷白浆在线观看视频| 亚洲人体影院| 经典三级在线一区| 亚洲激情免费观看| 午夜午夜精品一区二区三区文| 91动漫免费网站| 91嫩草香蕉| 国产成人精品一区二区三区视频| 精品在线播放午夜| 亚洲成人久久电影| 亚洲欧美久久久久一区二区三区| 婷婷丁香综合网| 免费三级网站| 欧美日韩午夜电影网| 91尤物视频在线观看| 色av中文字幕一区| 精品视频在线观看一区| 中文精品久久久久人妻不卡| 一不卡在线视频| 91精品电影| 日韩欧美在线字幕| 国产精品免费一区二区| 蜜桃av乱码一区二区三区| 中国女人内谢25xxxx免费视频| 色在线中文字幕| 国产一区福利在线| 这里只有视频精品| 黄色动漫网站入口| 国产黄色免费大片| 免费观看在线午夜影视| 日韩视频在线一区二区三区| 欧美日韩高清在线| 青青成人在线| 男人天堂中文字幕| 国产在线观看高清视频| 99在线精品视频在线观看| 日韩精品一区二区三区在线播放| 视频一区二区在线观看| 日韩手机在线视频| 尤物yw193can在线观看| 蜜桃久久av一区| 最近2019好看的中文字幕免费| 日本精品www| 中文字幕第一页在线| 国模私拍国内精品国内av| 国产人妖乱国产精品人妖| 欧美一级电影在线| 精品久久久久久中文字幕人妻最新| 美女做爰内谢全过程视频| 免费电影一区二区三区| 欧美日韩国产首页在线观看| 日韩妆和欧美的一区二区| 久久久久久久久久成人| 国产在线看片| 成人午夜精品在线| 久久免费观看视频| 久久精品色妇熟妇丰满人妻| 性史性dvd影片农村毛片| 日韩午夜在线| 国产视频精品免费播放| 99久久国产宗和精品1上映| 欧美性受xxxx免费视频| 米奇精品关键词| 欧美写真视频网站| 免费在线黄网站| 午夜福利理论片在线观看| 亚洲在线资源| 精品国精品国产自在久国产应用| 懂色av一区二区三区| 日韩国产一区久久| 精品国产av鲁一鲁一区| 免费视频观看成人| 亚洲国产精品一区二区久久恐怖片| 老牛影视免费一区二区| 精品国产区一区二| 精品国产三区在线| 一本一道久久a久久精品综合蜜臀| 亚洲精品一区二区毛豆| 少妇人妻偷人精品一区二区 | 中文字幕在线一区| 懂色一区二区三区av片| 亚洲av无码乱码国产精品fc2| 国产精品25p| 亚洲天堂2014| 亚洲人一区二区| juy有坂深雪中文字幕| 精品精品国产毛片在线看| 欧美精品在线观看播放| 欧洲av无码放荡人妇网站| 一级美女在线| 精品99视频| 久久国产天堂福利天堂| 国产精品视频一区二区在线观看| 久久黄色美女电影| 国产精品进线69影院| 美女国产一区| 欧美亚洲色图校园春色| 欧美午夜片欧美片在线观看| 精品久久不卡| 91蜜桃视频在线| 产国精品偷在线| 精品人妻一区二区三区蜜桃| 精品五月天堂| 精品国产一区二区三区忘忧草| 色91精品久久久久久久久| 16—17女人毛片毛片| 欧美a一区二区| 国产精品亚洲美女av网站| 中文字幕高清在线免费播放| 免费精品一区| 精品日韩av一区二区| 久久久久亚洲av成人网人人软件| 污网站在线观看视频| 久久人人97超碰com| 日韩高清av电影| 99re这里有精品| 另类激情亚洲| 久久精品国产91精品亚洲| 亚洲av无码一区二区三区在线| 19禁羞羞电影院在线观看| 天天做天天摸天天爽国产一区 | 欧美黑人巨大精品一区二区| 国产亚洲精品久久久久久打不开| 欧产日产国产精品视频| 色狠狠一区二区三区香蕉| 国产三级三级看三级| 欧美美女搞黄| 中文字幕综合网| www.射射射| 特级毛片在线观看| 久久久久久黄色| av在线免费观看国产| 日韩欧美亚洲| 欧美激情中文字幕一区二区| 大陆av在线播放| 国产免费嫩草影院| 久久www人成免费看片中文| 精品动漫一区二区三区| 日本 片 成人 在线| 欧美日韩免费做爰大片| 自拍偷拍亚洲欧美日韩| 丰满人妻中伦妇伦精品app| 夜色福利资源站www国产在线视频| 久久久美女艺术照精彩视频福利播放| 一区二区三区在线视频111| 天天操夜夜操天天射| 99久久er热在这里只有精品15| 一本久久a久久精品vr综合| eeuss影院www免费看| 久久精品亚洲精品国产欧美kt∨ | wwwwww在线观看| 欧美精品系列| 7777免费精品视频| 亚洲精品久久久蜜桃动漫| 欧美日韩三级| 成人黄色激情网| 又污又黄的网站| 午夜激情一区| 97se亚洲综合| 嫩草影院入口一二三| 99精品欧美一区二区三区小说| 国产青草视频在线观看| 99re6热在线精品视频播放| 亚洲精品日产精品乱码不卡| 手机免费av片| ****av在线网毛片| 精品亚洲一区二区三区在线观看| 国产中文字字幕乱码无限| 亚洲欧美校园春色| 国产精品成人播放| 天堂在线国产| 成人免费av网站| 亚洲中文字幕无码中文字| 国产黄大片在线观看画质优化| 欧美色倩网站大全免费| 一二三四在线观看视频| caoporn成人| 日本不卡视频在线播放| 四虎成人精品| 成人午夜碰碰视频| 黄大色黄女片18第一次| 国产99在线观看| 亚洲人成电影网站色xx| 夜夜狠狠擅视频| 国产日韩欧美一区二区三区在线观看| 国内精品视频在线播放| 国产在线黄色片| 色综合久久久久网| 黄色片子在线观看| 欧美另类69xxxxx| 91热精品视频| 天天添天天操| 香港成人在线视频| 黄色录像二级片| 欧美va天堂在线| 日韩欧美视频一区二区| 精品影院一区| 欧美精品一区二区三区高清aⅴ | 日韩国产精品一区| 中文字幕久久熟女蜜桃| 久久久精品网| 免费av手机在线观看| xxxx视频在线| 久久久av电影| 亚洲欧美另类色图| 久久九九影视网| 成年人的黄色片| 一个色免费成人影院| 老牛影视免费一区二区|