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)
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎