1 前言
很久没有写博客了,之前也想过要放弃。不过想来当个业余爱好也好啊,也当是知识的巩固和积累。
废话少说,下面介绍这次的主角——Biosppy工具包。
2 简介
接下来的这段主要是对官方英文文档的翻译和整理,关于官方英文文档具体可访问:https://biosppy.readthedocs.io/en/stable/index.html
2.1 概况
BioSPPy是基于Python的生理信号处理工具包,该工具包汇总了多种面向生理信号分析的信号处理和模式识别方法。主要亮点如下:
- 对多种生理信号的支持:BVP,ECG,EDA,EEG,EMG,呼吸信号(Respiration)
- 信号分析基本方法:滤波,频域分析
- 聚类
- 生理识别
2.2 结构
在结构上,BioSPPy 包含两个部分:
- 一个子包biosppy.signals,包含了上述几种生理信号的针对性的处理方法包。例如,biosppy.signals.ecg中包含的是用于ECG处理的方法,而biosppy.signals.eeg中包含的是用于EEG处理的方法,如下表所示:
用途 | |
---|---|
biosppy.signals.bvp | Blood Volume Pulse (BVP) 血容量脉冲信号 处理 |
biosppy.signals.ecg | electrocardiogram(ECG) 心电信号 处理 |
biosppy.signals.eda | Electrodermal Activity (EDA) 皮肤电活动信号 处理 |
biosppy.signals.eeg | Electroencephalographic(EEG) 脑电信号 处理 |
biosppy.signals.emg | Electromyographic (EMG) 肌电信号 处理 |
biosppy.signals.resp | Respiration (Resp) 呼吸信号 处理 |
biosppy.signals.tools | 提供多种信号时频域分析方法 |
- 七个模块,biosppy.*,个人认为是一些比较通用的API接口,根据用途不同进行了归类汇总。例如,用于聚类的汇总在了biosppy.clustering,用于绘图的汇总在了biosppy.plotting,如下表所示:
用途 | |
---|---|
biosppy.biometrics | 生理识别-身份认证 分类器接口 |
biosppy.clustering | 无监督机器学习(聚类)算法 |
biosppy.metrics | 各种距离的计算(例如L2距离) |
biosppy.plotting | 绘图方法(例如时频域波形绘制) |
biosppy.storage | 指定格式数据存储 |
biosppy.timing | 测量运算时间 |
biosppy.utils | 常用的辅助函数 |
英文文档可访问:https://biosppy.readthedocs.io/en/stable/biosppy.html
总体来说是一个构成很简单的工具包,也很轻量化,可以满足生理信号处理中的一些比较基本的需求,使得这些基础操作黑盒化,标准化,能帮助人们把精力集中在那些更有挑战的研究上,而不必关心一些基础操作的实现。从这个角度来说,尽管很简单甚至简陋,但BioSPPy确实有其存在的意义。
(上述翻译和汇总是根据我个人理解得出的,有不准确的地方还请指出~)
3 安装
使用pip安装:
pip install biosppy
只要你的Python环境没问题,应该没什么坑。多说一句,最好基于Anaconda来管理各种Python包,可以避免掉很多坑,这里就不多说了,Anaconda教程一搜一大把。
4 说明
从简介中也看出来了,BiosPPy工具包包含了多种生理信号的处理方法。由于各种生理信号产生的机理不同,应用目标也不同,所以处理方法差异很大。由于本人仅对其中的ECG,也就是心电信号有相对深入的研究,而对其他信号没有太多了解,因此这里不会班门弄斧,而是仅对其中与ECG相关的内容进行一些介绍和示例,即以上述的biosppy.signals.ecg为主,希望能够给感兴趣的同学一点帮助。下一节正式开始。