kalman_filtr.txt 857 B

12345678910111213141516171819202122
  1. http://kazus.ru/forums/showthread.php?p=1025804#
  2. typedef struct
  3. {
  4. float Result; //đĺçóëüňčđóţůĺĺ çíŕ÷ĺíčĺ
  5. float Value; //čńőîäíîĺ çíŕ÷ĺíčĺ
  6. float Previous; //đĺçóëüňŕň âű÷čńëĺíč˙ â ďđĺäűäóůĺé číňĺđŕöčč
  7. float K; //ęîýôôčöčĺíň ńňŕáčëčçŕöčč, ďî-óěîë÷ŕíčţ = 0.1
  8. } KalmanFloatTypeDefStruct;
  9. void KalmanFloatCalc (KalmanFloatTypeDefStruct * KalmanFloatStruct)
  10. {
  11. KalmanFloatStruct->Result = KalmanFloatStruct->K * KalmanFloatStruct->Value;
  12. KalmanFloatStruct->Value = 1.0 - KalmanFloatStruct->K;
  13. KalmanFloatStruct->Previous *= KalmanFloatStruct->Value;
  14. KalmanFloatStruct->Result += KalmanFloatStruct->Previous;
  15. KalmanFloatStruct->Previous = KalmanFloatStruct->Result;
  16. }
  17. -=-=-=-=-
  18. Âç˙ňî îňńţäŕ:
  19. http://avrproject.ru/publ/poleznaja_informacija/filtr_kalmana_bascom_avr/4-1-0-164