MNE初学入门(一)

最近从计算机视觉领域转到脑电处理领域,比较熟悉使用python,所有选择MNE进行脑电处理。期间也踩过不少坑,现在记录一下MNE学习经验。

首先,就是读取数据。MNE内置了很多读取特定格式数据的方法,比如fif、cnt、edf等。读取这些数据,直接调用内置的方法就行,数据的属性、数据等都可以加载出来。,但对于一些MNE不支持直接读取的数据格式,只能自己手写代码进行读取。

很不幸,刚开始一上手读取的数据MNE就不支持直接读取,事Blackrock公司的nev和nsx数据格式。首先,弄明白读取原始数据应该分为两部分,一部分是数据,一部分是属性信息。那么问题就是如何获取数据的这两部分信息,

Blackrock官网上提供了两种插件,一种是matlab用的NPMK插件,一种是Python使用的Utilies,不过代码有些bug,需要修改。在读取NEV数据的时候,会出现所有通道的数据都一模一样的问题,将错误代码改为:

wfs = np.ndarray((nPackets,int((self.basic_header['BytesInDataPackets']-(tsBytes+4))/2)), '<h', rawdata, tsBytes+4, (self.basic_header['BytesInDataPackets'], 2))

就能更正这个问题。

使用这个脚本就能读取出原始数据,以及数据的属性信息。然后可以将其导入到MNE中。此时将读取出的数据,用矩阵的形式将数据读入到MNE中,然后在自己构建info信息,此时仅需要关键的通道名称、类型和采样率这三个信息就足以,然后使用RawArray构建MNE中的raw数据。

具体代码如下:

ns3_data=Nsxdata.backdata(filename)

ns3_data=Nsxdata.backdata(filename)
raw_data=ns3_data['data'].T/4   #读取出来的原始数据需要经过转置,而且原始数据的电压值是经过了压缩,只有原来的0.25,所以这里恢复原始大小。
sampling_freq=2000
ch_name=['EEG1','EEG2']
ch_type=['eeg','eeg']
info=creat_info(ch_name,sampling_freq,ch_type)
raw=mne.io.RawArray(raw_data,info)

raw=raw.notch_filter(np.arange(50,951,50))   #去除工频干扰
raw=raw.filter(l_freq=0.1,h_freq=50.)        #带通滤波  选择0.1~50Hz的波段
raw.plot()        #波形图   
raw.plot_psd()    #功率谱密度图

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值