基于FPGA的多功能生物电信号检测系统*
2013-10-24李在军黄启俊
王 明 ,李在军 ,钟 维 ,易 凡 ,常 胜 ,黄启俊 ,王 豪
(1.武汉大学 物理科学与技术学院,湖北 武汉430072;2.武汉大学 微电子与信息技术研究院,湖北 武汉430072)
人体具有多种生物信号,各种生物电信号的表征能够反映生物体的不同生命活动状态,如实时监测心电信号(ECG),通过检测QRS波群可以判别患者的心律不齐[1];检测表面肌电信号(sEMG),通过小波分析等算法可以实现动作模式的判别以及肌肉的疲劳分析[2];通过监测手术过程中的神经状态,可以协助外科医生确认神经的安全状态,避免手术过程中造成的误伤[3]。
传统的医疗检测仪器多以单片机、PC机为核心进行设计,系统笨重,检测手段单一,且无法同时检测多种生物信号,不便于系统升级和扩展。为了克服这些缺陷,本文设计了一个复合型的适合多信号检测的仪器,并利用FPGA的高集成、可重复编程等特点来实现。本设计模拟与数字相结合,实现了基于FPGA的多功能生物电信号检测系统,并设计了3种不同的前置模拟电路分别检测3种生物电信号,结构灵活,更换方便。数字部分在硬件上对信号进行自适应放大、A/D转换、工频陷波和LCD显示,在嵌入式Nios软核上添加了SD卡存储模块并对信号进行频谱分析,为进一步的信号特征分析提供依据。
1 系统设计
本文目的是设计一款高集成、适用于多种生物电信号检测的检测仪,并针对不同生物信号的幅值、频率范围和外界干扰等特性设计放大检测电路,以前置盒的形式接入系统。将采集到的信号自适应放大到A/D的采样范围,进行50 Hz数字陷波和幅值频率测量,并在LCD屏幕上显示波形和参数,同时使用Nios软核对信号进行SD卡数据存储以及频谱分析。系统结构如图1所示。
2 系统模块原理及设计
2.1 前置放大电路设计
生物电信号的幅值较小、频率范围低且容易受到外界干扰,在设计检测电路时对电路结构有特殊要求[4]。由于ECG、sEMG、EMG信号的幅频特性、信号传导电极的导联方式和所受主要干扰来源均不同,因此针对3种信号设计了不同的前置放大电路,各电路的放大参数如表1所示。
表1 放大电路重要参数
电路中主要功能模块有:输入保护电路、输入缓冲电路(由电压跟随器构成)、差分仪表运算放大器电路、高通滤波器、带增益的低通滤波器、50 Hz工频陷波电路以及DRL电路。以下详细介绍各电路的特殊结构设计。
(1)sEMG前置放大电路:sEMG信号幅值较小且最为复杂,在设计过程中对器件的选型十分重要。除了采用输入偏置电流极低的AD8627作为输入缓冲电路之外,还使用了性能更优的AD8220作为仪表运放电路,并采用了驱动能力较强的DRL电路来连接参考电极,具体电路如图2所示。
(2)EMG前置放大电路:由于信号采集过程使用针式电极直接从神经和肌肉处引导信号,相应地所受到的干扰主要来自于针电极移动所引入的运动伪迹的低频干扰,所以在高通滤波器设计时将其截止频率设置在10 Hz~20 Hz范围,放大采用仪用放大器 AD620且电路设计中没有采用DRL电路。
(3)ECG前置放大电路:由于心电信号的幅度较大且稳定,因此电路没有加入电压跟随器组成的缓冲电路,而采用与EMG电路一样性能不错的AD620作为仪表运放电路且采用DRL驱动电路。
2.2 自适应放大模块
信号经过前置盒处理后,幅值达到毫伏级,不利于A/D采样。同时考虑到生物电信号的幅度波动较大,采用单一的放大增益信号可能超过A/D的采样范围,因此二级放大中利用了D/A芯片(DAC0832)的电阻加权网络自动调节输出增益,实现对信号的自适应放大[5]。增益公式如式(1)所示,其中Rfb/Ro为固定值,N为FPGA根据输入值与设定阈值的比较而自动调整的数值。
2.3 数字硬件模块
利用FPGA的并行处理优势,采用流水线结构设计了50 Hz二阶IIR数字滤波,进一步滤除工频干扰[6]。系统选用夏普公司液晶显示屏LQ064V3DG01作为显示终端,用FPGA产生VGA需要的行同步信号与列同步信号以及消隐信号、时钟信号、RGB信号,使屏幕正常工作[7]。
2.4 SD卡存储模块
要使写入SD卡中的数据可被PC机有效地读取,必须在对SD卡写入的过程中加入文件系统,而文件系统无法由纯硬件实现。因此系统充分利用Nios II软核支持文件系统的优势,通过自定义组件与Avalon总线上的数据通信,实现SD卡的存储。
2.5 频谱分析模块
FFT变换是信号分析中的一种常用手段,在频域上对信号进行分析,得到信号的能量范围,在数字信号处理中有较广的应用。其中,sEMG的频谱 范围 为 10 Hz~500 Hz,EMG 的 频 谱范围为 2 kHz~10 kHz,而 ECG的频谱范围为 0.05 Hz~250 Hz,因此使用频谱分析可以更好地分析3种不同信号,得到信号特征。
SoPC的使用使整个系统的设计更加灵活,当各种信号分析过程中的复杂算法难以用硬件实现时,便可通过Nios中的C语言实现,简单有效并充分发挥了SoPC的特点[8]。本设计中用C语言实现FFT算法并添加到Nios中,数据通过SoPC的I/O口由硬件部分输入,计算出结果后再经I/O输出并进行VGA显示。
3 系统测试
3.1 模拟前端测试
本文设计了3个前置模拟电路,下面详细介绍sEMG前置盒的测试结果,对前置盒进行放大倍数测试以及放大线性度测试。输入频率为100 Hz、幅度不同的正弦波,将得到的数据绘制成线性度测试图,如图3所示。
由以上数据及测试结果可知,前置处理盒的放大倍数约为73~76倍,且线性度良好。ECG与EMG两种的前置盒电路工作正常,具体数据不再列出。
3.2 生物信号实测
为了验证系统设计的正确性,分别对不同应用的生物电信号进行了整体测量,同时用SD卡存储数据并在Matlab中提取出来。
(1)实验一:表面肌电信号的检测
系统主要针对手及手臂运动进行sEMG检测,电极安放在小臂肌肉群范围内,受测者进行握拳动作,保持1 s不动后松拳静息,重复几组动作,关闭存储,取出SD卡后通过Matlab软件读取数据进行观测,结果如图4所示。波形图中横轴为采样点数,采样率为1 000 Hz,每1000个点表示测试时间为1 s;纵轴为SD卡采集到的A/D转换数字量。
图4中可以看出,检测信号与参考文献[9]中一致,分为握拳状态和放松状态。对信号进行频谱分析结果如图5所示,由图中可知,50 Hz的工频干扰滤波效果明显,且信号的能量主要集中在 10 Hz~200 Hz,确定检测到的信号为有效的sEMG信号。
(2)实验二:神经肌电信号检测
在神经肌电信号检测中,由于实验需要采用针式电极,在实验室中无法直接用人体进行测试,因此使用青蛙替代,对动物体进行了相关测试。从实验中观察到,电流刺激青蛙神经后,神经所支配的腿部肌肉会有规律地抖动;切断神经后,腿部停止抖动且信号消失。通过SD卡回放波形如图6所示,检测到的信号为同频率的脉冲信号。
(3)实验三:心电信号的检测
受测者平坐并保持呼吸均匀,采用三导联方式安放心电检测电极,测试10 min后取出SD卡,得到的心电信号如图7所示。图中可以看出,检测到的信号频率与受测者的心律一致,且可以较为清楚地分辨出心电信号的R波和S波,便于进一步分析心电特征。
本文完成了基于FPGA的多功能生物电信号检测系统的设计。以FPGA为控制核心,模拟电路与数字电路紧密结合,软件和硬件协同处理,实现了对生物电信号的提取、放大、储存、显示和分析,并完成了相应的实验检测和结果结果。系统克服了传统医疗设备应用单一、扩展性差等缺点,将多种生物信号检测手段集成实现,可供后续的信号处理和分析,在信号检测以及家用医疗方面具有广阔的应用前景。
[1]陈晓俐,陈真诚,刘福彬.心律失常辅助诊断系统的研制[J].中国医学物理学杂志,2010,27(2):1741-1746.
[2]王东岩,李庆龄,林志江,等.小波分析在表面肌电信号(sEMG)研究中的应用[J].黑龙江大学自然科学学报,2008,25(4):431-435.
[3]王林综,述傅,先明.听神经瘤术中面神经电生理监测的应用进展[J].立体定向和功能性神经外科杂志,2008,21(2):117-118.
[4]江冠群,黄启俊,李湘琼,等.生物神经电极放大系统的设计与实现[J].电子技术,2009,36(7):37-38.
[5]程晓玲,雷淑英.采用D/A转换器实现可编程放大器的设计[J].天津科技大学报,2005,20(6):62-63.
[6]童位理.基于 FPGA的 IIR数字滤波器的快捷设计[J].元器件,2007,9(5):36-37.
[7]刘晶,贾银亮.基于 FPGA的液晶驱动电路设计[J].金陵科技学院学报,2009,25(2):26-27.
[8]赵佩丽,李小珉,卞小林.Nios II处理器在数字信号处理中的应用[J].电气电子教学学报,2007,29(6):47-48,53.
[9]吴冬梅,孙欣,张志成,等.表面肌电信号的分析和特征提取[J].中国组织工程研究与临床康复,2010,14(43):8073-8076.