本发明涉及计算机技术领域,具体而言,涉及一种脉搏率快速计算方法及装置。
背景技术:
随着电子电路的发展以及单片机控制器性能的提高,由传统模拟电路或者复杂逻辑电路构成的控制系统逐渐被以单片机为核心的控制系统所取代。在一定的应用场合,需要实时查看脉搏脉冲波形以及脉搏率(每分钟脉搏数,以下简称脉搏率),需要单片机完成脉搏信号的采集、计算、处理、传送给显示屏显示等操作。由于显示屏与单片机直接电性连接,显示屏的实时刷新比较占用单片机的系统机时,可能会造成单片机机时不足。
若涉及到脉搏信号波形中大量数据的处理运算,按照现有的脉搏率计算方法,单片机运行起来非常吃力,可能导致采集任务处理的延时,脉搏波形采样点数变少,显示屏显示的不再是一个脉搏周期,采样时间间隔相比于原来增大了。由此,在统计脉搏率时,容易导致计算错误,增加了单片机处理任务的负担。
技术实现要素:
为了克服现有技术中的上述不足,本发明提供一种脉搏率快速计算方法及装置,其能够避免在面临大量数据采集和显示任务时,无法实时采集脉搏数据,从而使脉搏率计算失效。
本发明实施例提供一种脉搏率快速计算方法,所述方法包括:
单片机依据预先设置的人体脉搏频率范围、对脉搏信号进行采样的采样频率以及搜索范围公式集计算得到采样点搜索范围的采集数;
所述单片机基于所述采样点搜索范围的采集数对单片机的缓冲区中保存的脉搏波形数据的采样点进行搜索,得到一个周期的脉搏波形所包括的采样点点数;
所述单片机基于预设的脉搏率计算公式、采样时间间隔及所述一个周期的脉搏波形所包括的采样点点数计算得到脉搏率。
本发明实施例还提供一种脉搏率快速计算装置,所述装置包括:
采集数计算模块,用于依据预先设置的人体脉搏频率范围、对脉搏信号进行采样的采样频率以及搜索范围公式集计算得到采样点搜索范围的采集数;
搜索模块,用于基于所述采样点搜索范围的采集数对单片机的缓冲区中保存的脉搏波形数据的采样点进行搜索,得到一个周期的脉搏波形所包括的采样点点数;
脉搏率计算模块,用于基于预设的脉搏率计算公式、采样时间间隔及所述一个周期的脉搏波形所包括的采样点点数计算得到脉搏率。
相对于现有技术而言,本发明具有以下有益效果:
本发明实施例提供的一种脉搏率快速计算方法及装置,通过单片机依据预先设置的人体脉搏频率范围、对脉搏信号进行采样的采样频率以及搜索范围公式集计算得到采样点搜索范围的采集数。单片机基于所述采样点搜索范围的采集数对单片机的缓冲区中保存的脉搏波形数据的采样点进行搜索,得到一个周期的脉搏波形所包括的采样点点数。单片机基于预设的脉搏率计算公式、采样时间间隔及所述一个周期的脉搏波形所包括的采样点点数计算得到脉搏率。由此,在单片机机时不足时,能够对脉搏率进行快速计算,即使有大量数据采集和显示任务时,也能实时采集脉搏信号数据,避免计算错误,减轻了单片机处理任务的负担。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明较佳实施例提供的脉搏测量系统的方框示意图。
图2是本发明较佳实施例提供的单片机的方框示意图。
图3是本发明较佳实施例提供的脉搏率快速计算方法的步骤流程图。
图4为本发明较佳实施例提供的图3中步骤S140包括的子步骤的流程示意图。
图5为本发明较佳实施例提供的图3中步骤S150包括的子步骤的流程示意图。
图6为本发明较佳实施例提供的脉搏波形示意图。
图7为本发明较佳实施例提供的图3中步骤S160包括的子步骤的流程示意图。
图8是本发明较佳实施例提供的脉搏率快速计算方法的另一种步骤流程图。
图9是本发明较佳实施例提供的脉搏率快速计算装置的功能模块框图。
图标:10-脉搏测量系统;100-单片机;110-存储器;120-处理器;130-网络模块;140-转换器;200-显示屏;300-传感器;400-脉搏率快速计算装置;410-获取模块;420-保存模块;430-均值计算模块;440-采集数计算模块;450-搜索模块;460-脉搏率计算模块;470-判断模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参阅图1,图1是本发明较佳实施例提供的脉搏测量系统10的方框示意图。所述脉搏测量系统10包括相互电性连接的单片机100、显示屏200及传感器300。传感器300对人体的脉搏进行测量并采集脉搏信息,传感器300再将采集的脉搏信息传输给单片机100进行计算、处理。单片机100将经过计算、处理的脉搏信息发送给显示屏200进行显示。
在本实施例中,显示屏200优选采TFT(Thin Film Transistor,薄膜晶体管)液晶显示屏。TFT显示屏的每个液晶像素点都是由集成在像素点后面的薄膜晶体管来驱动,从而具有高速度、高亮度、高对比度等优点。TFT显示屏应用广泛,是各类笔记本电脑和台式机上的主流显示设备。
在本实施例中,传感器300可以是,但不限于,红外传感器、声敏传感器、压电传感器等。优选采用压电传感器,压电传感器是利用某些电介质受力后产生的压电效应制成的传感器。所谓压电效应是指某些电介质在受到某一方向的外力作用而发生形变(包括弯曲和伸缩形变)时,由于内部电荷的极化现象,会在其表面产生电荷的现象。
请参阅图2,图2是本发明较佳实施例提供的单片机100的方框示意图。包括存储器110、处理器120、网络模块130、转换器140及脉搏率快速计算装置400。
所述存储器110、处理器120、网络模块130及转换器140相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通信总线或信号线实现电性连接。存储器110中存储有脉搏率快速计算装置400,所述脉搏率快速计算装置400包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块,所述处理器120通过运行存储在存储器110内的软件程序以及模块,从而执行各种功能应用以及数据处理。
其中,所述存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器110用于存储程序,所述处理器120在接收到执行指令后,执行所述程序。进一步地,上述存储器110内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
所述处理器120可以是一种集成电路芯片,具有信号的处理能力。上述的处理器120可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述网络模块130用于建立单片机100与显示屏200及传感器300之间的通信连接,实现脉搏信号及数据的收发操作。
所述转换器140可以是ADC(Analog to Digital Converter,A/D转换器即模/数转换器)。真实世界的模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。模/数转换器就是将连续变化的模拟信号转换为离散的数字信号的器件。
可以理解,图2所述的结构仅为示意,单片机100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
第一实施例
请参阅图3,图3是本发明较佳实施例提供的脉搏率快速计算方法的步骤流程图。所述方法应用于单片机100,尤其是机时不足的单片机100。在本实施例中,机时不足指的是:由于单片机100需要完成人体脉搏模拟/数字信号转换的数据采集、对采集的数据进行计算处理以及将处理后的数据信息传送给显示屏200显示等工作,若信号波形中有大量数据处理运算,可能导致单片机100机时不足,ADC采集任务的延时。
下面对脉搏率快速计算方法具体流程进行详细阐述。
步骤S140,单片机100依据预先设置的人体脉搏频率范围、对脉搏信号进行采样的采样频率以及搜索范围公式集计算得到采样点搜索范围的采集数。
在本实施例中,单片机100通过计算得到的所述采样点搜索范围的采集数为估计值。所述采样点搜索范围的采集数包括第一搜索范围采集数及第二搜索范围采集数,所述搜索范围公式集包括第一搜索公式及第二搜索公式。
请参阅图4,图4为本发明较佳实施例提供的图3中步骤S140包括的子步骤的流程示意图,所述步骤S140可以包括子步骤S141及子步骤S142。
子步骤S141,依据预先设置的人体脉搏频率范围、对脉搏信号进行采样的采样频率及所述第一搜索公式计算得到所述第一搜索范围采集数。
在本实施例中,所述预先设置的人体脉搏频率范围指的是人体脉搏的正常范围是55-100次/分,按照频率,大约在0.917Hz-1.666Hz之间。所述对脉搏信号进行采样的采样频率通常设置为200Hz,即每5ms采集一个采样点。所述第一搜索公式包括:
Nmin=(1/Fmax)*采样频率;
Nmax=(1/Fmin)*采样频率。
在本实施例中,Fmax表示所述预先设置的人体脉搏频率范围的最高频率,Fmin表示所述预先设置的人体脉搏频率范围的最低频率。Nmin表示当选择最高频率Fmax进行计算时,一个周期脉搏波形所占用最小采样点点数,Nmax表示当选择最低频率Fmin进行计算时,一个周期脉搏波形所占用最大采样点点数。其中,所述Fmax、Fmin、Nmin及Nmax的值均为计算估计值。下面通过举例进行详细说明。
预先设置的人体脉搏频率范围大约在0.917Hz-1.666Hz之间,所述对脉搏信号进行采样的采样频率为200Hz。单片机100选择最高频率Fmax为2Hz(约120次/分),则一个周期脉搏波形所占用最小采样点点数为:
Nmin=(1/Fmax)*200=(1/2)*200=100;
单片机100选择最低频率Fmin为0.8Hz(约48次/分),则一个周期脉搏波形所占用最大采样点点数为:
Nmax=(1/Fmin)*200=(1/0.8)*200=250;
要保证能搜索到脉搏波形在一个周期内的波峰及波谷,由此所述第一搜索范围采集数大于或等于Nmax,在此,所述第一搜索范围采集数优选为260点。
子步骤S142,依据所述第一搜索范围采集数及第二搜索公式计算得到所述第二搜索范围采集数。
在本实施例中,所述第二搜索公式包括:
Smin=1/2*Nmin;
Smax=(1+1/2)*Nmin。
其中,Smin表示最小搜索采样点点数,Smax表示最大搜索采样点点数。Smin及Smax均为计算估计值。
在本实施例中,计算所述第二搜索范围采集数的选取原则如下:
(1)搜索范围内必须出现一个最小值(脉搏波形的波谷)或者最大值(脉搏波形的波峰)采样点;
(2)搜索范围内有且只有一个最小值或者最大值采样点(即不能同时出现两个波谷或两个波峰)。
基于上述原则,单片机100选取最高频率Fmax为2Hz,Nmin为100,为搜索到最小值采样点,则最小搜索采样点点数Smin=1/2*Nmin=50,最大搜索采样点点数Smax=(1+1/2)*Nmin=150。同理,单片机100选取最低频率Fmin为0.8Hz,Nmax为260,为搜索到最小值采样点,则最小搜索采样点点数Smin=1/2*Nmax=130,最大搜索采样点点数Smax=(1+1/2)*Nmax=390。综合上述两种情况,所述第二搜索范围采集数(S)应同时满足:S>130,S<150,所述第二搜索范围采集数优选为140点。
步骤S150,单片机100基于所述采样点搜索范围的采集数对单片机100的缓冲区中保存的脉搏波形数据的采样点进行搜索,得到一个周期的脉搏波形所包括的采样点点数。
请参阅图5,图5为本发明较佳实施例提供的图3中步骤S150包括的子步骤的流程示意图,所述步骤S150可以包括子步骤S151、子步骤S152、子步骤S153及子步骤S154。
请参阅图6,图6为本发明较佳实施例提供的脉搏波形示意图。在本实施例中,采用二维坐标系表示脉搏波形,脉搏波形每个采样点的横坐标x可以表示采集次数,纵坐标y可以表示电压、电位等,纵坐标y用于在搜索中比较值的大小,以得到脉搏波形的波峰及波谷。
子步骤S151,以输入数组(IN[n])中的第一个输入数组元素(IN[0])为起始点,并基于所述第一搜索范围采集数(260)得到在所述输入数组(IN[n])中进行搜索的第一搜索范围,在所述第一搜索范围内搜索距离所述第一个输入数组元素(IN[0])最近的输入数组元素值最大的第一最大输入数组元素(即脉搏波形的波峰点P1(x1,y1))。
在本实施例中,所述第一搜索范围的采样点点数值为260,即以所述第一个输入数组元素(IN[0])为起点依次搜索260个点。在本实施例中,以所述第一个输入数组元素(IN[0])为起始点,沿输入数组(IN[n])下标值n递增的顺序依次搜索,找到距离IN[0]最近的第一个输入数组元素值(y)最大的第一最大输入数组元素(波峰P1(x1,y1))。
子步骤S152,以所述第一最大输入数组元素P1(x1,y1)为起始点,并基于所述第二搜索范围采集数得到在所述输入数组中进行搜索的第二搜索范围,在所述第二搜索范围内搜索得到输入数组元素值最小的第一最小输入数组元素(即脉搏波形的波谷点P2(x2,y2))。
请再次参阅图6,所述第二搜索范围的采样点点数值为140,即以所述第一最大输入数组元素P1(x1,y1)为起点依次搜索140个点。在本实施例中,以所述第一最大输入数组元素P1(x1,y1)为起始点,沿输入数组(IN[n])下标值n递增的顺序依次搜索,找到输入数组元素值(y)最小的第一最小输入数组元素(波谷P2(x2,y2))。
子步骤S153,以所述第一最小输入数组元素P2(x2,y2)为起始点,并基于所述第二搜索范围采集数得到在所述输入数组中进行搜索的第三搜索范围,在所述第三搜索范围内搜索得到输入数组元素值最大的第二最大输入数组元素(即波峰点P3(x3,y3))。
请再次参阅图6,所述第二搜索范围的采样点点数值为140,即以所述第一最小输入数组元素P2(x2,y2)为起点依次搜索140个点。在本实施例中,以所述第一最小输入数组元素P2(x2,y2)为起始点,沿输入数组(IN[n])下标值n递增的顺序依次搜索,找到输入数组元素值(y)最大的第二最大输入数组元素(波峰P3(x3,y3))。
子步骤S154,基于所述第一最大输入数组元素P1及第二最大输入数组元P3得到一个周期的脉搏波形所包括的采样点点数。
在本实施例中,基于所述第一最大输入数组元素P1的横坐标x1及第二最大输入数组元P3的横坐标x3得到一个周期的脉搏波形所包括的采样点点数:x3-x1+1。
步骤S160,单片机100基于预设的脉搏率计算公式、采样时间间隔及所述一个周期的脉搏波形所包括的采样点点数计算得到脉搏率。
请参阅图7,图7为本发明较佳实施例提供的图3中步骤S160包括的子步骤的流程示意图,所述步骤S160可以包括子步骤S161及子步骤S162。
子步骤S161,单片机100将所述一个周期的脉搏波形所包括的采样点点数与所述采样时间间隔相乘得到脉搏采样周期。
在本实施例中,脉搏周期(单位ms)=一个周期的脉搏波形所包括的采样点点数*采样时间间隔=(x3-x1+1)*5。其中,依据所述对脉搏信号进行采样的采样频率为200Hz,所述采样时间间隔为5ms。
子步骤S162,单片机100将所述脉搏采样周期带入到所述预设的脉搏率计算公式中进行计算得到脉搏率,并将所述脉搏率保存到所述缓冲区预先设定的输出数组OUT[m]中。
在本实施例中,将每次计算得到的所述脉搏率按照计算的先后顺序分别保存到所述输出数组OUT[m]的各个输出数组元素中。例如:第一次计算得到的脉搏率保存到OUT[0]中,第二次计算得到的脉搏率保存到OUT[1]中,以此类推。所述预设的脉搏率计算公式:脉搏率(单位:次/分)=[1000ms/(脉搏周期(单位ms))]*60。
请参阅图8,图8是本发明较佳实施例提供的脉搏率快速计算方法的另一种步骤流程图。所述方法除上述步骤之外还包括:
步骤S110,单片机100获取与所述单片机100电性连接的显示屏200的参数规格。
在本实施例中,显示屏200优选采用TFT点阵液晶屏,点阵是为集中反映晶体结构的周期性而引入的一个概念。一个点阵可以还原为一系列平行的阵点行列(简称阵列),或一系列的平行的阵点平面(简称阵面)。在下面的步骤中以320×280点阵为例进行说明。
步骤S120,单片机100根据显示屏200的参数规格获取预设数量的采样点数据并保存到所述单片机100的缓冲区中预先设定的输入数组(IN[n]),将各个采样点按照采样的先后顺序分别保存到所述输入数组的各个输入数组元素中。
在本实施例中,预先设置保存在所述缓冲区中的预设数量的采样点点数为n。以本实施例选用的320×280点阵TFT液晶屏为例,为了保证脉搏率计算的稳定性,n取值为320的整数倍,在此取为640点,即设定一个640字长的输入数组:IN[640]。其中,所述输入数组元素中保存的值对应为每个采样点的纵坐标y。
步骤S130,单片机100计算所述输入数组中各个输入数组元素所保存的数据均值。
在本实施例中,由于实时脉搏波形会收到人体电磁信号,人体抖动以及外界环境等影响,会产生缓慢的基线漂移信号和随机的脉冲信号,会给脉搏率的计算带来较大的干扰,在此需要取一个基线值,即缓冲区内输入数组IN[640]保存的数据(纵坐标y对应的值)平均值(Average)。并对最大值(Max)和最小值(Min)赋初值,即Max=Min=Average。在搜索过程中,所述最大值(Max)用于保存每次通过比较脉搏波形采样点的纵坐标y所得到的较大的值,以找到脉搏波形的波峰点;所述最小值(Min)用于保存每次通过比较脉搏波形采样点的纵坐标y所得到的较小的值,以找到脉搏波形的波谷点。
步骤S170,单片机100判断脉搏率计算次数是否超过所述输出数组预设的上限数。
在本实施例中,所述预设的上限数是指所述输出数组OUT[m]预设的输入数组元素个数,优选设置为5次,即OUT[0]-OUT[4]。
在本实施例中,当脉搏率计算次数未超过所述输出数组预设的上限数5次时,执行步骤S120。当所述脉搏率计算次数超过5次时,执行步骤S175。
步骤S175,单片机100对所述输出数组保存的全部脉搏率进行均值计算,得到最终输出脉搏率。
在本实施例中,单片机100计算输出数组OUT[m]保存的全部脉搏率的均值:(OUT[0]+OUT[1]+OUT[2]+OUT[3]+OUT[4])/5,该值为滤波平滑后的脉搏率,所述均值用过单片机100传输给显示屏200进行显示。
第二实施例
请参阅图9,图9是本发明较佳实施例提供的脉搏率快速计算装置400的功能模块框图。所述装置包括:
获取模块410,用于获取与所述单片机100电性连接的显示屏200的参数规格。
在本实施例中,所述获取模块410用于执行图8中的步骤S110,关于所述获取模块410的具体描述可以参照步骤S110的描述。
保存模块420,用于根据显示屏200的参数规格获取预设数量的采样点数据并保存到所述单片机100的缓冲区中预先设定的输入数组,将各个采样点按照采样的先后顺序分别保存到所述输入数组的各个输入数组元素中。
在本实施例中,所述保存模块420用于执行图8中的步骤S120,关于所述保存模块420的具体描述可以参照步骤S120的描述。
均值计算模块430,用于计算所述输入数组中各个输入数组元素所保存的数据均值。
在本实施例中,所述均值计算模块430用于执行图8中的步骤S130,关于所述均值计算模块430的具体描述可以参照步骤S130的描述。
采集数计算模块440,用于依据预先设置的人体脉搏频率范围、对脉搏信号进行采样的采样频率以及搜索范围公式集计算得到采样点搜索范围的采集数。
在本实施例中,所述采集数计算模块440用于执行图8中的步骤S140,关于所述采集数计算模块440的具体描述可以参照步骤S140的描述。
搜索模块450,用于基于所述采样点搜索范围的采集数对单片机100的缓冲区中保存的脉搏波形数据的采样点进行搜索,得到一个周期的脉搏波形所包括的采样点点数。
在本实施例中,所述搜索模块450用于执行图8中的步骤S150,关于所述搜索模块450的具体描述可以参照步骤S150的描述。
脉搏率计算模块460,用于基于预设的脉搏率计算公式、采样时间间隔及所述一个周期的脉搏波形所包括的采样点点数计算得到脉搏率。
在本实施例中,所述脉搏率计算模块460用于执行图8中的步骤S160,关于所述脉搏率计算模块460的具体描述可以参照步骤S160的描述。
判断模块470,用于判断脉搏率计算次数是否超过输出数组预设的上限数。
在本实施例中,所述输出数组预先设定在所述单片机100的缓冲区中。所述判断模块470用于执行图5中的步骤S170,关于所述判断模块470的具体描述可以参照步骤S170的描述。
所述判断模块470,还用于当所述脉搏率计算次数超过所述输出数组预设的上限数时,对所述输出数组保存的全部脉搏率进行均值计算,得到最终输出脉搏率。
在本实施例中,所述判断模块470还用于执行图8中的步骤S175,关于所述判断模块470的具体描述可以参照步骤S175的描述。
综上所述,本发明实施例提供的一种脉搏率快速计算方法及装置,通过单片机计算得到采样点搜索范围的采集数。基于采样点搜索范围的采集数对单片机的缓冲区中保存的脉搏波形数据的采样点进行搜索,得到一个周期的脉搏波形所包括的采样点点数。基于预设的脉搏率计算公式、采样时间间隔及所述一个周期的脉搏波形所包括的采样点点数计算得到脉搏率。由此,在单片机机时不足时,能够对脉搏率进行快速计算,即使有大量数据采集和显示任务时,也能实时采集脉搏信号数据,避免计算错误,减轻了单片机处理任务的负担。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。