kalman_filtr.txt 979 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