脉搏波非典型波峰波谷的识别方法转让专利

申请号 : CN201110161082.4

文献号 : CN102247129B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曾祥云赵连锋袁念德蔡觉平

申请人 : 西安电子科技大学

摘要 :

本发明公开了一种识别脉搏波信号中的不规则峰谷的方法,属脉搏波信号识别技术领域,对输入的一段脉搏波信号识别并提取其中的一个典型脉搏波周期;截取典型周期中下降支部分的数据,进行纵坐标变换,使原来呈阶梯型的非典型峰谷变换为典型的峰谷,进而识别变换后数据的极大、极小值的位置;最后,针对变换前的数据,对识别的极大值位置进行修正,对最终识别的脉搏波波峰、波谷位置加以标识并输出,以便分析。本发明解决了脉象分析仪器对非典型波峰、波谷的漏识、误识问题,能够有效识别“台阶形”非典型波峰波谷,特别适用于现有脉象分析设备中,且不需改装或添加新硬件设备。

权利要求 :

1.一种脉搏波非典型波峰波谷的识别方法,其特征在于:非典型波峰波谷的识别,包括如下步骤:A.输入一段脉搏波数据,该数据包含的脉搏波周期不少于3个;

B.识别并提取一个脉搏波典型周期;

C.对该典型周期的下降支部分的数据进行纵坐标变换:将原数据点(ti,hi)的纵坐标hi变换为hhi=hi-(l-ti)(H-h)/(l-T),式中l为脉搏波周期的长度,H为脉搏波最大幅度,T为脉搏波幅度最大处的横坐标值,h为脉搏波数据终止处的纵坐标值,此变换消除了下降支数据整体的下降趋势,使原来呈阶梯型的非典型峰谷变换为典型的峰谷;

D.识别纵坐标变换后脉搏波下降支部分的波峰波谷位置,其中识别到的波谷位置就是波谷位置识别的最终结果,识别到的波峰位置还需要经过步骤E的修正;识别纵坐标变换后脉搏波下降支部分的波峰波谷位置的方法,包括如下步骤:

3.1.令s=T+start,s0=scale,scale=round(0.05f0),式中f0为脉搏传感器的采样频率,函数round(x)表示对x四舍五入取整,T为脉搏波幅度最大处的横坐标值,start≥scale;

3.2.针对变换后的数据,比较第s个数据点的纵坐标与其前的(s0-1)个数据和其后的(s0-1)个数据纵坐标的大小,若该数据的纵坐标是最小值,则记录此时的s值作为识别到的一个极小值,若该数据的纵坐标是最大值,则记录此时的s值作为识别到的一个极大值;

3.3.令s=s+1;

3.4.若s<N′-T-start-1,式中N′表示识别的脉搏波典型周期的长度,则重复步骤

3.2,否则进行步骤3.5;

3.5.步骤3.2中所有依次记录的极小值构成一个序列MIN作为波谷位置识别的最终结果输出,所有依次记录的极大值构成一个序列MAX备后续步骤使用; E.针对纵坐标变换前的数据,对识别的波峰位置进行修正,得到对波峰位置识 别的最终结果,对识别的波峰位置的修正,包括如下步骤:

4.1针对原始数据,比较以识别出的极大值序列MAX的各点MAXi为横坐标的数据幅值与横坐标为(MAXi-1)的数据的幅值的大小,如果横坐标为MAXi的数据的幅值小,则修正MAXi=MAXi-1并进行步骤4.2,否则进行步骤4.4;

4.2比较横坐标为MAXi的数据的幅值与横坐标为(MAXi-1)的数据的幅值;

4.3如果横坐标为MAXi的数据的幅值小,则修正MAXi=MAXi-1,进行步骤4.2,否则,进行步骤4.4;

4.4输出MAXi为对波峰位置识别的最终结果。

2.根据权利要求1所述的脉搏波非典型波峰波谷的识别方法,其特征在于:步骤B所述的脉搏波典型周期的识别提取方法,包括如下步骤:

2.1.令n=n0,n0=round(0.4f0),式中f0为脉搏传感器的采样频率,函数round(x)表示对x四舍五入取整;

2.2.比较第n个数据点的纵坐标与其前的(n0-1)个数据和其后的(n0-1)个数据纵坐标的大小,若该数据的纵坐标是最小值,则记录此时的n值,然后令n=n+jump,jump=round(0.3f0),式中f0为脉搏传感器的采样频率,函数round(x)表示对x四舍五入取整,否则令n=n+1;

2.3.若n<N-n0-1,则重复步骤2.2,否则进行步骤2.4,式中N表示输入的原始脉搏数据点总个数;

2.4.步骤2.2中所有依次记录的n值构成一个序列ARRAY,计算该序列的向前差分DFF;

2.5.求序列DFF的众数M及该众数在序列ARRAY中的序号i,若众数不止1个,则i取位于序列中最靠前的那一个众数在序列中的序号,若该众数的出现次数大于1次,则进行步骤2.7,否则进行下一步;

2.6.若序列DFF的数据个数为奇数,则求DFF的中位数ME及其在序列ARRAY中的序号i,若序列DFF的数据个数为偶数,则令i等于DFF中的各数按数。

说明书 :

脉搏波非典型波峰波谷的识别方法

技术领域

[0001] 本发明属脉搏波信号识别技术领域,涉及一种脉搏波数据特征的提取方法,尤其涉及脉搏波信号中波峰波谷为“阶梯”状的不规则峰与谷时波峰波谷的识别,具体是一种脉搏波非典型波峰波谷的识别方法。本发明不需改装或添加新硬件设备就可以用于现有脉象分析设备中。

背景技术

[0002] 中医脉诊是中医诊断的一种重要方法,但传统中医脉诊方法存在“心中明了,指下难名”的特点,不易做到客观公正。为了使中医脉诊客观化,有关学者已经做了很多研究,如利用脉搏传感器采集脉搏信息,用电脑绘制脉图,设计算法提取脉象中的病理、生理信息,建立脉诊数据库实现脉诊的自动化等。其中,对脉搏波数据特征的有效识别是实现脉诊客观化的必不可少的基础。
[0003] 目前,人们对脉搏波的时域分析方法主要是提取脉搏波特征,这些特征除了主波外,还有重搏波、降中波、潮波高度、脉搏周期、上升角等,见图2,图中I为主波,II为降中波,III为重搏波,并从中获得相关的生理、病理信息,相关的论述见《中医脉象研究》(黄世林,孙明异编著,北京:人民卫生出版社,1995)。但是,脉搏信号中的各种波峰并不总是典型的峰,而有可能是一边陡下而另一边平缓的类似“台阶”的非典型波峰,波谷也有类似的情况,见图3。而且,这种现象在脉搏波中并不罕见。脉象分析设备一旦对图3这种波峰、波谷的识别发生了错误,其后续的脉象参数提取、分析也必将出现错误,进而影响设备的分析结果,对病人甚至对社会产生不良后果。
[0004] 波峰波谷识别的根本是极值的识别,传统的极值识别方法主要有:
[0005] 方法1:对数据进行向前差分或向后差分,差分结果中相邻数据若为一正一负的地方,即为极值点;这种方法对峰、谷的定义默认为:比相邻的两个数据大的数据点为峰,比相邻的两个数据小的数据点为谷,然而,正如图2所示,脉搏波的波峰波谷应理解为在相当的一段距离内的极大值和极小值,因此,这种方法极易将采集数据的轻微抖动误识别为脉搏波的峰、谷。
[0006] 方法2:对数据进行二次循环,依次比较各点与该点附近的若干点的大小,进而识别在某个区域内的极值。这种方法克服了方法1中对峰、谷识别过于灵敏的缺点,然而,此法不能有效地识别如图2所示的类似“台阶”形的非典型波峰、波谷,因为“台阶”形的波峰、波谷并不一定在其左右区域内是极值。因此,这种方法容易造成对非典型波峰的漏识、误识。
[0007] 可见,目前传统的极值识别方法不能很好地适用于脉搏波波峰、波谷的识别。

发明内容

[0008] 本发明针对脉搏信号中的“台阶”形非典型波峰、波谷提出了一种新的识别方法,发明目的是将基于数据变换的极值识别方法用于脉象分析仪器中,可以防止脉象分析仪器对非典型波峰、波谷的漏识、误识。本发明特别适用于现有脉象分析设备中,且不需要改装或添加新的硬件设备。
[0009] 本发明是一种脉搏波非典型波峰波谷的识别方法,包括如下步骤:
[0010] A.输入一段脉搏波数据,该数据包含的脉搏波周期不少于3个;
[0011] B.识别并提取一个脉搏波典型周期;
[0012] C.对该典型周期的下降支部分的数据进行纵坐标变换:将原数据点(ti,hi)的纵坐标hi变换为hhi=hi-(l-ti)(H-h)/(l-T),式中l为脉搏波周期的长度,H为脉搏波最大幅度,T为脉搏波幅度最大处的横坐标值,h为脉搏波数据终止处的纵坐标值,此变换消除了下降支数据整体的下降趋势,使原来呈阶梯型的非典型峰谷变换为典型的峰谷;由于脉象研究中感兴趣的峰谷都位于脉搏周期的下降支部分,因此此处仅对下降支部分,即横坐标大于T的部分数据进行数据变换,步骤C是本发明的一个重要创新点。
[0013] D.识别纵坐标变换后脉搏波下降支部分的波峰波谷位置,其中识别到的波谷位置就是波谷位置识别的最终结果,识别到的波峰位置还需要经过步骤E的修正;
[0014] E.针对纵坐标变换前的数据,对识别的波峰位置进行修正,得到对波峰位置识别的最终结果。
[0015] 本发明将数据变换的极值识别方法用于脉象分析设备中,可以很好地解决脉搏波不规则波峰波谷的识别问题。本方法通过对脉搏数据下降支部分的变换,消除了下降支数据整体的下降趋势,使原来呈阶梯型的非典型峰谷波形变换为典型的峰谷波形,从而解决了识别这种峰谷的主要难题。
[0016] 本发明的实现还在于:步骤B所述的脉搏波典型周期的识别提取方法,包括如下步骤:
[0017] 2.1.令n=n0,n0=round(0.4f0),式中f0为脉搏传感器的采样频率,函数round(x)表示对x四舍五入取整;
[0018] 2.2.比较第n个数据点的纵坐标与其前的(n0-1)个数据和其后的(n0-1)个数据纵坐标的大小,若该数据的纵坐标是最小值,则记录此时的n值,然后令n=n+jump,jump=round(0.3f0),式中f0为脉搏传感器的采样频率,函数round(x)表示对x四舍五入取整,否则令n=n+1;
[0019] 2.3.若n<N-n0-1,则重复步骤2.2,否则进行步骤2.4,式中N表示输入的原始脉搏数据点总个数;
[0020] 2.4.步骤2.2中所有依次记录的n值构成一个序列ARRAY,计算该序列的向前差分DFF;
[0021] 2.5.求序列DFF的众数M及该众数在序列ARRAY中的序号i,若众数不止1个,则i取位于序列中最靠前的那一个众数在序列中的序号,若该众数的出现次数大于1次,则进行步骤2.7,否则进行下一步;
[0022] 2.6.若序列DFF的数据个数为奇数,则求DFF的中位数ME及其在序列ARRAY中的序号i,若序列DFF的数据个数为偶数,则令i等于DFF中的各数按数值从小到大排列时位于最中间的两个数据的较小者在DFF的序号;
[0023] 2.7.令序列ARRAY中的第i个数的值与第(i+1)个数的值作为输入的原始数据的起始横坐标和终止横坐标,提取原始数据中这两个数据点之间的所有数据,这部分数据就是脉搏波的一个典型周期数据。
[0024] 上述步骤中对识别过程采取了加速措施:当识别到一个周期的最小值后,将跳过后续的若干个点再继续识别下一个最小值,因为紧邻的若干点中不可能出现最小值,使识别的速度大大提高了。
[0025] 本发明的实现还在于:步骤D所述的识别纵坐标变换后脉搏波下降支部分的波峰波谷位置的方法,包括如下步骤:
[0026] 3.1.令s=T+start,s0=scale,其中scale=round(0.05f0),式中f0为脉搏传感器的采样频率,函数round(x)表示对x四舍五入取整;T为脉搏波幅度最大处的横坐标值,start≥scale,start的作用是避免当脉搏波主波峰比较平缓时对极大值的误识别;
[0027] 3.2.针对变换后的数据,比较第s个数据点的纵坐标与其前的(s0-1)个数据和其后的(s0-1)个数据纵坐标的大小,若该数据的纵坐标是最小值,则记录此时的s值作为识别到的一个极小值,若该数据的纵坐标是最大值,则记录此时的s值作为识别到的一个极大值;
[0028] 3.3.令s=s+1;
[0029] 3.4.若s<N′-T-start-1,式中N′表示识别的脉搏波典型周期的长度,则重复步骤3.2,否则进行步骤3.5;
[0030] 3.5.步骤3.2中所有依次记录的极小值构成一个序列MIN作为波谷位置识别的最终结果输出,所有依次记录的极大值构成一个序列MAX备后续步骤使用。
[0031] 上述步骤中参数scale的意义是:识别出的波峰是以该波峰点为中心,2×scale为区间长度的区间内的最大值,波谷是以该波谷点为中心,2×scale为区间长度的区间内的最小值。因此,通过对参数scale的调节,可以有效控制识别波峰、波谷的灵敏度。
[0032] 本发明的实现还在于:步骤E所述的对识别的波峰位置的修正,包括如下步骤:
[0033] 4.1.针对原始数据,比较以识别出的极大值序列MAX的各点MAXi为横坐标的数据幅值与横坐标为(MAXi-1)的数据的幅值的大小。如果横坐标为MAXi的数据的幅值比横坐标为(MAXi-1)的数据的幅值小,则修正MAXi=MAXi-1并进行步骤
[0034] 4.2,否则进行步骤4.4;
[0035] 4.2.比较横坐标为MAXi的数据的幅值与横坐标为(MAXi-1)的数据的幅值;
[0036] 4.3.如果横坐标为MAXi的数据的幅值比横坐标为(MAXi-1)的数据的幅值小,则修正MAXi=MAXi-1,进行步骤4.2,否则,进行步骤4.4;
[0037] 4.4.输出MAXi为对波峰位置识别的最终结果。
[0038] 上述步骤中通过对识别的波峰位置进行修正,有效地避免了因本发明中的数据变换可能引起的识别不准确的问题。
[0039] 本发明与现有技术相比具有以下优点:
[0040] (1)本发明根据输入数据中各脉搏波周期的众数、中位数选取脉搏波典型周期,有效地避免了因周期识别不准而影响波峰波谷正确识别的可能。
[0041] (2)本发明在识别典型周期时对二次循环采用了加速方法:当识别到一个周期的最小值后,将跳过后续的若干个点再继续识别下一个最小值,因为紧邻的若干点中不可能出现最小值。这种方法极大地提高了识别的速度。
[0042] (3)本发明采用的数据变换方法,解决了传统极值识别方法的缺点,可以有效地识别“台阶”形非典型波峰、波谷。
[0043] (4)本发明可以通过对参数的调节,有效控制识别波峰、波谷的灵敏度。
[0044] (5)本发明对数据变换引起的识别误差进行了修正,有效地避免了因本方法中的数据变换可能引起的识别不准确的问题。
[0045] 总之,本发明通过对脉搏波数据典型周期的准确提取以及对数据的变换,提供了一种新的识别“台阶”形非典型波峰和波谷的有效方法,使脉象分析设备对脉象参数的提取更准确。

附图说明

[0046] 图1是本发明的脉搏波非典型波峰波谷的识别方法流程图。
[0047] 图2是正常脉搏波示意图。
[0048] 图3是含有非典型峰谷的脉搏波示意图。
[0049] 图4是脉搏波下降支数据变换前后对比曲线图。
[0050] 图5是本发明对非典型峰谷识别效果示意图。

具体实施方式

[0051] 下面结合附图对本发明进一步详细说明。
[0052] 实施例1:
[0053] 本发明是一种脉搏波非典型波峰波谷的识别方法,参见图1,包括如下步骤:
[0054] A、输入一组脉搏波数据,要求该数据包含的脉搏波周期不少于3个,在本例中输入脉搏波数据共有N=9381个数据点,数据包含的脉搏波周期不少于3个,具体为44个。
[0055] B、识别并提取其中的一个脉搏波典型周期,具体包含如下步骤:
[0056] 2.1.令n=n0,n0=round(0.4f0),式中f0为脉搏传感器的采样频率,函数round(x)表示对x四舍五入取整。本例中f0=233,n0=93;
[0057] 2.2.比较第n个数据点的纵坐标与其前的92个数据和其后的92个数据纵坐标的大小,若该数据的纵坐标是最小值,则记录此时的n值,然后令n=n+jump,jump=round(0.3f0),式中f0为脉搏传感器的采样频率。本例中取jump=70,否则令n=n+1;
[0058] 2.3.若n<N-n0-1,则重复步骤2.2,否则进行步骤2.4,式中N表示输入的原始脉搏数据点总个数,本例中为9381;
[0059] 2.4.步骤2.2中依次记录的n值构成一个序列ARRAY,计算其向前差分数列,为DFF;
[0060] 2.5.求DFF的众数M,本例中众数M=209,共有5个,取最靠前的一个数据在序列DFF中的序号作为i值,本例中i=14;
[0061] 2.6.令序列ARRAY中的第i=14个数的值2983与第i+1=15个数的值3192作为原始数据序列的起始横坐标和终止横坐标,提取原始数据中这两个数据点之间的所有数据,共有NA=210个数据点,就是脉搏波的一个典型周期数据,将该典型周期数据作图,如图3,图中的IV区域为潮波,II区域为降中波,III区域为重搏波,均表现为“台阶”状,在现有的脉象仪等仪器中容易漏识或错识,本发明正是为了有效识别这种不规则的峰谷,采用了数据变换方法。
[0062] C、对NA=210个数据点中下降支部分的数据,即本例第34个数据点之后的部分,进行如下纵坐标变换:将原数据点(ti,hi)的纵坐标hi变换为hhi=hi-(l-ti)(H-h)/(l-T),式中l为脉搏波数据长度,本例中为209,H为脉搏波最大幅度,本例中为147,T为脉搏波纵坐标最大处数据点的横坐标值,本例中为34,h为脉搏波数据终止处的纵坐标值,本例中为10;变换效果如图4所示,由于脉象研究中感兴趣的峰谷都位于脉搏周期的下降支部分,因此此处仅对下降支部分,即横坐标大于T的部分数据进行数据变换。图中只显示了脉搏波下降支部分的数据,上升支的数据因为不在变换的范围内,所以此处略去不画,因此图中的横坐标比该脉搏波完整周期的横坐标小T=34。图4中曲线i为原始数据的下降支部分,曲线ii为进行纵坐标变换后消除了整体下降趋势的变换数据。曲线i中台阶形潮波、降中波、重搏波经过变换,在曲线ii中显示为典型的峰、谷状态,这种状态下的峰谷能够准确识别。
[0063] D、识别纵坐标变换后脉搏波下降支部分的波峰波谷位置,其中识别的波谷位置就是波谷位置识别的最终结果,识别到的波峰位置还需要经过后续步骤E的修正:
[0064] 3.1.令s=T+start,s0=scale,scale=round(0.05f0),式中f0为脉搏传感器的采样频率,函数round(x)表示对x四舍五入取整,T为脉搏波幅度最大处的横坐标值,本例中start=10,scale=10,T=34;
[0065] 3.2.针对变换后的数据,比较第s个数据点的纵坐标与其前的(s0-1)个数据和其后的(s0-1)个数据纵坐标的大小,若该数据的纵坐标是最小值,则记录此时的s值作为识别到的一个极小值,若该数据的纵坐标是最大值,则记录此时的s值作为识别到的一个极大值;
[0066] 3.3.令s=s+1;
[0067] 3.4.若s<NA-T-start-1,式中NA表示识别的脉搏波典型周期的长度,本例中NA=210,则重复步骤3.2,否则进行步骤3.5;
[0068] 3.5.步骤3.2中所有依次记录的极小值构成一个序列MIN作为波谷位置识别的最终结果输出,所有依次记录的极大值构成一个序列MAX备后续步骤使用。
[0069] E、针对纵坐标变换前的数据,对识别的波峰位置进行修正:
[0070] 4.1.针对原始数据,比较以识别出的极大值序列MAX的各点MAXi为横坐标的数据幅值与横坐标为(MAXi-1)的数据的幅值的大小。如果横坐标为MAXi的数据的幅值小,则修正MAXi=MAXi-1并进行步骤4.2,否则进行步骤4.4;
[0071] 4.2.比较横坐标为MAXi的数据的幅值与横坐标为(MAXi-1)的数据的幅值;
[0072] 4.3.如果横坐标为MAXi的数据的幅值小,则修正MAXi=MAXi-1,进行步骤4.2,否则,进行步骤4.4;
[0073] 4.4.输出MAXi为对波峰位置识别的最终结果。
[0074] 在有关脉象识别研究中,最关心的是下降支的第一、第二个波峰,分别称为潮波和重搏波,它们之间的波谷称为降中波,本发明对上述识别的前两个波峰和第一个波谷在脉搏波图中作标记,如图5所示。可见,识别准确,效果非常好。
[0075] 实施例2:
[0076] 基于数据变换的波峰波谷识别方法同实施例1。
[0077] 本例中输入的一段脉搏波原始数据中仅包含5个脉搏波周期,相对于实例1,数据量小很多,数据中包含台阶形非典型的潮波、降中波、重搏波。选取参数n0=85,jump=65,start=6,scale=6进行非典型波峰波谷识别,识别过程中i的定位是通过取中位数得到的。识别的脉搏波典型周期长度为223,使用本发明正确识别了主波、潮波、降中波、重搏波,效果非常好。本实例说明,本发明对输入的数据量的要求很低。
[0078] 实施例3:
[0079] 基于数据变换的波峰波谷识别方法同实施例1。
[0080] 本例中输入的原始脉搏波数据中的各波峰、波谷均本已是典型的波峰波谷,不含台阶形峰谷,选取参数n0=90,jump=70,start=8,scale=8进行非典型波峰波谷识别,达到识别的脉搏波典型周期长度为214,使用本发明正确识别出了主波、潮波、降中波、重搏波。本实例说明,本发明采用的数据变换方法不会对原本就是典型的峰谷的识别产生影响,可以正确识别典型峰谷。
[0081] 实施例4:
[0082] 基于数据变换的波峰波谷识别方法同实施例1。
[0083] 本例中输入的原始脉搏波数据中包含两种峰谷:典型峰谷、台阶形非典型峰谷,具体地,潮波为台阶形非典型峰,降中波为典型的谷,重搏波为峰;选取参数n0=90,jump=70,start=9,scale=9进行非典型波峰波谷识别,得到识别的脉搏波典型周期长度为NA=221。使用本发明正确识别出了主波、潮波、降中波、重搏波,而且效果非常好。本实例说明,对典型峰谷、非典型峰谷混合存在的脉搏数据,本发明是同样有效的。