第3章:信号调理电路——仪表放大器、滤波电路设计与ADC采样
各位同学,咱们今天聊聊信号调理。说实话,这是整个医疗贴片系统里最容易被忽视、却又最容易出问题的一环。我见过太多项目,传感器选得挺好,算法写得也不错,结果卡在信号调理上——噪声大、漂移严重、ADC采出来的数据根本没法用。嗯,咱们今天就把这块彻底讲透。
3.1 仪表放大器:为什么普通运放不行?
先问大家一个问题:你直接把生物电信号接到普通运放上,会怎样?
我告诉你,大概率是满屏的噪声,信号根本看不出来。为什么?因为生物电信号有几个特点:
- 幅度极小:心电信号也就0.5-4mV,脑电更小,只有几微伏到几十微伏
- 共模干扰极大:人体就是一根天线,50Hz工频干扰动不动就是几伏
- 源阻抗高:皮肤-电极界面阻抗可能达到几十千欧甚至兆欧级别
普通运放处理这种信号,就像用菜刀雕花——不是不行,但很难做好。仪表放大器就是专门干这个的。
仪表放大器的核心优势:
- 高共模抑制比(CMRR):通常80-120dB,能把共模干扰压下去
- 高输入阻抗:通常GΩ级别,不拉低源信号
- 低噪声:适合微弱信号放大
- 增益可调:一个外部电阻就能设定增益
我个人习惯用AD620或INA128这类经典芯片。以AD620为例,它的增益公式很简单:
G = 49.4kΩ / RG + 1
其中RG是外部增益电阻。
比如你要放大100倍,RG = 49.4kΩ / (100 - 1) ≈ 499Ω
我在项目中遇到过一件事:有次调试心电贴片,发现信号总是有低频漂移。查了半天,发现是增益电阻用了普通碳膜电阻,温度系数太大。换成金属膜电阻后,问题立刻解决。嗯,这种细节往往决定成败。
选型小贴士:
- 心电信号:增益500-1000倍,带宽0.05-100Hz
- 脑电信号:增益1000-10000倍,带宽0.5-50Hz
- 肌电信号:增益100-500倍,带宽10-500Hz
3.2 滤波电路设计:把噪声挡在门外
信号放大之后,下一步就是滤波。你想想看,生物电信号里混杂着各种噪声:50Hz工频、高频肌电干扰、低频基线漂移...不滤波的话,ADC采出来的数据根本没法用。
咱们医疗贴片里常用的滤波器有三种:低通、高通、带通。我一个个说。
3.2.1 低通滤波器
低通滤波器的作用是滤掉高频噪声。比如心电信号,有用的频率成分基本都在100Hz以下,高于这个的都是噪声。
最简单的就是一阶RC低通,但说实话,一阶的滚降太慢(-20dB/十倍频),效果一般。我建议用二阶或更高阶的。
// 二阶巴特沃斯低通滤波器设计示例
// 截止频率:100Hz,采样率:1000Hz
// 系数计算(双线性变换法)
float b0 = 0.0201;
float b1 = 0.0402;
float b2 = 0.0201;
float a1 = -1.5610;
float a2 = 0.6414;
// 滤波函数
float lowpass_filter(float input) {
static float x[3] = {0, 0, 0};
static float y[3] = {0, 0, 0};
x[2] = x[1];
x[1] = x[0];
x[0] = input;
y[2] = y[1];
y[1] = y[0];
y[0] = b0*x[0] + b1*x[1] + b2*x[2] - a1*y[1] - a2*y[2];
return y[0];
}
注意:滤波器系数计算时,一定要考虑采样率。同样的截止频率,采样率不同,系数完全不同。我曾经见过有人直接把网上抄的系数用在自己的系统里,结果滤波器完全失效——因为采样率不一样。
3.2.2 高通滤波器
高通滤波器用来去掉低频漂移。比如呼吸引起的基线漂移、电极极化电位等,这些都在0.05Hz以下。
心电信号的高通截止频率通常设在0.05-0.5Hz之间。设得太低,基线漂移去不掉;设得太高,ST段会被扭曲,影响诊断。
我记得有一次做动态心电记录仪,发现数据里总有缓慢的基线起伏。一开始以为是算法问题,后来用示波器一看,是模拟高通滤波器的电容漏电太大。换成钽电容后,基线稳得像一条直线。
3.2.3 带通滤波器
带通滤波器其实就是低通+高通串联。很多医疗贴片直接用一个带通滤波器搞定所有滤波需求。
比如心电贴片,典型的带通范围是0.05-100Hz。这个范围既能保留心电信号的主要特征,又能滤掉大部分噪声。
实用电路结构:
我常用的方案是:仪表放大器 → 二阶高通(0.05Hz)→ 二阶低通(100Hz)→ 50Hz陷波器(可选)
为什么50Hz陷波器是可选的?因为如果后续用数字滤波,模拟端可以不做陷波,减少硬件复杂度。
3.3 ADC采样与抗混叠滤波
信号调理的最后一步,就是送到ADC去采样。这里有个关键问题:抗混叠。
什么是混叠?说白了就是高频信号伪装成低频信号混进来。根据奈奎斯特定理,采样率必须大于信号最高频率的两倍。但实际应用中,我建议采样率至少是信号最高频率的5-10倍。
比如心电信号最高频率100Hz,理论上采样率200Hz就够了。但我个人习惯用500Hz甚至1000Hz。为什么?因为采样率越高,后续数字滤波的效果越好,而且能捕捉到更多细节。
3.3.1 抗混叠滤波器设计
抗混叠滤波器必须在ADC之前,用模拟电路实现。它是一个低通滤波器,截止频率设在采样率的一半以下。
举个例子:采样率500Hz,抗混叠滤波器的截止频率设在200Hz左右。这样,高于200Hz的信号都被衰减了,不会混叠到低频段。
设计要点:
- 抗混叠滤波器通常用二阶或三阶有源滤波器
- 截止频率要留有余量,一般设在采样率的1/3到1/2
- 滤波器阶数越高,抗混叠效果越好,但相位延迟也越大
3.3.2 ADC选型与配置
医疗贴片常用的ADC有几种:
| 类型 | 分辨率 | 采样率 | 适用场景 |
|---|---|---|---|
| 逐次逼近型(SAR) | 12-16位 | 100kSPS以上 | 心电、肌电 |
| Σ-Δ型 | 16-24位 | 10-1000SPS | 脑电、生物阻抗 |
| 双积分型 | 12-16位 | 10-100SPS | 慢速高精度测量 |
对于心电贴片,我常用16位SAR ADC,采样率500Hz。这个配置性价比最高,精度也够用。
但要注意一点:ADC的参考电压一定要干净。我见过有人直接用电源电压做参考,结果采样数据里全是电源纹波。正确的做法是用专门的参考电压芯片,比如REF3030这类。
曾经踩过的坑:
有一次我设计的脑电贴片,ADC采样数据总是有周期性噪声。查了三天,最后发现是ADC的时钟线跟信号线走得太近,时钟信号耦合进来了。重新布局布线后,噪声立刻消失。所以,PCB布局时,模拟信号和数字信号一定要分开走,这是铁律。
3.4 完整的信号调理链路
好了,咱们把整个链路串起来看看:
- 传感器:采集生物电信号
- 仪表放大器:放大微弱信号,抑制共模干扰
- 高通滤波器:去掉低频漂移
- 低通滤波器:滤掉高频噪声
- 抗混叠滤波器:防止采样混叠
- ADC:将模拟信号转换为数字信号
这个链路看起来简单,但每个环节都有讲究。我建议你在设计时,先用仿真软件把整个链路跑一遍,看看各级的输出波形。没问题了再打板,不然调试起来很痛苦。
总结一下关键点:
- 仪表放大器选型要看CMRR、输入阻抗、噪声密度
- 滤波器设计要考虑截止频率、阶数、相位特性
- ADC采样率要留余量,抗混叠滤波器不能省
- PCB布局要模拟数字分离,电源要干净
嗯,这一章的内容就到这里。信号调理这块,说白了就是跟噪声做斗争。你每多花一分心思在模拟前端上,后面的数字处理就轻松一分。下一章咱们聊聊数字信号处理,到时候会用到今天讲的这些基础。