脑电信号ica算法 matlab,请问如何通过ica算法对脑电信号进行分类?

%%读取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算法怎么写,有没有大神能帮我把剩下的算法告诉我,感激不尽

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值