APP下载

一种提取动作电位的自适应阈值算法

2014-03-09周基阳徐声伟林楠森蔡新霞

自动化与仪表 2014年3期
关键词:动作电位阈值噪声

周基阳 ,徐声伟 ,林楠森 ,蔡新霞

(1.中国科学院电子学研究所 传感技术联合国家重点实验室,北京 100190;2.中国科学院大学电子学研究所,北京 100190)

神经系统通过电生理和电化学信号进行交流[1],其中,电生理信号包括场电位和动作电位。利用生物电测量技术的微电极,可以采集到神经元发放的动作电位。

研究动作电位,需要把动作电位从大量的噪声信号中提取出来。目前的动作电位的提取方法有阈值检测,峰值检测,非线性能量阈值检测,基于数学形态学预处理的神经元放电检测方法[2-3],其次还有改进峰值检测、小波变换等算法[4-5]。

阈值检测法是目前最广泛的检测方法[6-7],目前阈值的自适应比较困难,计算复杂,在电路上没有很好的实现。将来把自适应阈值算法应用到多通道神经信号数据采集仪器上去,进行动作电位的实时采集[8-10],可以滤除干扰,更加准确地提取动作电位信号,易于后端的进一步分析。

本文设计了一种自适应阈值算法,它可以对采集到的神经信息,经过不断的计算来调整阈值,并根据此阈值,实时地提取动作电位。而且当采集的数据中有较大的噪声波动时,算法能够根据数据的变化快速的调整阈值,因此动作电位提取结果不会受到较大的影响。此外,此算法比一般的自适应阈值法计算量小,在硬件上易于实现。

1 实验部分

动作电位最明显的形态特征是它的幅值,因此,检测动作电位最为简单的方法是阈值法,当信号中有超过阈值的部分,即认为有动作电位出现。

目前自动设定阈值的方法主要基于以下公式。信号标准差的倍数:

式中:x代表动作电位信号各采样点的幅值;n为采样点数。

信号的平均灰度值:

式中:x代表动作电位信号各采样点的幅值;median代表取中值。

根据上述公式自动设定阈值的方法复杂,本文将此公式进行了简化,设计了一种提取动作电位的正向自适应阈值算法,并对算法分别进行了Matlab仿真和FPGA电路实现。

1.1 自适应阈值算法

首先,将式(2)做如下修改:

式中:x为大于 0的数据;median(x)为求 x的中值;a取 3~9;b是噪声基线。

上述是用中值法来求阈值,中值法在电路上实现较为复杂,为了降低硬件电路复杂度,对式(3)做进一步的改进,用均值代替中值。

式中:mean(x)为求 x 的均值;N 取 1~9,根据放大的倍数和实际的电路决定。当b为0时公式为

本文最后用式 (4),(5)来进行仿真和电路实现,利用均值的方法来计算阈值,比计算信号的标准差的倍数,信号的平均灰度值更加简单,计算量小,容易实现。算法如下:

(1)依次判断采样数据是否大于b。如果是,则把采集到的数据赋值给x。

(2)计算阈值Thr。当x中的采样点数达到一定数值 M(M 预设为 200,500,1024 等整数值)时,计算一次 x 的均值,然后根据式(5)计算 Thr(Thr1)。不断的采样,用新的采样数据覆盖x,下次采样到M个采样点时,用此新数据计算x的均值和Thr2,依次计算 Thr3,Thr4……

(3)在Thr1计算完毕之前,把所有的采集数据全部发送显示出来,不做处理。

(4)在 Thr1计算完毕之后,Thr2计算完毕之前,用刚刚计算的Thr1作为阈值,来判断此段采样数据中是否含有Spike信号。

(5)在Thr2计算完毕后,Thr3计算完毕之前,把这个新的Thr2作为阈值来判断此段数据是否出现动作电位。依次下去,实现动作电位的实时提取。

计算机计算阈值的时间很短,可以忽略不计。自适应阈值算法经过一段时间就调整一次阈值,以适应数据的变化,找出最佳的阈值。

1.2 Matlab仿真的实现

本文首先用Matlab进行仿真,测试算法是否能够准确地提取动作电位。仿真数据是一段长0.2 s的实测数据。数据的维数为Q,数据分为若干个(假设为c)小段,每个小段包含200(M=200)个大于噪声基线b的数,然后每小段数据分别利用式(4)计算一次阈值,共c个阈值,利用这c个阈值判定是否为动作电位。即用第一段数据计算第一个阈值Thr1,用Thr1判定第二段数据,用第二段数据计算第二个阈值Thr2,用Thr2判定第三段数据,依次下去,直到最后。模拟算法的步骤,测试此种方法是否有效。

1.3 自适应阈值算法的FPGA实现

仿真后,本文又将算法在FPGA上进行了电路验证。

1.3.1 自适应阈值法的硬件电路

信号源信号首先进入前置放大电路,再经过带通滤波放大电路,之后进行16位采样,采样得到数据再经过自适应阈值算法处理后,通过USB接口发送到上位机上去,如图1所示。

图1 自适应阈值法电路Fig.1 Circuit of adaptive threshold method

信号源产生的神经电生理信号包括场电位(0.1~100)Hz和动作电位(300~1000)Hz。 首先进行前置放大,再进行带通滤波,滤波范围是200 Hz~3 kHz,共放大3800多倍。

16位采样模块采用AD7656-1芯片。它是16 bit ADC,满足神经元动作电位采样要求。同时AD7656-1支持6个通道的模拟输入,易于将来进行多通道实验。

FPGA模块是电路的核心部分,用于实现自适应阈值法、采样控制、计时和控制USB数据传输的功能。FPGA采用ALTERA FPGA NIOS CYCLONE IV开发板,它集成了CH376,它支持1.5 Mb/s低速和12 Mb/s全速USB通讯,满足算法电路验证的要求。

1.3.2 自适应阈值法软件的设计

在经过仿真后,本文又将算法在FPGA上进行了验证。算法主要实现以下功能:

(1)产生采样控制信号,控制AD7656-1完成采样功能。

控制FPGA产生CONVST转换启动信号和RD信号,使每60 μs采样一次,即采样率为16.67 kHz。

(2)控制USB的发送。

控制USB芯片CH376的发送,实现当一旦检测到大于阈值,便启动发送,之后,不再发送,直到下一次检测到大于阈值时才再次发送。

(3)完成计时功能。

每过60 μs,计数器加1。程序中定义了一个32位计数器,可以计时71 h,满足实验需求。

(4)自适应阈值法的实现。

用FPGA实现自适应阈值法,主要有两个部分,第1,自动阈值的计算;第2,当检测到信号大于阈值时,将此部分动作电位提取出来。

第1 计算自适应阈值。在实验中为了消除负值影响,把所有采样数据加上十进制的32768,即把所有的数据提高了 5 V。所以式 (4)中,b=5 V(32768),M 为 1024,N 为 1~9。 自适应阈值法的流程图如图2所示。

图2 自适应阈值法FPGA实现流程Fig.2 FPGA flow of adaptive threshold method

首先比较AD采样得到的输入数据Vin和噪声基线b,平移5 V,b所以为5 V。在不断采样的同时,不断的统计超过噪声基线(5 V)的值,当此值达到1024时,启动一次阈值计算(把sort置为1,sort为启动信号),开始计算一次阈值,记为Thr1。计算完毕之后,sort置为0,结束计算。

随着不断的采样,再次重新统计Vin中大于5 V的数(再从0统计超过b的值),当超过b的值再次达到1024个时,启动第二次阈值计算(再把sort置为1,计算完毕后sort置为0),把第二次计算的阈值记为Thr2,依次下去,计算Thr3,Thr4……。

第2 提取动作电位的方法主要运用了移位技术,具体的实现方法如下。

(1)首先定义两个16位宽度的32个数据的数组,两个数组维数相同,宽度相同。如表1所示。

表 1 Write_Data(Shift_Data)Tab.1 Write_Data(Shift_Data)

Shift_Data数组用于放置AD采样的数据,Write_Data用于存放检测到的动作电位。

(2)当每过 60 μs时,AD 采样一次,得到一个数据,把这个数据放到Shift_Data的END位,下一次60 μs时,把上一次的数据向HEAD方向移位一次,把新采集的数据放到END位,重复下去,实现了数据的依次移位,溢出的数据删除。

(3)同时每过 60 μs,就检测 Shift_Data 的第 8位一次,当此位大于自动计算的阈值时,就认为是动作电位,即把这32位数组Shift_Data全部送给Write_Data,这里存放提取的动作电位。当还没有进行阈值的第一次计算,此时阈值设为0。当Thr1计算完毕之后,在Thr2计算完毕之前,用Thr1来判定Shift_Data第8位数据,看此位数据是否大于Thr1。在Thr2计算完毕之后,再Thr3计算完毕之前,用Thr2判断第8位数据,看此位数据是否大于Thr2,依次进行下去。

(4)为了防止重复给Write_Data赋值,如果检测到动作电位,将Shift_Data所有位清零,然后再次采样,移位。

(5)检测到Write_Data有数据一次,立刻发送一次,即把这里的动作电位通过usb接口发送出去,这样就实现了自适应阈值法。

1.3.3 上位机软件

上位机软件采用LabVIEW (laboratory virtual instrument engineering workbench)编写,实现实时显示和保存动作电位的功能。

上位机中需要记录有效的动作电位数据和计时数据,来观测算法是否实时有效,同时存储数据。

2 结果与讨论

2.1 算法的Matlab仿真结果

本文采用大鼠实验的实测数据作为仿真数据,采样率为25 k/s。图3(a)中细实线为原始数据,粗线为不断调整的阈值。 对应式(4),取 N=5,b=0,自适应阈值法中M=200。图3(b)是自适应阈值法的结果。

图3 自适应阈值法Matlab仿真Fig.3 Matlab simulation of adaptive threshold method

根据算法特点,图中前一段数据为原始数据,没有经过阈值提取。不难看出,自适应阈值法能有效的抑制噪声信号,完成了动作电位提取的功能。

在式(4)中,有个关键参数N,N的取值对检测结果有直接的影响。以一段数据data([1:35000])为例,这段数据包含55个动作电位,N的取值对检测结果的影响如表2所示。

表2 N的大小对结果的影响Tab.2 Influence of N

由表2可以看出,N的取值十分重要,直接影响检测结果。N的大小和电路的放大倍数、动作电位的幅度、噪声、系统的条件等有关,需要根据实际情况进行确定。

测试结果证明,根据式(4)能够成功地计算出阈值,并且能够有效提取动作电位。

2.2 算法的FPGA电路验证结果

本文采用神经信号发生器产生的动作电位来检测算法是否成功。经过滤波,滤除了神经信号发生器所产生的场电位,经过放大,把300 μV的动作电位放大到1 V左右,在此基础上进行实验。

根据式(4),在FPGA中根据AD采样数据的不断更新,每隔一段时间自动计算阈值一次,并且根据此阈值,判定动作电位是否出现。式(4)中b取5 V,M为1024,N取7时,自适应阈值法在上位机上的处理结果如图4所示。图4(a)为自适应阈值法得到的部分结果,可以看出,大于阈值的动作电位被发送了出来,其余的小于阈值的噪声信号没有被发送出来。图 4(b)是图 4(a)中单个动作电位的放大图形,图4(c)是动作电位叠加的结果。

图4 自适应阈值法得到结果Fig.4 Result of adaptive threshold method

当N取0时,相当于直接进行采样,没有进行阈值的判定,把所有的动作电位和噪声都发送出来;当N取5时,把100%的动作电位和部分噪声截取出来了;提高阈值,当N取7时,把100%的动作电位和极少部分噪声截取出来;滤除了绝大部分的噪声信号。

3 结语

经过Matlab仿真和FPGA电路验证,本文设计的自适应阈值法能够根据神经信号的数据不断自动地计算阈值,并且可以根据此阈值实时地提取动作电位信号。

本文利用均值计算阈值的方法简单,计算量小,容易在电路上进行实现。此算法随着数据段的变化根据公式自动的调整阈值,具有较大的灵活性。此种动作电位的提取方法,简化了定阈值的设定过程,实现了自适应的阈值检测法。同时,对大量的冗余信号自动进行了滤除,提高了数据的传输效率,简化了后续的处理过程,这为后续脑神经活动的研究提供了有效的依据。

[1] 袁彩霞.人体神经系统的研究与启示[J].中国医学影像技术,2003,19(204):72-73.

[2] 王冬雪.神经元峰电位的检测与分类方法研究[D].安徽:中国科学技术大学,2011:11-19.

[3] 王清波.基于信息压缩的无线植入式脑机接口中算法及系统研究[D].浙江:浙江大学,2011:1-94.

[4] 姚舜,刘海龙,陈传平,等.一种获取锋电位的峰值检测算法的改进方案[J].生物医学工程研究,2005,24(1):14-17.

[5] Zoran Nenadic,JoelW Burdick.Spikedetection usingthe continuous wavelet transform[J].IEEE Transactions on Biomedical Engineering,2005,52(1):74-87.

[6] Reid R Harrison.A low-power integrated circuit for adaptive detection of action potentials in noisy signals[C]//Proceedings of the 25’Annual International Conference of the IEEE EMBS Cancun.Mexico,2003:3325-3328.

[7] Paul T Watkins,Gopal Santhanam,Krishna V Shenoy,et al.Validation of adaptive threshold spike detector for neural recording[C]//Proceedings of the 26th Annual International Conference of the IEEE EMBS.San Francisco:CA,2004:4079-4082.

[8] J Morizio,J Parmentier,J Bender,et al.15 Channel Wireless Headstage System for Single Unit Rat and Primate Recordings[P].USA:No.TBME-00565-2005.

[9] Li Huang,Xu Zhang,Ning Guan,etc.Real-time multi-channel system for neural spikes acquisition and detection[C]//New Circuits and Systems Conference(NEWCAS),2012 IEEE 10th International.Beijing:Inst.of Semicond,2012:149-152.

[10]Reid R Harrison,Paul T Watkins,Ryan J Kier,et al.A lowpower integrated circuit for a wireless 100-electrode neural recording system[J].IEEE Journal of Solid-State Circuits,2007,42(1):123-132. ■

猜你喜欢

动作电位阈值噪声
双相电位不对称性原因探析
——从一道浙江选考生物学试题谈起
诱导多能干细胞移植后对急性心肌梗死小鼠心肌局部单相动作电位的影响
采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值
小波阈值去噪在深小孔钻削声发射信号处理中的应用
汽车制造企业噪声综合治理实践
Hg2+、Pb2+对牛蛙坐骨神经干动作电位阈值及传导速度的影响
肉豆蔻挥发油对缺血豚鼠心室肌动作电位及L型钙离子通道的影响
基于迟滞比较器的双阈值稳压供电控制电路
一种改进的小波阈值降噪方法
汽车变速器啸叫噪声处治