z和x是两个列表,分别包含传感器读数和每个传感器读数的对应时间。从这两个列表中,我需要找到传感器读数的起点(传感器值开始连续变化)和终点(传感器值停止连续变化)。在这里,我遍历列表并减去连续的值,并尝试确定起点,并且还通过向后遍历列表来确定几乎相同的逻辑以找到终点。但是由于传感器读数中的噪音很小,每次输出都是错误的。我在此处附上了图表,从图表中可以看出,凝视位置和结束位置有偏差(+/- 30毫米),是否有比这更好的方法,例如使用微分或其他概念来获得imp ?任何链接或概念概述对我都会有所帮助。
Output graph
def min_distance(self, z, x):
count = 0
i = 0
while count<2 and (i+1) !=len(z):
if abs(z[i] - z[i+1]) >= 1:
count += 1
i+=1
min_value = z[i+2]
min_time = x[i+2]
return min_value,min_time
def max_distance(self,z,x):
count = 0
j = 5
while count<2 and j!=len(z):
if (abs(z[-j] - z[-j-5]) - abs(z[-j] - z[-j+2])) >=1.5 :
count +=1
j+=1
max_value = z[-j+15]
max_time = x[-j+15]
return max_value,max_time