知识产权(IP)核,是指己验证的、可重利用的、具有某种确定功能的IC模块。FPGA有大量各种用途的IP核。这些IP核对内核进行了参数化,通过头文件或图形用户接口(GUI)可以方便地对参数进行操作。通过异步双口RAM IP核调用片内RAM来缓存脑电数据,保证了数据接口的同步和数据处理速度。用累加器IP核和除法器IP核来实现算法中的累加器和除法器。
只采用累加平均的方法, 需要进行上百次才能得到可靠的诱发电位波形, 信号提取的时间太长。在少量次累加平均时,为了进一步提高信噪比,提取出较为理想的诱发电位波形,采用数字滤波的方法来减少噪声的影响。FIR滤波器具有严格的线性相位,稳定性好,而且通频带比较平坦。所以,采用FIR滤波器来实现数字滤波。用窗函数设计法设计一个15阶的低通FIR滤波器,窗函数为海明窗,截止频率为10 Hz。利用MATLAB工具箱中的FDATool设计滤波器,并转换为HDL代码,可以很方便地在FPGA中实现FIR滤波器。通过调用CycloneⅡ芯片中用于DSP运算的嵌入式乘法器来实现FIR滤波中的乘法运算。与基于逻辑单元的乘法器相比,嵌入式乘法器性能更高,占用逻辑单元更少。嵌入式乘法器能够与CycloneⅡ器件的M4K RAM块进行无缝集成,实现高效的DSP算法[6]。
瞬态视觉诱发电位的识别,就是要将诱发电位信号转换成一系列控制命令,从而实现人脑与外界的通信与控制。模板匹配是传统的模式识别方法之一。相关系数是变量之间相关程度的指标,可以用于判断曲线拟合程度。用相关系数来衡量模板与未知模式匹配的好坏,是一个有效且可行的方法。
首先,选定一个特征明显的瞬态视觉诱发电位波形,作为模板匹配的参考模板;然后,把实时提取诱发电位波形与参考模板做相关系数计算。若相关系数值大于设定的阈值时,就认为检测到了的诱发电位,发出控制命令,使光标移向相应的刺激模块,从而实现瞬态视觉诱发电位的识别。
相关系数的计算公式如下:
假定模板的数据为y,可以先离线计算出公式(1)中含y项的值,存在ROM中,从而提高实时计算的速度。只需要1个乘加器IP核,调用FPGA芯片中的嵌入式乘法器,就可以实现分子和分母中的乘加运算,节省了器件的资源。用开根号IP核来实现开根号运算。
FPGA运行速度快,内部程序并行运行,并且有DSP运算IP核和嵌入式乘法器,能够快速准确地完成脑电处理算法,满足信号处理的实时性要求。
2 实验结果
采用本文方案构建的脑机接口系统进行实验。脑机接口实验通常为一组实验,分别选择不同的4个刺激模块(包括全部目标的选择)。在实验中,受试者头戴电极帽,眼睛距屏幕70 cm左右,控制光标移向所注视的目标。每次实验时,4个刺激模块完成一轮闪烁后,然后停顿几秒,进行下一轮闪烁。4轮闪烁,即4个刺激模块都能被选中后,自动停止闪烁。
实验中提取的瞬态视觉诱发电位波形如图4所示。图4(a)中,已经可以看到视觉诱发电位的雏形,但视觉诱发电位的特征不是十分明显。图4(b)中,用FIR滤波对诱发电位信号进一步处理,得到了特征比较明显的视觉诱发电位。
脑机接口的实验结果如表1所示,受试者是5名健康男性。正确判断时,在刺激模块停止闪烁的同时,光标立刻移向受试者注视的模块。
基于瞬态视觉诱发电位的脑机接口实验表明,本文给出的基于FPGA的脑机接口实时系统的方案是可行的。基于FPGA的VGA视觉刺激器,刺激频率十分稳定,刺激界面易于接受,修改升级方便。基于FPGA的脑电信号处理算法,采用少量次累加平均结合FIR滤波来提取诱发电位,并通过模板匹配的方法加以识别,可以快速准确地把瞬态诱发电位信号转换为控制命令,实现了实时的脑机接口系统。基于FPGA的脑机接口系统,是一种新的方法,也是对脑机接口实现方法的有益探索。