简介
心电图(ECG)是心脏产生的体表电活动的记录。通过放置在身体上指定位置的皮肤电极收集ECG测量信息。 ECG信号的特征是六个峰和谷标有字母P,Q,R,S,T和U的连续字母(图1)。
本文提出了一些想法用于低成本实施心电监护仪。 1 其配置设想用于个人计算机(PC)。尽管本文是在考虑患者安全的情况下编写的,但所提出的任何想法本身并不一定与所有系统安全要求兼容;任何使用这些想法的人都必须确保在特定设计中,整个设计符合要求的安全标准。
首先,我们概述了典型的模拟心电图拓扑结构。然后提出了一种执行模数转换,数字滤波和数字放大的电路 - 所有这些都是通过使用MicroConverter集成的“片上系统”,它结合了A / D转换器,微控制器和闪存。本文接着讨论了MicroConverter组件选择和编程的注意事项。
心电图仪的要求
心电图的前端必须能够处理极弱信号范围为0.5 mV至5.0 mV,结合直流分量高达±300 mV - 由电极 - 皮肤接触产生 - 加上共模分量高达1.5 V,由电极和地之间的电位产生。根据应用的不同,ECG信号的有用带宽范围为0.5 Hz至50 Hz,适用于重症监护室的监测应用 - 最高1 kHz用于后期潜在测量(起搏器检测)。标准临床ECG应用的带宽为0.05 Hz至100 Hz。
ECG信号可能被各种噪声破坏。噪声的主要来源是:
- 电力线干扰:50-60 Hz拾音器和来自电源的谐波
- 电极接触噪声:电极和电极之间的可变接触皮肤,导致基线漂移
- 运动伪影:由电极 - 皮肤阻抗变化引起的基线偏移
- 肌肉收缩:肌电图型信号(EMG)产生并混合心电图信号
- 呼吸,引起基线漂移
- 来自其他电子设备的电磁干扰,电极线用作天线,
- 噪声耦合来自其他电子设备,通常是高频率。
为了进行有意义和准确的检测,必须采取措施过滤掉或丢弃所有这些噪声源。
典型ECG信号链
图2显示了典型的单通道心电图仪的框图。在该链中,显然所有滤波都在模拟域中完成,而微处理器,微控制器或DSP主要用于通信和其他下游目的。因此,数字核心的强大计算属性不易于处理其基本原始状态的信号。此外,复杂的模拟滤波器由于其不灵活性以及所需的空间,成本和功率而对整体设计来说成本高昂。
建议电路
通过使用ADuC842 MicroConverter可以简化信号链,该器件允许将ADC,滤波器和微处理器组合在一个集成电路中。其他优点是滤波器实现的灵活性和数字域中的隔离。拟议的系统设计如图3所示。
模拟输入处理
模拟前端采用典型方法,仪表放大器(IA)和右腿共模反馈运算放大器。 IA是AD620,一款低成本,高精度仪表放大器,具有出色的直流性能:CMR >> 100 dB至近1 kHz,最大偏移电压50μV,低输入偏置电流(最大1 nA),输入低电压噪声(0.28μV,0.1 Hz至10 Hz)。
AD620只需要一个外部增益设置电阻 R G 。电阻器R2和R3将正常增益公式更改为[增益 = 1 + 49.4 k / R G +(49.4 k / 2)/ 22 K]。为避免输出饱和,可用增益受到输出摆幅和IA的最大输入电压的限制。采用±5V电源,AD620的输出摆幅约为±3.8 V;最大输入为±5 mV加上可变的正常模式直流偏移,最高可达±300 mV,最大增益为12.45。这里,使用 R G =8.45kΩ,将增益保守设置为8(±1%)。
右侧使用的运算放大器-46共模反馈电路是OP97,一款低功耗,高精度运算放大器,具有极高的共模抑制性能(最小值为114 dB)。该电路将共模干扰的反相版本应用于受试者的右腿,目的是消除干扰。运算放大器的共模电压为91 [ viz 。,R4 /(R2 || R3)=1MΩ/11kΩ],电压增益为1.6 Hz,具有1.6 Hz的衰减和低通截止频率约为160 Hz,稳定性[ f - 3 dB = 1 /(2π×(10kΩ×0.1μF)]。
数字隔离
数字隔离是PC的RS232接口的核心,在本例中建议用于显示器。隔离器是ADuM1301,一个基于ADI公司的双向数字隔离器 i 耦合器® 技术 - 消除了与光耦合器相关的设计难题(不确定的电流传输比,非线性传递函数等)。
与光耦合器相比,它还实现了高数据速率和更低的功耗。 ADuM1301有三个独立的隔离通道,其中两个用于此处 - 一个用于发送,另一个用于接收数据。 (此处不需要ADuM1301的另一个功能 - 能够启用/禁用输入/输出数据。)ADuM1301测量侧的电源取自ADP3607-5升压器/稳压器,它提供了一个固定的5 V输出。 PC侧的电源完全与电路隔离。它可以从PC(就像在这里)或从不同的来源获取。
安全电源
隔离电源由电池供电,电池在充电时充电车站不使用时。要处理双极性输入信号,AD620和OP97需要±5 V双电源。 ADP3607-5升压/稳压器和ADP3605逆变器用作稳压双电源,可通过单个3 V电池提供正负调节电压。
ADP3607是稳压输出开关电容电压倍频器可提供高达50 mA的电流。它能够在低至3 V的输入电压下工作,提供固定电压为5 V(ADP3607-5)的版本 - 此处使用的版本。 (它还可通过外部电阻以3 V至9 V范围内的形式提供。它可以产生更大的正电压,外部泵级由无源元件组成。)
ADP3605开关电容电压逆变器具有稳定的输出电压,能够提供高达120 mA的电流。它提供稳定在-3 V(ADP3605-3)的调节,或通过外部电阻在-3 V至-6 V范围内调节。 (与ADP3607一样,通过增加外部泵级可以实现更大的负电压。)需要-5 V电源,输入电压为+5 V,因此R设置为31.6kΩ(±1) %),使用公式, V OUT = -1.5 R /9.5kΩ。
两个电源电压(±5 V)均由电容式电荷泵产生,即使在故障条件下也不会产生不安全的电压 - 因为它们不需要任何电感器。这些设备还具有关闭模式,允许MicroConverter在系统不使用时关闭设备。
患者安全
< p>除数字隔离和安全电源外,串联电阻Rx1,Rx2和Rx3为患者提供保护,以符合AAMI(医疗器械促进协会)安全电流标准等级(见参考文献)。这些标准要求rms地电流或来自电子设备的故障电流必须小于50μA。
信号处理
ADuC842 MicroConverter非常适合主要的信号处理任务。它具有快速的12位ADC和其他高性能模拟外设,快速8052微处理器内核,集成62KB闪存代码以及其他几种有用的外设,如图4所示。
此设计的MicroConverter的关键组件是ADC和8052内核。 ADC将仪表放大器的模拟输出转换为数字信号。为8052核心编写的软件处理数字化信号,以产生最终ECG迹线的数据。与许多MicroConverter设计一样,该软件包括用C编写的复杂高级代码和用汇编代码编写的时间敏感例程。在这种情况下,带通滤波器和陷波滤波器的实现在C中,而ADC由汇编代码控制。汇编代码与转换器速度相结合,可以累积多个采样,从而提高ADC的有效分辨率,远远超出正常的12位。
图5给出了MicroConverter有效性的良好指示。顶部迹线是来自应用于ADC的仪表放大器的信号。中间跟踪显示仅使用C代码过滤实现的初始结果,而底部跟踪显示使用汇编代码处理多次转换后的最终结果。
C代码中的过滤器
通过MicroConverter中的数字滤波处理采集的信号。为此,我们基于500 Hz的采样频率设计了两个二阶数字无限脉冲响应(IIR)滤波器。陷波滤波器设计用于抑制50 Hz干扰。所选择的设计程序是零极点放置方法,陷波频率为50 Hz,陷波宽度为10 Hz。为实现这一目标,需要以下传递函数:
传递函数可以转换为可编程递归算法:
在此等式中子索引,< em> k ,表示当前值, k -1表示前一瞬间的值,依此类推。
我们现在需要将此等式转换为代码。 C编码是这种算术密集型处理的自动选择,因为在汇编中对它进行编程会非常耗时。使用ADuC842直接实现滤波器方程效率很低,因为它不适合浮点计算。幸运的是,我们可以缩放系数(例如4096)并将陷波代码实现为:
iNOut =(4096L * iNIn-6627L * iNIn1 + 4096L * iNIn2 + 6211L * iNOut1-3598L * iNOut2)/ 4096;
这实现了二阶滤波器。虽然我们可以计算更高阶的滤波器,但实际上简单地级联二阶滤波器似乎是可行的。
第二个滤波器是Butterworth通带滤波器,具有0.05 Hz的低截止频率和100- Hz高截止频率。传递函数和递归算法是:
这是用C代码实现的:
iBOut =(1723L * iBIn-1723L * iBIn2 + 4745L * iBOut1-650L * iBOut2)/ 4096 ;
请注意,只需更改输入系数即可缩放输出。还要注意,为了提高效率(如果信号都是正数),最后通过右移12来完成4096的除法。
图6所示的实现是针对五个级联的级联 - 通过滤波器和两个陷波滤波器。在第一和第二带通滤波器的每一个中,信号按比例放大4倍。 12位右移实现了4096的分频。
注意行 if(iAdc00> 24000)iDac- = 1, 和 if(iAdc00 <8000)iDac + = 1,,调节ADuC842的DAC输出,驱动AD620的电平转换输入,将AD620输出转换为MicroConverter ADC输入的舒适值。这对于减小由于电极施加到皮肤的方式的微小差异而导致的可变dc偏移的影响是期望的。类似的技术用于确保输出电压在输出范围内居中。
汇编代码中的处理
汇编代码的主要功能是定期测量输入信号并确保以每秒500次的要求速率重复C代码计算。在第一种情况下,我们将Timer0编程为连续运行并以1 ms的间隔生成中断。每次中断都会重启Timer0,获得ADC转换结果,并递增一个变量c2ms,用于同步C代码。在代码开发的这个阶段,C代码的前几行是:
而(c2ms <2); //在第一阶段使用。
c2ms = 0;
iAdc00 = iAdc0;
最初,c2ms为0,C代码将在行等待而(c2ms <2); 。 1 ms后,发生Timer0中断,c2ms增加为1.再经过1 ms后,c2ms增加为2. 现在,当(c2ms <2); 不再满足时,通过将计数器c2ms重置为0并进行滤波器计算,C代码继续运行。此后,C代码将结果向下移动表示为循环的下一次迭代准备好的各种延迟结果的变量链。循环的最后一部分是 printf(...),它将结果发送到PC进行显示。超出本文范围的处理PC上的数据可以简单到将其导入电子表格以进行图形显示 - 或者像设计者希望的那样复杂。该解决方案产生了图5的中间轨迹。
为了改善结果,Timer0中断速率缩短为1/32 ms,数据在iAdc0中累加,以便使用多次测量而不是单次测量。同时, while 更改为而(c2ms <64),以便C代码在执行每个过滤器循环之前等待64次测量。 iAdc0中的值保存在iAdc00中以进行进一步处理,然后iAdc0被清除 - 准备好累积接下来的64次测量。图7显示了汇编代码。这种改进的解决方案产生了图5的下部迹线。
增益
信号增益始终是ECG信号链中的重要考虑因素。在上述设计中,它取决于许多因素。如前所述,模拟增益设置为8×。接下来,通过累积该信号的64次测量得到64倍的增益。接下来,从代码iBIn = iAdc0 >> 3;开始信号丢失8倍,最后,从前两个带通滤波器方程的缩放得到4倍的增益。这导致总增益G =(8×64/8)×4×4 = 1024,这是典型的模拟ECG电路。
结论
图8显示了在Einthoven lead I配置中连接的主题的结果。可以看出,尽管使用的电子硬件简单,但仍获得了良好的结果。该文章表明,通过简单的硬件和对软件的关注,可以实现重大改进。这个例子的改进绝不是最佳水平;专业设计师应该可以显着改善结果。如果要实现具有不同滤波器频率或其他特殊特性的代码,则可以进行其他改进。 ADuC842的代码存储器基于闪存,允许在制造使用它的产品后进行此类定制 - 或者甚至在患者需求发生变化时进行。对于潜在的大批量市场而言,最终的结果可能是紧凑,廉价的ECG。
-
滤波器
+关注
关注
161文章
7787浏览量
177958 -
心电图
+关注
关注
1文章
79浏览量
25322 -
ECG
+关注
关注
4文章
126浏览量
52202
发布评论请先 登录
相关推荐
评论