SSVEP脑机接口及数据集处理
本篇文章主要介绍了稳态视觉诱发电位SSVEP以及相关的数据集处理。
稳态视觉诱发电位(Steady-stateVisual Evoked Potentials, SSVEP)属于视觉诱发电位(Visual Evoked Potentials, VEP),是指当人眼受到一个恒定频率(通常大于4Hz)的视觉刺激时,大脑视觉皮层会自动产生与刺激频率及其谐波频率同频率的响应。
SSVEP典型应用
实验目的:利用ssvep实现高速字符输入
说明:
1、屏幕上5X8个方格以不同频率(8-15hz)和相位闪集中烁,受试着将视线集中在某个方块上(比如以12hz闪烁的方块),则视觉区收集到的脑电信号中可以识别出12hz及其谐波,这样受试者就完成了一次选择。
2、每一种选择对应一个字符,完成字符输入。
ssvep数据集
1、该数据基于SSVEP经典实验范式产生,所提供数据为4维数据,其中第一个维度表示数据采集的通道数,第二个维度表示数据采样点数,第三个维度表示实验次数,第四个维度表示试验中刺激块的闪烁频率。例如Data_1数据大小为[9,5120,40,6],9表示该实验数据的采集来自于9个通道,5120为采样点数,40表示为确保数据的可靠性,共进行了40轮,6表示SSVEP实验范式中刺激块的闪烁频率为6个不同的频率。
2、采样频率:1024
data_2(MATLAB的mat文件形式)
MATLAB对数据集处理
1、s2_1=sum(data2,1)/9;对第一维(9个通道)取平均
2、s2_1=sum(s2_1,3)/40;对第三维(40次重复)取平均
3、s2_1=s2_1(1,:,1,6);第一维和第三维已经取平均,其索引范围只有1了,第四维中6表示6个频率中第6个频率,其索引范围1到6;第二维是采样点数。
4、这个代码实现绘制信号时域图和绘制频域图
load('Data_2.mat');
data2=kwang_1024_1;
figure(1)
s2_1=sum(data2,1)/9;
s2_1=sum(s2_1,3)/40;
s2_1=s2_1(1,:,1,6);
t=(0:length(s2_1)-1)/1024;
plot(t,s2_1)
axis([t(1) t(end)+1 -5*max(s2_1) 5*max(s2_1)]);
figure(2)
NFFT = 2^nextpow2(length(s2_1));
f = 1024/2*linspace(0,1,NFFT/2+1);
y=fft(s2_1,NFFT)/length(s2_1);
plot(f,abs(y(1:NFFT/2+1)),'r')
axis([0 50 0 0.15]);
结果展示
<1>时域图
这个是第6个频率刺激下的时域图
<2>频域分析
通过对脑电波的频域分析,观察其频率与其谐波频率,可以得出这6个刺激频率分别是7,8,9,10,11,12Hz
第一个频率下产生的脑电波s2_1(1,:,1,1)FFT结果
第二个频率下产生的脑电波s2_1(1,:,1,2)FFT结果
第三个频率下产生的脑电波s2_1(1,:,1,3)FFT结果
第四个频率下产生的脑电波s2_1(1,:,1,4)FFT结果
第五个频率下产生的脑电波s2_1(1,:,1,6)FFT结果
第六个频率下产生的脑电波s2_1(1,:,1,6)FFT结果
本案例中的数据文件下载地址:
https://download.csdn.net/download/pengchengIT/12498373
文章来源于CSDN网友pengchengIT的授权分享。
本文经网友pengchengIT授权分享
仅用于学术交流,不用于商业行为,若有侵权及疑问,请后台留言,管理员即时删侵!
更多阅读
AI学会了用“人眼”看世界,甚至连人类瞳孔的细微缩放都能模拟
加入社群
欢迎加入脑机接口社区交流群,
探讨脑机接口领域话题,实时跟踪脑机接口前沿。
加微信群:
添加微信:RoseBCI【备注:姓名+行业/专业】。
加QQ群:913607986
欢迎来稿
1.欢迎来稿。投稿咨询,请联系微信:RoseBCI
2.加入社区成为兼职创作者,请联系微信:RoseBCI
助力脑机接口发展
点个在看祝你开心一整天!