基于互信息的EEG脑网络情感识别(三)——数据预处理(分频段)

本文承接上一篇对DEAP数据集文件的数据截取,将处理后的数据按频率分成四个波段。通过小波包分解(Matlab函数wpdec)得到Theta、Alpha、Beta1、Beta2频段数据序列,还介绍了分解树建立、结点重构及信号叠加等操作,并给出部分代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇文章对DEAP数据集中的data_preprocessed_matlab文件夹的文件进行了数据的截取。
这篇文章是接着上一篇,将数据按频率分成四个波段。

用到的数据是在上一篇文章中处理之后生成的数据。


将经过降采样率的样本通过小波包分解,得到 Theta(4–7Hz)、Alpha(8–13Hz)、Beta(13–30Hz)。小波包分解能够将频带进行多层进一步划分,相对于小波变换而言,能够将没有细分的高频部分进一步细分。由于研究中使用到的相位锁值对于窄带信号较为敏感,而 Beta 段频带较宽,因此又进一步将 Beta 波段划分为低频的 Beta1(13–20Hz)和高频的 Beta2(20–30Hz)。
小波包分解(Matlab 函数 wpdec,母函数为 db20)得到 4 个频段下的数据序列。
:关于小波包分解,如果不太熟悉的话,这里推荐一个博客,我当时是参考这个学习的:小波包分解与信号重构


由于要分的波段是:(重叠部分归到后面波段)

  • Theta(4–8Hz)
  • Alpha(8-13Hz)
  • Beta1(13-20Hz)
  • Beta2(20–30Hz)
    采样频率为128Hz,则奈奎斯特频率为64Hz(概念而已,自行百度一下)
    我准备建立的分解树是6层的(不算(0,0)那一层),这样,最底层的结点跨度范围就是1Hz。

分解代码如下:(其中A表示一维的信号)

wpt=wpdec(A,n,'db20');

其中结点(6,0)表示0–1Hz,(6,1)表示1–2Hz,(6,2)表示2–3Hz …


分解后,即建立下面的分解树:
建立6层分解树


下一步,对结点进行重构,并对处理的信号进行叠加
对结点重构以及信号叠加代码如下:

	cfs01=wprcoef(wpt,[6 4]);
    cfs02=wprcoef(wpt,[6 5]);
    cfs03=wprcoef(wpt,[6 6]);
    cfs04=wprcoef(wpt,[6 7]);
    cfs0=cfs01+cfs02+cfs03+cfs04;

下来,还是附上一个整体处理的代码:
(A是一维数据,所以拆成每行进行处理,完成后再进行拼接)

pathname='E:\脑电数据集\s01-1\';
x=load('E:\脑电数据集\截取后数据\s01\s01-1.mat');
xx=x.data;
n=6;
Theta=[];
for i=1:32
    A=xx(i,:);
    wpt=wpdec(A,n,'db20');
    plot(wpt);
    cfs01=wprcoef(wpt,[6 4]);
    cfs02=wprcoef(wpt,[6 5]);
    cfs03=wprcoef(wpt,[6 6]);
    cfs04=wprcoef(wpt,[6 7]);
    cfs0=cfs01+cfs02+cfs03+cfs04;
    %filename=sprintf('Theta-%d',i);
    %save([pathname,filename],'cfs0');
    filename='Theta';
    Theta=[Theta;cfs0];
    save([pathname,filename],'Theta');
end

该代码只对s01\s01-1.mat的数据进行了处理,而且只提取了Theta波段的数据
其他波段的提取,以及后续的批处理操作就不做叙述了


在这里插入图片描述
该文章是学习笔记,后续会继续更新
下一篇文章的链接:基于互信息的EEG脑网络情感识别(四)

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值