预期应用p
基于 MNE-Python 库和 Python,开发一个提取 .edf 文件中波形数据并通过 NiDAQ 发出波形,从而模拟患者真实数据。
MNE-Python 库是个什么?
Open-source Python package for exploring, visualizing, and analyzing human neurophysiological data: MEG, EEG, sEEG, ECoG, NIRS, and more.
用于探索、可视化和分析人类神经生理学数据的开源 Python 包:MEG、EEG、sEEG、ECoG、NIRS 等。
简单来说,MNE-Python 是一个处理、分析不同形式脑电数据的工具箱。
开源地址:MNE-Python(Github)
怎么用 MNE-Python 库?
- 导入 MNE-Pyhthon 库
- 读取 edf 数据
- 设置滤波器
- 读取该记录的采样频率
- 获取该记录的 EEG 数据
数据获取到了,然后呢?
按照正常来说,数据到这里就获取完毕了。 MNE 库也提供了较为全面的 Plot API,可以为解析出来的文件进行绘图。
但由于脑电设备采集的频率只有256Hz,导致使用 NiDAQ 产生信号时,数据点与数据点之间间隔较长,如果继续用 250Hz 采样频率的脑电采集设备进行采集,有可能不能对数据进行有效采集。
故需要对原始数据进行重采样,重采样涉及到的数据处理库是
Scipy 。这里使用的API是
resample_poly ,它的使用方法与和 resample 的区别。重采样前,我们使用
savgol_filter 对数据进行降噪平滑处理。此时,重采样的频率也是需要讲究的,当 重采样频率 不能整除 原采样率,就可能会导致插值错误和频谱失真。所以重采样的频率需要是 256 的倍数,同时也要考虑数据重采样后,尖刺现象是否突出?是否需要降低重采样倍率?
数据有了,该产生了
使用公司内部的工具库
xNidaq ,控制 NiDAQ ,将上述数据转置后转换成 `dataframe` ,从而让 NiDAQ 按顺序产生对应通道的数据。还有一些信息
- 本文观点局限于本人理解与应用范围的水平上,尤其是信号与处理部分,如有错漏,烦请指正。
- 该工具可以读取的数据格式有非常多种,详见这里
- 该工具对于生成功率谱密度、数据模拟、数据可视化等需求都有较为完整的 API

- 该工具可以使用其提供的开源数据集,来自06年的一位患者的数据,数据属性详见此处
savgol_filter提供多种平滑方式,其实就是对所插的值的估计方法的不同,详见这里,Ext列是通过Input值估算出来的值。

- 作者:FrankyGuo
- 链接:https://www.frankysnotionblog.top/article/b8dc49ba-560f-41c1-95f4-41867625064d
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章

