李 皓,胡晓娟,朱洪海,董 军
(1.华东师范大学,软件学院,上海200062;2.中国科学院苏州纳米技术与纳米仿生研究所,江苏苏州215123)
中医是中华民族医学发展中的一份瑰宝,尽管数字医疗技术不断发展,但中医脉象的采集和客观化一直以来都是一个难题,复杂和抽象的脉象信息给中医切脉的计算机模拟带来极大的困难。传统单点的压力传感器已难以满足脉象采集的需要。本文提出一种基于电容阵列式触觉传感器的多点脉象采集系统,可以同时采集一定面积下的多路压力信号,为进一步的脉象分析提供新的思路。
系统框图如图1所示,由3个传感器模块、主控器、通信接口模块以及电源管理模块组成。传感器模块分别采集人体桡动脉寸、关、尺三部脉象信号。每只传感器在不足0.7 cm2的面积内提供3×4共12点的压力信息。主控器通过通信接口对每个传感器模块进行初始配置并以一定采样率读取其中的压力信号值,再通过RS—232串行接口传输给PC机。PC机将三部脉象信号显示出来并存入数据库,通过特征提取算法可提取脉象信号的起始点和主波峰值点等特征参数。图2为采集系统实物图。
图1 系统框图Fig 1 System block diagram
脉象传感器是整个系统的关键,目前广泛采用PVDF压电薄膜为主的脉象传感器,通过压电材料的特性将脉搏跳动的微弱压力变化转换为电信号[1],常见的以单点为主,采集过程中易受干扰,由于人体皮下动脉的位置会因外力而移动,因此定位困难,采集信号的可重复性差[2]。本系统选择的电容阵列式触觉传感器模块由美国PPS传感器公司生产[3],其高集成度可同时采集小面积下的多路压力信号。
图3为此传感器的结构示意图,将两块小电极平行布置,中间留有一定的空隙,上下电极间构成一个分离电容,当施加于电极上的压力变化时,对应两电极间的电容值也相应改变。基于这种介质的压力传感器体积小,灵敏度极高。将电极做成带状,相互垂直并部分重叠,通过有选择地扫描一个单独的行和列交汇处的电容,该处的压力即被测出。将3只传感器分别置于人体桡动脉的寸、关、尺三部既能全方位地获得脉象信息。该传感器模块中还包含了ADI公司的电容/数字量转换器(capacitance/digital converter,CDC),其型号为AD7147,将电容值转换为16位的数字量。通过主控器与CDC通信读取传感器上的压力值。
图2 采集系统实物图Fig 2 Entity picture of collection system
图3 传感器结构示意图Fig 3 Structure diagram of the sensor
主控器(MCU)的任务是完成CDC芯片的初始化设置,并以一定的采样率读取每个传感器12路,寸、关、尺三部共36路的CDC的转换值,并将其以一定的通信格式发送给PC机。主控模块的选择需考虑时钟、功耗以及成本等因素。本系统选择AVR公司的高档8位微处理器ATmega 32。该MCU拥有32 k可编程Flash,2 k字节片内SRAM,2个8位一个16位定时器,支持JTAG在线调试功能[4]。Atmega 32可选用高精度的外部时钟源,最高工作频率16 MHz;内部集成SPI通信接口和UATR串行接口,与外部电平转换芯片连接即可实现RS—232通信。
MCU与CDC的通信接口采用AD7147兼容的SPI串行通信,4线传输方式。MCU为主机模式,3个传感器模块作为从机。SPI时钟线与数据线采用总线复用。MCU用3个独立的I/O口作为从机的片选信号,以分别选通所需要通信的从机并占用总线,而没有被选中的从机SPI接口呈高阻态。通过上述方式MCU就可以分别与3个传感器模块进行通信,完成CDC的配置和压力数据的读取。由于MCU的5V电平与AD7147的3.3 V电平不兼容,故采用开漏输出的缓冲器74HC07隔离并实现电平转换。图4为串行接口与电平转换模块原理图。
图4 SPI串行接口与电平转换模块原理图Fig 4 Principle diagram of the SPI serial interface and the level conversion module
电源管理模对MCU以及传感器模块进行供电。MCU和传感器模块采用5 V电平(传感器模块集成了5~3.3 V的稳压模块用于AD7147的供电)。由于MCU的SPI电平为5 V而AD7147的SPI电平为3.3 V,因此,需要进行2个模块间的电平转换。5,3.3 V的电源电压均采用三端稳压器LM1117,外部提供9V的直流电源电压输入或采用USB接口直接由PC机供电。
整个系统的软件部分包括主控模块程序和PC机程序。主控模块软件主要完成对AD7147芯片的通信设置,并以固定的采样频率读取片内的数据寄存器数值即实现对脉象信号的采样。PC机软件部分主要接收主控器发出的数据包并对其进行解析,同时将采集到的脉象信号数据存贮在本地数据文件中,并实时绘制出脉象信号的波形,完成对数据的实时分析、特征提取等工作。
图5(a)为主控模块程序流程图。当主控器上电时,首先对I/O口、定时器、UART串口以及SPI接口进行设置,系统时钟采用外部高速7.3728 MHz晶振。MCU下一步对AD7147进行初始化。AD7147内部包含12个转换单元,最多支持13个外部输入引脚,具体可参阅AD7147数据手册[5,6]。AD7147 初始化时,先关闭 CDC 转换,选用全功率的工作模式,每个传感器外部12路信号分别连接一个转换模块,然后依次对各工作寄存器进行配置,最后打开CDC转换。
由于AD7147工作于全通道打开模式时的转换速率约为9 ms,因此,本系统的采样频率为100 Hz,定时器每10 ms读取AD7147转换结果寄存器的数值。串行发送前需要将数据打包编码,AD7147是16位数字CDC,3个模块共36路信号将占用72个字节,加上一个字节的包头及包尾标识,共74个字节组成一个数据包。
图5(b)为PC机部分程序流程图。PC端的程序主要包含两个线程,串口线程专门负责监听串口上的数据包并将其解析存入缓冲区,当成功接收完成一个数据包后再由绘图线程将信号波形显示在屏幕上。
PC端通过控制还可对脉象信号进行基线校准。基线校准的目的是得到传感器在无压力状况下的输出值,并将其作为零输入基线,之后的读数都与其相减后才作为实际压力数值。这样可以最大程度的消除传感器感应区污垢、环境湿度以及温度等的干扰。
图5 系统软件流程图Fig 5 Flow chart of system software
PC端的人机交互接口基于Microsoft MFC界面设计,包括采集的启动、基线的设置、显示速度的控制以及一些相关的基本操作,并且提供数据的导入导出以及数据分析的功能,可根据特征提取算法获得脉搏波的起始点与主波峰值点等参数。
关于脉象信号的特征提取,目前有基于局部最大最小值的方法来检测脉象信号[7],但是由于不同体征人的脉象信号差别很大(中医有28种脉象之说),不同脉象信号在形态上的差异也比较大,仅仅基于局部最大最小值的检测方法往往会造成较大的误差。本文尝试一种基于斜率阈值的脉象信号检测算法,其过程主要包括以下几个步骤:
1)信号处理:将信号通过一个带通滤波器以滤除基线漂移和高频噪声,并对滤波后对的信号进行差分运算,得到其对应的斜率成分。
2)学习过程:对每一路信号进行预先学习,确定检测的阈值。
3)检测过程:使用确定的阈值对脉象信号进行特征检测,找出脉搏波的起始点与主波峰值点。
信号处理包括带通滤波器和信号的差分。带通滤波器又由一个高通滤波器与一个低通滤波器串联组成[8]。图6为经过处理后的信号波形,其中,(a)与(b)分别为原始信号与通过高、低通滤波器后滤除基线漂移及高频噪声的效果,(c)与(d)为2种不同的脉象信号差分后的斜率波形,从图中可以看出,尽管信号的波形差异性很大,但每一个搏动周期的上升沿对应到斜率波形都表现为一个明显的峰值,而降支段及其他区域则相对比较平缓,维持在零线附近。由此,可以将斜率波形的峰值作为检测到一个脉搏周期开始的依据。
学习过程是指对一段时间内的差分斜率信号进行幅值估计,目的是确定检测时的阈值大小。取20 s的数据用于学习,以3 s的信号作为一个检测窗口,确保窗口中至少出现一个脉搏周期。为了最大程度地排除个别不稳定信号的干扰,检测每个窗口中信号斜率的最大值Dmaxi,对其进行累计并计算其均值Davrg,见式(1)、式(2)
其中,dx为原始信号。
最后,取每个窗口中斜率峰值均值的60%作为最终的检测阈值。
确定阈值之后开始检测过程,从检测起始点开始对原始信号的差分斜率信号进行扫描,一旦斜率值超过检测阈值,就认为找到一个脉搏波形的上升沿,波形计数器加1。从这一位置分别向前、向后搜索。图7上、下分别为差分之前与差分之后的信号波形,斜率信号峰值点前后所对应的上升沿过零点与下降沿过零点即为原始信号的起始点与主波峰值点。当完成一个脉搏周期的检测之后,延迟0.2 s以排除干扰,然后继续检测下一个波形的起点,循环上述操作,直到找到所有的波峰点和起始点。图8为2种不同形态的脉象波形最终的检测结果。
为了验证算法的正确性,随机选择300个脉搏周期进行人工标注,将标注的结果与程序检测的结果进行对比并计算绝对误差。55%的主波峰值点和54%的起始点与手工标注的特征完全重合,44%的主波峰值点和45%的起始点检测绝对误差为1个采样点,而对于主波峰值点与起始点都只有3个特征的检测误差为2个采样点,由于系统的采样频率为100Hz,即检测算法的绝对误差小于0.02s。而对于人眼来说,一个采样点的差距已经很小甚至很难分辨。
图6 经处理后的信号波形Fig 6 Signal waveform after processing
图7 波形起始点与主波峰值点位置示意图Fig 7 Diagram of onset and main wave peak position
图8 两种不同脉象波形的检测结果Fig 8 Detection result of two different kinds of pulse condition waveform
本系统的设计结合了先进的传感器及主控器,弥补了传统单点的脉象采集装置数据量少、定位困难、重复性差等缺点,可采集人体桡动脉寸、关、尺三部多点的、全方位的脉象信号,为中医脉象的客观化研究提供了新思路。基于斜率阈值的特征提取方法能够方便、快捷地检测出脉象波形的起始点和主波峰值点。
[1]燕海霞,王忆勤,李福凤.中医脉象传感器的研究进展[J].上海中医药大学学报,2005,19(1):62-64.
[2]刘 峰,陈家旭.中医脉象的可重复性研究[J].中医药学报,2007,35(1):35-36.
[3]Pressure Profile Systems Corp.Capacitive tactile sensors—A technology primer[EB/OL].[2009—05—09].http:∥www.pressureprofile.com.
[4]ATMEL Corp.ATmega 32 Datasheet[EB/OL].[2004—07—22].http:∥21ic.com.
[5]Analog Devices Corp.AD7147 Datasheet[EB/OL].[2007—09—18].http:∥www.analog.com.
[6]Analog Devices Corp.AN—929 Application Note[EB/OL].[2007—10—13].http://www.analog.com.
[7]Xu Lisheng.Robust peak detection of pulse waveform using height ratio[C]∥Annual International IEEE EMBSConference,2008:3856-3859.
[8]Pan Jiapu,Tompkins W J.A real-time QRS detection algorithm[J].IEEE Transactions on Biomedical Engineering,1985,32:230-236.