基于动态差分阈值的脉搏信号峰值检测算法
张爱华1,2, 王平1,2, 丑永新1,2
1.兰州理工大学 电气工程与信息工程学院, 兰州730050
2.甘肃省科技厅 甘肃省工业过程先进控制重点实验室, 兰州730050

张爱华(1964),女,教授,博士生导师.研究方向:生物医学信号检测与处理.E-mail:lutzhangah@163.com

摘要

针对传统幅度阈值法在脉搏信号峰值检测中所存在的问题,同时为了避免脉搏信号中的干扰段对信号分析所带来的风险,提出了基于动态阈值的脉搏信号峰值检测方法。采用动态差分阈值提取脉搏信号峰值,并在其提取过程中依据阈值适时应用符号化信号近似匹配的方法检测脉搏信号干扰段。通过对视觉疲劳试验过程中采集的脉搏信号进行分析,结果表明:该方法能够准确地提取脉搏主波位置和脉搏峰值,效果明显优于传统幅度阈值法。

关键词: 信息处理技术; 脉搏信号; 幅度阈值; 干扰段检测; 动态差分阈值
中图分类号:TN911.73 文献标志码:A 文章编号:1671-5497(2014)03-0847-07
Peak detection of pulse signal based on dynamic difference threshold
ZHANG Ai-hua1,2, WANG Ping1,2, CHOU Yong-xin1,2
1. College of Electrical and Information Engineering, Lanzhou University of Technology, Lanzhou 730050, China
2. Gansu Provincial Sci. & Tech. Department, Key Laboratory of Gansu Advanced Control for Industrial Processes, Lanzhou 730050, China
Abstract

Using traditional pulse analysis method could bring serious influence on the accuracy and reliability of pulse signal feature detection. In order to overcome the shortcoming of the traditional threshold algorithm in peak detection of pulse signal, also to avoid the risk caused by the interference segment of pulse signal on signal analysis, a dynamic threshold method was presented to extract the peak of pulse wave. The symbolic aggregate approximation algorithm was timely used according to the difference and amplitude threshold to detect interference segment in the process. The pulse signals collected in the experiment of video display terminal fatigue were analyzed by this method. The results show that the proposed method can accurately extract the pulse peak and the position. It is obviously superior to the traditional method.

Keyword: information processing; pulse signal; amplitude threshold; interference detection; dynamic difference threshold
0 引言

脉搏波中蕴含了丰富的生理、病理信息,通过对脉搏信号的检测及特征分析可以推测人体的健康状况[ 1]。而对采集到的脉搏信号进行有效处理,从中提取诸如幅度、形状变化等有用信息是实现脉搏可靠诊断的关键[ 2]。在脉搏信号分析中,峰值的提取则是信号时域特征提取和脉率变异性分析的基础和关键,经过多年的努力和探索,人们总结出了一些提取脉搏信号峰值的方法[ 3, 4, 5]。其中经典的是幅度阈值法[ 3, 4],其运算速度快,对时间较短且平稳的脉搏信号提取效果好。其缺点是对较长时间的脉搏信号,或者潮波波峰超过主波波峰的脉搏信号提取误差比较大。还有研究者基于小波变换提取脉搏时域特征点[ 5],取得了较好的效果,但该方法运算复杂,不利于实现实时分析。此外,在家居自然环境等无专业医护人员监督状态下,实时采集的脉搏信号往往由于受到环境的干扰而会出现干扰段,应用现有脉搏信号分析方法,会严重影响信号特征检测的正确性和可信度,在实时信号分析中对干扰段信号的检测能进一步提高脉搏信号分析的可靠性。王海涛等提出把脉搏波离散为符号序列,比较字间距离以识别干扰脉搏波的方法[ 6],但在信号分析中全程使用该方法计算成本较高。郭维等提出了基于多特征参数综合分析脉搏信号失真度的算法[ 7],在脉搏波的异常识别中取得了较好的效果,但该方法在判断脉搏波波形失真的过程中需要利用心电信号R波峰值的位置作为分割脉搏波的标识,在单独的脉搏信号分析中无法实现。

针对这些问题,本文提出用动态差分阈值的方法来检测脉搏波的主波峰值点,且在其提取过程中依据动态变化的幅度阈值适时地应用文献[6]中提出的方法检测脉搏信号的干扰段,两者的结合使用不仅可以较为快速地判断出脉搏信号中的干扰段,而且可以有效地提高脉搏信号峰值检测的正确率,在脉搏信号的实时检测和无监督状态下脉搏信号的分析中具有重要意义。

1 脉搏信号预处理

本文使用的脉搏信号来自于视频显示终端(Video display terminal,VDT)视觉疲劳试验[ 4],使用光电脉搏传感器采集被试者在VDT试验中从疲劳前到疲劳后的脉搏信号,采样频率为1000 Hz。脉搏信号是一种微弱的信号,在采集过程中受到仪器、人体等方面的影响,其中通常会含有基线漂移、工频干扰、肌电干扰等噪声信号,有效地消除或减少干扰是识别和处理脉搏信号的前提。常用的IIR(Infinite impulse response)和FIR(Finite impulse response)数字滤波等方法可以设计出滤波性能相当好的滤波器来滤除这些干扰,但这些滤波器系数一般为非整数,对信号的实时滤波速度有很大的影响。针对脉搏信号的特点,本文应用文献[8]中的方法设计了整系数陷波器和低通滤波器,陷波滤波器能够滤除50 Hz的工频干扰,同时滤除0.5 Hz以下的基线漂移。为了满足滤波器整系数的要求,低通滤波器的截止频率选择为66.7 Hz,其能够较好地滤除频率范围较广的肌电干扰信号。

2 脉搏信号干扰段检测算法
2.1 时间序列的符号化(SAX)描述

脉搏波是时间序列信号,数据结构虽然简单,但蕴含的信息一般没有充分表现,对脉搏信号进行分析前,首先采用一种相对简单高效的数据结构对脉搏信号进行降维描述。采用SAX时间序列的符号化描述算法[ 9],利用基于分段聚合近似(PAA)的分段线性表示算法对时间序列进行降维[ 10],依据正态分布的特点设置断点,将降维后的数据序列转化成相应的符号序列,具体步骤如下:

(1)原始数据是一个长度为n的时间序列,表示为X=[X1,X2,…,Xn],将X归范化为均值为0,标准差为1的时间序列,表示为S=[S1,S2,…,Sn],用于归范化的表达式为[ 11]:

Si=(1)

式中:mean( X)为 X的均值,std( X)为 X的标准差。

(2)对时间序列S降维表示为L=[L1,L2,…,Lw],降维的表达式为:

Li= Sj(2)

式中:w远小于n;Li为将S等间隔分为w段后每一段的平均值。

(3)对降维后的时间序列L符号化描述。归范化后的S服从标准正态分布,在整个区间上的积分值为1,为了对降维后的时间序列L符号化,必须确定字母表的大小,将标准正态分布下包围的面积N等分,通过确定一串数据β12,…,βN-1的有序表,使得在标准正态分布下从βi到βi+1所围成的区域面积为1/N,β0和βN被定义为-¥和+¥。然后,将Li和β12,…,βN-1进行比较,若小于β1,则Li符号化为a,若大于β1而小于β2,则符号化为b,依次类推,将L序列符号化。

2.2 脉搏信号的干扰段检测

正常脉搏信号的波形是比较规则的、准周期的,受到干扰的脉搏信号则丧失了这些特点,变得杂乱无规则,可以充分利用这个特点来判断脉搏信号中的干扰段,利用相近脉搏信号匹配的方法把信号的干扰段和信号的正常段区分开来[ 6]

设定一个滑窗,采样频率为1000 Hz时,滑窗长度选择为1890点,基本保证每个窗内至少有一个脉搏波,通过SAX算法对滑窗内信号进行降维描述,形成一个字符串,每90个点形成一个字母,每个滑窗形成21个字母,选用字母表大小 N=4,即由a,b,c,d组成。形成每个字母的点数选取越小,描述信号的字符串越长;字母表选得越大,对原始信号的描述越准确,但运算量相应变大。图1(a)为一段正常的脉搏信号,经降维后如图1(b)所示。

图1 脉搏信号和降维后的脉搏信号Fig.1 Pulse signal and reduced dimension representation of pulse signal

其SAX描述的字符串为bbaaddcccbaacddccbaab。为了信号的相似性匹配,规定每6个字母单独形成一个新的字符串,从第一个字母开始,每次左移一个字母,依次形成16个新的字符串,如表1所示。

表1 SAX描述的字符串移位形成的新的字符串 Table 1 New character series through shifting character series of SAX representation

判断降维后的信号是否匹配,利用的是比对新形成的字符串之间距离的方法。定义各字母之间的距离,如表2所示。

表2 SAX描述的字符串移位形成的新的字符串 Table 2 New character series through shifting character series of SAX representation

定义两个新的字符串之间的距离为对应字母距离的和。如2号字符串baaddc和10号字符串baacdd之间的距离为:0+0+0+0+0+0=0;2号字符串baaddc和7号字符串cccbaa之间的距离为:0+1+1+1+2+1=6。从图1可以看出:2号字符串和10号字符串对应的波形基本反映了脉搏信号上升、下降的走势,因此两个字符串基本上相同,其之间的距离为0。而7号字符串所描述的波形先下降后上升,恰好和2号字符串所描述的波形走势相反,故其之间的距离较大。若两个新字符串比对的距离小于等于2,则认为两个新字符串所描述的波形匹配。若大于2,则认为两个字符串所描述的波形不匹配。相邻序号的新字符串由于大部分波形重合而匹配,但对检测不同的脉搏波是否相似没有意义。故脉搏波干扰段检测算法如下:

(1)输入脉搏信号长度为k,把整个输入脉搏信号序列分割为每个长度为n的子序列。

(2)对每个子序列使用SAX的方法进行符号化,字母表大小选择为N,字符串长度为w。本文所用字母表大小N=4,字符串长度w=21。

(3)在经过SAX符号化描述的字符串中从首字母开始,由m个字母形成一个新的字符串,每次移动一个字母,形成若干个串。本文中以 m=6为准形成新的字符串,共形成16个新的字符串。

(4)若经过SAX符号化描述的字符串中连续相同的字符个数大于一个阈值,本文中此阈值为6,则认为信号是不规则的。

(5)对移位形成的新的字符串连续搜索判断,若大于等于一个阈值(本文为6对),则认为此子序列是规则的。搜索判断的顺序是:1-7、2-8、…直到6-12,共6对,若都配对成功,认为此序列是规则的,若配对不成功,则继续以下搜索,1-8、2-9、…、6-13,共6对,若都配对成功,则认为此子序列是规则的,若不规则,则继续搜索。按照本文中所选用的参数将此子序列全部搜索一遍的配对顺序如表3所示。

(6)经过表3的顺序搜寻一遍后,若没有能够满足配对要求的字符串,则认为此子序列是干扰段,若搜寻过程中有某一次连续配对成功6对字符串,则停止搜索,认为此子序列是正常的。

表3 移位形成字符串配对顺序表 Table 3 Matching table of new character series
3 峰值检测算法
3.1 幅度阈值法

通过统计分析采集的脉搏信号发现,虽然每个脉搏波的波峰值大小并不相同,但它们总在一个范围内波动,波动的范围基本上不超过最大波形高度的0.4倍,因此可以认为波峰点是在每个脉搏周期中波形的最大值附近、大于其邻域内所有点的点[ 4]。设采集到的脉搏波为序列X[j],j∈[0,N],采样频率为1000 Hz时,将邻域长度定义为800个数据点可以识别波峰点,实际波峰X[j p]的判别条件为:

(3)

式中:Δ=( max{X[j]}- min{X[j]})×0.4为所设定的阈值;j p为波峰点的位置。

脉搏波形比较规则且平稳时,幅度阈值法提取的峰值点是脉搏波中的主波。而对某些患病者(如高血压患者),其脉搏波中潮波波峰可能超过主波波峰,此时幅度阈值法检测到的最大值可能是潮波而不是脉搏波的主波。脉搏波虽是一种准周期的信号,但实际的脉搏波,随着时间的变化,其幅度和间期都会发生变化,较短的时间内这种变化不明显,使用幅度阈值法,较容易检测出脉搏波的峰值点。而对于时间较长且不太平稳的脉搏波,其幅度、间期的变化趋势比较明显,此时使用幅度阈值法检测脉搏波的峰值点将带来较大的误差。此外,脉搏波中可能含有的干扰段也将对脉搏波峰值的检测带来误差。

3.2 动态差分阈值法

脉搏信号的主波一般具有上升迅速且平滑[ 12]、幅度较大、差分值大等特点,在一个脉搏信号周期中,主波上升段的差分值明显比其他波段的差分值大。如图2中(a)为一段脉搏信号,(b)为这段脉搏信号的差分,通常情况下从脉搏波的起始点A到主波波峰B的差分值大于从C到潮波波峰D的差分值,这对大多数潮波高于主波的情况也适用。因此用检测差分来确定脉搏信号主波的位置,可以有效识别潮波高于主波情况下的脉搏波峰值。针对实际脉搏波的特点,采用动态差分阈值提取脉搏信号峰值,并在其提取过程中依据阈值适时应用符号化信号近似匹配的方法检测脉搏信号干扰段,可以有效地提高脉搏波峰值的检测率,具体检测过程如下。

图2 脉搏信号和脉搏信号的差分信号Fig.2 Pulse signal and difference signal of pulse signal

(1)初始阈值的设定

取经过预处理过的8000点脉搏信号用来作为自适应段信号(按照需要可以取得更多或更少),使用干扰段检测算法对自适应段信号进行匹配。若自适应段不匹配,则重新选取自适应段。若自适应段匹配,则以1600个点为时长将8000点脉搏信号(保证每个周期中尽可能有一个脉搏信号)等分为5段,检测每个周期中差分的最大值,去掉其中的最大值和最小值,剩余的差分记作C=[C1,C2,C3],对C求算术平均值,记作C0。检测每个周期中幅度的最大值,去掉其中的最大值和最小值,剩余的幅度值记作H=[H1,H2,H3],对H求算术平均值,记作H0。将初始差分阈值设定为Th1=0.7C0,可有效滤除检测下一个新的峰值点时潮波、重搏波的差分影响。幅度阈值的下限设定为Th2=0.5H0,上限设定为Th3=1.5H0

(2)脉搏主波峰值的检测

自适应段结束后,利用(1)中初始阈值来寻找第一个新的脉搏信号的主波峰值点,设任意邻接的3个点为fi,fi+1,fi+2,如果满足:

fi+1-fi>Th1(4)

fi+2-fi+1>Th1(5)

则寻找到了一个满足差分阈值的点fi+1,这个点对应在脉搏信号中为主波升支上的某一点。从fi+1开始后的差分中寻找过零点,其对应在脉搏信号中为主波的峰值点,设从fi+1后的任意4个邻接的点为fk,fk+1,fk+2,fk+3,如果满足:

fk+1-fk>0 (6)

fk+2-fk+1>0 (7)

fk+3-fk+2<0 (8)

则fk+2为一个可能的脉搏主波峰值点,其幅度记为H new。依据设定的幅度阈值判断fk+2是否为一个可用的脉搏主波峰值点。判断准则是:若检测到fk+2点的幅度满足Th2 new3,则认为检测到的fk+2为一个脉搏主波的峰值点;若不满足,则利用干扰段检测算法,对检测到的fk+2点的波形进行匹配,若波形匹配,则认为fk+2是峰值点,若波形不匹配,则说明fk+2不是峰值点,包含该点的波段为干扰段信号。

(3)阈值的更新

检测到一个新的脉搏主波的峰值点后,开始更新阈值:检测从fk+1到fk+2这一过程的差分最大值,记为C new,用其更新检测fk+2时的差分阈值C=[C2,C3,C new],对更新的C求算术平均值得到一个新的阈值C0。同样,检测到的新的峰值点fk+2的幅度为H new,用其更新检测fk+2时的幅度阈值为H=[H2,H3,H new],对更新的H求算术平均值得到一个新的阈值H0。通过过程(1)中设定阈值的方法得到更新后的Th1,Th2,Th3,依据过程(2)中算法检测下一个新的脉搏信号的峰值点。

在过程(1)中可能出现的极端情况是选取的自适应段经匹配始终异常,这样信号就无法通过自适应来设置初始阈值。通常情况下,信号处理所需要的自适应段时间很短,若出现较长时间选取不到可用自适应段的情况,可以认为采集的脉搏信号中存在严重干扰,是不可用的。实际中所采集的正常的脉搏信号,其中仅有部分波段存在干扰,是不会出现以上问题的。此外,在提取峰值时全程使用干扰段检测算法可以检测出可能存在的干扰段信号,能有效提高峰值检测的准确率,但这将严重影响运算速度。因此,正常的峰值提取过程中无需使用干扰段检测算法,仅通过动态差分阈值法中更新的幅度阈值来判断新的脉搏信号峰值点是否可用,可以极大地提高运算速度。仅当检测的可能峰值点不满足幅度阈值时,才使用干扰段检测算法来判断该点是否为可用的峰值点。

4 结果及分析

利用上述算法和幅度阈值法分别检测VDT视觉疲劳试验中所采集脉搏信号的峰值,部分检测结果如表4所示。相比幅度阈值法,本文方法可以有效提高脉搏信号峰值检测的准确率,使准确率达到99%以上。而使用幅度阈值法时检测的准确率波动比较大。

对于比较平稳的脉搏信号,使用幅度阈值法提取峰值的准确率比较高,如编号为3的脉搏信号。对于幅度波动较大的脉搏信号,如编号为4的脉搏信号,使用幅度阈值法提取峰值时准确率较低,通过调整设定的幅度阈值,峰值的检测率会有所改变,但从结果来看,若脉搏波中含有幅度变化明显的波段,幅度阈值法提取峰值的误差较大。通常情况下,患有高血压的病人潮波一般高于主波。而本文中所使用数据都采集于健康的被试者,虽然不是由于病变所引起,但这种情况在实际的脉搏信号采集中完全有可能出现,编号为5和10的脉搏信号中就含有较多的潮波高于主波的波段,此时,幅度阈值法对这种脉搏波形主波的识别能力弱,检测过程中出现了较多的误检,而动态差分阈值的方法对此却有较好的识别能力。

使用动态差分阈值法时出现误检点的原因是:脉搏波从波谷到主波这一段中出现了凸起部分,并且凸起部分的位置靠近主波,将凸起部分误检为了主波峰值点。编号为5、7、9和10的脉搏信号出现误检都是由于这个原因造成的。使用动态差分阈值法对5号脉搏信号提取峰值的部分结果如图3所示。图中第2个和第3个脉搏波的潮波略高于主波,动态差分阈值法准确地定位了主波的位置。第5个脉搏波是使用动态差分阈值法时误检的情况。

表4 脉搏信号峰值检测结果 Table 4 Results of pulse peaks detection

图3 峰值检测的结果Fig.3 Result of peaks detection

5 结束语

应用动态差分阈值算法对脉搏信号峰值进行提取。结果表明:该方法能够有效地检测出脉搏信号的峰值点,与传统幅度阈值法相比,动态差分阈值结合干扰段检测的方法准确率更高、适应性较强。该方法运算量较小,可以满足实时信号处理的要求。在无监督状态脉搏信号的实时分析中具有广阔的应用前景。

The authors have declared that no competing interests exist.

参考文献
[1] 黄世林, 孙明异. 中医脉象研究[M]. 北京: 人民卫生出版社, 1991. [本文引用:1]
[2] Shu Jian-jun, Sun Yu-guang. Developing classification indices for Chinese pulse diagnosis[J]. Complementary Therapies in Medicine, 2007, 15(3): 190-198. [本文引用:1] [JCR: 2.093]
[3] 行鸿彦, 许瑞庆, 王长松. 基于经验模态分解的脉搏信号特征研究[J]. 仪器仪表学报, 2009, 30(3): 596-602.
Xing Hong-yan, Xu Rui-qing, Wang Chang-song. Pulse signal feature research based on empirical mode decomposition[J]. Chinese Journal of Scientific Instrument, 2009, 30(3): 596-602. [本文引用:2] [CJCR: 0.785]
[4] 张爱华, 王业泰, 赵治月. 视屏显示终端视觉疲劳对脉搏信号的影响[J]. 中国工业医学杂志, 2010, 23(3): 166-169.
Zhang Ai-hua, Wang Ye-tai, Zhao Zhi-yue. Effects of visual fatigue induced by VDT on pulse signal[J]. Chinese J Ind Med, 2010, 23(3): 166-169. [本文引用:4]
[5] Zhang Pei-yong, Wang Hui-yan. A framework for automatic time-domain characteristic parameters extraction of human pulse signal[J]. EURASIP Journal on Advances in Signal Processing, 2008, 9(10): 1382-1389. [本文引用:2] [JCR: 0.807]
[6] 王海涛, 吕沙里, 郑慧君, . 容积脉搏波序列的异常模式检测[J]. 仪器仪表学报, 2009, 30(11): 2285-2290.
Wang Hai-tao, Sha-li, Zheng Hui-jun, et al. Detection of abnormal pattern of volume pulse time series[J]. Chinese Journal of Scientific Instrument, 2009, 30(11): 2285-2290. [本文引用:2] [CJCR: 0.785]
[7] 郭维, 刘光达, 张晓枫, . 基于多特征参数综合分析脉搏波信号失真度算法的实现[J]. 吉林大学学报: 工学版, 2012, 42(4): 1044-1048.
Guo Wei, Liu Guang-da, Zhang Xiao-feng, et al. Realization of algorithm of abnormal pulse wave signal detection based on associate factor of pulse features[J]. Journal of Jilin University (Engineering and Technology Edition), 2012, 42(4): 1044-1048. [本文引用:1] [CJCR: 0.701]
[8] 张爱华, 丑永新. 动态脉搏信号的采集与处理[J]. 中国医疗器械杂志, 2012, 36(2): 79-84.
Zhang Ai-hua, Chou Yong-xin. Dynamic pulse signal acquisition and processing[J]. Chinese Journal of Medical Instrumentation, 2012, 36(2): 79-84. [本文引用:1]
[9] Jessica L, Eamonn K, Stefano L, et al. A symbolic representation of time series, with implications for streaming algorithms[C]∥Proc of the 8th ACM SIGMOD Workshop on Research Issue in Data Mining and Knowledge Discovery, San Diego, California, USA, 2003: 2-11. [本文引用:1]
[10] Keogh E, Chakrabarti K, Pazzani M, et al. Dimensionality reduction for fast similarity search in large time series databases[J]. Journal of Knowledge and Information Systems, 2000, 3(3): 263-286. [本文引用:1]
[11] Loh W K, Kim S W. Index interpolation: An approach for subsequence matching supporting normalization transform in time-series databases[C]∥Proceedings of the 9th International Conference on Information and Knowledge Management. New York, USA, 2000: 480-487. [本文引用:1]
[12] 罗志昌, 张松, 杨益民. 脉搏波的工程分析与临床应用[M]. 北京: 科学出版社, 2005. [本文引用:1]