一种数字测频中的数据处理方法和装置与流程

文档序号:12593193阅读:328来源:国知局
一种数字测频中的数据处理方法和装置与流程

本申请涉及电子测量领域,特别是涉及一种数字测频中的数据处理方法和装置。



背景技术:

睡眠检测仪可用于检测用户在睡眠过程中的身体状态,例如血氧浓度、脉搏速率、打鼾、胸腹运动等状态。其中,胸腹运动的状态是利用胸腹带所围面积的变化产生一个频率变化的方波脉冲,通过测量脉冲的频率获取用户的身体状态。

通常,数字测量脉冲频率的方法主要包括M法、T法和M/T法。其中,T法通常用于测量低频信号,而M法在原理上有可能会产生±1个被测脉冲周期的误差。由于睡眠检测仪产生的待测频率通常相对较高,且M/T法可以兼顾高低转速,并且综合了M法和T法的长处,因此,目前现常用M/T法实现脉冲频率的测量。

然而,由于单片机是串行执行指令的,因此,在使用M/T法测量脉冲频率的过程中,如果在获取当前脉冲个数之后,有一个脉冲的上升沿/下降沿到来,此时脉冲个数自动加1,但是这时获取的当前触发时间有可能还未发生变化,则会造成获取的当前脉冲个数与获取的当前触发时间不对应,导致测量结果存在一个脉冲的误差。



技术实现要素:

鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的数字测频中的数据处理方法和装置,能够提高测量脉冲频率的准确性。

本申请实施例公开了一种数字测频中的数据处理方法,所述方法包括:

连续两次分别从计数器中读取脉冲个数,以及从寄存器中读取触发时间;其中,所述计数器用于对所述脉冲个数进行计数,且在脉冲的上升沿或者下降沿到来时自动加1;所述触发时间为在脉冲的上升沿或者下降沿到来时获取的计时器时间;

通过对连续两次读取的脉冲个数和触发时间进行比对,确定当前脉冲个数和当前触发时间;

根据所述当前脉冲个数和当前触发时间计算得到脉冲频率。

另一方面,本申请实施例公开了一种数字测频中的数据处理装置,所述装置包括:

数值读取模块,用于连续两次分别从计数器中读取脉冲个数,以及从寄存器中读取触发时间;其中,所述计数器用于对所述脉冲个数进行计数,且在脉冲的上升沿或者下降沿到来时自动加1;所述触发时间为在脉冲的上升沿或者下降沿到来时获取的计时器时间;

运算模块,用于通过对连续两次读取的脉冲个数和触发时间进行比对,确定当前脉冲个数和当前触发时间;

频率计算模块,用于根据所述当前脉冲个数和当前触发时间计算得到脉冲频率。

本申请实施例包括以下优点:

本申请实施例在测量脉冲频率的过程中,连续两次读取计数器中的脉冲个数和寄存器中的触发时间,通过对连续两次读取的脉冲个数和触发时间进行比对,从两次读取的数值中确定正确的、相对应的当前脉冲个数和当前触发时间,进而可以计算得到准确的脉冲频率,提高脉冲测量的准确性。

附图说明

图1是本申请其中一个实施例的一种数字测频中的数据处理方法的步骤流程图;

图2是本申请的一种上升沿触发时刻示意图;

图3是本申请其中一个应用示例的一种数字测频中的数据处理流程示意图;

图4是本申请其中一个实施例的一种数字测频中的数据处理装置的结构框图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

为了解决在现有的使用M/T法测量脉冲频率的过程中,由于M/T法自身原理造成获取的当前脉冲个数与获取的当前触发时间不对应,导致当前脉冲计数和当前触发时间出现误差,从而影响最终频率的准确度。本申请实施例在使用M/T法测量脉冲频率的过程中,根据预设的裁决机制,对连续两次读取的脉冲个数和触发时间进行比对,从中选择正确的读取数据,进而保证脉冲频率测量的准确性。

参照图1,示出了本申请其中一个实施例的一种数字测频中的数据处理方法的步骤流程图,所述方法具体可以包括:

步骤101、连续两次分别从计数器中读取脉冲个数,以及从寄存器中读取触发时间;其中,所述计数器用于对所述脉冲个数进行计数,且在脉冲的上升沿或者下降沿到来时自动加1;所述触发时间为在脉冲的上升沿或者下降沿到来时获取的计时器时间;

本申请实施例可适应于呼吸机中风机转速的精确监测。

在具体应用中,采集脉冲个数与脉冲到来的触发时间的过程可由硬件完成,并且设定脉冲的上升沿/下降沿为触发方式,为便于描述,本申请中均以脉冲的上升沿触发为例。例如,可设置计数器用于对所述脉冲个数进行计数,且在脉冲的上升沿到来时自动加1;以及设置计时器用于持续计时,并且在脉冲的上升沿到来、计数器自动加1的同时,捕获所述计时器的时间,记为触发时间,保存在寄存器中。

步骤102、通过对连续两次读取的脉冲个数和触发时间进行比对,确定当前脉冲个数和当前触发时间;

本申请实施例在测量过程中,连续两次读取计数器中的脉冲个数和寄存器中的触发时间,通过对连续两次读取的脉冲个数和触发时间进行比对,从中选择出正确的、相对应的当前脉冲个数和当前触发时间,以计算得到准确的脉冲频率。

具体地,本申请实施例可以提供如下四种通过对连续两次读取的脉冲个数和触发时间进行比对,确定当前脉冲个数和当前触发时间的可选方案。

方案一

若第一次读取的脉冲个数和第二次读取的脉冲个数不相等,且第一次读取的触发时间和第二次读取的触发时间相等,则确定当前脉冲个数为第二次读取的脉冲个数,以及确定当前触发时间为第一次读取的触发时间或者第二次读取的触发时间。

在本申请实施例中,假设第一次读取的脉冲个数和触发时间分别为n1、t1,第二次读取的脉冲个数和触发时间分别为n2、t2。在连续读取上述n1、t1、n2、t2这四个数值的过程中,有可能发生如下情况:在从计数器中读取n1的动作完成的同时或者完成之后,由于待测频率较高,在将捕获的计时器时间存入寄存器之前,有一个脉冲的上升沿到来,也即,在图2中①所示的位置发生了上升沿触发,参照图2,示出了本申请的一种上升沿触发时刻示意图。此时,计数器自动加1,但是寄存器中的触发时间还未发生变化。例如,第一次读取的n1为1000,t1为0.1s,第二次读取的n2为1001,t2仍为0.1s,可以看出,1001为准确的当前脉冲个数。因此,在这种情况下,可以确定当前脉冲个数为第二次读取的脉冲个数(n2),由于两次读取的触发时间相等,因此,可以确定当前触发时间为第一次读取的触发时间(t1)或者第二次读取的触发时间(t2)。

方案二

若第一次读取的脉冲个数和第二次读取的脉冲个数不相等,且第一次读取的触发时间和第二次读取的触发时间不相等,则确定当前脉冲个数为第一次读取的脉冲个数,以及确定当前触发时间为第一次读取的触发时间;或者,确定当前脉冲个数为第二次读取的脉冲个数,以及确定当前触发时间为第二次读取的触发时间。

在实际应用中,在连续读取上述n1、t1、n2、t2这四个数值的过程中,还有可能发生如下情况:在图2中②所示的位置发生上升沿触发,也即,在第一次从计数器中读取n1、从寄存器中读取t1的动作完成的同时或者完成之后,以及在第二次从计数器中读取n2之前,有一个脉冲的上升沿到来。此时,计数器自动加1,并且将捕获的计时器时间存入寄存器。例如,第一次读取的n1为1000,t1为0.1s,第二次读取的n2为1001,t2为0.13s。在这种情况下,第一次读取的n1和t1之间是相对应的,并且第二次读取的n2和t2之间也是相对应的。因此,在计算脉冲频率时,取第一次读取的n1、t1或者取第二次读取的n2、t2都可以得到准确的脉冲频率。

方案三

若第一次读取的脉冲个数和第二次读取的脉冲个数相等,且第一次读取的触发时间和第二次读取的触发时间不相等,则确定当前脉冲个数为第一次读取的脉冲个数或者第二次读取的脉冲个数,以及确定当前触发时间为第一次读取的触发时间。

在实际应用中,在连续读取上述n1、t1、n2、t2这四个数值的过程中,还有可能发生如下情况:在图2中③所示的位置发生上升沿触发,也即,在第一次从计数器中读取n1、从寄存器中读取t1、第二次从计数器中读取n2的动作完成的同时或者完成之后,以及第二次从寄存器中读取t2之前,有一个脉冲的上升沿到来。例如,第一次读取的n1为1000,t1为0.1s,第二次读取的n2为1000,此时有一个脉冲的上升沿到来,触发计数器自动加1,并且将捕获的计时器时间存入寄存器,则第二次读取的t2为0.13s。在这种情况下,第一次读取的n1和t1之间是相对应的,而第二次读取的n2和t2之间不对应。因此,可以确定当前脉冲个数为第一次读取的脉冲个数(n1)或者第二次读取的脉冲个数(n2),以及确定当前触发时间为第一次读取的触发时间(t1)。

方案四

若第一次读取的脉冲个数和第二次读取的脉冲个数相等,且第一次读取的触发时间和第二次读取的触发时间相等,则确定当前脉冲个数为第一次读取的脉冲个数或者第二次读取的脉冲个数,以及确定当前触发时间为第一次读取的触发时间或者第二次读取的触发时间。

在实际应用中,在连续读取上述n1、t1、n2、t2这四个数值的过程中,还有可能发生如下情况:在图2中④所示的位置发生上升沿触发,也即,在在连续读取上述n1、t1、n2、t2这四个数值的动作完成的同时或者完成之后,有一个脉冲的上升沿到来。在这种情况下,由于在连续读取上述n1、t1、n2、t2这四个数值的过程中,没有脉冲的上升沿到来,因此,在读取四个数值的过程中,不会触发计数器加1操作,以及捕获计时器时间存储到寄存器的操作,因此,n1必然等于n2,并且t1等于t2。在这种情况下,第一次读取的n1和t1之间是相对应的,第二次读取的n2和t2之间也是相对应的,在计算脉冲频率时,取第一次读取的n1、t1或者取第二次读取的n2、t2都可以得到准确的脉冲频率。

参照表1,示出了本申请上述四种方案确定当前脉冲个数和当前触发时间的具体示意。其中,n为确定的当前脉冲个数,t为确定的当前触发时间。

表1

步骤103、根据所述当前脉冲个数和当前触发时间计算得到脉冲频率。

在本申请实施例中,在连续两次读取计数器中的脉冲个数和寄存器中的触发时间n1、t1、n2、t2之后,通过对n1、t1、n2、t2进行比对,可以按照表1所示的确定方式,从n1、t1、n2、t2中选择出正确的、相对应的当前脉冲个数(n)和当前触发时间(t),以计算得到准确的脉冲频率。

具体地,所述根据所述当前测量的脉冲个数和当前的触发时间计算得到脉冲频率的步骤,可以包括:

步骤S11、获取上一次脉冲个数和上一次触发时间;

步骤S12、确定当前脉冲个数与上一次脉冲个数的第一差值;

步骤S13、确定当前触发时间与上一次触发时间的第二差值;

步骤S14、通过计算所述第一差值与第二差值的比值,得到脉冲频率。

其中,上一次脉冲个数记为nbefore,上一次触发时间记为tbefore,则可以通过如下公式计算得到脉冲频率f:

可以理解,在实际应用中,测量脉冲频率的过程可以是一个持续测量的过程,计数器中的脉冲个数以及寄存器中的触发时间不断累加,通过两次获取的脉冲个数的差值与触发时间的差值的比值可以计算得到脉冲频率,其中,上述nbefore和tbefore可以采用上述确定n和t的方式得到。

参照图3,示出了本申请其中一个应用示例的一种数字测频中的数据处理流程示意图,具体可以包括:

步骤S31、从计数器中读取脉冲个数n1,从寄存器中读取触发时间t1

步骤S32、从计数器中读取脉冲个数n2,从寄存器中读取触发时间t2

步骤S33、分别比较n1和n2,以及t1和t2是否相等;当n1等于n2且t1等于t2,或者,n1不等于n2且t1不等于t2时,执行步骤S34;当n1不等于n2且t1等于t2,或者,n1等于n2且t1不等于t2时,执行步骤S35;

步骤S34、针对图2中③、④位置做统一处理,确定n等于n1,t等于t1;或者,确定n等于n2,t等于t2;执行步骤S36;

步骤S35、确定n等于n2,t等于t1,执行步骤S36;

步骤S36、根据公式计算得到脉冲频率;

步骤S37、将当前脉冲个数n与当前触发时间t赋值给nbefore和tbefore,用于下次求频。

综上,本申请实施例在测量脉冲频率的过程中,连续两次读取计数器中的脉冲个数和寄存器中的触发时间,通过对连续两次读取的脉冲个数和触发时间进行比对,从两次读取的数值中确定正确的、相对应的当前脉冲个数和当前触发时间,进而可以计算得到准确的脉冲频率,提高脉冲测量的准确性。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

参照图4,示出了本申请其中一个实施例的一种数字测频中的数据处理装置的结构框图。在本申请实施例中,所述装置具体可以包括:

数值读取模块401,用于连续两次分别从计数器中读取脉冲个数,以及从寄存器中读取触发时间;其中,所述计数器用于对所述脉冲个数进行计数,且在脉冲的上升沿或者下降沿到来时自动加1;所述触发时间为在脉冲的上升沿或者下降沿到来时获取的计时器时间;

运算模块402,用于通过对连续两次读取的脉冲个数和触发时间进行比对,确定当前脉冲个数和当前触发时间;

频率计算模块403,用于根据所述当前脉冲个数和当前触发时间计算得到脉冲频率。

在本申请的一种可选实施例中,所述运算模块402具体用于若第一次读取的脉冲个数和第二次读取的脉冲个数不相等,且第一次读取的触发时间和第二次读取的触发时间相等,则确定当前脉冲个数为第二次读取的脉冲个数,以及确定当前触发时间为第一次读取的触发时间或者第二次读取的触发时间。

在本申请的另一种可选实施例中,所述运算模块402具体还用于若第一次读取的脉冲个数和第二次读取的脉冲个数不相等,且第一次读取的触发时间和第二次读取的触发时间不相等,则确定当前脉冲个数为第一次读取的脉冲个数,以及确定当前触发时间为第一次读取的触发时间;或者,确定当前脉冲个数为第二次读取的脉冲个数,以及确定当前触发时间为第二次读取的触发时间。

在本申请的又一种可选实施例中,所述运算模块402具体还用于若第一次读取的脉冲个数和第二次读取的脉冲个数相等,且第一次读取的触发时间和第二次读取的触发时间不相等,则确定当前脉冲个数为第一次读取的脉冲个数或者第二次读取的脉冲个数,以及确定当前触发时间为第一次读取的触发时间。

在本申请的再一种可选实施例中,所述运算模块402具体还用于若第一次读取的脉冲个数和第二次读取的脉冲个数相等,且第一次读取的触发时间和第二次读取的触发时间相等,则确定当前脉冲个数为第一次读取的脉冲个数或者第二次读取的脉冲个数,以及确定当前触发时间为第一次读取的触发时间或者第二次读取的触发时间。

在本申请的再一种可选实施例中,所述频率计算模块,具体可以包括:

获取子模块,用于获取上一次脉冲个数和上一次触发时间;

第一差值计算子模块,用于确定当前脉冲个数与上一次脉冲个数的第一差值;

第二差值计算子模块,用于确定当前触发时间与上一次触发时间的第二差值;

频率计算子模块,用于通过计算所述第一差值与第二差值的比值,得到脉冲频率。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制

以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

以上对本申请所提供的一种数字测频中的数据处理方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1