KOEN中HI
开发中的原型记录 · 尚未获得医疗器械许可 · 不用于诊断

← EKG 开发记录

信号处理结果

双重自适应陷波 · QRS 检测 · VF/VT 报警 · 心搏停止 · 心搏分类 · 多导联 · 运算量 (2026-10-11,截至第 4 轮)

关于本页中的数字

以下数字全部是在 PC 上实际运行 C 参考实现测得的测试结果。输入为公开心电数据库记录(MIT · NST · CU · VFDB)和合成信号(合成 60 Hz 噪声、合成肌电噪声、合成起搏器脉冲、合成 4 导联)。不是在实际设备 · 实际人体上测得的值。

术语含义(本页中)
Se / +P检测灵敏度(基准中被检出的比例)/ 阳性预测值(检出中正确的比例)
VF · VT心室颤动 · 室性心动过速报警条件
误报警 /h与基准不重叠的报警次数除以记录时间的值(次/小时)
MIT · NST · CU · VFDB测试所用的心电数据库组(NST = 噪声压力测试记录)

1. 概览(第 4 轮 — 减少误报警)

目标(在不增加漏检的前提下减少误报警)只实现了一半。VF 误报警减少了,但短 VF 片段的漏检增加了,VT 误报警没有减少,区分 VF 与 VT 失败了。

2. 双重自适应陷波(去除电源 60 Hz 噪声)

陷波器沿用第 2 轮(v2)所做的版本直至第 4 轮。以下为第 2 轮测试结果(合成信号,与第 1 轮测试相同信号 · 相同随机种子,排除最初 10 s)。

2.1 改动内容(第 1 轮 → 第 2 轮)

2.2 收敛 · 衰减

陷波收敛时间 — 第 1 轮与第 2 轮比较
收敛时间 — 4 个频率中最慢的值。第 1 轮改进方案在 20 µVp-p 下为 50~60 s,v2 在 10 s 内。在 1 mVp-p 下 v2 较慢

2.3 陷波是否削减心电图 · 振铃

窄 QRS 下陷波削减波形比较
窄 QRS — 第 1 轮(橙色)在 R 之后残留 60 Hz 振铃超过 300 ms。v2 抵消器(蓝色)平坦
模式波形削减峰值 µV 第 1 轮v2 抵消器振铃 µV 第 1 轮v2 抵消器
监护普通 QRS15.60.11.90.1
监护窄 QRS50.90.833.80.8
监护三角波 20 ms51.41.043.01.0
诊断普通 QRS7.80.00.90.0
诊断窄 QRS25.50.916.90.9
诊断三角波 20 ms26.11.121.71.1

3. QRS 检测第 1~4 轮对比

按心搏评分使用 WFDB bxb。从第 2 轮起为交叉验证(在选择时未看过的组上测得的值)。第 4 轮的心搏位置与第 3 轮一个样本也不差(已确认 4 个 DB 全部记录)。

QRS Se / +P %第 1 轮第 2 轮 A 交叉第 3 轮第 4 轮
MIT 4899.80 / 99.1499.61 / 99.5299.61 / 99.5199.61 / 99.51
NST 1296.85 / 79.2394.95 / 86.9794.91 / 87.2394.91 / 87.23
CU 3595.85 / 86.4392.94 / 91.7093.93 / 92.9393.93 / 92.93

4. VF · VT 误报警

4.1 能否区分 VF 与 VT — 失败

用 VF 窗 6,432 个 · VT 窗 5,044 个,对「VF 对 VT」提升模型按记录分组 5 折(同一记录不会同时进入训练和测试)进行了测量。

特征AUCVFDB VT→VF % (P≥0.5)VFDB VF 保持 %CU VT→VF %MIT VT→VF %
第 3 轮窗特征0.52256.954.850.02.2
第 4 轮窗特征0.44258.440.935.70.0
基于心搏0.61349.553.957.14.3
窗(第 4 轮)+ 心搏0.49155.437.757.11.1

AUC 接近 0.5 即「无法区分」。未加入在 VF 报警内另行判定 VT 的步骤。VFDB 的 VT 窗中被判为 VF 的比例为第 3 轮 69.6 % → 第 4 轮 74.9 %。

4.2 报警确认规则

VF 报警 = 最近 m 秒中有 k 秒以上 P ≥ 阈值且当前秒也 ≥ 阈值则开启,连续不足 3 秒则关闭。第 3 轮为 k = m = 3。默认值从内部数据中选定(未使用外部测试组)。

报警确认规则 k/m 曲线
在测试组上改变 k/m 时(报告用曲线 — 默认值在内部数据中确定)。4/4 比 3/3 误报警少,9 s 内检出数相同。从 5/5 开始 9 s 内检出数开始减少
DBk/m发作8 s+8 s+ 9 s 内延迟中位数 s最大 s误报警/h
CU3/347/4747/47453.722.76112.60
CU4/446/4746/47454.7127.7449.09
CU5/546/4746/47445.7128.7357.23
VFDB3/3100/11127/27272.86.217813.94
VFDB4/496/11127/27273.87.213610.65
VFDB5/592/11126/27265.38.11027.99
MIT3/34/63/436.27.300.00
MIT4/43/63/437.28.300.00
MIT5/53/63/428.29.300.00

4.3 VF 误报警 — 第 3 轮与第 4 轮

VF 误报警第 3 轮第 4 轮比较
VF 误报警出在哪里 — 第 3 轮(浅色)与第 4 轮(深色)
DB版本窗 Se %窗 Sp %发作8 s+延迟中位数误报警/h
MIT第 3 轮81.97100.004/63/46.200.00
MIT第 4 轮81.15100.003/63/46.500.00
CU第 3 轮73.9194.3147/4747/473.76112.60
CU第 4 轮73.9194.3146/4746/474.7449.09
VFDB第 3 轮94.0094.17105/11127/273.818314.33
VFDB第 4 轮94.8293.3396/11127/273.813610.65

窗 Se/Sp 以确认规则之前的阈值为准,因此与第 3 轮几乎相同。误报警减少不是因为模型,而是因为确认规则。漏检的主要是 8 s 以下的短片段(VFDB 419 的 1.1~2.3 s 片段 9 个、422 的 6.8 s、MIT 207 的 5.9 s)。

4.4 VT 报警再确认 — 默认不加入

VT 报警 = 连续 5 个 V · 100 bpm 以上。以其他导联一致 · 形态一致 · 疑似噪声 · 连续数 · 速率进行再确认的候选 768 格,在内部数据中进行了选择。

VT 误报警与 5 搏以上 VT 检出数
VT 误报警与 5 搏以上 VT 的检出数 — 再确认在 VFDB 上增加了漏检
DB版本5 搏+ (VFDB 3 s+)误报警/h
MIT第 3 轮5/11190.8
MIT第 4 轮默认8/11180.7
NST第 3 轮0/014924.8
NST第 4 轮默认0/016327.1
CU第 3 轮4/47314.8
CU第 4 轮默认4/48417.0
VFDB第 3 轮35/6428021.8
VFDB第 4 轮默认34/6425720.0
VFDB第 4 轮再确认24/64423.3

导联一致(逐搏)几乎消除了 NST 误报警(27.1 → 3.3/h),但 VFDB VT 漏检 34 → 26/64。形态一致 · 连续数 · 速率也都是同一方向(误报警 ↓ · VFDB 漏检 ↑)。因此第 4 轮默认为关闭再确认(不增加漏检的一方)。

4.5 将致命心律失常报警(VF ∪ VT)合为一种来看

致命心律失常报警误报警
VF 报警与 VT 报警合并后的高优先级报警的误报警(在开启 −3 s ~ 关闭 +2 s 范围内与基准 VF·VT 不重叠者)
DB3 s+ VF/VT 检出 第 3 轮第 4 轮默认误报警 第 3 轮第 4 轮默认
MIT9/159/1518 (0.8/h)18 (0.8/h)
NST0/00/0143 (23.9/h)156 (26.1/h)
CU51/5151/51105 (21.7/h)100 (20.7/h)
VFDB103/122102/122234 (18.3/h)217 (17.0/h)

将 VT 判为 VF 在本表中不算误报警。

5. 报警延迟(合计 10 s 目标)

将「条件延迟 + 信号生成延迟 ≤ 10 s」也作为 VF · VT 的目标(提案)。信号生成延迟(声音 · 画面)尚未实现、无法测量,因此预留 1 s,以条件延迟 9 s 作为基准线(提案)。

报警造成延迟的因素延迟中位数 s(第 4 轮)9 s 内(8 s+)
VF特征窗 4 s + 确认连续 4 秒 + 1 s 判定周期CU 4.7 · VFDB 3.8 · MIT 6.5CU 45/47 · VFDB 27/27 · MIT 3/4
VT连续 5 个 V + 分类滞后 1 个心搏MIT 1.7 · CU 1.5 · VFDB 2.5—
心搏停止无心搏 4 s + 1 s 判定周期合成 4 s(13 种测试)合成肌电噪声 150 µV 8/8(10 s 内)
导联脱落1 s 窗1 s—

6. 心搏停止 — 肌电噪声 150 µV 对策

心搏停止计时器每次出现心搏时归 0。第 4 轮只让「可信心搏」(幅度 / 40 Hz 以上 rms ≥ 6)使计时器复位(在训练半数中选定)。心搏输出(HR 计算)保持不变,仅用于心搏停止。

心搏停止 30 s 期间报警开启比例
心搏停止 30 s 期间报警开启的比例 — 合成噪声已解决,实际肌电噪声未变
噪声版本50 µV100 µV150 µV200 µV300 µV
合成 · 各导联独立第 3 轮8/8 · 87 % · 误 0 s8/8 · 71 % · 误 0 s8/8 · 17 % · 误 0 s8/8 · 17 % · 误 0 s8/8 · 13 % · 误 0 s
合成 · 各导联独立第 4 轮8/8 · 87 % · 误 0 s8/8 · 87 % · 误 0 s8/8 · 87 % · 误 0 s8/8 · 88 % · 误 0 s8/8 · 88 % · 误 133 s
合成 · 70 % 共模第 3 轮8/8 · 85 % · 误 0 s8/8 · 62 % · 误 0 s8/8 · 16 % · 误 0 s8/8 · 14 % · 误 0 s7/8 · 11 % · 误 2 s
合成 · 70 % 共模第 4 轮8/8 · 85 % · 误 0 s8/8 · 87 % · 误 0 s8/8 · 85 % · 误 0 s8/8 · 86 % · 误 0 s8/8 · 86 % · 误 109 s
实际 ma第 3 轮8/8 · 41 % · 误 0 s4/8 · 18 % · 误 0 s4/8 · 21 % · 误 0 s2/8 · 7 % · 误 0 s3/8 · 9 % · 误 0 s
实际 ma第 4 轮8/8 · 43 % · 误 0 s4/8 · 18 % · 误 0 s4/8 · 21 % · 误 0 s2/8 · 7 % · 误 0 s3/8 · 10 % · 误 0 s

格 = 心搏停止事件 10 s 内报警的记录数 · 心搏停止 30 s 中报警开启的比例 · 无事件 8 条记录的误心搏停止秒数合计

7. 心搏分类 V — 保持患者间分离

分类器由 LDA(第 3 轮)改为每类树桩提升(64 · 128 个)。选择只用了内部 4 折,任何记录都没有用以其自身心搏训练的模型来测量。

心搏分类 V Se +P 第 3 轮第 4 轮
V Se · +P(bxb,排除最初 5 分钟)— 第 3 轮 LDA 与第 4 轮提升
组V Se 第 3 轮第 4 轮V +P 第 3 轮第 4 轮V 误检 第 3 轮第 4 轮
DS1 22(以 DS2 训练)66.6186.3485.4785.83364458
DS2 22(以 DS1 训练)86.8296.4682.9077.25481763
MIT 44(不含起搏)75.8190.9584.1181.468451221
起搏 4(以 MIT 44 训练)31.3436.8219.6920.00257296
NST 12(以 DS2 训练)77.9089.9633.9436.1834293589

8. 合成 4 导联(I · II · III · V)电极噪声

用 MIT 20 条记录的两个通道近似合成 4 导联(I = III = 0.5·II 近似),将实际电极运动噪声(em)按电极从不同区段截取,加到 RA · LA · LL · V 上。

合成 4 导联电极噪声结果
仅一个电极晃动时,导联越多误报警越少(SQI 选择未进入噪声的导联)
噪声导联QRS Se+PV SeV +PVT(5 搏+ · 误/h)
无噪声1 导联 II99.5499.8489.888.63/7 · 1.5
无噪声4 导联99.2799.6889.086.54/7 · 1.2
仅 RA 0.3 mV1 导联 II98.8596.1280.736.24/7 · 11.4
仅 RA 0.3 mV2 导联 II·V97.4297.9775.041.94/7 · 6.8
仅 RA 0.3 mV4 导联99.2699.6776.948.85/7 · 2.9
四个电极 0.15 mV1 导联 II99.2799.5385.763.63/7 · 2.0
四个电极 0.15 mV4 导联98.2699.0979.959.63/7 · 2.8

9. MCU 运算量(Mac 实测 → 估计换算)

在 Mac(Apple M6,clang -O2)上用 MIT 207 30 分钟(2 导联)和同一记录的合成 4 导联将 C 参考实现运行 5 次进行测量。Cortex-M7 值为估计值(假设指令数相同,CPI 0.8~1.5,800 MHz)。

配置Mac µs / 信号 1 s指令 M / 信号 1 sM7 800 MHz ms / 1 s(估计)负载 %(估计)1 s 块最大 ms(估计)
2 导联167.94.544.5~8.50.45~0.856.0~11.2
4 导联317.78.678.7~16.30.87~1.6310.4~19.5

10. 第 1~4 轮对比

项目第 1 轮第 2 轮第 3 轮第 4 轮
VF 误报警 /h(CU · VFDB)——12.6 · 14.39.1 · 10.6
8 s+ VF 9 s 内(CU · VFDB)——45/47 · 27/2745/47 · 27/27
VF 全部发作(CU · VFDB · MIT)——47 · 105 · 446 · 96 · 3
VT 误报警 /h(NST · CU · VFDB)——24.8 · 14.8 · 21.827.1 · 17.0 · 20.0
致命报警误报警 /h(NST · CU · VFDB)——23.9 · 21.7 · 18.326.1 · 20.7 · 17.0
V Se / +P % DS1无分类无分类66.6 / 85.586.3 / 85.8
V Se / +P % DS2无分类无分类86.8 / 82.996.5 / 77.3
心搏停止 肌电噪声 150 µV(合成 · 实际 ma,开启 %)——17 · 2187 · 21
MCU 运算(M7 800 MHz,2 导联)——未测量0.5~0.9 %(估计)

11. 局限 · 未能确认的事项