作者:科采通 关键词:BITalino、Kubios HRV、ECG、心率变异性、RR间期、科研工具、Python预处理一、前言心率变异性(Heart Rate Variability, HRV)是评估自主神经系统功能的重要指标 timestamp,ECG0.00,5020.01,5070.02,515...3.2 Python 转换 RR 间期代码python复制编辑import pandas as pdimport neurokit2 读取 BITalino ECG 数据df = pd.read_csv("bitalino_output.csv")# 2. 使用 NeuroKit2 进行 R 波检测与 RR 计算signals, info = nk.ecg_process(ecg_signal, sampling_rate=sampling_rate)rpeaks Python + Kubios batch scripts 自动分析多个文件 七、总结本文介绍了从 BITalino 采集 ECG 信号、通过 Python 提取 RR 间期、并导入 Kubios HRV 进行心率变异性分析的完整流程
Variability Measurements from Consumer Smartwatches with Machine Learning 摘要:人体对体育锻炼、心理生理应激和心脏病的反应反映在心率变异性
max_num 波峰的代表值 * @param min_num 波谷的代表值 * @param check_time 一次计算的时间,会根据这个数据进行切割 [1-5秒的数据][2- 60 * hz) * (count - 1) / cha); } } } interface OnResult { // 计算心率的结果
可穿戴设备的核心在于通过传感器采集用户的生理信号和行为数据,如心率、睡眠质量、运动数据等。这些数据可以与心理状态密切相关。例如:心率变异性:心率波动可反映压力水平。 ('心率 (次/分钟)')plt.grid()plt.show()从心率波动中可以看出,突然的心率升高可能是压力或焦虑的信号。 压力监测与管理通过持续追踪心率变异性,可穿戴设备可以评估用户的压力水平,并提供个性化的减压建议。 例如:import numpy as np# 模拟心率变异性数据(单位:毫秒)hrv_data = [120, 130, 95, 80, 85]stress_level = np.mean(hrv_data 2. 情绪波动检测结合语音分析,可穿戴设备可以监测用户的语音语调来识别情绪变化。例如,如果语音语调长期低沉,可能表明情绪低落。3. 睡眠质量评估可穿戴设备可以记录用户的睡眠模式,包括深睡和浅睡比例。
2008年,Verkruysse等人首先研究证明,通过摄像头采集人的面部视频,可以从中分析出和心率相关的光电容积脉搏波描记信号,从而实现远程测量心率[2],相关原理被称为rPPG。 基于rPPG采用普通高清摄像头测量心率首次由Verkruysse等人研究提出[2],随后,Poh等人提出在RGB三通道应用盲源分离算法(BSS)去测量心率[3];Sun等人提出了一个在环境光条件下应用联合时频分析去远程测量心率的基本框架 图2:基于rPPG远程测量心率的基本框架 首先,在某个光源或是自然的环境光条件下,使用摄像头捕捉人脸上某个区域的皮肤数据,这个区域被称为ROI(Region of Interest),ROI可以手动挑选或是使用某些算法自动探测和追踪 (2) Model-Based Methods 利用一些颜色矢量的先验信息,基于模型的方法可以更好地从采集到的原始混合数据中分离出心率信号,就实验结果来看也更优于之前大部分BSS方法。 (5)监测多个生理指标 本文主要关注的是将rPPG用于心率检测,但实际上,rPPG可以被用于检测人体的很多生理指标,如心率变异性(HRV)、呼吸频率(RR)、血氧浓度、血压等等[17]。
然而,通用的“基础”PLMs在预测抗体方面的性能有限,这是因为抗体的高变异性区域不符合模型所依赖的进化保守原则。 通用的蛋白质结构预测技术(如AlphaFold 2)在预测抗体结构方面存在困难,因为后者的高变异性区域(也称为互补决定区,CDR)显示出进化上新颖的结构模式。 然而,抗体的CDRs明确违反了基础PLMs基于分布假设的假设:CDRs中的序列变异性并没有受到进化的限制。 作者提出了一种迁移学习的方法,从基础PLM开始,通过在抗体特定语料库上进行训练,以提高对高变异性区域的准确性。 此外,每个任务的固定长度特征都经过L2归一化,并使用最大熵形式进行正则化。 AbMAP有效地对抗体特征进行微调 图 2 作者首先评估了方法改进和微调方法的有效性。
心率计,重要的是要获取到心率值,本篇文章将介绍一种采样数据处理算法——动态阈值算法,来获取心率值,这种算法来自于一位网友:玩的就是心跳 —— 使用 PulseSensor 脉搏传感器测量心率(http: IBI和BPM 心率,指的是一分钟内的心跳次数,得到心率最笨的方法就是计时一分钟后数有多少次脉搏。但这样的话每次测心率都要等上个一分钟才有一次结果,效率极低。 , DATA_SIZE); min = Get_Array_Min(data, DATA_SIZE); mid = (max + min) / 2; filter = (max - min) / 2; } PRE_PULSE = PULSE; // 保存当前脉冲状态 PULSE TRUE) // 寻找到“信号上升到振幅中间位置”的特征点,检测到一次有效脉搏 { pulseCount++; pulseCount %= 2;
数据处理流程: graph LR 心率数据-->心率仓库 心率仓库-->根据采样率获取心率数据 根据采样率获取心率数据--> 打印数据 思路篇: 整个控件分成上下两层。 表格篇 1.线条绘制由一个基准线标准,可以将线条的绘制维持在基准线上下,而不会导致线条偏移离谱 2.由基准线衍生出来的表格,需要可以自定义表格的行数,线条宽度,以及颜色,等。 --一个控件,可以显示的心率的时长--> <attr name="heart_show_seconds" format="integer" /> <! --心率线条的颜色--> <attr name="heart_color" format="color" /> <! ,默认为2秒钟 showSeconds = typedArray.getInteger(R.styleable.HeartView_heart_show_seconds, 2);
心率计,重要的是要获取到心率值,本篇文章将介绍一种采样数据处理算法——动态阈值算法,来获取心率值,这种算法来自于一位网友:玩的就是心跳 —— 使用 PulseSensor 脉搏传感器测量心率(http: IBI和BPM 心率,指的是一分钟内的心跳次数,得到心率最笨的方法就是计时一分钟后数有多少次脉搏。但这样的话每次测心率都要等上个一分钟才有一次结果,效率极低。 Get_Array_Max(data, DATA_SIZE); min = Get_Array_Min(data, DATA_SIZE); mid = (max + min) / 2; filter = (max - min) / 2; } PRE_PULSE = PULSE; // 保存当前脉冲状态 PULSE = TRUE) // 寻找到“信号上升到振幅中间位置”的特征点,检测到一次有效脉搏 { pulseCount++; pulseCount %= 2;
一、心率带行者XOSSX2PRO心率带自己有自动记录功能,然后数据可同步到行者APP,再导出到电脑,方便,但内置锂电池质量差,一年就坏了,可能没用十次,垃圾。 可以双手握心率带,也能检测到心率。X2开机运行状态,没有任何指示灯指示。X2如果20秒没有测到心率,不管有没有连接到手机蓝牙,都会强行关机,指示灯(绿灯)会亮几秒后关掉。 X2开、关机只与有没有检测到心率有关,与有没有连接到蓝牙无关。 【晚上睡觉会断联】白天还好,带子绑得紧,心率检测稳定。但晚上睡觉时,带子显得太紧不舒服,太松又检测不到心率,很快X2就断开了,所以经常会断联,所以程序上必须进行自动重连!! =0x10)//XOSSX2的心率数据第一个字节是0X10,无心率时第一个字节是0x00{if(g_lasttimetype==1)g_emptydatanum++;//上次是空数据,进行空数据统计elseif
连续的数据意味着我们可以:发现微小但持续的异常趋势结合个人历史数据判断变化幅度在症状出现前发出预警2. 它是怎么“看出”疾病苗头的? 其实原理很简单:采集多维生理数据 → 数据分析建模 → 异常检测 → 提示用户常见采集的数据包括:心率 / 心率变异性(HRV)血氧饱和度(SpO₂)睡眠阶段与呼吸频率步态与运动模式皮肤温度结合算法,我们就能对某些疾病的早期特征进行捕捉 +2倍标准差df['anomaly'] = df['resting_hr'] > (mean_hr + 2 * std_hr)print(df)# 可视化plt.figure(figsize=(8,4) ')plt.axhline(mean_hr + 2*std_hr, color='red', linestyle='--', label='异常阈值')for i, row in df.iterrows 、血氧、运动模式等多种数据,综合判断健康状态比如Apple Watch的AFib(心房颤动)检测就是基于心率变异性模型的,它能在用户没感觉到任何不适时,提示可能存在房颤风险。
用于研究情感反应的最常用心血管指标包括心率、血压、总外周阻力、心输出量、射血前期和心率变异性。HR和BP反映了交感神经和副交感神经活动的结合,而HRV与副交感神经活动密 切相关[6]。 图3展示了图2中两位受试者的皮肤电导响应曲线。试点观察通过一套精细而简洁的编码系统,我们将推导出的皮肤电导与心率变异性响应量化为情绪反应指标。 皮肤电导响应分为三个等级:高正向趋势、正向趋势与拐点;而心率变异性响应为二元指标,即基于阈值处理的EBC值进行判定。 在大多数时间段内,心率变异性未出现剧烈波动,仅在某些区间呈现低值状态—— 这意味着心率保持相对恒定,表明受试者正处于注意力集中状态。该受试者在多数时间都对刺激产生了反应。 在30秒附近同时出现高正向皮肤电导趋势与心率变异性响应, 故标记为高强度响应;同理,130秒附近同时出现的拐点与心率变异性响应也被归类为高强度响应。
咱们别搞太玄乎,其实智能手表、健身环、心率带早就能采集这些信息:心率(Heart Rate):判断训练强度和心肺恢复情况心率变异性(HRV):反映神经系统疲劳程度,决定今天是做力量训练还是有氧恢复血氧饱和度 (SpO2):监测耐力训练后的氧合能力睡眠质量:影响第二天训练的恢复能力肌肉活动数据(EMG):检测肌群是否完全疲劳体脂、体重趋势:监控长期效果这些数据的关键价值是——实时 + 个性化。 四、Python演示:用心率数据调节训练负荷假设我们用智能手表采集了一周的心率数据(训练前、训练中、训练后),想根据心率区间自动推荐第二天的训练类型。 "hrv": [70, 55, 40, 80, 45, 65, 75] # 心率变异性(ms)})def recommend_workout(avg_hr, hrv): if avg_hr recommendation0 Mon 120 70 高强度训练(间歇冲刺/大重量力量)1 Tue 145 55 中强度训练(力量+有氧结合)2
evolution 连接方式:蓝牙(可被串口绑定为虚拟串口) 采样频率:最高 1000 Hz(具体取决于配置) 传感器支持: EEG:脑电(T3/T4 等部位) EDA:皮肤电阻/电导 ECG:心律、心率变异性分析 Android/iOS) 或通过蓝牙串口接入至: Processing(图形可视化) Python(如 pySerial + Matplotlib) MATLAB(可做 HRV、EDA 分析) 2. 示例图表(用户上传的记录)用户展示了其 29 分钟记录的前 10 分钟波形图,包括: EEG(通道 A1)出现异常高频伽马波(Gamma:480~530Hz) EDA(A2)显示快速剧烈的电导峰值波动 ECG(A3)心率节律正常但偶有心率突升 EMG(A4)出现非自发性的短促收缩信号 五、关键观察:可能的生理指标特征指标异常表现可能含义EEG:Gamma 波高出正常范围 5~13 倍表明高度焦虑 六、BITalino 的科学潜力与适用领域 心理生理研究:焦虑、情绪调节、冥想状态研究 人机交互:肌电/脑电控制游戏、接口 医疗前期筛查:睡眠监测、心率变异性、EDA-Stress 自我健康管理:
想象一下,有一天,你戴着的智能手环或者眼镜,不光能测心率、算步数,还能“看透”你的情绪:你今天是不是焦虑、是不是开心、是不是有点小沮丧。听起来是不是有点像“读心术”?其实,这事离我们不远了。 咱们身体已经给了很多“线索”:生理信号心率、心率变异性(HRV) → 焦虑和紧张时心跳会加快。皮肤电反应(EDA) → 出汗量的微小变化可以反映压力水平。呼吸频率 → 平稳还是急促,差别很大。 一个小实验:心率识别情绪咱们写一段 Python 代码,简单模拟一下。 、心率变异性、呼吸频率data = pd.DataFrame({ 'heart_rate': [72, 110, 95, 60, 130, 85, 76, 100], 'hrv': [45, 20, 25, 60, 15, 35, 50, 22], # 心率变异性 'resp_rate': [14, 22, 20, 12, 25, 18, 13, 21], # 呼吸频率 '
2.心率是最好的运动“导师” 如果是经常做运动的朋友应该都知道,平时运动时可以根据心率数据更好地控制运动强度,因为心率和吸氧量及最大摄氧量呈线性关系,而且最大心率百分比也和最大摄氧量的百分比呈线性关系, 2、心电信号测量法 还有一种就是心电信号测量法,它通过智能穿戴设备上搭载的传感器捕捉人每次心跳时微小的电极变化,再经过算法还原出心率跳动的频率,原理和心电图类似原理。 标准的I2C兼容的通信接口可以将采集到的数值传输给Arduino、STM32 等单片机进行心率和血氧计算。此外,该芯片还可通过软件关断模块,待机电流接近为零,实现电源始终维持供电状态。 程序运行后,显示屏会显示一个心形的图案,同时MAX30102模块上的红色LED灯会亮起; 3.jpg 2. 5.jpg 五、总结 使用MAX30102测量的心率值与荣耀手环4测量的心率值接近(大概有2-3值的差别)。程序中也有对血氧饱和度的测试,大家可以从程序中提取出来显示在显示屏上。
研究显示,在神经网络的帮助下,普通的可穿戴设备也能基于心率变异性与糖尿病可能性的关系检测出早期糖尿病的迹象。 此外,大多数这些设备能满足患有糖尿病或至少知道自己病情用户的需求,如苹果手表、Android Wear智能手表、Fitbit、或者任何有心率监视器的可穿戴设备。 这种看似神奇的糖尿病早期症状检测方法是基于心率变异性与糖尿病发生的可能性之间的关系。我们有算法,但没有数据可以输入。这就是机器学习的用武之地。
研究采用2×2的被试间设计,包括任务条件(控制组与压力组)和刺激条件(虚假刺激与真实tDCS),将参与者随机分为四组。基线检查包括在线问卷调查(评估人口统计学及特质特征)和工作记忆能力测试。 要求参与者在每次实验前一天睡眠充足,避免剧烈运动和饮酒;实验前2小时内避免剧烈运动、含咖啡因饮料及尼古丁。 图2非情感和情感双向任务流程图3电极放置和电场分布模拟结果心理生理学评估:在所有的心理和生理测量中,结果显示任务间存在显著的差异(如图4所示)。 具体来说,与对照任务相比,参与者在压力任务中表现出了明显升高的血压、更高的平均心率、皮肤电导增加和心率变异性下降。 图4(A)负面影响,(B)收缩压,(C)舒张压,(D)平均心率,(E)心率变异性和(F)皮肤电导水平的雨云图。总体而言,在非情绪的n-back任务的准确性和反应时间上,实验组,对照组之间均无显著性。
关键词:Kubios HRV,HRV 分析,心率变异性,科研工具,时域频域分析一、软件概述Kubios HRV 是一款专为心率变异性(HRV)分析而设计的专业软件,被广泛应用于生理学、心理学、运动科学等科研领域 2. 频域分析支持多种频谱估计方法,包括 Welch(FFT)、AR 模型与 Lomb–Scargle 周期图。输出包括: VLF、LF、HF:各频段绝对/相对功率值。 非线性指标 Poincaré 图:SD1(短期)与 SD2(长期)散度。 熵指标:近似熵(ApEn)、样本熵(SampEn)。 DFA 分析:短/长程趋势的复杂度指数。 递归图、分形维数等。 2. 运动训练与恢复跟踪运动员早晨 HRV(如 SDNN、RMSSD),评估疲劳恢复状态,指导训练强度调整。3.
实时健康监测可穿戴设备可以实时监测心率、血氧饱和度(SpO2)、血压、血糖等生理参数。例如,Apple Watch、Fitbit、华为手环等都已具备心率监测和血氧检测功能。2. df = collect_heart_rate(60, 1)print(df.head())2. 我们可以使用 Matplotlib 将心率数据可视化。 异常检测深度学习可以用于心率异常检测,比如 LSTM 预测心率趋势,或者用阈值法检测异常心率。 2. AI+健康预测结合深度学习,可穿戴设备可以预测用户健康趋势,例如:通过 AI 分析心率变异性(HRV)预测心脏病风险。通过机器学习分析血压变化,预测高血压趋势。3.