脑机接口SSVEP信号处理(MATLAB实现)

学号:17020150056   姓名:张伟航

【嵌牛导读】。当一个恒定频率(通常大于5Hz)对人眼进行不断刺激时,这种剌激会调制大脑视皮层的脑电信号,这种被外界频率所调制的脑电信号就是稳态视觉诱发电位。SSVEP在频谱上由与视觉刺激频率成整数倍关系的频率成分组成。例如:一个7Hz的调制频率刺激眼球时,则会诱发7Hz、14Hz和21Hz等频率的脑电信号。所以SSVEP是周期性的信号,信号处理模型可用成整倍数关系的一系列正弦波组合来表示SSVEP。

【嵌牛鼻子】SSVEP信号     脑机接口  脑电信号

【嵌牛正文】

SSVEP数据处理

一、研究背景与原理简介

当一个外界的视觉刺激刺激到人眼时,在脑部的视皮层就会产生相应的变化,产生相应的电活动,这种信号就是视觉诱发电位。当一个恒定频率(通常大于5Hz)对人眼进行不断刺激时,这种剌激会调制大脑视皮层的脑电信号,这种被外界频率所调制的脑电信号就是稳态视觉诱发电位。

通过对这种脑电信号进行频谱分析,找出一种特殊的目标频率,就能判断出被试选择哪个目标。SSVEP在频谱上由与视觉刺激频率成整数倍关系的频率成分组成。例如:一个7Hz的调制频率刺激眼球时,则会诱发7Hz、14Hz和21Hz等频率的脑电信号。所以SSVEP是周期性的信号,信号处理模型可用成整倍数关系的一系列正弦波组合来表示SSVEP。

基于 SSVEP 的 BCI 系统中视觉刺激频段的范围一直都是 BCI 研究中不断探索的问题,Christop S.Herrmann 等研究表明,刺激频率从 1Hz 到 100Hz 都能诱发 SSVEP响应。目前大部分 BCI 系统中采用的频率范围可分为低、中、高频段,其中低频段为6Hz-15Hz,中频段为 15Hz-30Hz,高频段为 30Hz-60Hz。不同刺激频段诱发的 SSVEP响应有所差异,由高频段刺激诱发的 SSVEP 响应峰值最小,而低频段诱发的 SSVEP响应具有信噪比高,容易诱发等优点,故目前很多研究中的视觉刺激频段都采用低频段。不过低频段视觉刺激也存在不足的地方,如容易使用户产生视觉疲劳。

二、数据的采集与算法处理思路

该数据基于SSVEP经典实验范式产生,所提供数据为4维数据,其中第一个维度表示数据采集的通道数,第二个维度表示数据采样点数,第三个维度表示实验次数,第四个维度表示试验中刺激块的闪烁频率。例如Data_1数据大小为[9,5120,40,6],9表示该实验数据的采集来自于9个通道,5120为采样点数,40表示为确保数据的可靠性,共进行了40轮,6表示SSVEP实验范式中刺激块的闪烁频率为6个不同的频率,采样频率为1024HZ。

在实际应用中所获得的原始信号总伴随着自发脑电等随机噪声,因此必须采取措施消除或者抑制这些噪声。而总体累加平均为一种传统的并且有效的方法。在总体累加平均时,应该对同一个通道(电极),同一个频率的40轮数据进行平均,可以通过两重循环和mean命令来实现。为了分析其频谱分量,将得到的数据进行FFT,便可以得到6个频率下,9个不同电极信号的频谱图,这样不但可以分辨不同的频率还可以找到效果更好的电极。

充分考虑到4Hz的眼电干扰,以及当前电脑屏幕的普遍刷新率为60HZ,所以将得到的信号再进行4Hz~60Hz的带通滤波

并且通过MATLAB中的FDATOOL工具箱设计了通带截止频率为50HZ的低通滤波器,将所得信号进行滤波。经过MATLAB仿真分析,频率分别是7HZ,8HZ,9HZ,10HZ,11HZ,12HZ。

源代码以及滤波器的设计过程见后附。

三、数据处理结果

1.     Data_1处理结果

Data_1数据并不是很理想。初步推测是信号采集或者被试等过程并不是很理想,或者刺激频率比较高,得到的信号信噪比过于小。所以采集到的信号也不是很理想,经过处理后并没有出现明显的峰值。这里仅仅展示两个不同个频率刺激下的效果图:


图1.1:第一个频率下的9个电极通道的信号频谱图


图1.2:第二个频率下的9个电极通道的信号频谱图

 

2.     Data_2和Data_3处理结果

Data_2和Data_3的结果相同,下面仅仅展示Data_3的结果图。经过MATLAB仿真分析,6个不同的频率分别是7HZ,8HZ,9HZ,10HZ,11HZ,12HZ。(源代码间后附)


图2.1:7HZ刺激下的9个电极通道的信号频谱图




图2.2:8HZ刺激下的9个电极通道的信号频谱图


 

图2.3:9HZ刺激下的9个电极通道的信号频谱图

 

 

图2.4:10 HZ刺激下的9个电极通道的信号频谱图

 

 


图2.5 :11 HZ刺激下的9个电极通道的信号频谱图



图2.6:12 HZ刺激下的9个电极通道的信号频谱图

 

 

 

 




四、结论与总结

经过MATLAB仿真分析,发现SSVEP信号在频谱上由与视觉刺激频率成整数倍关系的频率成分组成,例如:一个7Hz的调制频率刺激眼球时,则会诱发7Hz、14Hz和21Hz等频率的脑电信号。

并且不同的电极通道的效果不同,经过本次仿真发现,效果最好的电极通道为t通道2通道5和通道7。效果不好的电极通道为通道1和通道6。

通过这次仿真,加深了对课堂上知识的理解,在实践当中提高了自己的动手能力。收获非凡。

五、源代码

% a:通道数 b:采样点数 c:确保数据的可靠性,共进行了c轮  d:表示SSVEP实验范式中刺激块的闪烁频率为6个不同的频率

% d是6个不同频率

%采样频率是1024HZ

clc,clear;

load G;

load SOS;             %所设计的截止频率为4~50HZ的低通滤波器系数

Hd=dfilt.df2tsos(SOS,G);

% load Data_1;

% [a,b,c,d]=size(wangkaiData);

% load Data_2;

% [a,b,c,d]=size(kwang_1024_1);

load Data_3;

[a,b,c,d]=size(kwang_1024_2);

fs=1024;

N_fft=1024*16;

ff=linspace(-fs/2,fs/2,N_fft);

fork=1:d                               %d个不同的频率

   figure,

   forj=1:a                           %a个电极

       fori=1:c                       %总共进行了c轮  

       z(i,:)=kwang_1024_2(j,:,i,k);   %load不同的数据时,这里也需要更改!!!

       end

       y=mean(z);

       y=filter(Hd,y);                 

%第k个频率的第j个通道的信号,通过c轮采样取平均,并且通过滤波(4~50HZ)。

       Y=fft(y,N_fft);                %进行1024*8点的FFT

       subplot(3,3,j),plot(ff,fftshift(abs(Y))),axis([5 50 min(abs(Y))max(abs(Y))+500]);%频谱图

%       subplot(3,3,j),plot(y),hold on; %%时域图

       title(sprintf('通道%i \n',j));

   end

end

滤波器设计参数:

 

 

你可能感兴趣的:(脑机接口SSVEP信号处理(MATLAB实现))