二十人同时量呼吸与心跳 — 通气研究心肺联合库

20 名成人 / 3 类试验 60 段 / 100 Hz 压力流量 + 50 Hz EIT

来源 https://physionet.org/content/respiratory-heartrate-dataset/1.0.0/发布时间: 2026-10-29最后更新: 2026-10-29 阅读 5
二十人同时量呼吸与心跳 — 通气研究心肺联合库

信息速览

数据集名称二十人同时量呼吸与心跳 — 通气研究心肺联合库
数据类型时序信号,波形,影像序列,人口学元数据
规模20 名成人 / 男女各半 / 无显著呼吸系统异常
接入方式https://physionet.org/content/respiratory-heartrate-dataset/1.0.0/
AI 就绪度

呼吸力学的公开数据里有一个长期存在的空缺:呼吸侧的通道越来越齐——压力、流量、容积、胸腹周长、电阻抗断层成像(Electrical Impedance Tomography, EIT)都在不同数据集里出现过,可心脏侧几乎是空白。于是"呼吸动作对心血管的影响"这类问题只能靠推测:用力呼气时胸腔压力骤变,心率会不会跟着摆?屏气十秒,心电与光电容积各自给出什么反应?这些问题在临床上有实际分量,心肺疾病的症状常常互相掩盖,却缺少一份把两侧放在同一条时间轴上的公开数据。

Respiratory and heart rate monitoring dataset from aeration study 补的正是这一格。坎特伯雷大学团队在 2024 年 3 月 20 日把 20 名健康成人的三类试验放到 PhysioNet:PEEP 递增、PEEP 递增加屏气、用力呼气动作。呼吸侧有文丘里式压力流量与 EIT 通气图像,心脏侧同时挂了自制心电、自制三通道光电容积与商用心率带——三条心脏通道互相独立,可交叉校验。它的定位写得很克制:不是疾病队列,而是"概念验证"队列,用来为后续在已知呼吸系统异常人群上做临床测试打底。

它的代价也很直接:20 人、单一中心、健康人群、无诊断标签、心脏通道只是"基础配套"。它不适合训练任何需要大样本的模型,适合回答一类别处难以回答的问题——在呼吸被外力精确扰动的那一刻,心跳怎么变。一屏速览见下表。

维度 内容
全名 Respiratory and heart rate monitoring dataset from aeration study
发布方 PhysioNet(原始数据由新西兰坎特伯雷大学与德国 Furtwangen 大学团队贡献)
首次发布 2024 年 3 月 20 日,版本 1.0.0
最近改动 2024 年 3 月 20 日(SHA256SUMS.txt 于 3 月 20 日、LICENSE.txt 于 3 月 19 日更新),目前仅一个版本
受试者数 20 名成人,按性别均分(男 10、女 10),无已知显著呼吸系统异常
试验种类 3 类:PEEP 递增(PEEP)、PEEP 递增加屏气(PEEP_BH)、用力呼气动作(FEM)
记录段数 20 人 × 3 类 = 60 段(处理层 60 个 CSV,EIT 原始层 60 个二进制文件)
单段时长 PEEP 与 PEEP_BH 为四段 1 分钟记录加三段 30 秒设置间隔;FEM 为 60 秒
压力边界 PEEP 取 0(ZEEP)、4、8 cmH2O 三档
同步通道数 处理层每个 CSV 18 列(A:R),覆盖压力流量、EIT 整体通气、心电、三路光电容积、心率带心率与 RR 间期
采样率 压力流量 100 Hz;EIT 50 Hz;心电与光电容积以 HH:mm:ss.SSS 时间字符串记录;心率带以 HH:mm:ss.SSSSSS 时间字符串记录
图像规格 EIT 每帧 32×32 像素,代表胸部横截面的区域通气分布
文件格式 CSV(处理层与压力流量层)、.bin(EIT 原始)、.txt(心率带)、.csv(心电与光电容积)、.m(MATLAB 处理代码)、.png(示例图)
原始层文件数 压力流量 120 个(60 个带单位 + 60 个原始 ADC)、EIT 60 个、心电 20 个、光电容积 20 个、心率带 18 个、MATLAB 代码 4 个
数据体量 未压缩 5.3 GB,官方 ZIP 3.1 GB
伦理与许可 坎特伯雷大学人类研究伦理委员会 HREC 2023/30/LR-PS(2023 年 4 月 24 日批准);CC BY 4.0
典型用途 呼吸力学模型辨识、心肺耦合分析、可穿戴心率与呼吸率算法的对照评测、EIT 通气图像算法基准

§1 它要解决的具体麻烦

1.1 呼吸测得越来越细,心脏侧却一直缺位

呼吸功能评估有两条路线。第一条是传统肺功能路线:用力肺活量、一秒率这类指标来自一次用力呼气动作,测的是"极限能力",设备成熟、判读标准成熟,但只给几个标量,不给过程。第二条是模型路线:用压力与流量反推出弹性与阻力,把肺当成一个可辨识的系统,好处是能在平静呼吸下做、不打断患者,代价是依赖数学模型与高质量的同步信号。

过去十年公开数据的增长几乎全部发生在第二条路线上,而且通道越加越多:先是压力流量,再是胸腹周长,再是 EIT。但有一个方向几乎没人做——把心脏侧的信号同时接进来。理由不难理解:呼吸力学研究者的目标是辨识肺的力学参数,心电在他们看来是干扰源而不是变量。

后果是具体的。呼吸系统疾病在临床上很少单独出现,心血管症状与呼吸症状互相掩盖;用力呼气、屏气这类动作本身会引起胸腔内压变化,进而改变回心血量与心率。想知道"呼吸侧的扰动会不会污染心脏侧的算法",或者反过来"心脏侧的波动会不会被误读成呼吸事件",需要两侧在同一时间轴上、且呼吸侧有明确的扰动时刻。这份数据把扰动时刻设计得很清楚:每 200 毫秒一次快速阻断,每一档 PEEP 之间留 30 秒调整窗,屏气由受试者自己掐秒表。

1.2 三条常见的错误期待

第一条,期待它带"呼吸率 + 心率"的现成联合标注。官方名称里有 heart rate,但心率带给的是 RR 间期与每分钟心跳数两列原始值,心电与光电容积给的是波形,"呼吸率"根本没有独立通道——它要从流量或压力里自己算。名字里的"呼吸"指的是压力流量与 EIT 通气,不是一条已经算好的呼吸率曲线(§2.2、§4.4)。

第二条,期待它是疾病队列。官方写得很明确:20 人按性别均分,选择标准是"无已知显著呼吸系统异常",队列定位是概念验证,目的是"尽量减少对疾病人群的负担"。用它训练疾病分类模型,标签无从谈起。

第三条,期待心脏侧是临床级设备。心电与光电容积是团队自制的采集系统,心率带是商用 Garmin HRM Dual。三条通道互相对照是其价值所在,但任何一条单独拿出来都不构成临床级参考标准。

1.3 它能给到的与给不到的

你的需求 它给的 够不够
呼吸力学模型(弹性、阻力)的辨识与验证 压力、流量、潮气量,每 200 毫秒一次被动阻断窗 够,且这是作者设计它的首要目的
心肺耦合分析 呼吸侧扰动时刻明确,心脏侧三条通道同步 够,条件是扰动时刻要自己从协议里还原
可穿戴心率算法评测 心率带 RR 间期与心电波形可互相对照 够做一致性对照,不够做大规模准确率评测
光电容积呼吸率估算 三路 LED 光电容积加同步流量曲线 可做,流量需先积分出容积再判定呼吸周期
EIT 通气图像算法 32×32 像素序列,50 Hz 够做方法验证,受试者数不足以训深度模型
胸廓形态对 EIT 精度的影响分析 subject-info.csv 含背宽与胸骨至脊柱深度的量得值、罩杯自报值 够,这是它相对同组其他数据集多出来的一块
疾病人群建模 — 不够,全部为健康人群
多中心泛化验证 单一中心、单一国别 不够
用药或结局研究 — 不够,无随访、无用药、无结局变量

1.4 你的处境与它能帮到的事

你的处境 它能帮你什么 下一步该做什么
你在做呼吸力学模型辨识,缺一个带被动阻断窗的数据集 每 200 毫秒的快速阻断提供了被动力学评估窗,无需受试者配合 先从 PSD 吸气指数列定位阻断窗,再套你的辨识算法(§4.2)
你在做屏气或瓦尔萨尔瓦类动作的生理反应研究 PEEP_BH 试验在每个压力档安排两次约 10 秒屏气,时刻由受试者掐表 用流量归零区间反推实际屏气起止,别直接采信秒表(§5.6)
你在做光电容积呼吸率估算,需要同步的呼吸真值 三路 LED 加同步流量,可在同一条时间轴上比对 先把流量积分成容积,再与光电容积导出的呼吸带对齐
你在评估心率带在日常活动下的误差 心率带 RR 间期可与同段心电波形逐拍对照 注意受试者 1、2 没有心率带数据,样本是 18 人
你在做 EIT 图像重建或通气分布量化 60 个 32×32 序列,跨三類试验 用官方 read_binData.m 读原始 .bin,别指望处理层的单列整体通气
你想证明胸廓形态会影响 EIT 精度 subject-info.csv 同时给了背宽、胸骨至脊柱深度与罩杯 把形态量作为协变量纳入,注意全部为自报或双人测量
你在教生理信号课程,需要一份多模态同步的例子 五个模态在一张 18 列表里,可直接画多通道图 用官方 Figure1-3 与 FigureGeneration.m 复现示例图

1.5 一句话判断

它不适合当"更大的训练集",而适合当"一侧扰动、另一侧观察"的实验台:呼吸侧被外力精确扰动,心脏侧三条通道同时记录,这种设计在公开数据里几乎找不到第二份。

1.6 不适合谁:四条边界

不适合拿来做疾病判别。 全部受试者无已知显著呼吸系统异常,无诊断标签。想做阻塞性或限制性异常的判别,需要换用带疾病人群的同组数据集(§6.1)。

不适合拿来训练大模型的骨干网络。 20 人、60 段,一个中等规模的卷积网络一两轮就能记全。它的合理用法是方法验证与外部对照。

不适合拿来严格评价可穿戴设备的临床精度。 心电与光电容积是自制采集系统,心率带是商用消费级产品。三条通道互相比对可以说明"消费级设备与自制心电差多少",但不能推出"设备在临床场景下准不准"。

不适合拿来算人群层面的统计结论。 20 人按性别均分,是刻意设计的均衡小样本,不是人群抽样。任何以它为样本的分布性结论都不成立。

§2 数据构成与规格

2.1 目录的四个层次

官方目录按"处理层 + 三个原始层"组织,另加一个代码目录与几个根目录文件。

路径 内容 文件数 命名规则
/1.0.0/Processed_Dataset/ 五模态已对齐的处理结果 60 ProcessedData_Subject01_PEEP.csv 等,编号 01–20
/1.0.0/PQ_rawData/ 压力流量原始与带单位版本 120 Subject1_PEEP.csv 与 Subject1_PEEP_raw.csv
/1.0.0/EIT_rawData/ EIT 设备原始二进制 60 S01_PEEP.bin 等,编号 01–20
/1.0.0/HRM_rawData/ECG/ 心电,每人一个文件含三类试验 20 S01_ECG.csv
/1.0.0/HRM_rawData/PPG/ 光电容积,每人一个文件含三类试验 20 S01_PPG.csv
/1.0.0/HRM_rawData/HRB/ 心率带,受试者 3 至 20 18 3.txt 至 20.txt
/1.0.0/Code/ MATLAB 采集、处理、读图与绘图代码 4 DataCollection_PQ.m、DataProcessing.m、read_binData.m、FigureGeneration.m
/1.0.0/subject-info.csv 人口学与胸廓形态 1 单文件,21 列(A–U)
/1.0.0/ 示例图、许可、校验和、说明 5 Figure1-3.png、LICENSE.txt、SHA256SUMS.txt、README.txt

四个层次的关系值得先理清,因为它决定了你该从哪一层入手。处理层是官方用 DataProcessing.m 把三个原始层拼起来的产物,优点是五模态已在一条时间轴上,缺点是只保留了 EIT 的整体通气单列,32×32 的空间信息被压掉了。原始层的优点是完整(EIT 有空间、压力流量有 ADC 原始值),缺点是需要自己对齐时间。做空间类研究必须回到 EIT_rawData,做时间序列类研究从 Processed_Dataset 起步最省事。

2.2 处理层 18 列的完整字典

处理层每个 CSV 的列顺序固定,官方 README 用 A 到 R 标注。受试者 1、2 因未采集心率带,只有 A 到 O 共 15 列。

列 名称 单位 含义 使用注意
A PSD Time [s] 秒 压力流量数据时间轴 与 EIT、心电时间轴不同起点
B PSD Gauge Pressure [cmH2O] cmH2O 表压 呼吸力学辨识的主输入
C PSD Inspiratory Differential Pressure [cmH2O] cmH2O 吸气支路差压 与呼气支路分开测量
D PSD Expiratory Differential Pressure [cmH2O] cmH2O 呼气支路差压 阻断发生在这一支路
E PSD Flow [L/s] 升/秒 由两路差压合成 符号区分吸呼
F PSD Tidal Volume [L] 升 按吸气指数对流量积分 积分口径由官方代码确定
G PSD Inspiratory Indicies 索引 依据表压拐点识别的吸气指数 切呼吸周期的关键列
H EIT Time [s] 秒 EIT 时间轴 50 Hz,与 A 列不同长度
I EIT Global Aeration 无量纲 EIT 整体通气 空间信息已聚合,做区域分析需回原始层
J ECG Time [s] 秒 心电时间轴 部分受试者在试验间暂停采集
K ECG [mV] 毫伏 心电波形 自制采集系统,非临床级
L PPG Time [s] 秒 光电容积时间轴 与心电同一采集界面
M PPG0 原始 第一路 LED 信号 无标定单位
N PPG1 原始 第二路 LED 信号 无标定单位
O PPG2 原始 第三路 LED 信号 无标定单位
P HRB Time [s] 秒 心率带时间轴 受试者 1、2 缺失
Q HRB Heartrate [bpm] 次/分 心率带输出心率 消费级设备输出
R HRB RR Interval [ms] 毫秒 心率带 RR 间期 做心率变异性的直接输入

这 18 列里最容易被误读的是 I 列。它叫"整体通气",是把 32×32 的横截面像素聚合后得到的单值,用来看通气随时间的变化很好用,但它已经不含任何区域信息;想看"通气分布是否均匀"必须回到 .bin 文件。

2.3 一条记录的完整解剖

以 ProcessedData_Subject01_PEEP.csv 为例。文件名三段:受试者编号 01、试验类型 PEEP。文件内前三列是压力流量的时间、表压与两路差压,采样 100 Hz;按官方协议,这一段包含四段 1 分钟记录(ZEEP、PEEP 4、PEEP 8、回到 ZEEP),中间夹三段 30 秒的设置调整间隔,采集不中断。

对应的原始层里,Subject1_PEEP.csv 给出带单位的五列(时间、表压、吸气差压、呼气差压、起始时刻),Subject1_PEEP_raw.csv 给出同样的五列但幅度是 ADC 计数、起始时刻是 MATLAB 的 datenum 数值。想复现官方的换算,必须走 DataProcessing.m;直接拿 raw 的 ADC 值当物理量会全错。

人口学侧,subject-info.csv 的第一行数据(1 号受试者)为:女、164 cm、60 kg、22 岁、罩杯 10D、背宽 28、胸骨至脊柱深度 20、无哮喘、无吸烟史、无电子烟史。这一行说明了这份表的填写风格:数值项是量得或自报的数字,历史项用 Y/N 加一串 N/A。哮喘、吸烟、电子烟三组各有若干附属列(药物、剂量频率、是否当前、戒烟时长、频率、时长),在健康人群里大多为 N/A。

import pandas as pd

#-- 处理层:直接读,列顺序固定为 A:R
df = pd.read_csv('ProcessedData_Subject01_PEEP.csv')
print(df.shape, list(df.columns)[:6])
#-- 受试者 1、2 无心率带,列数应为 15 而非 18
print(df.columns[-1])

#-- 人口学表:21 列,A 到 U
info = pd.read_csv('subject-info.csv')
print(info.shape, list(info.columns)[:5])
print(info.iloc[0].to_dict())

2.4 主键与跨层映射

三层的编号写法不一致,是这份数据最容易出错的地方。

层 编号写法 示例 注意
处理层 Subject + 两位数字 ProcessedData_Subject01_PEEP.csv 补零到两位
压力流量层 Subject + 不补零数字 Subject1_PEEP.csv 不补零,排序会乱
EIT 层 S + 两位数字 S01_PEEP.bin 前缀是 S 不是 Subject
心电与光电容积层 S + 两位数字 S01_ECG.csv 每人一个文件,覆盖三类试验
心率带层 纯数字 3.txt 不补零,且缺 1、2

跨层 join 时先把编号统一成整数,再按"受试者编号 + 试验类型"配对。试验类型只有三个取值:PEEP、PEEP_BH、FEM。处理层与压力流量层、EIT 层都是 20 × 3 = 60 个文件,一一对应;心电、光电容积、心率带层不按试验切分,需要靠时间轴切出对应区间。

时间轴的对齐是第二个坑。压力流量是 100 Hz 的等间隔数值时间轴,EIT 是 50 Hz,心电与光电容积在原始层给的是 HH:mm:ss.SSS 字符串,心率带给的是带 Z 后缀的微秒级字符串。处理层已经把五条时间轴换算成"秒"并列成五列,但它们长度不同、起点也不同——不要假设行数对齐,按时间做插值或最近邻匹配。

2.5 与同组数据集的字段差异

同一团队在 PhysioNet 上还有几份呼吸数据集,字段差别决定了它们不能互相替代。

字段 本库(aeration 研究) PEEP 呼气阻断库 CPAP 压力流量周长库
受试者数 20 80 见官方页
受试者构成 健康、无显著呼吸异常 哮喘、吸烟、电子烟、健康四组 健康
压力档位 0、4、8 cmH2O 4 至 12 cmH2O,每 0.5 一档 0、4、8 cmH2O,多种呼吸模式
胸腹周长 无 有 有
EIT 通气 有(32×32,50 Hz) 有 无
心电 有(自制) 无 无
光电容积 有(三路 LED) 无 无
心率带 有(18 人) 无 无
屏气试验 有 无 无
用力呼气动作 有 无 无

这张表最该记住的两行是倒数三行:心电、光电容积、心率带这三行只有本库有。反过来看,本库没有胸腹周长、压力档位更粗、样本更小。如果你要的是力学参数的细粒度辨识,PEEP 呼气阻断库是更合适的主粮;如果你要的是呼吸与心脏的同步,只有本库。

2.6 五个模态各自的物理含义

模态 测的是什么 时间分辨率 它对哪类问题敏感
表压(B 列) 面罩接口处的压力 100 Hz PEEP 档位是否到位、呼吸努力
吸气差压(C 列) 吸气支路文丘里两端的压差 100 Hz 吸气流量与吸气肌努力
呼气差压(D 列) 呼气支路文丘里两端的压差 100 Hz 呼气流量,也是阻断发生的支路
EIT 整体通气(I 列) 胸部横截面的阻抗变化聚合 50 Hz 区域性通气分布随 PEEP 的变化
心电(K 列) 心脏电活动 时间字符串 逐拍间隔、心率变异性
光电容积(M/N/O 列) 指端组织血容积脉动 时间字符串 外周灌注、脉搏波形态与呼吸调制
心率带 HR(Q 列) 胸带输出的心率 事件式 消费级设备的心率读数
心率带 RR(R 列) 逐拍 RR 间期 事件式 心率变异性、呼吸性心律不齐

三路光电容积需要解释一下。官方说明该自制设备有三个 LED 传感器,对应 PPG0、PPG1、PPG2 三列;多 LED 的用途通常是比较不同波长或不同几何位置下的信号质量,但官方没有给出三路的具体波长或位置,也没有给出标定单位,因此三列只能做相对比较。

§3 它是谁的数据

3.1 贡献者与机构

八位作者分属三家机构。坎特伯雷大学(University of Canterbury,新西兰)贡献了 Ella Frances Sophia Guy、Isaac Flett、Jaimey Anne Clifton、Trudy Caljé-van der Klei、Jennifer Knopp、James Geoffrey Chase 六人;Jennifer Knopp 隶属该校机械工程系。Rongqing Chen 同时隶属弗莱堡大学(University of Freiburg)与 Furtwangen 大学(Hochschule Furtwangen)。Knut Moeller 隶属 Furtwangen 大学技术医学研究所(Institute of Technical Medicine)。

这个组合解释了数据的性格:主导方是机械工程系的呼吸力学建模团队,德国方面的参与对应 EIT 这一模态的技术来源。心脏侧的加入是"基础配套"性质的——官方在 Usage Notes 里写得很坦白:加入基础心脏监测是为了做"心脏功能对呼吸分析影响"的初步分析,目的是识别出压力流量模型法或 EIT 呼吸分析法各自还需要哪些输入。

3.2 时间线

时间 事件
2020 年 前期试验在类似伦理批件(HREC 2020/14/LR)下开展
2023 年 前期方法验证试验在 HREC 2023/04/LR-PS 下开展
2023 年 4 月 24 日 坎特伯雷大学人类研究伦理委员会批准本试验(HREC 2023/30/LR-PS)
2023 年 12 月 22 日 subject-info.csv 生成
2024 年 1 月 10 日 三张示例图生成
2024 年 2 月 23 日 README.txt 定稿
2024 年 3 月 19 日 LICENSE.txt 更新
2024 年 3 月 20 日 版本 1.0.0 在 PhysioNet 发布,SHA256SUMS.txt 同步生成

伦理批件的编号序列值得注意:本试验(2023/30/LR-PS)建立在 2023/04/LR-PS 与 2020/14/LR 两次前期批件之上。也就是说,它是同一条研究线上的第三次试验,而不是孤立的一次采集。

3.3 采集场景

受试者取坐位,经全脸面罩与过滤器呼吸,过滤器阻抗约 0.5 cmH2O·s/L。面罩后接自制文丘里式流量压力传感装置,用单向阀把吸气与呼气支路分开,呼气支路上装有快门式阻断器,每 200 毫秒阻断一次以产生被动力学评估窗。CPAP 机(Fisher and Paykel Healthcare SleepStyle SPSCAA,新西兰奥克兰 East Tamaki)串接在吸气支路,提供设定 PEEP。

EIT 用 Dräger PulmoVista 500(德国吕贝克)采集。电极带绕胸放置在腋水平面,与胸宽、胸深测量所在的平面一致;参考电极置于腹部脐水平、旁矢状面。EIT 带在第一次试验(PEEP)开始前立即标定,之后每次试验单独记录。

心脏侧三条通道的位置:心电电极置于左右锁骨下方、肩关节与胸廓之间的间隙,第三电极置于腹部脐水平旁矢状面,且与 EIT 参考电极分处对侧;光电容积传感器夹在受试者左手食指;心率带(Garmin HRM Dual)绕胸置于胸大肌下方。三条通道在三次试验期间连续记录,官方说明部分受试者的心电与光电容积在试验之间暂停过采集,这一点会反映在时间数组里。

3.4 数据来源的三个层次

第一层是设备原始输出。 压力流量的 ADC 计数、EIT 的 .bin 像素矩阵、心率带的原始文本流,都属于这一层。它们的共同点是保留了采集端的全部信息,也保留了采集端的全部怪癖(缺失、暂停、非等间隔)。

第二层是官方处理输出。 处理层 60 个 CSV 是 DataProcessing.m 的产物,完成了单位换算、时间轴对齐、潮气量积分与吸气指数识别。这一层是官方承诺可用的一层,也是绝大多数使用者应该起步的一层。

第三层是官方的可视化。 Figure1.png 至 Figure3.png 给出 3 号受试者三类试验的示例图,FigureGeneration.m 可以复现。这三张图是理解数据长什么样的最快入口——先看图,再决定读哪一层。

§4 它最独特的东西

4.1 呼吸侧被扰动、心脏侧被观察

公开生理数据里,"两侧同步"不少见,但绝大多数是被动同步:把几台设备同时开着,记录一段时间,然后交给使用者自己找关系。这类数据的麻烦在于没有因果锚点——你看到心率变了,也看到呼吸变了,但不知道是谁引起的。

这份数据的设计是主动的。呼吸侧有三类明确的扰动源:PEEP 档位变化(0、4、8 cmH2O)、屏气(每档两次约 10 秒)、用力呼气动作(60 秒内三次)。心脏侧在同一时间窗内被连续记录三条通道。于是"胸腔压力变化 → 回心血量变化 → 心率与脉搏波形态变化"这条链可以被一段一段地拆开看。

这在方法上的价值是具体的:做光电容积或心电推导呼吸率的研究,通常只能拿"平静呼吸"的数据,而平静呼吸下呼吸性心律不齐与呼吸周期高度耦合,模型很容易学到一条捷径。放进屏气段或用力呼气段,耦合被打破,模型的真实能力才暴露出来。

4.2 被动阻断窗:每 200 毫秒一次

官方方法的要点是"快速呼气阻断"(rapid expiratory occlusion)。呼气支路被快门在极短时间内关断,关断瞬间的压力响应可以用来反推被动呼吸力学(弹性与阻力),而不需要受试者做特殊配合。本库的阻断间隔是每 200 毫秒一次。

这个数字决定了处理层能做什么。每个 PEEP 档位下有 1 分钟记录,按 200 毫秒一次阻断,理论上每个档位包含大量阻断窗,而档位本身又是三档,因此可辨识的力学参数是分档给出的——这正是"模型法"区别于"肺功能法"的地方:不是给一个一秒率,而是给出每个压力水平下的弹性与阻力。

处理层 G 列(PSD Inspiratory Indicies)是按表压拐点识别出的吸气指数,是官方替使用者做好的第一步切分。想自己控制切分口径,要回原始层跑 DataProcessing.m 的对应段落。

4.3 三条心脏通道可以互相当裁判

心率带给 RR 间期与心率两列,心电给波形,光电容积给三路脉动。它们的误差来源完全不同:心率带靠胸壁电信号的节拍检测,受运动与接触影响;心电是自制采集系统的双锁骨下加腹部三点配置,导联方向与常规临床配置不同;光电容积在指端,受外周灌注与温度影响。

三者放在同一时间窗里,就能做一件事:判定"哪一个读数在什么时候不可信"。平静段三者应高度一致;屏气段胸廓运动改变,心率带的接触状态可能变化;用力呼气段胸腔压力骤变,指端灌注可能变化。这种交叉校验在单通道数据集里做不到。

更实际的用途是给消费级设备找一个参照系。可穿戴心率算法的评测通常面对一个尴尬局面:没有真值。临床心电可以做真值,但那是卧位静息、电极位置标准、受试者不动的场景,与手环的使用场景差别很大。本库的自制心电虽然不是临床级,却是在同一个坐位、同一段呼吸扰动下与心率带同步记录的,因此两者之差至少能回答一个具体的问题:在胸廓被外力反复扰动的条件下,消费级胸带与电学法的心率读数偏离多少。这个问题在静态对照实验里问不出来。

4.4 标注的粒度:没有标签,只有协议

必须说清楚一件事:这份数据没有事件标注文件。没有呼吸周期的起止标记,没有心搏位置的标注,没有屏气段的标签,没有疾病标签。它有的是一份写得很详细的试验协议,以及处理层里官方识别出的吸气指数。

你想要的标签 官方是否直接给 怎么得到
呼吸周期起止 否 从 G 列吸气指数或流量零点切分
PEEP 档位 否 按协议时刻反推:四段 1 分钟夹三段 30 秒间隔
屏气区间 否 从流量归零区间反推,不要采信秒表
阻断窗 否 从呼气差压的突变点检测
心搏位置 否 对 K 列自行做 R 波检测
心率真值 部分 心率带 Q 列是设备输出,不是黄金标准
疾病标签 否 无,全部为健康人群

所以"呼吸率 + 心率联合标注"这个说法在本库里是不成立的:呼吸率与心率都要自己从原始通道里算,官方给的是原始通道与协议,不是标签。这一点与库内带逐搏标注的心电库有本质差别(§6.3)。

4.5 边界条件:什么情况下它不再适用

跨中心外推不适用。 单一中心、单一团队、单一套自制硬件。换成别的设备采集的数据,绝对数值不可直接比。

疾病场景不适用。 队列是健康人群,且官方明确说明选择健康人群是为了减少对疾病人群的负担。阻塞性或限制性异常的表现形态在本库里不存在。

长时间监测不适用。 每段记录是分钟级,最长的一类也就是四段 1 分钟加间隔。做夜间或日间的长时程分析要换数据集。

临床决策不适用。 心电与光电容积是自制采集系统,心率带是消费级产品,EIT 的绝对通气值也没有给出临床校准。这份数据的用途是方法研究与工程验证。

§5 怎么拿到

5.1 目录结构与下载面

官方提供整库 ZIP(3.1 GB)与逐文件目录两种入口。未压缩总量 5.3 GB,主要来自 EIT 的 60 个 .bin 文件。

#-- 整库递归下载(5.3 GB,含 EIT 二进制)
wget -r -N -c -np https://physionet.org/files/respiratory-heartrate-dataset/1.0.0/

#-- 只取处理层与人口学表,跳过体积最大的 EIT 原始层
wget -r -N -c -np -R "*.bin" \
     https://physionet.org/files/respiratory-heartrate-dataset/1.0.0/

#-- 或用 AWS 开放桶同步,无需凭证
aws s3 sync --no-sign-request \
     s3://physionet-open/respiratory-heartrate-dataset/1.0.0/ ./rhrd/

#-- 或用官方 Python 包(按版本拉取)
physionet download respiratory-heartrate-dataset --version 1.0.0

只做时间序列分析的话,第二条命令就够了:处理层 60 个 CSV 加 subject-info.csv,跳过 EIT 后可以省下绝大部分流量。做 EIT 空间分析则必须下载 .bin,且要用官方 read_binData.m 读。

5.2 核对文件完整性

SHA256SUMS.txt 覆盖全库文件,下载后先校验再处理。这个步骤在 5.3 GB 的量级上不是形式主义——中途断流重传最容易产生静默截断的文件,而截断的 CSV 在 pandas 里不报错,只是少几千行。

#-- 进入版本目录后校验;会列出 OK 与 FAILED
cd respiratory-heartrate-dataset/1.0.0
sha256sum -c SHA256SUMS.txt 2>&1 | grep -v ': OK$' | head

5.3 读处理层并切出压力档位

import pandas as pd
import numpy as np

SUB, TRIAL = 3, 'PEEP'
df = pd.read_csv(f'ProcessedData_Subject{SUB:02d}_{TRIAL}.csv')

#-- 官方协议:1 分钟 ZEEP / 30 秒调整 / 1 分钟 PEEP4 / 30 秒调整 /
#--          1 分钟 PEEP8 / 30 秒调整 / 1 分钟 ZEEP
SEG = [(0, 60, 'ZEEP_1'), (60, 90, 'SET'), (90, 150, 'PEEP4'),
       (150, 180, 'SET'), (180, 240, 'PEEP8'), (240, 270, 'SET'),
       (270, 330, 'ZEEP_2')]

t = df['PSD Time [s]'].values
t0 = t[0]
for a, b, name in SEG:
    m = (t - t0 >= a) & (t - t0 < b)
    print(name, int(m.sum()),
          round(float(np.mean(df.loc[m, 'PSD Gauge Pressure [cmH2O]'])), 2))

这段代码的关键是把协议写成显式的区间表。官方没有给出档位标签列,时刻只能靠协议还原;把区间表写进代码并注明出处,是让结果可复现的最低要求。另外,时间轴起点 t0 不保证为 0,必须显式减。

5.4 把五条时间轴对齐

import pandas as pd
import numpy as np

df = pd.read_csv('ProcessedData_Subject03_PEEP.csv')

#-- 以压力流量时间轴为基准栅格
base = df['PSD Time [s]'].values

def onto(t_src, v_src, base):
    #-- 丢掉空值后做最近邻插值;源与目标长度不同是常态
    m = pd.notna(t_src) & pd.notna(v_src)
    return np.interp(base, t_src[m], v_src[m])

grid = pd.DataFrame({'t': base,
                     'p': df['PSD Gauge Pressure [cmH2O]'].values,
                     'flow': df['PSD Flow [L/s]'].values,
                     'eit': onto(df['EIT Time [s]'].values,
                                 df['EIT Global Aeration'].values, base),
                     'ecg': onto(df['ECG Time [s]'].values,
                                 df['ECG [mV]'].values, base),
                     'ppg0': onto(df['PPG Time [s]'].values,
                                  df['PPG0'].values, base),
                     'hr': onto(df['HRB Time [s]'].values,
                                df['HRB Heartrate [bpm]'].values, base)})
print(grid.describe().loc[['mean', 'min', 'max']])

三点必须注意。第一,EIT 是 50 Hz、压力流量是 100 Hz,插值后 EIT 列会出现阶梯,做频谱分析前要说明插值方式。第二,心电与光电容积的原始采样率官方未在处理层给出,插值到 100 Hz 只适合慢变分析,不适合波形形态分析。第三,np.interp 要求源时间轴严格递增;如果某位受试者的采集在试验间暂停过,时间轴可能有回退,需先检查 np.diff(t_src) > 0。

5.5 读心率带与 EIT 原始层

import pandas as pd

#-- 心率带:官方给的是逗号分隔文本,列为 Time / msgid / rr_ms / hr_bpm
hrb = pd.read_csv('3.txt', names=['Time', 'msgid', 'rr_ms', 'hr_bpm'])
hrb['Time'] = pd.to_datetime(hrb['Time'].str.rstrip('Z'), format='mixed')
print(hrb.shape, hrb.head(2).to_dict('records'))

EIT 的 .bin 没有公开的列格式说明,官方只提供 MATLAB 函数 read_binData.m。在 Python 侧读取需要按该函数反推字节布局,属于未核验内容(§10);稳妥做法是用 MATLAB 或 Octave 调用官方函数导出为矩阵后再转存。

5.6 六个最容易出错的地方

位置 错误写法 后果 正确做法
编号对齐 字符串直接 join 三层 处理层补零、压力流量层不补零,配对全错 统一解析成整数再配对
心率带缺失 假设 20 人都有心率带 受试者 1、2 无心率带,Q/R 列不存在 先判断列数再取列
时间轴 假设五行数一致 EIT 50 Hz、压力流量 100 Hz,行数不同 按时间插值,不要用行号对齐
屏气时刻 直接用秒表的 10 秒 实际起止由受试者操作,与 10 秒有出入 从流量归零区间反推
单位 把 _raw.csv 的 ADC 当物理量 幅度全错 用带单位版本或走 DataProcessing.m
EIT 空间信息 用 I 列做区域分析 I 列是整体聚合值,无空间信息 回 .bin 用官方函数读 32×32 帧

§6 与库内条目的关系

6.1 关系图谱

站内已有若干呼吸与心率方向的词条,本库在其中的位置可以用"是否有心脏通道"这一列分开。

站内词条 主要模态 是否含心脏通道 与本库的关系
respiratory-dataset 压力、流量、容积、胸腹周长、EIT 无 同团队、同平台、规模更大(80 人)、压力档更细;本库多出心脏三通道与屏气/用力呼气试验
pressure-flow-circum-cpap 压力、流量、胸腹周长 无 同团队早期工作,有周长无 EIT,也无心脏通道
cpap-data-canterbury CPAP 压力与流量 无 同机构最早的 CPAP 压力流量集,通道最少
temporal-respiratory-support 重症呼吸支持的时序表格 视表里字段而定 邻近主题:它是小时格的临床时序,本库是 100 Hz 的生理波形,粒度相差三个数量级
pics 早产儿心电与呼吸 有(心电) 邻近主题:同为心肺同步,但人群是新生儿重症监护、通道是心电加呼吸阻抗
meditation 心率与呼吸 有 邻近主题:同为心率与呼吸配对,但无呼吸侧的外力扰动
ppg-dalia 光电容积与加速度 有 可对接:本库的三路光电容积可当作算法的一个外部测试片段
bidmc-ppg 光电容积与呼吸率参考 有 可对接:同为光电容积推呼吸率,人群与场景完全不同
heartcycle 阻抗心动图与超声心动图 有 可对照:同为心脏影像与阻抗方向,无呼吸侧扰动
openox-repo 脉搏血氧与动脉血气 有 可对照:有血气参考,无呼吸力学扰动

6.2 检索路径

你要找的东西 检索词 会落到哪里
同团队的其他呼吸数据集 Canterbury、CPAP、PEEP、Guy §6.1 前三行
带心脏通道的呼吸数据 ECG、PPG、heart rate belt §2.2 的 J 至 R 列
EIT 通气图像数据 EIT、electrical impedance tomography、aeration §2.1 的 EIT_rawData 与 §5.5
呼吸力学模型辨识 elastance、resistance、rapid expiratory occlusion §4.2
可穿戴心率与呼吸率评测 PPG、respiratory rate §6.3 的分工表
重症呼吸支持的临床时序 respiratory support、ventilation §6.1 的 temporal-respiratory-support 行

6.3 与邻近主题的分工判据

最容易混淆的是"呼吸率 + 心率联合"与"单纯呼吸信号"这两件事。判据如下:

你的任务 该用哪一类 判据
呼吸力学参数辨识 单纯呼吸信号即可,PEEP 呼气阻断库更合适 不需要心脏通道,需要更细的压力档与更大样本
心肺耦合、呼吸性心律不齐 必须是呼吸率 + 心率联合,本库 两侧必须同步且呼吸侧有扰动时刻
光电容积推呼吸率 需要两侧同步,本库或 PPG 库 需要同步的呼吸真值,本库的流量可积分成容积
心率算法的日常场景评测 PPG 日常活动库更合适 需要运动与日常活动,本库是坐位静态
呼吸事件的临床时序分析 重症呼吸支持时序库 需要小时格的临床变量,本库是分钟级波形
新生儿心肺同步 早产儿心肺库 人群完全不同

一句话概括差别:单纯呼吸信号的数据集回答"肺的力学参数是多少",呼吸率加心率联合的数据集回答"呼吸变动时心血管跟着怎么变"。前者只需要呼吸通道,后者必须有两侧同步与明确的扰动设计。站内同团队的 PEEP 呼气阻断库(80 人、压力档更细、含胸腹周长)属于前者且规模更大;本库(通气研究心肺联合库)属于后者,代价是样本只有 20 人。

§7 质量评估与局限性

7.0 阅读本节前的一个前置校正

先纠正一个常见误判:把"没有标签"当成"质量差"。这份数据的设计目标是方法验证,不是监督学习基准。它没有事件标注、没有疾病标签,是因为它的用途本来就不需要——呼吸力学的辨识是无监督的物理反演,心肺耦合的分析靠的是同步波形而不是标签。

这个校正会改变评分的读法。它在"标签完整性"上拿不到分,但在"模态同步性"与"扰动可控性"上很少有其他库能比。把两件事混在一起看,会得出"不值得用"的错误结论。

7.1 五维评分

按常用维度打分,每项 1 至 5 分,分数针对"作为呼吸力学与心肺耦合研究方法验证数据"这个用途:

维度 分数 理由
规模 2 20 人、60 段,足以做方法验证,不足以训练模型
模态丰富度 5 压力流量、EIT 空间、心电、三路光电容积、心率带,五模态同步
标注完整性 2 无事件标注,仅官方识别的吸气指数;档位与屏气靠协议还原
采集规范性 4 协议写得很细(档位、间隔、电极位置、标定时机),但心电与光电容积为自制系统
可用性 4 处理层开箱可用、代码齐全、有校验和与示例图;原始层 EIT 需 MATLAB

7.2 数据质量的两层

第一层是采集层。 官方主动披露了两类不完美:心电与光电容积在部分受试者的试验间隔被暂停过,会反映在时间数组里;心率带在受试者 1 与 2 完全缺失。这两点都是官方在 Data Description 里明确写出的,说明作者对采集过程的记录是诚实的。

第二层是处理层。 潮气量由吸气指数与流量积分得到,吸气指数由表压拐点识别——两个步骤都依赖官方算法的口径。官方没有给出这些算法的准确率,也没有给出人工核对的说明。因此 F 列与 G 列应当被当作"官方口径下的处理结果",需要独立口径时回原始层重算。

7.3 已知的、可枚举的偏差

人群偏差。 全部为无已知显著呼吸系统异常的成人,按性别均分。官方说明这是为减少对疾病人群负担而做的概念验证队列。任何从这一队列推出的结论都不能外推到疾病人群。

设备偏差。 压力流量装置、心电与光电容积采集系统均为自制;CPAP 机、EIT、心率带为商用特定型号。换设备后绝对数值不可比,尤其是未给出标定单位的光电容积三列。

体位与状态偏差。 受试者全程坐位、清醒、配合,且被教练如何完成用力呼气动作。与卧位的自然呼吸或睡眠状态差别很大。

时间长度偏差。 每段为分钟级,无法支撑昼夜节律或长时程变异性的分析。

地理偏差。 单一国家、单一中心、单一团队,人口学构成未公开分层细节。

7.4 外部验证矩阵

用途 它的位置 能否单独支撑结论
呼吸力学模型的验证 可用作外部验证集 能支撑"方法在本队列上可行",不能支撑"临床有效"
心肺耦合的探索分析 主力 能提出假设,不能验证假设
可穿戴算法的鲁棒性测试 辅助测试集 能暴露捷径学习,不能给准确率指标
EIT 图像算法的验证 方法验证 能支撑算法可行性,样本不足以比较模型优劣
多中心泛化 不适用 单一中心,只能做跨库不能做跨中心
疾病判别 不适用 无疾病人群

7.5 它为何值得存在

稀缺的不是数据量,是那个组合。呼吸侧有外力扰动、心脏侧有三条独立通道、两侧在同一时间轴上——这三件事同时成立的公开数据很少。更细的压力档、更多的受试者、更全的标注,站内的 PEEP 呼气阻断库都能给;但那一支上没有心脏通道。本库用 20 人的代价换来了这个组合,代价和收益都很清楚。

§8 生态位与历史

8.1 历史沿革

官方在 Background 与 Usage Notes 里画出了这条线的位置:本试验(HREC 2023/30/LR-PS)建立在 HREC 2023/04/LR-PS 与 HREC 2020/14/LR 两次前期批件的工作之上,官方列出 31 至 36 号参考文献作为这个基础。硬件侧,压力流量采集装置的设计与制造说明发表于 HardwareX,设计与搭建文件开放获取;心电的硬件与软件细节已发表;光电容积的复现说明也已发表。

这意味着整条采集链路是可以复现的,而不只是数据可以下载。对想重复试验或改造协议的团队来说,这一点比数据量本身更有价值。

8.2 与挑战赛的关系

它与挑战赛没有关系。PhysioNet 的 Challenge 系列以房颤分类、心电分类、重症预测为主,本库既不是挑战赛来源,也没有成为挑战赛数据。它的对标对象是方法学论文而不是竞赛榜单,这一点决定了它的引用形态:被引方是呼吸力学建模与生理信号处理的方法研究。

8.3 生态位:实验台而不是粮仓

在 PhysioNet 的呼吸类资源里,本库处在"小样本、多模态、强协议"这一格。同团队的其他数据集是"大样本、少模态、强协议",站内的重症呼吸支持时序库是"长时程、临床表格"。三者不构成竞争关系,各自负责一段。

它的合理用法是:作为方法的验证台与对照尺。你在别处训好的东西,拿到这里看它在呼吸被扰动、心脏被同步记录的情况下表现如何;或者反过来,在这里提出一个心肺耦合的假设,再拿更大样本的数据集去验证。

8.4 谁在用它,用来做什么

官方页面的引用记录显示有一篇论文引用了本项目:团队自己发表于 Data in Brief 的配套论文(Pulmonary function testing dataset of pressure and flow, dynamic circumference, heart rate, and aeration monitoring,2024)。也就是说,目前的公开引用主要是数据发布本身,外部使用尚未形成规模。

这与它的发布时间(2024 年 3 月)和体量(5.3 GB)相符:下载门槛不算低,且目标用户是窄领域的呼吸力学建模群体。官方页面记录的项目浏览数为 619 次(当前版本与全部版本同一数值)。

§9 使用指引

9.1 三种角色的路径

角色 起点 关键动作 避开什么
呼吸力学建模者 处理层 B、E、F、G 列 定位阻断窗与吸气指数,分档辨识弹性与阻力 别用 I 列做空间分析
生理信号算法工程师 处理层 J 至 R 列 把心电、光电容积、心率带三条通道做一致性对照 别假设 20 人都有心率带
EIT 图像方向研究者 EIT_rawData 的 .bin 用 read_binData.m 读 32×32 序列 别指望处理层给空间信息
临床背景的使用者 先读官方 Abstract 与 Methods 明确它是健康人概念验证队列 别当成疾病队列用

9.2 一条最短的可用流程

import pandas as pd
import numpy as np

#-- 第一步:读人口学表,确认受试者编号与心率带可用性
info = pd.read_csv('subject-info.csv')
print(info.shape, list(info.columns)[:5])

#-- 第二步:选一位有心率带的受试者(编号 3 起),读 PEEP 试验
df = pd.read_csv('ProcessedData_Subject03_PEEP.csv')
print('列数', df.shape[1])          #-- 有心率带应为 18,无心率带为 15

#-- 第三步:按协议切档位,打印各档平均表压
t = df['PSD Time [s]'].values - df['PSD Time [s]'].values[0]
for name, a, b in [('ZEEP', 0, 60), ('PEEP4', 90, 150), ('PEEP8', 180, 240)]:
    m = (t >= a) & (t < b)
    print(name, '样本点', int(m.sum()),
          '平均表压', round(float(np.nanmean(df.loc[m, 'PSD Gauge Pressure [cmH2O]'])), 2))

#-- 第四步:把心率带心率插值到压力流量时间轴
hr_t = df['HRB Time [s]'].values
hr_v = df['HRB Heartrate [bpm]'].values
m = pd.notna(hr_t) & pd.notna(hr_v)
hr_on_p = np.interp(t, hr_t[m] - hr_t[m][0], hr_v[m])
print('心率插值后前 5 个值', np.round(hr_on_p[:5], 1))

四步走完,你手上就有了"压力档位 + 同步心率"的最小可用结构。之后无论做耦合分析还是算法评测,都在这个结构上加东西。

9.3 引用方式

项目 声明
数据集 Guy, E. F. S., Flett, I., Clifton, J. A., Caljé-van der Klei, T., Chen, R., Knopp, J., Moeller, K., & Chase, J. G. (2024). Respiratory and heart rate monitoring dataset from aeration study (version 1.0.0). PhysioNet. https://doi.org/10.13026/e4dt-f689
平台 PhysioNet 平台综述论文,按官方页面 Cite 按钮生成
配套论文 团队发表于 Data in Brief 的配套数据论文(2024)
许可 CC BY 4.0,再发布需署名并说明改动

写论文时建议同时注明:使用的版本号(1.0.0)、使用的层级(处理层或原始层)、压力档位区间的还原方法,以及是否排除了缺少心率带的受试者 1 与 2。

§10 AI 使用声明

项目 声明
文本生成 本文由 AI 辅助撰写,编辑把关结构与事实
数字来源 规模、结构、边界三类数字来自 PhysioNet 官方页面与文件目录
文件核验 README.txt、subject-info.csv 表头与首行、六个文件夹的目录清单经直接访问确认
不一致说明 官方 Abstract 称 20 人按性别均分;文件目录显示心率带仅 18 个(受试者 3 至 20),两者一致于官方说明
论文信息 仅参考 PhysioNet 官方页面列出的引用与参考文献条目,未读全文
未核验内容 各试验段的实际采样点数与时长;EIT .bin 的字节布局;心电与光电容积的实际采样率;屏气段的实际起止;三路光电容积的波长与位置;项目浏览数的统计口径;PEEP 段总时长 330 秒系按官方协议相加得出,非官方直给
图像 无配图;封面为生成式提示词,不含真实生理波形
免责 本文不构成临床建议;数据使用须遵守 CC BY 4.0 署名要求

常见误读(避坑清单)

说法 实际 证据
「它给了呼吸率和心率的联合标注」 没有任何事件标注;呼吸率与心率都要自己从流量、心电、心率带算 官方 Data Description 只描述通道,无标注文件;处理层 18 列均为原始或简单处理结果
「20 人都有心率带」 受试者 1、2 未采集心率带,处理层只有 15 列 官方 Data Description 与文件目录(HRB 目录内为 3.txt 至 20.txt)
「PEEP 档位在文件里有标签列」 无标签,需按协议(四段 1 分钟夹三段 30 秒间隔)还原 官方 Methods 段落;处理层列清单无档位列
「EIT 的 I 列可以做区域通气分析」 I 列是整体聚合值,空间信息只在 .bin 里 README 对 EIT_rawData 的说明为 32×32 像素矩阵
「心电是临床十二导联」 自制采集系统,双锁骨下加腹部三点配置 官方 Methods 对电极位置的描述
「光电容积三列有标定单位」 官方未给单位,只标为三路 LED 数据 README 的 PPG0/PPG1/PPG2 说明
「屏气就是整 10 秒」 官方写的是约 10 秒,由受试者掐秒表,实际起止须从流量归零反推 官方 Methods 对 PEEP_BH 试验的描述
「五条时间轴行数相同」 压力流量 100 Hz、EIT 50 Hz,其余为时间字符串,长度各不相同 README 各层列说明
「_raw.csv 可以直接当物理量用」 是 ADC 计数,起始时刻为 MATLAB datenum README 对 PQ_rawData 的说明
「它是疾病队列」 全部为无已知显著呼吸系统异常的健康成人 官方 Abstract 与 Usage Notes
「它和挑战赛有关」 与挑战赛无关,无榜单、无挑战赛标签 官方页面无挑战赛标记

FAQ

Q1:名字里写着 heart rate,是不是直接给了心率标注?
不是。心率带给的是两列设备输出——每分钟心跳数与 RR 间期;心电与光电容积给的是波形,需要自己检测心搏。"心率标注"这个说法在本库不成立,官方提供的是原始通道与详细协议,不是标签。要做逐拍分析,先对 K 列做 R 波检测,再用 R 列(心率带 RR 间期)做交叉核对。

Q2:20 人三类试验,实际能拼出多少样本?
处理层 60 个 CSV(20 人 × 3 类),EIT 原始层同样 60 个文件。压力流量层 120 个(每类各有带单位与原始 ADC 两个版本)。心脏侧不按试验切分:心电 20 个、光电容积 20 个、心率带 18 个,每人一个文件覆盖三类试验。若按"受试者 × 试验"计,处理层是 60 段;若按"受试者 × 试验 × 压力档"计,PEEP 与 PEEP_BH 各有四个记录期加三个设置间隔,可再细分。

Q3:为什么受试者 1 和 2 少了三列?
官方说明心率带数据未对受试者 1 与 2 采集,因此这两个人的处理层文件只有 A 到 O 共 15 列,缺少 P、Q、R 三列。做心率相关分析时样本是 18 人。代码里应先判断列数再取列,不要假设 18 列恒定。

Q4:EIT 的 32×32 与 50 Hz 该怎么用?
原始层每个 .bin 是随时间变化的 32×32 像素矩阵,采样 50 Hz,代表胸部横截面的区域通气分布;读取要用官方提供的 MATLAB 函数 read_binData.m。处理层只保留聚合后的整体通气单列,适合看随时间变化,不适合看区域分布。做通气均匀性、区域性塌陷这类问题必须回原始层。

Q5:它和站内 respiratory-dataset(PEEP 呼气阻断库)是同一个数据集吗?
不是。两者同一团队、同一平台,但不是同一份数据:PEEP 呼气阻断库发布于 2023 年 11 月,80 名受试者,含哮喘、吸烟、电子烟与健康四组,压力从 4 升到 12 cmH2O、每 0.5 cmH2O 一档,含胸腹周长,但没有心电、光电容积与心率带;本库发布于 2024 年 3 月,20 名健康受试者,压力档为 0、4、8 cmH2O,多了屏气与用力呼气试验,也多了三条心脏通道。选哪个取决于你要的是力学参数的细粒度辨识(前者)还是心肺同步(后者)。

Q6:许可允许怎样的二次使用与再发布?
官方许可为 CC BY 4.0,允许使用与再发布,条件是署名并说明改动。引用时须写清数据集全名、版本号 1.0.0 与 DOI。另外建议在方法节注明使用的是处理层还是原始层、压力档位如何还原、是否排除了缺心率带的两位受试者——这三处是复现的关键。

术语表

术语 解释
PEEP 呼气末正压,呼气结束时气道内维持的正压,单位为 cmH2O
ZEEP 零呼气末正压,即不施加 CPAP 的基线状态
CPAP 持续气道正压通气,最常见的无创通气形式
EIT 电阻抗断层成像,用胸部电极带重建横截面通气分布的成像方式
文丘里式流量计 利用节流前后压差推算流量的装置,本库压力流量采集的核心器件
单向阀 只允许单方向通过的阀门,本库用来把吸气与呼气支路分开测量
快速呼气阻断 短暂关断呼气支路,用关断瞬间的压力响应反推被动呼吸力学
被动呼吸力学 无肌肉主动参与时的弹性与阻力特性
弹性 呼吸系统的僵硬程度,模型辨识的目标参数之一
阻力 气道的阻碍程度,模型辨识的目标参数之一
潮气量 一次呼吸进出肺的气体容积
吸气指数 官方按表压拐点识别出的吸气时段索引
用力呼气动作 尽力呼尽后再尽力吸满的动作,本库 FEM 试验的内容
光电容积 用光照射组织、按透射或反射光强变化记录血容积脉动的技术
RR 间期 相邻两次心搏的间隔,心率变异性分析的基础量
心率带 绕胸佩戴、检测心电节拍并输出心率与 RR 间期的设备
呼吸性心律不齐 心率随呼吸周期起伏的生理现象
表压 相对于大气压的压力读数
差压 两个测点之间的压力差,用于推算流量
datenum MATLAB 的日期序列号格式
ADC 模数转换计数,未换算成物理单位的原始整数值
HREC 人类研究伦理委员会,本试验的审批机构
CC BY 4.0 知识共享署名许可,允许再发布但须署名

附录 A:核心数字核对表

项 值 来源
受试者数 20,按性别均分 官方页面 Abstract 与 Data Description
试验种类 3(PEEP、PEEP_BH、FEM) 官方 Abstract 与文件命名
处理层文件数 60 文件目录 Processed_Dataset
EIT 原始文件数 60 文件目录 EIT_rawData
压力流量文件数 120 文件目录 PQ_rawData
心电文件数 20 文件目录 HRM_rawData/ECG
光电容积文件数 20 文件目录 HRM_rawData/PPG
心率带文件数 18(受试者 3 至 20) 文件目录 HRM_rawData/HRB
MATLAB 代码文件数 4 文件目录 Code
处理层列数 18(A:R),受试者 1、2 为 15(A:O) README.txt
人口学表列数 21(A:U) subject-info.csv 表头
压力档位 0、4、8 cmH2O 官方 Abstract 与 Methods
压力流量采样率 100 Hz 官方 Data Description
EIT 采样率与帧尺寸 50 Hz,32×32 像素 官方 Data Description 与 README
阻断间隔 每 200 毫秒一次 官方 Abstract
PEEP 试验记录结构 四段 1 分钟 + 三段 30 秒间隔 官方 Methods
屏气安排 每档两次约 10 秒 官方 Methods
FEM 试验时长 60 秒,三次用力呼气动作 官方 Methods
数据体量 未压缩 5.3 GB,ZIP 3.1 GB 官方页面 Files 区
发布日期与版本 2024 年 3 月 20 日,1.0.0 官方页面
DOI 10.13026/e4dt-f689(v1.0.0) 官方页面 Discovery 区
伦理批件 HREC 2023/30/LR-PS,2023 年 4 月 24 日批准 官方 Ethics 段
许可 CC BY 4.0 官方页面 Access 区

编辑说明

本文的核验时间为 2026 年 10 月 29 日。核对方式为直接访问 PhysioNet 项目页(版本 1.0.0)与文件目录,逐一确认 README.txt、subject-info.csv 的表头与首行、以及六个文件夹的目录清单;页面摘要、背景、方法、数据描述与使用说明各段均逐段读过。未覆盖的内容包括:各试验段的实际采样点数与时长、EIT 二进制文件的字节布局、心电与光电容积的实际采样率、屏气段的实际起止时刻、三路光电容积的波长与几何位置。这些需要下载全量后逐文件统计或阅读官方 MATLAB 代码,已列入 §10 的未核验内容。文中 PEEP 段总时长 330 秒系按官方协议(四段 1 分钟加三段 30 秒)相加得出,非官方直接给出的数字。


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • respiratory-dataset — 共享标签:生理信号 / 呼吸信号 / 呼吸力学 / 开放数据
  • pressure-flow-circum-cpap — 共享标签:生理信号 / 呼吸信号 / 呼吸力学
  • cpap-data-canterbury — 共享标签:生理信号 / 呼吸信号 / 呼吸力学
  • temporal-respiratory-support — 共享标签:生理信号 / 呼吸信号
  • pics — 共享标签:生理信号 / 心电信号 / 呼吸信号
  • meditation — 共享标签:生理信号 / 心电信号 / 呼吸信号
  • ppg-dalia — 共享标签:生理信号 / 心电信号 / 多模态
  • bidmc-ppg — 共享标签:生理信号 / 呼吸信号 / 心电信号
  • heartcycle — 共享标签:生理信号 / 心电信号 / 多模态
  • openox-repo — 共享标签:生理信号 / 开放数据

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集