本发明属于测量车辆、人员、动物或其他运动的固态物体在地面行驶的距离,例如,应用里程计或应用计步器的技术领域,具体是涉及一种基于模糊逻辑的跑步状态识别方法。
背景技术:
跑步是目前最为广泛的群众运动之一,包括人们日常的跑步锻炼、朋友间的跑步竞赛和一些官方的跑步竞技,其中运动状态有快跑、慢跑、快走、慢走、变速跑、变速走、不规则运动和静止,对于运动量的计算、卡路里消耗、跑步距离计算和运动员生理指标监测都有重要意义,同时在跑步轨迹呈现时,分析跑步过程的运动状态变化可以进一步指导用户科学的进行跑步锻炼;对于跑步状态的识别,传统的方法均是通过单位时间内的速度或步频进行判断,设定阈值简单识别,这样的问题在于:
1)快和慢是相对概念,不同的人对快慢的判断并不相同;
2)快走的速度可能大于慢跑的速度,因此简单的以速度或步频无法有效的分辨出快走和慢跑的状态;因此,运动状态是一个模糊的概念,无法设定确切的界限区分不同状态。
中国发明专利cn104977006说明书中公开了一种基于模糊逻辑进行运动状态识别的方法,可以根据当前时刻的步频和合加速度方差做模糊推理,得到慢走、走、快走、慢跑、跑、快跑等状态,这种方法的缺点在于:
1)这是基于单步数据进行的模糊推理,但推理结果可能出现不符合人类跑步或行走连续特征的情形,例如在多步慢走时间出现的一步快跑,或在一个时间窗口内出现步幅忽大忽小;
2)运动状态的识别取决于计步的结果,若当前时刻没有计步,则没有运动状态输出,但在实际应用中,受限于传感器的采样率等因素,部分运动信息无法感应,计步算法可能出现误差。
技术实现要素:
有鉴于此,本发明的目的在于提供一种基于模糊逻辑的跑步状态识别方法,该一种基于模糊逻辑的跑步状态识别方法基于模糊逻辑理论,对一个窗口时间内的加速度计数据分析,利用窗口时间内的步频、步幅整体情况进行模糊推理,在保证实时性的同时,得到当前的运动状态并输出,为卡路里计算、跑步距离计算提供更准确的数据。
为了达到上述目的,本发明一种基于模糊逻辑的跑步状态识别方法的控制方法,其步骤如下:
1)以25hz采样加速度计数据:采用25hz采样频率充分考虑对运动的捕捉精细度和计算量之间的平衡,采集三轴加速度数据ax、ay、az;
2)根据三轴加速度数据计算合加速度:
3)对合加速度数据进行野值处理及滤波:判断野值的方法为:
其中a(i)为i时刻的合加速度,
若上述野值判断成立,则对当前时刻的值采用线性外推:
野值处理后,将外推估计的数据加入传感器序列中,再进行低通滤波以减小高频噪声:
其中,ak均为低通滤波器的参数,低通滤波器为基于汉明窗的fir(finiteimpulseresponse)滤波器,截止频率为10hz,-3db频率为5hz,阶数为25阶;
4)存储l长度的数据,差分,找到波峰和波谷:对l长度的所有数据分别求差分:
{adiff(i)}={a(i+1)-a(i)}
根据差分序列{adiff},查找波峰和波谷:
若adiff(i)=0,则当前时刻的值与上一个时刻相同,故既不是波峰也不是波谷;
若adiff(i)与adiff(i-1)符号不同,adiff(i)>0,则i时刻为波峰;adiff(i)<0,则i时刻为波谷;
5)去除伪波峰、伪波谷,得到波峰序列{apeak}、波谷序列{avalley}:判断伪波峰伪波谷的原理如下:
若当前波峰p1与其前面最近的波谷v1之间的幅度小于阈值t,则判断波峰为伪波峰,同时比较下一个波谷v2与v1的大小,v1与v2之间较大者为伪波谷;
若p1与之后的最近的波谷v2之间的幅度小于阈值t,则判断v2必然为伪波谷,比较下一个波峰p2,p1和p2较小者为伪波峰;
6)计算平均幅度
{d(i)}={apeak(i)-avalley(i)}
m为波峰的数量;
ti和ti-1为apeak(i)和apeak(i-1)对应的时间;
kf计算:
采用最小二乘原理,计算{f}的斜率:
7)各参数归一化:
其中,y表示
8)计算各参数隶属度:
其中,
9)模糊推理,得到当前运动状态。
进一步,在步骤8)和9)中,根据最大最小合成法则,即可得到当前的运动状态及其隶属度。
本发明的有益效果在于:
本发明一种基于模糊逻辑的跑步状态识别方法基于模糊逻辑理论,对一个窗口时间内的加速度计数据分析,利用窗口时间内的步频、步幅整体情况进行模糊推理,在保证实时性的同时,得到当前的运动状态并输出,为卡路里计算、跑步距离计算提供更准确的数据。
附图说明
为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:
图1为本发明一种基于模糊逻辑的跑步状态识别方法的控制原理图;
图2为本发明一种基于模糊逻辑的跑步状态识别方法中模糊逻辑推理规则表。
具体实施方式
下面将结合附图,对本发明的优选实施例进行详细的描述。
如图1所示为本发明一种基于模糊逻辑的跑步状态识别方法的控制原理图;如图2为本发明一种基于模糊逻辑的跑步状态识别方法中模糊逻辑推理规则表;本发明一种基于模糊逻辑的跑步状态识别方法,其步骤如下:
1)以25hz采样加速度计数据:采样可以基于智能终端或穿戴式设备,采用25hz采样频率充分考虑对运动的捕捉精细度和计算量之间的平衡,采集三轴加速度数据ax、ay、az。
2)根据三轴加速度数据计算合加速度:
3)对合加速度数据进行野值处理及滤波:判断野值的方法为:
野值处理的目的在于剔除明显异常的野值,判断野值的方法为:
其中a(i)为i时刻的合加速度,
若上述野值判断成立,则对当前时刻的值采用线性外推:
野值处理后,将外推估计的数据加入传感器序列中,再进行低通滤波以减小高频噪声:
其中,ak均为低通滤波器的参数,低通滤波器为基于汉明窗的fir(finiteimpulseresponse)滤波器,截止频率为10hz,-3db频率为5hz,阶数为25阶。
4)存储l长度的数据,差分,找到波峰和波谷:
对l长度的所有数据分别求差分:
{adiff(i)}={a(i+1)-a(i)}
根据差分序列{adiff},查找波峰和波谷:
若adiff(i)=0,则当前时刻的值与上一个时刻相同,故既不是波峰也不是波谷;
若adiff(i)与adiff(i-1)符号不同,adiff(i)>0,则i时刻为波峰;adiff(i)<0,则i时刻为波谷。
5)去除伪波峰、伪波谷,得到波峰序列{apeak}、波谷序列{avalley}:
判断伪波峰伪波谷的原理是:
若当前波峰p1与其前面最近的波谷v1之间的幅度小于阈值t,则判断波峰为伪波峰,同时比较下一个波谷v2与v1的大小,v1与v2之间较大者为伪波谷;
若p1与之后的最近的波谷v2之间的幅度小于阈值t,则判断v2必然为伪波谷,比较下一个波峰p2,p1和p2较小者为伪波峰。
6)计算平均幅度
{d(i)}={apeak(i)-avalley(i)}
m为波峰的数量(同时也是波谷的数量,因为波峰和波谷必然是交替出现的);
ti和ti-1为apeak(i)和apeak(i-1)对应的时间;
kf计算:
采用最小二乘原理,计算{f}的斜率:
7)各参数归一化
其中,y表示
8)计算各参数隶属度
其中,
9)模糊推理,得到当前运动状态:
输出为运动状态,模糊集合为{st,sw,w,qw,vw,sr,r,qr,vr,im},分别表示静止、慢走、走、快走、变速走、慢跑、跑、快跑、变速跑,不规则运动。
进一步,根据最大最小合成法则,即可得到当前的运动状态及其隶属度。
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。