点击上面"脑机接口社区"关注我们
更多技术干货第一时间送达
大家好!
今天Rose小哥给大家分享一篇常见的脑电特征提取算法--共空间模式(Common Spatial Pattern, CSP)的研究进展、算法原理及其它的代码案例。
共空间模式(Common Spatial Pattern, CSP)是一种对两分类任务下的空域滤波特征提取算法,能够从多通道的脑机接口数据里面提取出每一类的空间分布成分。公共空间模式算法的基本原理是利用矩阵的对角化,找到一组最优空间滤波器进行投影,使得两类信号的方差值差异最大化,从而得到具有较高区分度的特征向量。
CSP的研究进展
共空间模式(CSP)的研究概况
由于不同特征的信息包含在信号的不同频段中,因此考虑EEG信号,可以将其分离到不同的特定频段进行分析。在当前研究的特征提取和特征分类算法中,CSP是性能最好和应用最广泛的特征提取方法。CSP将当前数据转换到另一个新的空间,使得类间数据的方差最大化,类内的方差最小化。
通常,在运动想象EEG信号分类中,CSP算法往往选择宽频段(4-40HZ)来进行信号处理。研究表明,这个宽频段包含了大多数的运动想象相关的信息,同时,也包含着其他冗余信息,所以不少研究工作重点考虑这个宽频段的选择最佳问题,以此来改善CSP的分类性能。在提出的共空间频谱模式(CSSP)中,有限脉冲响应(FIR)滤波器在CSP滤波器的基础上进行了优化,通过插入时间延迟τ来实现,该时间延迟τ允许单独调谐频率滤波器,评估若干样本点的时间延迟τ值,并且使用10倍交叉验证来选择最佳值。使用带通滤波器对信号进行滤波,然后进行空间滤波和特征提取。实验结果显示CSSP改进了性能。提出的共稀疏频谱空间模式(CSSSP)进一步改进了CSSP方法,其找到所有信道共用的频谱模式,而非CSSP为每个信道找到不同的频谱模式。
已经提出的子带公空间模式(SBCSP),其中在多个子带处对运动图像EEG信号进行滤波,并且从每个子带提取CSP特征。为了减小子带的维数,线性判别分析(LDA)分别应用于每个子带的特征,并融合在一起以进行分类。 SBCSP实现了比CSP,CSSP和CSSSP更高的分类精度。然而,SBCSP忽略了从不同子带获得的CSP特征的可能关联,因此提出了滤波器组CSP(FBCSP)来解决该问题。 FBCSP计算来自多个子带的CSP特征的互信息,以便选择最具辨识性的特征,所选特征使用支持向量机(SVM)分类器进行分类。 FBCSP的表现优于SBCSP,然而,它仍然使用了若干子带,这些子带依然会带来不少的计算成本的增加。所以提出DFBCSP来解决这个问题,DFBCSP利用单信道(C3,C4或Cz)频带功率的Fisher比(FR)来从多个重叠子频带中选择最具判别性的子频带。然后为每个子带提取CSP特征,并使用SVM分类器进行分类。与SBCSP和FBCSP相比,DFBCSP实现了更高的分类准确度和更低的计算成本。 DFBCSP框架如下图所示。
DFBCSP算法流程框图
考虑DFBCSP的优劣,因此提出了一种改进的DFBCSP方法来解决这些问题。首先,使用从使用所有通道数据生成的特征计算的互信息,而不是像在DFBCSP-FR中那样使用单通道频带功率的FR,来选择能够产生最佳结果的频带。而不使用仅使用单个信道频带功率和FR作为选择子频带(DFBCSP-FR)的方法。这是因为EEG信号主要受噪声污染。因此,如果用于计算FR的单个信道被噪声破坏,则选择出来的频段将会影响分类器的分类精度。这导致选择的子带往往不是最有效的子带,因为可能选择了具有冗余信息的子带。因此,文章建议利用所有可用信道数据通过利用互信息来选择最具判别性的子带,以便获得最佳结果。与使用用于频带选择的单信道信息相比,使用所有信道数据进行频带选择减少了选择具有冗余信息的子频带的机会。
其次,文章不再像在DFBCSP-FR中那样仅使用来自重叠子带的CSP特征,而是结合利用宽带CSP和CSSP的特征信息,文章引入了7-30Hz的单个宽带以及在4-30Hz范围内的12个重叠子带,带宽为4Hz并且重叠2Hz。
改进DFBCSP算法的详细流程框图
假设和分别为两分类想象运动任务下的多通道诱发响应时-空信号矩阵,他们的维数均为,为脑电通道数,为每个通道所采集的样本数。为了计算其协方差矩阵,现在假设$N
上式中,和分别代表两种类型任务。假设两种信号源是相互线性独立的;代表两种类型任务下所共同拥有的源信号,假设是由个源所构成的,是由个源所构成,则和便是由和相关的和个共同空间模式组成的。由于每个空间模式都是一个维的向量,现在用该向量来表示单个的源信号所引起的信号在个导联上的分布权重。表示的是与相应的共有的空间模式。CSP算法的目标就是要设计空间滤波器和得到空间因子。
时空信号矩阵和归一化的协方差矩阵和:
上式(2)中,表示矩阵的转置,表示对矩阵对角线上元素求和。之后求解混合空间的协方差矩阵:
上式中,分别为任务1,2的平均协方差矩阵。
由于混合空间协方差矩阵是正定矩阵,由奇异值分解定理进行特征分解:
上式中,是特征向量矩阵,为对应的特征值的对角阵,按特征值按降序排列,白化转换可得:
将矩阵作用于和可得:
、具有公共特征向量,且存在两个对角矩阵、和相同的特征向量矩阵, 对、进行主分量分解,可得:
且两个特征值的对角阵和之和为单位矩阵:
由上式可知,若中的特征值按照降序排列,则中对应的特征值按升序排列。由于、为、的对角矩阵,所以对于特征向量矩阵,当有最大的特征值时,具有最小的特征值。因此可以利用矩阵实现两类问题的分类,由此得到投影矩阵:
投影矩阵就是对应的空间滤波器。
将训练集的运动想象矩阵和经过滤波器滤波可得特征和:
对于测试数据,其特征向量提取方式如下,
将与和进行比较以确定第次想象为想象左还是想象右。根据CSP算法在多电极采集脑电信号特征提取的定义,其中和的定义如下:
Matlab案例
clc;clear;EEGSignals = load('graz_data/CSP_train.mat'); % 加载带通滤波后的脑电数据%check and initializationsEEG_Channels = size(EEGSignals.x_train,2);EEG_Trials = size(EEGSignals.x_train,3);classLabels = unique(EEGSignals.y_train);% Return non-repeating valuesEEG_Classes = length(classLabels);covMatrix = cell(EEG_Classes,1); % 协方差矩阵% Computing the normalized covariance matrices for each trialtrialCov = zeros(EEG_Channels,EEG_Channels,EEG_Trials);for i = 1:EEG_Trials E = EEGSignals.x_train(:,:,i)'; EE = E*E'; trialCov(:,:,i) = EE./trace(EE); % 计算协方差矩阵endclear E;clear EE;% 计算每一类样本数据的空间协方差之和for i = 1:EEG_Classes covMatrix{i} = mean(trialCov(:,:,EEGSignals.y_train == classLabels(i)),3);end% 计算两类数据的空间协方差之和covTotal = covMatrix{1} + covMatrix{2};% 计算特征向量和特征矩阵[Uc,Dt] = eig(covTotal);% 特征值要降序排列eigenvalues = diag(Dt);[eigenvalues,egIndex] = sort(eigenvalues, 'descend');% 降序Ut = Uc(:,egIndex);% 矩阵白化P = diag(sqrt(1./eigenvalues))*Ut';% 矩阵P作用求公共特征向量transformedCov1 transformedCov1 = P*covMatrix{1}*P';%计算公共特征向量transformedCov1的特征向量和特征矩阵[U1,D1] = eig(transformedCov1);eigenvalues = diag(D1);[eigenvalues,egIndex] = sort(eigenvalues, 'descend');% 降序排列U1 = U1(:, egIndex);% 计算投影矩阵WCSPMatrix = U1' * P;% 计算特征矩阵FilterPairs = 2; % CSP特征选择参数m CSP特征为2*m个features_train = zeros(EEG_Trials, 2*FilterPairs+1);features_test = zeros(EEG_Trials, 2*FilterPairs+1);Filter = CSPMatrix([1:FilterPairs (end-FilterPairs+1):end],:);%extracting the CSP features from each trialfor t=1:EEG_Trials %projecting the data onto the CSP filters projectedTrial_train = Filter * EEGSignals.x_train(:,:,t)'; projectedTrial_test = Filter * EEGSignals.x_test(:,:,t)'; %generating the features as the log variance of the projected signals variances_train = var(projectedTrial_train,0,2); variances_test = var(projectedTrial_test,0,2); for f=1:length(variances_train) features_train(t,f) = log(variances_train(f)); % features_train(t,f) = log(variances_train(f)/sum(variances_train)); %修改后对应公式 end for f=1:length(variances_test) features_test(t,f) = log(variances_test(f)); %features_test(t,f) = log(variances_test(f)/sum(variances_test)); % 修改后对应公式 endendCSP_Train_feature = features_train(:,1:4);CSP_Test_feature = features_test(:,1:4);save('CSP_feature.mat','CSP_Train_feature','CSP_Test_feature');
代码来源于网络
参考:
https://blog.csdn.net/oh__NO/article/details/84310982
[1] Kumar S, Sharma R, Sharma A, Tsunoda T. Decimation filter with common spatial pattern and fishers Discriminant analysis for motor imagery classification. In: 2016 international joint conference on neural networks(IJCNN): 24–29 July 2016; Vancouver, Canada. p. 2090–5.
[2] Ang KK, Chin ZY, Zhang H, Guan C. Filter Bank common spatial pattern(FBCSP) in brain-computer Interface. In: IEEE international joint conference on neural networks (IEEE world congress on computational intelligence):1–8 June 2008; Hong Kong. p. 2390–7.
[3] Lemm S, Blankertz B, Curio G, Muller K. Spatio-spectral filters for improving the classification of single trial EEG. IEEE Trans Biomed Eng. 2005;52(9):1541–8.
[4] Higashi H, Tanaka T. Simultaneous design of FIR filter banks and spatial patterns for EEG signal classification. IEEE Trans Biomed Eng. 2013;60(4):1100–10.
[5] Zhang Y, Zhou G, Jin J, Wang X, Cichocki A. Optimizing spatial patterns with sparse filter bands for motor-imagery based brain–computer interface. J Neurosci Methods. 2015;255:85–91.
[6] Thomas KP, Cuntai G, Lau CT, Vinod AP, Kai Keng A. A new discriminative common spatial pattern method for motor imagery brain computer interfaces. IEEE Trans Biomed Eng. 2009;56(11):2730–3.
[7] Novi Q, Cuntai G, Dat TH, Ping X. Sub-band common spatial pattern (SBCSP) for brain-computer Interface. In: 3rd international IEEE/EMBS conference on neural engineering: 2–5 may 2007; 2007. p. 204–7.
*凡来源非注明"原创"的所有作品,均为转载,其目的在于促进信息分享交流,不做商业用途。若有侵权,请及时通知后台,管理人员删侵。
更多阅读
脑科学这个商业前景被严重低估的领域,AI如何助力其产业化
ERP成分简介--听觉感觉反应和视觉感觉反应
P300事件相关电位知多少?
Cell刊:脑机接口让脊髓损伤患者重新获得手部触觉
Nature子刊:视网膜计算使眼睛先于大脑产生视觉信息
EEG信号特征提取算法
EEMD算法原理与实现
EMD算法原理与实现EEGNet: 神经网络应用于脑电信号
信号处理之倒频谱原理与python实现
信号处理之功率谱原理与python实现
脑电信号滤波-代码实现
运动想象系统中的特征提取算法和分类算法
功率谱估计-直接法原理与案例
MNE中文教程(16)-脑电数据的Epoching处理
DEAP数据库介绍--来自于音乐视频材料诱发得到的脑电数据
PsychoPy安装与测试案例
PsychoPy文字刺激、图片刺激和光栅刺激
Python机器学习算法随机森林判断睡眠类型
应用深度学习EEGNet来处理脑电信号
脑机接口BCI学习交流QQ群:903290195
微信群请扫码添加,Rose拉你进群
(请务必填写备注,eg. 脑机接口或BCI)
长按加群
长按关注我们