1. 心电信号基础与除颤仪概述

大家好,我是老张。在嵌入式医疗这个行当摸爬滚打了十几年,今天咱们来聊聊除颤仪的心电分析算法。说实话,这个题目看着挺大,但拆开来看,无非就是搞清楚三件事:心脏怎么跳的、除颤仪怎么工作的、算法在中间扮演什么角色。

嗯,咱们先从最基础的讲起。

1.1 心脏电生理基础

心脏为什么能自己跳?说白了,是因为心肌细胞有自动节律性。我当年刚接触这个领域时,总觉得心脏就是个泵,后来才明白——它本质上是个电器官。

心脏的电活动,主要靠两类细胞完成:

  • 起搏细胞:集中在窦房结,负责发出节律信号。频率大概60-100次/分钟。
  • 传导细胞:把信号从心房传到心室,经过房室结、希氏束、浦肯野纤维。

这里有个关键点:动作电位。心肌细胞在静息状态下,膜内电位约-90mV。受到刺激后,钠离子快速内流,电位瞬间升到+20mV左右。这就是除极过程。

重要概念:除极对应心电图的P波和QRS波,复极对应T波。这个对应关系,是后面所有算法的基础。

我在项目中遇到过一个问题:有些工程师把心肌细胞的电生理模型想得太复杂。其实你只需要记住五个期相——0期(快速除极)、1期(早期复极)、2期(平台期)、3期(晚期复极)、4期(静息期)。其中2期平台期是心肌细胞特有的,跟骨骼肌不一样。

1.2 心电信号产生原理

心电信号怎么来的?不是心脏直接发电,而是心肌细胞除极和复极时产生的电位差,在体表被电极捕捉到。

你想想看,心脏在胸腔里,周围有组织液、肌肉、骨骼。这些组织的导电性不一样,信号传到体表时已经衰减了很多。正常心电信号幅度只有0.5-4mV,频率范围0.05-100Hz。

标准12导联系统里,我们最常用的是:

导联 位置 主要观察
I、II、III 肢体导联 整体电轴方向
aVR、aVL、aVF 加压肢体导联 心室除极异常
V1-V6 胸前导联 心肌缺血、梗死

对于除颤仪来说,我们通常只用两个电极(相当于II导联)。为什么?因为除颤场景下,快速判断是关键,不需要12导联那么精细。

个人经验:我建议初学者先用手画一遍正常心电图的波形。P波、QRS波、T波,每个波的起点、终点、幅度,画一遍比看十遍都管用。

1.3 除颤仪工作原理

除颤仪的核心思想很简单:给心脏一个足够强的电击,让所有心肌细胞同时除极,然后窦房结重新夺回控制权。

但这里有个坑——不是所有心律失常都能除颤。能除的只有两种:

  • 心室颤动(VF):心室乱跳,没有有效收缩
  • 无脉性室性心动过速(VT):心室跳得太快,来不及充盈

其他情况,比如心搏停止(asystole),除颤反而有害。这就是为什么算法必须准确判断心律。

除颤仪的工作流程大致是:

  1. 检测心电信号,判断是否需要除颤
  2. 如果需要,给电容充电(通常到150-360J)
  3. 通过电极片放电,持续时间约5-10ms
  4. 放电后立即恢复心电监测,评估效果

注意:我曾经在测试中遇到过电容充电时间过长的问题。原因是电源管理模块的电流限制没调好。嵌入式开发中,硬件和软件的配合往往比纯算法更让人头疼。

1.4 算法在除颤仪中的角色

算法在除颤仪里,说白了就干三件事:

  • 信号预处理:滤掉噪声、基线漂移、工频干扰
  • 心律分析:判断是VF、VT还是正常心律
  • 决策支持:建议是否除颤,或者自动除颤

这里有个关键指标——灵敏度和特异度。灵敏度高,意味着不漏掉需要除颤的病人;特异度高,意味着不误判正常心律。美国心脏协会(AHA)的要求是:灵敏度>90%,特异度>95%。

我参与过的一个项目,算法在实验室测试时灵敏度98%,但到了临床现场,因为电极片接触不良、病人移动等原因,掉到了85%。嗯,这就是为什么嵌入式算法必须考虑真实场景的噪声。

算法在除颤仪中的核心地位:没有算法,除颤仪就是个高级电棍。有了算法,它才是救命设备。算法决定了除颤仪是「智能」还是「智障」。

最后说个我踩过的坑。早期做算法时,我总想着把各种滤波、特征提取、分类器都堆上去。结果呢?代码跑在Cortex-M4上,实时性根本达不到。后来才明白——嵌入式医疗算法,第一要义是可靠,第二是实时,第三才是精度。这个顺序不能乱。

好了,第一章就到这里。下一章咱们开始讲心电信号的预处理,包括怎么滤除那些烦人的噪声。到时候我会分享一些实际项目中用到的滤波器设计技巧。

课后思考:为什么除颤仪通常只用两个电极,而不是12导联?如果让你设计一个单导联的VF检测算法,你会从哪些特征入手?