基于分类任务的信号(EEG)处理

对于我们这些从没做过信号处理以及分类的小伙伴来说,面对信号数据真的是不知道该如何下手。既然大家来看这篇博文,我相信,大家与我一样,其中的痛楚无需多言。下面我就与大家分享一下,这段时间我对这一问题的感悟(新手上路,如有错误,请大家批评指正)。

首先我们需要对这一问题有一个宏观的认识。我们采集到的原始脑电信号包含了很多的噪声与干扰,这些在分类中都会影响分类性能,那么我们就需要先对信号去噪去干扰。这一步后得到的就是较为纯净的信号了,接下来就要对信号提取特征了,分类器是根据信号的特征进行学习建立模型的。那么该如何提取特征呢?在我处理的信号中,我需要分delta(1-3hz)、theta(4_7hz)、alpha (8-13hz)、beta(14-30hz)四个频带,因此我利用滤波器,先分别得到这四个频带的信号,然后再在这四个频带上提取特征。提取特征后我们利用特征矩阵进行分类任务。

下面我们来对基于脑电信号的分类任务进行分析:

1、我们首先采集到的是脑电的原始信号,例如有BDF格式、CNT格式等等,我们利用matlab处理不能直接读取这些格式的文件,那么我们就需要对这些格式的文件进行处理,将其保存为.mat格式的文件,这样matlab就能对其直接进行运算了。处理这些格式的文件可以使用eeglab工具包,这是一个图形化界面的处理工具包,当然也可以调用相关函数进行处理。关于eeglab工具包的详细信息就不在这里阐述了,大家可以参考eeglab工具包的官网进行下载和了解:EEGLAB官网

2、对原始脑电信号的格式文件处理后得到相关的.mat格式文件,此时便可以开始我们的信号处理。在这里假设我们采集了32通道的脑电信号,采样率为1000Hz,采集了10分钟,转化后的.mat格式文件的shape为32*600000,那么行向量就表示一个通道所采集的脑电信号,每一个通道有10min*60s*1000Hz个样本点。我们可以通过eeglab去除一些采集的不好的样本点,也可以利用一些算法进行去噪去干扰,例如去除工频干扰、利用滤波器滤波、去除眼电等,此处有一个思维导图,可以参考EEG预处理思维导图

3、提取特征时可以按通道提取,即将32个通道分开进行提取,在这里我们提取频域信号功率谱密度(PSD, 功率谱密度相关方法的MATLAB实现)。因为我需要分析delta、theta、alpha、bete四个频带,因此我先对当前处理的通道信号提取四个频带的信号。然后在每个频带上求其对应的功率谱密度。如果一个标签对应1s的数据,那么我们需要将信号按1s进行分段,即每1000个采样点求一个PSD值;然后将四个频带分别求出的特征值进行排列。此时一个通道(shape为1*600000)的数据就会变为shape为4*600的特征数据集,对32个通道的数据提取特征后,如果排列成3为则shape为32*4*600,如果排列成二维这共有32*4=128行,则shape为128*600,此时其对应的标签的shape应该为1*600。

这里给出一个简要的代码:

for i =1:channals %channals为通道数
    delta = butter_bandpass_filter(data(:,i), 1, 3, frequency,3);
    theta = butter_bandpass_filter(data(:,i), 4, 7, frequency,3);
    alpha = butter_bandpass_filter(data(:,i), 8, 13, frequency,3);
    beta  = butter_bandpass_filter(data(:,i), 14, 30, frequency,3);
    
    for j =1:sample % sample为采样点数
        psd_delta =         [psd_delta;compute_psd(delta(((j-1)*frequency*time_win+1):j*frequency*time_win, 1))];
    ...
    end
...
...
...
end

4、此时就可以将处理后的数据和标签输入到分类器中进行训练模型了。例如使用SVM进行分类,我们需要将特征矩阵转换为样本*维度的shape形式,那么就对特征矩阵和标枪向量同时进行转置后输入到svmtrain函数中,再利用predict函数进行预测。

具体的代码实现及讲解大家可以参考我的另一篇博文基于分类任务的信号(EEG)处理——代码分步解析

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值