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
 | |
| 
 |