目录

  • 参考电极简介
  • 设置脑电图参考
  • 案例-参考电极
    • 设置或更改参考通道
    • 设定平均参考

本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:903290195

参考电极简介

安置在头皮上的电极为作用电极(active electrode)。放置在身体相对零电位点的电极即为参考电极(reference electrode),也称为参考电极或标准电极。
记录到的脑电信号即是作用电极与参考电极的差值(电位差)。

更多详细的参考电极简介,请查看MNE-Python参考电极

设置脑电图参考

本教程描述了如何在MNE-Python中设置或更改EEG参考。

set_eeg_reference(self, ref_channels='average',projection=False, ch_type='auto', verbose=None)
指定用于EEG信号的参考。参数
ref_channels: list of str | str
用于构造参考的通道名称。如果要应用平均参考,就在此处指定"average"(默认情况就是使用average)。
如果指定了空列表,则表示您已假定该数据已经具有正确的引用,并且MNE将不会尝试对该数据进行任何重新参考。
默认为平均参考。projection:bool
如果ref_channels ='average',则此参数指定是否应将平均参考计算为projection(True)或不作为projection(False;默认)。
如果projection = True,则将平均参考作为projection添加,并且不应用于数据(后面可以使用apply_proj方法应用)。
如果projection = False,则将平均参考直接应用于数据。
如果ref_channels不是'average',则projection必须设置为False。
默认情况为False.ch_type:'auto' | 'eeg' | 'ecog' | 'seeg'
要应用参考的通道类型的名称。如果选择'auto',则会选择(按此顺序)找到的第一个eeg,egg或seeg的通道类型。返回值
Raw对象实例 | Epochs对象实例| Evoked对象实例注:
1.如果请求的参考不是平均参考,则此函数将移除任何预先存在的平均参考投影。
2.在源定位期间,EEG信号应具有平均参考值。
3.为了应用参考,必须预先加载数据。如果ref_channels ='average'且projection = True,则无需执行此操作。
4.对于一般参考,如果在info['bads']中设置了错误的EEG频道,则会自动排除这它们。

案例-参考电极

import os
import mne
import matplotlib.pyplot as plt
%matplotlib auto"""
设置原始数据地址
"""
sample_data_folder = mne.datasets.sample.data_path()
sample_data_raw_file = os.path.join(sample_data_folder, 'MEG', 'sample','sample_audvis_raw.fif')
"""
读取数据生成raw对象实例
"""
raw = mne.io.read_raw_fif(sample_data_raw_file, verbose=False)
raw.crop(tmax=60).load_data()
raw.pick(['EEG 0{:02}'.format(n) for n in range(41, 60)])

设置或更改参考通道

如果想要重新计算数据(就是不使用原来已经记录或保存数据时使用的参考电极计算),则MNE-Python中为Raw对象提供了set_eeg_reference()方法以及mne.add_reference_channels()方法。

如果使用头皮电极作为参考,但未与原始数据一起保存(通常不使用参考通道),则您可能希望在重新参考之前将其重新添加到数据集中。
例如,如果您的EEG系统使用通道Fp1作为参考记录,但在数据文件中没有包含Fp1,则使用set_eeg_reference()进行设置。
例如,将Cz设置为新参考,然后将在Cz处的信号减去,而不恢复Fp1处的信号。在这种情况下,可以使用add_reference_channels()在重新引用之前将Fp1添加回平面通道。

(由于这里的示例数据没有使用10-20电极命名系统,因此以下示例将EEG 999添加为缺少的参考,然后将该参考设置为EEG 050)

这是数据在其原始状态下的显示方式:

raw.plot()
plt.show()


默认情况下,add_reference_channels()返回一个副本,因此稍后我们可以返回到原始对象。

如果想要更改现有的Raw对象,则可以指定copy = False。

# 添加一个新的参考通道(新添的参考通道中的所有值均为0)
raw_new_ref = mne.add_reference_channels(raw, ref_channels=['EEG 999'])
raw_new_ref.plot()
plt.show()


如上图,刚添加的EEG 999通道作为参考电极,是一个平坦的效果。

# 设置 `EEG 050` 作为参考电极
raw_new_ref.set_eeg_reference(ref_channels=['EEG 050'])
raw_new_ref.plot()
plt.show()


如上效果图,新的参考通道(EEG 050)现在是平坦的,而我们添加回数据中的原始参考通道(EEG 999)具有非零信号。
还要注意,EEG 053是一个坏的信号(在raw.info[‘bads’]中标记为"bad")不受重新参考的影响。

设定平均参考

想要设置一个"虚拟参考",即所有通道平均值,可以使用set_eeg_reference()与ref_channels =‘average’。
如上面所讲的,这不会影响任何标记为"bad"的频道,也不会在计算平均值时包含不良频道。
但是,它确实就地修改Raw对象,因此我们将首先创建一个副本,以便稍后仍可以返回未修改的Raw对象:

# 使用所有通道的平均值作为参考
raw_avg_ref = raw.copy().set_eeg_reference(ref_channels='average')
raw_avg_ref.plot()
plt.show()


创建平均参考作为projector(投影)具有以下优点:

在绘图时可以打开或关闭projector(投影),因此很容易可视化平均参考对数据的影响。

如果将附加通道标记为"bad",或者以后选择了通道的子集,则将重新计算projector(投影)以考虑这些变化(从而确保信号为零均值)。

如果还有其他未使用的projector(投影)影响EEG通道(例如用于消除心跳或眨眼伪像的SSP projector(投影)),则在应用或移除这些projector(投影)之前,无法执行EEG重新参考;将EEG参考添加为projector(投影)不受此限制。

for title, proj in zip(['Original', 'Average'], [False, True]):fig = raw.plot(proj=proj, n_channels=len(raw))# make room for titlefig.subplots_adjust(top=0.9)fig.suptitle('{} reference'.format(title), size='xx-large', weight='bold')


参考:MNE-Python-参考电极

脑机学习者Rose笔记分享,QQ交流群:903290195
更多分享,请关注公众号

Python-EEG工具库MNE中文教程(8)-参考电极简介相关推荐

  1. Python-EEG工具库MNE中文教程(9)-参考电极应用

    目录 MNE-Python中的参考 引用简介 无需重新引用(No re-referencing) 平均参考(Average reference) 单电极(A single electrode) 多个电 ...

  2. Python-EEG工具库MNE中文教程(13)-“bad“通道介绍

    目录 标记坏频道/标记不良通道(marking bad channels) 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:903290195 本教程主要介绍手动标记坏通道以及 ...

  3. Python-EEG工具库MNE中文教程(14)-Epoch对象中的元数据(metadata)

    目录 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:903290195 本案例演示使用Epochs元数据.关于Epochs数据结构:可以查看文章Python-EEG工具库MN ...

  4. Python-EEG工具库MNE中文教程(12)-注释连续数据

    目录 注释连续数据(Annotating continuous data) 通过代码创建注释 可视化原始对象 交互式注释原始对象 对注释对象的操作 本分享为脑机学习者Rose整理发表于公众号:脑机接口 ...

  5. Python-EEG工具库MNE中文教程(5)-机器学习算法随机森林判断睡眠类型

    目录 案例介绍 数据集介绍 第一步:导入工具库 第二步:加载数据 第三步:加载Bob的数据作为测试数据 特征工程 第四步:设计scikit-learn 转换器 第五步:根据 Alice的数据来预测Bo ...

  6. Python-EEG工具库MNE中文教程(10)-信号空间投影SSP数学原理

    目录 projector(投影)和投影背景 案例解释投影原理 导入工具库 什么是projector(投影)? 计算正交平面 使用SVD计算投影矩阵 本分享为脑机学习者Rose整理发表于公众号:脑机接口 ...

  7. Python-EEG工具库MNE中文教程(1)-MNE中数据结构Raw及其用法简介

    目录 Raw数据结构 MNE 从头创建Raw对象 案例1 案例2 本教程为脑机学习者Rose发表于公众号:脑机接口社区 .QQ交流群:903290195 Raw数据结构 Raw对象主要用来存储连续型数 ...

  8. Python-EEG工具库MNE中文教程(3)-MNE中数据结构Epoch及其用法简介

    目录 a. 创建epoch对象 b.查看epoch对象 c.epoch平均叠加 本教程为脑机学习者Rose发表于公众号:脑机接口社区 .QQ交流群:903290195 Epochs对象是一种将连续数据 ...

  9. Python-EEG工具库MNE中文教程(4)-MNE中数据结构Evoked及其对象创建

    目录 Evoked结构 Evoked结构简介 a. 读取evoked文件,创建evoked对象 1) 读取fif文件,创建evoked对象 2)绘制evoked数据 b. MNE 从头创建Evoked ...

最新文章

  1. Lanecat网猫的延伸使用
  2. 信息系统项目管理师-信息系统项目管理基础核心知识点思维脑图
  3. partial in latex
  4. Ansible-playbook yum安装nginx1.20.1
  5. python条件替换_python-根据其他列中的条件替换pandas列中的某些特定值
  6. php求数组的长度的函数,php如何计算数组长度?
  7. filter函数的用法_动态数组函数系列5| 筛选函数FILTER,单条件多条件动态筛选
  8. SpringCloud 从菜鸟到大牛之二 服务注册与发现 Sping Cloud Eureka
  9. LeetCode-3. 无重复字符的最长子串
  10. -bash : ** : command not found的问题解决(图文详解)
  11. inline-block和float
  12. java怎么递归_什么是递归?用Java写一个简单的递归程序
  13. MATLAB图像去雾算法
  14. java控制html弹出框,Selenium+java - 弹出框处理
  15. dbm和db的关系、区别
  16. 农耕文化元宇宙,Mixlab邀请你共创数字孪生艺术农场~~
  17. 如何简单通俗地解释什么是云计算?
  18. 学python可以改善思维_论高中新课标下Python课程对学生计算思维的培养
  19. 小米路由器信号强度测试软件,内置天线给力 小米路由器信号实测
  20. 我的世界服务器玩家在线指令,我的世界指令大全:管理自己或者其他玩家及管理服务器指令...

热门文章

  1. java.lang.StackOverflowError 解决方法
  2. 安装脚本退出,并显示错误:命令“ x86_64-linux-gnu-gcc”失败,退出状态为1
  3. 抽象工厂和工厂设计模式之间有什么区别?
  4. SQL Server 2008中获取数据库所有表及其字段名称、类型、长度的SQL
  5. springboot mockmvc单元测试
  6. Picasso:开启大前端的未来
  7. 云计算物联网Hold住未来十大技术趋势
  8. VR/AR会是微信后马化腾进军的战场吗
  9. Linq-ToList与ToArray
  10. sql多条件查询语句