123456789101112131415161718 |
- class FirstOrderFilter:
- # first order filter
- def __init__(self, x0, rc, dt, initialized=True):
- self.x = x0
- self.dt = dt
- self.update_alpha(rc)
- self.initialized = initialized
- def update_alpha(self, rc):
- self.alpha = self.dt / (rc + self.dt)
- def update(self, x):
- if self.initialized:
- self.x = (1. - self.alpha) * self.x + self.alpha * x
- else:
- self.initialized = True
- self.x = x
- return self.x
|