Not enough sampling rate for PhidgetInterfaceKit 8/8/8
Posted: Fri Apr 02, 2021 11:44 am
Hi,
I'm trying to getVolatege for 4ch 200hz. Input voltage is 10hz sin curve but from received 5-10% duplicated value from getVoltage()
It's written 1000samples/s (4ch) so 250hz sampling should work.
Thanks you for your advice to fix this not enough sampling rate problem.
Best!
I'm trying to getVolatege for 4ch 200hz. Input voltage is 10hz sin curve but from received 5-10% duplicated value from getVoltage()
It's written 1000samples/s (4ch) so 250hz sampling should work.
Thanks you for your advice to fix this not enough sampling rate problem.
Best!
Code: Select all
#!/usr/bin/python3
import logging
import sys
import time
from Phidget22.Devices.Log import *
from Phidget22.Devices.VoltageOutput import *
from Phidget22.Devices.VoltageInput import *
from Phidget22.LogLevel import *
from Phidget22.Phidget import *
from Phidget22.PhidgetException import *
class getVoltage():
def __init__(self, t):
self_dot_ch = []
for i in range(4):
vinch = VoltageInput()
vinch.setChannel(i)
vinch.openWaitForAttachment(5000)
vinch.setDataInterval(1)
if vinch.getAttached():
self_dot_ch.append(vinch)
self.start_time = time.process_time()
self.prev_time = 0
self.t = t
def start(self):
while True:
vs = []
for i, c in self_dot_ch:
v = c.getVoltage()
vs[i] = v
t = (time.process_time() - self.start_time)*1000
logging.debug(f'v, {t:.2f}, {t-prev_time:.2f}, {vs}')
self.prev_time = t
time.sleep(self.t)
if __name__ == '__main__':
hz = 200
try:
t = getVoltage(1/hz)
t.start()
except PhidgetException as err:
logging.debug(f'PhidgetException: {err}')
sys.exit(1)
except KeyboardInterrupt:
pass