Math 模式识别(肌肉活动)
我需要你方的推荐。我目前正在使用Arduino上的肌电(肌肉)传感器,我的目标是识别和测量肌肉活动的时间。在下图中,您可以找到原始数据。正如您所见,在肌肉活动期间,模拟输出的范围要高得多。但我不知道哪种数学方法适合这个任务 使用滑动窗口Math 模式识别(肌肉活动),math,arduino,signal-processing,Math,Arduino,Signal Processing,我需要你方的推荐。我目前正在使用Arduino上的肌电(肌肉)传感器,我的目标是识别和测量肌肉活动的时间。在下图中,您可以找到原始数据。正如您所见,在肌肉活动期间,模拟输出的范围要高得多。但我不知道哪种数学方法适合这个任务 使用滑动窗口 选择窗口大小 这是分析信号特性的时间。它应该足够长,以保持至少一个周期的信号,但2-3个周期更好 现在通过与窗口大小相等的FIFO传递信号 在每个新输入值的FIFO都满后,从中删除第一个输入值,并计算FIFO内容的最小值和最大值。这种FIFO最好以固定长度的循环
max-min
的差异是窗口的动态范围,它将告诉您传感器是否检测到活动
max(t)-min(t)
因此,对于每个计算窗口t
compute:
d(t) = max(t) - min(t)
其中t
是窗口的开始时间。现在:
if (d(t)>=threshold) muscle_is_working;
例如,信号中的被动区域与do~40
之间存在差异,因此将阈值设置为大于该值,但小于信号中的主动区域
threshold = 50
d(t) = sum(i=t,...,t+size-1) of abs(signal(t)-inactive_average)
另外,将窗口大小四舍五入到2的幂也是一个好主意,这样您就可以在循环缓冲区实现中使用位运算而不是除法和模运算。如果绝对值和阈值与长期平均值相差太大,那么可能是绝对值和阈值的平均值?哇,谢谢您的回答。我会尽量在明天或周一完成,并将结果通知你。