%%读取BCI Competition 2008 data sets 2b数据
%%该数据包含9个受试者进行两类运动想象,其中左手1,右手2。
%%每个受试者均进行5组实验(前两组B0X01T,B0X02T是不带反馈的,后三组B0X03T,B0X04E,B0X05E是带反馈的),X取1~9,每组中包括288 trials(分6小组完成,每小组48 trials,每类各包含12 trials)
%%脑电采集是3导双极导联(C3、C4和CZ),眼电三导单极导联,具体位置说明见desc_2b.pdf。
%%数据采样率250Hz,0.5~100Hz带通滤波和50Hz陷波。
%%前两组(不带反馈)的每次trial持续8~9秒,cue箭头在t=3秒出现,持续1.25秒结束,运动想象是从t=4秒开始,直到t=7秒结束。
%%后三组(在线反馈)的每次trial持续8~9秒,cue箭头在t=3秒出现,在t=7.5秒消失,运动想象就在3~7.5秒内进行。
%%7.5秒后进入break阶段。所以我们只取每次trail的T=8秒数据作为分析对象。
clc;
clear all;
%%---Read the data sets 2b(两类运动想象) of BCI competition IV (数据路径换一下即可)
[s,h]=sload('E:\MATLAB701\bci08\B0404E.gdf');%%用此函数读取.gdf格式的数据文件需要将EEGLAB工具包加载到MATLAB下,自己到EEGLAB网站下载
load('E:\MATLAB701\true_labels_2b\B0404E.mat') %%数据存放路径要修改成你电脑里存放的相应路径;
%%---Read relevant infomation-------
Fs=h.SampleRate; % 读取采样率;
electrode=h.Label; % 读取导联信息;
POS=h.TRIG; % 读取所有类型的trail的起始点位置;
%%---读取左右手运动对应的标记(Label(:,1))、起始点位置(Label(:,2))和试验总次数(Trial)-------
Trial=0;
for i=1:length(classlabel)
if (classlabel(i,1)==1|classlabel(i,1)==2)
Label(Trial+1,1)=classlabel(i,1);
Label(Trial+1,2)=POS(i,1);
Trial=Trial+1;
end
end
%%---Read data of C3 and C4------
T=8;
for i=1:Trial
pos=Label(i,2);
Data((i-1)*Fs*T+1:i*Fs*T,1)=s(pos:pos+Fs*T-1,1); %导联1和3分别对应C3和C4
Data((i-1)*Fs*T+1:i*Fs*T,2)=s(pos:pos+Fs*T-1,3); %导联信息见electrode
end
上面是读取数据的程序,我不知道ica算法怎么写,有没有大神能帮我把剩下的算法告诉我,感激不尽