介绍不多说了,这篇文章里有波恩癫痫数据集下载以及数据预处理程序
接下来讲一下怎么将单通道EEG信号的特征提取,提取后可以通过机器学习方法分类
具体原理是使用离散小波变换(db4)将单个样本EEG信号分解,取D3,4,5,6和A6,代表delta(A6),theta(D6) , alpha(D5) ,beta(D4),gamma(D3) .然后计算五个子信号各自的总体标准差,然后组成特征向量,就提取出单个样本的特征了。之后计算集合A和集合E中的共200个样本,保存下来复制到excel做一张表就能通过机器学习进行分类了(使用svm,决策树之类的都可以,网上太多相关内容就不赘述了)。
集合A(正常人)的部分样本特征
集合E(癫痫发作)的部分样本特征,可以看出来跟集合A有明显区别
特征提取代码,信号集合A_Z生成可以看开头的文章,wavedec函数需要下载专门的matlab Toolbox
M=[]
for i = 1:100
w=A_Z(:,:,i)%取单个EEG信号
[C,L] = wavedec(w,6,'db4');%6级分解
[d3] = wrcoef('d',C,L,'db4',3);
SD_gamma=std(d3,1)
[d4] = wrcoef('d',C,L,'db4',4);
SD_beta=std(d4,1)
[d5] = wrcoef('d',C,L,'db4',5);
SD_alpha=std(d5,1)
[d6] = wrcoef('d',C,L,'db4',6);
SD_theta=std(d6,1)
[a6] = wrcoef('a',C,L,'db4',6);
SD_delta=std(a6,1)
SD=[SD_delta,SD_theta,SD_alpha,SD_beta,SD_gamma]
M=[M;SD]%插入矩阵
end
save SD_A_Z.mat M