技能neurokit2
N

neurokit2

用于分析生理数据的综合生物信号处理工具包,包括 ECG、EEG、EDA、RSP、PPG、EMG 和 EOG 信号。在处理心血管信号、脑部活动、电皮肤反应、呼吸模式、肌肉活动或眼动时使用该技能。适用于心率变异性分析、事件相关电位、复杂度度量、自主神经系统评估、心理生理学研究以及多模态生理信号融合。

NeuroKit2 - Python 生理信号处理与生物信号分析工具

技能概述

NeuroKit2 是一个全面的 Python 生理信号处理工具包,用于分析心电(ECG)、脑电(EEG)、皮电(EDA)、呼吸(RSP)、光电容积脉搏波(PPG)、肌电(EMG)和眼电(EOG)等多种生物信号,适用于心理生理学研究、临床应用和人机交互研究。

适用场景

1. 心理生理学实验数据分析

研究人员在进行情绪、认知、压力等心理生理学实验时,需要同步采集和分析多种生理信号。NeuroKit2 可以同时处理心电、脑电、皮电和呼吸信号,自动选择事件相关或区间相关分析模式,支持静息态基线测量和事件相关电位分析,帮助研究者量化自主神经系统和心血管活动的变化。

2. 临床生理信号处理与 HRV 分析

临床医生和研究者需要评估患者的心率变异性(HRV)、自主神经功能和心血管健康指标。NeuroKit2 提供完整的心电信号处理流程(信号清洗 → R 峰值检测 → 波形划分 → 质量评估),计算时域、频域和非线性域的全面 HRV 指标,支持呼吸性窦性心律不齐(RSA)分析,适用于心率失常筛查、压力评估和自主神经功能测试。

3. 多模态生理信号集成与人机交互

在人机交互、情感计算和生物反馈应用中,需要实时处理和整合多种生理信号。NeuroKit2 支持同时处理心电、脑电、皮电、呼吸、肌电和眼电信号,提供统一的输出接口,可计算交感神经活动指数、信号质量评估、复杂度和熵分析,适用于构建实时生理监测系统和自适应交互界面。

核心功能

1. 心电信号处理与心率变异性分析

提供完整的 ECG/PPG 信号处理管道,包括信号滤波、R 峰值检测、波形划分和质量评估。支持计算全面的心率变异性指标:时域(SDNN、RMSSD、pNN50)、频域(ULF、VLF、LF、HF、VHF 功率和比值)、非线性域(Poincaré 图 SD1/SD2、熵测度、分形维数),以及呼吸性窦性心律不齐(RSA)和递归定量分析(RQA)。支持事件相关和区间相关两种自动分析模式。

2. 脑电信号分析与复杂度计算

分析 EEG 脑电信号的频率带功率(Delta、Theta、Alpha、Beta、Gamma),支持通道质量评估和重参考,提供微状态分割和转换动力学分析,以及全局场功率和 dissimilarity 测度。包含全面的复杂度和熵分析工具:Shannon 熵、近似熵、样本熵、排列熵、谱熵、模糊熵、多尺度熵,以及分形维数(Katz、Higuchi、Petrosian、Sevcik)、Lyapunov 指数、Lempel-Ziv 复杂度和去趋势波动分析(DFA)。

3. 多信号同步处理与事件相关分析

支持同时处理多种生理信号(ECG、EEG、EDA、RSP、EMG、EOG),提供统一的 bio_process() 和 bio_analyze() 函数实现多模态数据集成。事件相关分析功能包括从事件标记创建时段(epochs)、事件相关平均和可视化、基线校正选项、置信区间的大平均计算。适用于刺激锁定的响应分析,支持离散试次的实验范式和长时间连续活动的区间分析。

常见问题

NeuroKit2 支持哪些类型的生理信号?

NeuroKit2 支持 11 大类生理信号处理:心电信号(ECG)、光电容积脉搏波(PPG)、心率变异性(HRV)、脑电信号(EEG)、皮电活动/皮肤电导(EDA/GSR)、呼吸信号(RSP)、肌电信号(EMG)、眼电信号(EOG)、通用信号处理(滤波、分解、峰值检测)、复杂度和熵分析、事件相关分析,以及多信号集成处理。覆盖心血管、神经、自主神经、呼吸、肌肉和眼动等多个生理系统。

如何计算心率变异性 HRV 指标?

使用 nk.hrv(peaks, sampling_rate=1000) 可一次性计算所有 HRV 指标(时域、频域、非线性)。若仅需特定域的分析,可使用 nk.hrv_time()、nk.hrv_frequency()、nk.hrv_nonlinear() 分别计算。对于呼吸性窦性心律不齐,使用 nk.hrv_rsa(peaks, rsp_signal, sampling_rate=1000)。完整流程为:先用 nk.ecg_process() 处理原始 ECG 信号获取 R 峰值位置,再将峰值位置传入 HRV 计算函数。

NeuroKit2 能处理实时生理数据吗?

NeuroKit2 本身是离线分析工具,但可作为实时处理管道的核心组件。它的 *_process() 函数(如 ecg_process()、eda_process())支持单段数据输入,可在实时流中逐段调用。信号滤波、峰值检测和质量评估等功能均可用于实时数据。对于需要严格实时性的应用(如生物反馈系统),建议将 NeuroKit2 嵌入到异步处理框架中,或配合流处理库使用。采样率建议根据信号类型选择:ECG 通常 250-1000 Hz,EEG 250-500 Hz,EDA/RSP 100-250 Hz。