目录
10.使用极端值的方式去伪迹(要在伪迹已经去的差不多了再做)
脑电学习笔记~~~
打开matlab首件事:更改工作路径
注意:路径、文件、文件夹只能是数字、英文、下划线。不能有中文和特殊字符、空格
添加工具箱:set path --> add with subfolders --> save ->close
注意要文件夹分类,便于整理
preprocessing预处理:降噪
raw data:
- 信号+噪声
- 微弱的信号淹没在巨大的噪声中
1.数据格式转换
- 不同厂家采集到的原始数据格式不同
- *.* --> *.set 、*.fdt
(1)导入raw数据
eeglab -> file -->import data --> using eeglab functions and plugins -->
找到自己的厂家和格式
因为数据的厂家是BV,格式是vhdr,所以选这个
(2)把转化数据保存
保存set格式文件
file --> save current dataset as
(3)导入set格式的数据
file --> load existing dataset
可以从工作区点开,看数据的详细信息
Channel locs很重要
2.channel locations 通道定位
edit --> channel locations
把数据保存一下到新的位置
ps:
用的默认的坐标定位文件是10-5的标准电极排布系统,那么非标准电极是无法定位出来的
如果有无法定位的通道:
- 1)电极位置是标准的,但是名称不标准: .
- 把不标准的名称改为标准的名称,再点击look up locs
- 2)电极位置不标准
- --1少数的不重要的电极CB1 CB2:后续直接将这种通道当成无用通道去掉
- -2大量要分析的电极EGI:找厂家要定位
3.去除无用电极
这里通过Channel Range去除掉两个无用电极通道:
上图点击ok后,出现下图:
- 分段:把完整的数据按照需要进行分段
- 滤波:不同ERP成分的波的频率不一样,可以过滤出感兴趣的波
- 分段 vs 滤波
- 比如我关注0.1Hz~40Hz频段的波,那么这些波的周期在10s~0.025s间。此时一个最长完整的波需要10s。那么假如我先对数据进行分段,而且分段长度小于10的话,0.1Hz的波没办法通过滤波过滤出来。
- 也就是说,L>3T,输入的数据长度要大于所需滤波的周期的三倍
- 降采样 vs 滤波
- 当你不清楚的时候,一般先进行滤波,把需要的频段留下来,然后再进行降采样。因为有一个数据分析原则,数据只能准确性最多只能分析到所采样的的1/2的频率。所以,可能会导致信息的损失。
- 分段 vs 滤波
- 降采样:对数据进行采样的点
- fs: 1000(1s1000个点)-->100(1s100个点)
- 1/2fs 500 50 可以准确分析到的只有1/2
- 1/4fs 250 25
低通:保留低于它频率的波
高通:保留高于它频率的波
带通:保留特定区间的波
更推荐做单独的高通或者低通
4.滤波
tools --> filter the data --> Basic FIR filter
单独输入
lower edge -> 高通
higer edge -> 低通
两个一起输入是带通
选中notch做带阻
凹陷
5.降采样(可选)
从1000降到500
6.分段
Tools --> extra epochs
选择刺激(events)
一些笔记:
在分段[-1 2]中,
-
- 刺激往前(负的部分[-1 0])用来基线校正,
- 刺激往后(正的部分[0 2])是用来分析的,这一部分的长度:短不能短于你要分析的范围,长不能长于下一个刺激的发生。这一段的长度,最长不能超过两个刺激间的时间间隔。
-
- 在分段中需要利用刺激marker和反应marker进行操作。
- 可以按照刺激marker进行分段,然后按照反应marker去除我不需要的段。(思考:也许也可以倒过来,利用反应marker进行分段)。
- 可以按照刺激marker进行分段,然后按照反应marker去除我不需要的段。(思考:也许也可以倒过来,利用反应marker进行分段)。
- 在分段中需要利用刺激marker和反应marker进行操作。
-
- 刺激marker和反应marker是需要自己标的(可能在数据采集的时候一起标的)
分段操作时可以选择进行基线校正,它会跳出来问你要不要进行基线校正,这里我们一并进行了基线校正。
最后运行结果如下图:可以看到有200个events,数据被分成了100段,每一段是[-1 1.998]的长度
下面的操作:保留含有你想要的反应的分段,去掉一些不要的分段
ps:前提是,你有反应marker,你就可以按照反应来选择分段
edit -->select epochs or events
在type中将正确反应的marker选出即可
7.去坏段 替换坏通道
当你的分段太少了,由于电极造成的很多分段都要去掉,那么可以进行插补坏通道(即使在处理后期也可以做)
去坏段 替换坏通道使用三明治法:
-
- 看数据找坏通道——插补坏通道——看数据去坏段
- 浏览数据: plot - channel data scroll
- 插补坏通道:tools --> interpolate electrodes -->select from data channels
- 看数据找坏通道——插补坏通道——看数据去坏段
(1)插补坏通道
(2)去坏段
选中你要去掉的段,然后选择REJECT
可以在matlab上看到结果
8. Run ICA
tools -> Run ICA
-
- 没有插补过坏通道默认用:'extended', 1
- 插补过需要写成:'extended', 1, 'pca', m-n (写上具体的你要的主成分数量)
- 其中m为当前通道的数量 n为插补的通道的数量
ICA原理:
画图怎么画:
-
- 绘制一个一个独立的成分图:
- plot --> component properties
- 绘制一个一个独立的成分图:
-
- 绘制所有成分的地形图:
- tool --> reject data using ICA --> reject components by map
- 绘制所有成分的地形图:
弹出框框,填写索引
画出来60个,可以看到,排序第一的成分再最上面,因为它是最后画出来的
绘制一个一个独立的成分图:
plot --> component properties 绘制所有成分的地形图: tool --> reject data using ICA --> reject components by map
眨眼
地形图很均匀,锁时且锁相,保留
地形图(map)不均匀,集中在后脑勺位置的那个点。高频却高能量(比低频能量还高),可能是伪迹,去掉。
-
- 绘制所有成分的地形图:
- tools --> inspect/label components by map -->
- 绘制所有成分的地形图:
9.去除伪迹成分
tools --> remove components
Plot ERPs
-
- 每个横线代表一个channel
- 把每一个通道上面,不论多少条件(刺激),都一起进行叠加平均
- 如果不同的条件(刺激)诱发的波形是相反的,那么只是将这些所有条件的片段进行叠加平均是没有意义的。
plot single trail
可以看下plot single trail 了解成分去除前后对数据的影响
-
- 注意:
- 当有不确定的成分时,我们可以单独去掉这个成分看它对数据的影响,
- 如果能有效改善数据则去掉,如果影响不大可以保留
- 在ICA成分鉴别时,不确定一定是伪迹的成分建议先保留
- 注意:
10.使用极端值的方式去伪迹(要在伪迹已经去的差不多了再做)
正常人的头皮脑电都是+- 100 uv 的范围的。所以超出这个范围的脑电都是伪迹
Tools --> reject data epochs ->reject extreme values
11..重参考 (数据处理做到90%时才建议做)
-
- 在使用不同数据时(不同厂家),在线参考电极不一样。比如在线参考电极用的是CZ,那么CZ电极的数值就是零,FCZ为参考,FCZ就是零。
- 当不同数据使用不同参考电极时,两者的数据是不能比较的。
- 为了让不同研究收集的数据可以比较,就需要做重参考
- 重参考常用的:双侧乳突、全脑平均、鼻尖(用什么需要看文献)
- 如果做全脑平均,需要将双侧乳突电极去掉。用select data去掉。
-
- 电极重要性排序:
- 在线记录的参考电极最重要:决定在线记录数据的质量
- 重参考的电极
- 你要分析的电极
- 电极重要性排序:
注意: 如果用平均参考 记得先把脑外的通道去掉
步骤:
Tools -- Re-reference
12.手动浏览数据
ps:小问题
任务态数据(呈现刺激)
二次滤波和二次分段,都需要进行二次的基线校正
倾向于先滤波,再分段,分段的时候会顺带进行基线校正
静息态的数据(没有刺激的marker)
数据预处理部分只有分段的操作和任务态数据不同,
要自己写文件去分段,把数据按照几秒一段,进行切段
运行上述代码后,数据已经被分段,但是界面上并没有更新。
更新视窗
总结:
预处理:
1.数据格式转化
2.通道定位
3.去除无用电极
4.滤波
5.降采样
6.分段
7.去坏段替坏导 (不能批处理)
8.|CA
9.去1CA伪迹成分(不能批处理)
10.极端值
11.重参考
12.手动浏览(不能批处理)