filter_simple.py 449 B

123456789101112131415161718
  1. class FirstOrderFilter:
  2. # first order filter
  3. def __init__(self, x0, rc, dt, initialized=True):
  4. self.x = x0
  5. self.dt = dt
  6. self.update_alpha(rc)
  7. self.initialized = initialized
  8. def update_alpha(self, rc):
  9. self.alpha = self.dt / (rc + self.dt)
  10. def update(self, x):
  11. if self.initialized:
  12. self.x = (1. - self.alpha) * self.x + self.alpha * x
  13. else:
  14. self.initialized = True
  15. self.x = x
  16. return self.x