EEG工具库MNE学习笔记(1)

1 篇文章 1 订阅

EEG工具库MNE学习笔记(1)

Raw数据结构

Raw对象主要用来存储连续型数据,核心数据为n_channels和times,也包含Info对象。

Raw结构查看:

# 引入python库
import mne
from mne.datasets import sample
import matplotlib.pyplot as plt

# sample的存放地址(可以不使用,直接将要分析的文件的地址用下面的fname表示即可)
# data_path=sample.data_path()

# 该fif文件存放地址(要分析的文件)
fname='E:\Python_Code\BCI_Code\Data\MNE-sample-data\MEG\sample\sample_audvis_raw.fif'

"""
将上述文件数据读成raw结构的数据
"""
raw=mne.io.read_raw_fif(fname)
print(raw)
print(raw.info)

raw的输出结果为:

在这里插入图片描述
红框中标出的是n_channels x n_times

raw.info的输出结果为:

在这里插入图片描述
bads:不良通道
ch_names:通道名称
sfreq:采样频率

通常raw的数据访问方式如下:

data, times = raw[picks, time_slice]
picks:是根据条件挑选出来的索引;
time_slice:时间切片
想要获取raw中所有数据,以下两种方式均可:
data,times=raw[:]
data,times=raw[:,:]

第一个实例

"""
案例:
获取10-20秒内的良好的MEG数据
"""
# 根据type来选择 那些良好的MEG信号(良好的MEG信号,通过设置exclude="bads") channel,
# 结果为 channels所对应的的索引
picks=mne.pick_types(raw.info,emg=True,exclude='bads')
t_idx=raw.time_as_index([10.,20.])
# raw返回所选信道以及时间段内的数据和时间点,
# 分别赋值给data以及times(即raw对象返回的是两个array)
data,times=raw[picks,t_idx[0]:t_idx[1]]
plt.plot(times,data.T)
plt.title("Sample channels")
plt.show()

“print(picks)”的输出结果:

在这里插入图片描述

“print(t_idx)”的输出结果:

在这里插入图片描述
我的理解是第10秒对应的数据的索引和第20秒对应的数据的索引。

所选通道在10-20秒内的电压值的变化:

在这里插入图片描述
注:data的数据格式是[通道个数,数据个数],times的数据格式是[数据个数,]

所选通道在1-3秒内的电压值的变化:

"""
sfreq:采样频率
"""
sfreq=raw.info['sfreq']
#获取1-3秒内通道0,1,2,3,4的MEG数据
data,times=raw[:5,int(sfreq*1):int(sfreq*3)]
plt.plot(times,data.T)
plt.title("Sample channels")
plt.show()

在这里插入图片描述

绘制SSP矢量图:

"""
绘制SSP矢量图
"""
raw.plot_projs_topomap()
plt.show()

在这里插入图片描述
注:SSP为信号空间投影

绘制电极位置:

"""
绘制电极位置
"""
raw.plot_sensors()
plt.show()

在这里插入图片描述

绘制指定通道的功率谱图:

"""
绘制指定通道的功率谱图
"""
picks = ['eeg']
raw.plot_psd(picks=picks)
plt.show()

在这里插入图片描述
注:通道或数据太多会出现电脑内存不够用的情况。

绘制通道频谱图:

"""
绘制通道频谱图作为topography
"""
raw.plot_psd_topo()
plt.show()

出现如下错误:
在这里插入图片描述
网上说是电脑内存不够的原因,还未解决。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值