DeaD_EyE

IIRLowPassShift

Feb 14th, 2026
4,575
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.55 KB | None | 0 0
  1. import random
  2. import time
  3.  
  4.  
  5. class IIRLowPassShift:
  6.     def __init__(self, shift: int, initial: int=0):
  7.         self.shift = shift
  8.         self.y = initial
  9.  
  10.     def update(self, x):
  11.         self.y = self.y + ((x - self.y) >> self.shift)
  12.         return self.y
  13.  
  14. iirs = IIRLowPassShift(2)
  15. real_value = 1023
  16. error = (real_value - 12, real_value + 12)
  17.  
  18. for i in range(64):
  19.     r = random.randint(error[0], error[1])
  20.     v = iirs.update(r)
  21.     v /= 1023.0
  22.     v *= 10.0
  23.     print(f"STEP:{i+1:02} | R:{r:03d} | {v:>5.02f} V")
  24.     time.sleep(0.1)
Advertisement