用途:NeuroKit2 是面向神经生理信号处理的 Python 工具包,为 ECG、EEG、EMG、EDA/GSR、PPG、RSP 等模态提供统一的高层 API。各模态遵循 nk.{signal}_process() → nk.{signal}_analyze() 工作流,输入原始信号,输出清洗后信号与特征,结果以 pandas DataFrame 返回,便于后续统计。
主要能力:自动完成去趋势、滤波、峰值检测、伪迹校正与特征提取。ECG 可检测 R 峰并计算 RR 间期、SDNN、RMSSD、pNN50、LF/HF 等 HRV 指标;EDA/GSR 可分离 tonic(SCL)与 phasic(SCR)成分;EMG 可检测肌肉激活起始/结束;EEG 可计算频带功率与复杂度指标(样本熵、模糊熵、DFA);PPG 可作为 ECG 替代用于心率与 HRV;并提供 nk.{signal}_simulate() 生成合成信号用于算法验证与单元测试。
使用方式:需安装 neurokit2、numpy、pandas、matplotlib,命令为 pip install neurokit2 numpy pandas matplotlib scipy。输入为 1D NumPy 数组或 pandas Series,并需提供采样率(Hz)。典型采样率:ECG 250–1000 Hz,EEG 256–2048 Hz,EDA 4–64 Hz,EMG 1000–2000 Hz。可用 nk.events_create() 标记刺激起点,再用 nk.epochs_create() 将连续信号切分为事件锁定时窗,用于 ERP 与 SCR 分析。ECG/PPG 处理含 0–1 的信号质量指数,低于 0.5 提示噪声或伪迹,可据此掩蔽不可靠区段。
适用场景:从 ECG 提取 HRV 用于压力或自主神经分析;处理 EDA/GSR 用于心理生理研究;清洗与分段 EMG 用于生物力学;处理可穿戴 PPG;生成合成生理信号用于测试。多通道 EEG/MEG 与源定位建议使用 MNE,底层 DSP 可用 scipy.signal。
限制:需已知且正确的采样率,否则峰值时间会偏移;极短(<5 秒)或高噪声记录可能导致 delineate 返回 NaN;熵函数在信号过短或恒定(零方差)时返回 NaN,建议至少 200–500 个样本;长记录可能因 DataFrame 行数过多导致内存错误,可按 60 秒窗口分段处理。资料未提供收费、价格与平台信息。