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


    @

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

    MNE-Python中的参考

    MNE-Python中的平均参考设置

    set_eeg_reference(self, 
                      ref_channels='average',
                      projection=False, 
                      ch_type='auto', 
                      verbose=None)
    

    指定用于EEG信号的参考。

    默认情况下,MNE-Python将自动重新参考EEG信号,以使用平均参考(请参见下文)。 这个函数可以显示指定所需的EEG参考。这可以是现有电极或新的虚拟通道。 此函数将根据所需参考重新参考数据,并防止MNE-Python自动添加平均参考投影。

    引用简介

    一些常见的参考方案以及ref_channels参数的相应值如下:

    无需重新引用(No re-referencing)

    如果EEG数据已经在使用正确的参考信号,则设置ref_channels = []。这将阻止MNE-Python自动添加平均参考投影。

    平均参考(Average reference)

    通过设置ref_channels ='average'来对当前EEG信号进行平均,创建一个新的虚拟参考电极。
    如果在info['bads']中设置了错误的EEG通道,则会自动排除它们。

    单电极(A single electrode)

    将ref_channels设置为包含将用作新参考的通道名称的列表,例如ref_channels = ['Cz']。

    多个电极的平均值(The mean of multiple electrodes)

    通过计算从两个或多个选定通道记录的当前EEG信号的平均值,可以创建一个新的虚拟参考电极。
    将ref_channels设置为通道名称列表,指定要使用的通道。
    例如,要使用平均乳突参考,在使用10-20命名方案时,请设置ref_channels = ['M1','M2']。

    Python案例

    import mne
    from mne.datasets import sample
    from matplotlib import pyplot as plt
    
    # 数据文件存放地址
    data_path = sample.data_path()
    raw_fname = data_path + '/MEG/sample/sample_audvis_filt-0-40_raw.fif'
    event_fname = data_path + '/MEG/sample/sample_audvis_filt-0-40_raw-eve.fif'
    event_id, tmin, tmax = 1, -0.2, 0.5
    
    # 读取fif文件,并生成raw对象
    raw = mne.io.read_raw_fif(raw_fname, preload=True)
    events = mne.read_events(event_fname)
    
    # 将绘制脑电通道,以可视化参考方案中的差异。
    picks = mne.pick_types(raw.info,
                           meg=False,
                           eeg=True, 
                           eog=True, 
                           exclude='bads')
    

    下面将应用不同的EEG参考方案,并绘制所产生的诱发电位。
    注意,当使用mne.Epochs构造epochs时,这里提供proj = True参数。这意味着将自动应用所有可用的projector(投影)。
    具体来说,如果存在由raw.set_eeg_reference('average',projection = True)设置的平均参考投影机,则MNE在创建epochs(时间片段)时会应用此projector(投影)。

    reject = dict(eog=150e-6)
    epochs_params = dict(events=events, 
                         event_id=event_id, 
                         tmin=tmin, tmax=tmax,
                         picks=picks, 
                         reject=reject, proj=True)
    
    fig, (ax1, ax2, ax3) = plt.subplots(nrows=3, ncols=1, sharex=True)
    
    """
    设置为 没有参考。
    这里假定EEG是由正确的参考得到的。
    这明确阻止MNE添加默认的EEG参考。
    任何普通的参考projector(投影)都会被自动删除。
    """
    raw.set_eeg_reference([])
    evoked_no_ref = mne.Epochs(raw, **epochs_params).average()
    
    evoked_no_ref.plot(axes=ax1, 
                       titles=dict(eeg='Original reference'), 
                       show=False,
                       time_unit='s')
    """
    平均参考 默认情况下就是平均参考,但也可以显式添加。
    """
    raw.set_eeg_reference('average', projection=True)
    evoked_car = mne.Epochs(raw, **epochs_params).average()
    
    evoked_car.plot(axes=ax2, 
                    titles=dict(eeg='Average reference'), 
                    show=False,
                    time_unit='s')
    """
    从平均参考重新参考EEG 001和EEG 002通道的平均值。
    """
    raw.set_eeg_reference(['EEG 001', 'EEG 002'])
    evoked_custom = mne.Epochs(raw, **epochs_params).average()
    
    evoked_custom.plot(axes=ax3, 
                       titles=dict(eeg='Custom reference'),
                       time_unit='s')
    plt.show()
    

    """
    绘制raw对象中所有通道的曲线图
    """
    raw.plot(n_channels=len(raw))
    plt.show()
    

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

    参考
    MNE-Python 参考电极
    脑机学习者Rose笔记分享,QQ交流群:903290195
    更多分享,请关注公众号

  • 相关阅读:
    是时候把邮件发送时间机动化处理了
    GDUT 初赛 01串也疯狂之光棍也有伴
    通达OA 尝试一下进行通达OA的培训
    不让政府系统用Windows 8,他们用什么?
    Mybatis自动生成插件对数据库类型为text的处理
    Mybatis自动生成插件对数据库类型为text的处理
    js的同步与异步
    js的同步与异步
    js的同步与异步
    Java中的数组与集合
  • 原文地址:https://www.cnblogs.com/RoseVorchid/p/12037294.html
Copyright © 2020-2023  润新知