Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import time
- class IIRLowPassShift:
- def __init__(self, shift: int, initial: int=0):
- self.shift = shift
- self.y = initial
- def update(self, x):
- self.y = self.y + ((x - self.y) >> self.shift)
- return self.y
- iirs = IIRLowPassShift(2)
- real_value = 1023
- error = (real_value - 12, real_value + 12)
- for i in range(64):
- r = random.randint(error[0], error[1])
- v = iirs.update(r)
- v /= 1023.0
- v *= 10.0
- print(f"STEP:{i+1:02} | R:{r:03d} | {v:>5.02f} V")
- time.sleep(0.1)
Advertisement