You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							18 lines
						
					
					
						
							449 B
						
					
					
				
			
		
		
	
	
							18 lines
						
					
					
						
							449 B
						
					
					
				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
 | 
						|
 |