☰
心电放大器设计全流程:从仪表放大器到PCB布线实测
2026/10/5 1:31:19 网站建设 项目流程

做心电放大器这个项目,我在实验室里前前后后折腾了快三周,从最初拿通用运放直接怼,到后来老老实实上仪表放大器、加右腿驱动、调滤波器,踩过的坑比焊过的板子还多。今天把这套基于集成运放的心电放大器设计思路完整写出来,从指标拆解到参数计算,从PCB布线到实测调试,每个环节都按我实际验证过的路子来,希望能帮正在做课程设计、电子竞赛或者纯粹想搞个心电前端玩玩的同学少走点弯路。

先说清楚这玩意儿是干嘛的:心电放大器就是把贴在人体表面的电极拾取到的心电信号,从微伏到毫伏级别放大到能被ADC或者示波器稳定采集的伏特级别,同时把噪声、工频干扰和直流极化电压都压下去。它是一切心电前端的基础,也是学习模拟信号链一个特别典型的案例——信号微弱、源阻抗高、共模干扰大、频率低,每一个特性都在逼着你把模拟电路的基本功练扎实。

1. 做心电放大器前,先搞清信号到底有多难

很多人一上来就查电路图,习惯性地照抄一个放大电路,抄完发现示波器上全是噪声,根本看不到心跳波形。这不是你焊接手艺的问题,而是没搞懂心电信号本身的特性就急着动手了。在设计电路之前,我建议先把信号的几个关键指标用自己的话复述一遍,这些指标直接决定了后面每一个元器件选型。

1.1 心电信号的“三座大山”

心电信号从电极到放大器输入端,面临的第一个麻烦是信号本身就弱得离谱。体表心电信号的典型幅度在0.5mV到2mV之间,其中QRS波群的峰值最大,P波和T波幅度更小,可能只有0.1mV到0.3mV左右。换句话说,你输入端的信号和噪底之间的差距非常小,放大器的自噪声必须压得很低才能把有用信号提出来。

第二个麻烦是直流极化电压。电极贴在皮肤上,皮肤和金属电极之间会因为离子浓度差异产生电化学电位,这个电位能达到正负几十毫伏甚至上百毫伏。如果把这么多直流电压直接送进高增益放大器,第一级输出就饱和了,后面再好的电路也白搭。这就是为什么心电放大器必须做高通滤波,而且是截止频率很低的、用来干掉直流偏置的那种高通,而不是为了让波形好看才加的。

第三个麻烦是共模干扰。人体本质上就是一个巨大的天线,50Hz的工频电磁场会在人体表面感应出几伏特的共模电压。这个共模电压在两只电极上是同时、同幅、同相位出现的,好消息是我们想要的差模心电信号不会受它影响,坏消息是任何一点不对称——放大器输入阻抗不匹配、电极阻抗不同、走线寄生电容不一致——都会把一部分共模信号转变成差模信号,直接混进心电信号里。这项指标用共模抑制比CMRR来衡量,前置放大器的CMRR至少要80dB以上才够用。

1.2 系统指标怎么定:先定规矩再画电路

把前面这些信号特点翻译成可执行的系统指标,大致是这样一份清单。信号带宽方面,诊断级心电要求0.05Hz到100Hz,监护级别可以放宽到0.5Hz到40Hz,我做的是教学实验用途,取了0.05Hz到100Hz的宽频段,好处是P波和ST段都能看全,代价是对漂移更敏感。总增益方面,目标是把1mV的输入信号放大到1V左右,也就是1000倍,换算成功率放大倍数是60dB。但绝对不能在单级完成,一般分成两级:前置级放大10倍,主放大级放大100倍。

输入阻抗要求至少在10MΩ以上。人体皮肤的源阻抗受电极类型和皮肤状态影响可以到几十千欧甚至更高,如果放大器输入阻抗不够高,信号会在分压中损失,而且两个电极的阻抗不对称也会恶化共模抑制性能。噪声方面,折算到输入端的等效噪声应该低于10μV,否则小信号会被噪声吞掉。输出动态范围取决于电源电压,我用的双电源供电方案不存在单电源里的半电源偏置问题,这个后面细说。

这些指标不是说越高越好,而是匹配实际需求。比如增益定到1000倍,再高的话噪声也一起被放大,反而得不偿失。定好指标再选器件,心里有数,不会像无头苍蝇一样乱试。

2. 方案选型:仪表放大器打头阵,两级放大搭架构

确定系统指标之后,接下来是选方案。我在网上看过不少帖子,有人用三个普通运放搭差分放大,有人直接用一个opa2277加反馈电阻实现放大,还有人偷懒用功放IC硬怼,最后效果都差强人意。实际上,心电放大器前置级的选择基本是明确的——用单片集成仪表放大器,或者用三个普通运放自己搭三运放仪表放大器结构。

2.1 为什么第一级必须是仪表放大器

普通运放直接做差分放大的问题在于,它的共模抑制能力受限于外部电阻的匹配精度。理论上说,只要四个电阻配得绝对精确,差分放大电路的CMRR就可以无限高,但现实中普通1%精度的贴片电阻,四个电阻的失配就能把CMRR限制在60dB左右,这对心电信号来说远远不够。即便你狠下心买0.1%的高精度电阻,温度漂移又会带来新的失配,长期可靠性依然不行。

仪表放大器天生就是干这个活的。它的内部是标准的三运放结构:第一级由两个运放构成对称的同相放大,把差模信号放大到一定倍数,而共模信号保持单位增益通过;第二级是一个差动减法电路,把两路信号相减,共模信号在这里被抵消掉。关键是,第一级的两个运放是集成在同一个芯片内部的,它们的温漂、失调、增益特性高度匹配,CMRR可以做得很高。以AD620为例,在增益为100时,它的CMRR典型值能到110dB以上,这个性能靠分立元件搭出来代价非常高。

还有一个容易忽略的点:仪表放大器的输入偏置电流很小。AD620的输入偏置电流只有约1nA,电极和人体之间形成的直流极化电压不会引发太大的输入偏置电流流动,这对减小漂移很有帮助。如果你用普通运放,还得另外考虑输入偏置电流的补偿问题,麻烦得很。

2.2 二级放大与滤波器怎么分配

前置级之后是主放大级和滤波网络。我采用的架构是:仪表放大器做10倍增益,输出仍然只有大概10mV到20mV量级,然后交给有源滤波器和主放大器再处理。主放大级用了一片低噪声运放OP07,用同相放大结构做100倍增益,把信号提到1V左右。OP07的输入失调电压只有几十微伏,在100倍增益下输出端的直流偏置也就几毫伏,完全在可接受范围内。

滤波器的位置和阶数分配很有讲究。高通滤波器放在前置级之后,用来把电极直流极化电压残余、前置放大器的直流失调挡在后面,避免主放大级被直流偏置推饱和。低通滤波器放在主放大级之前还是之后?我个人建议低通放在增益级之前,也就是先用低通把高频噪声和肌电干扰衰减掉,再放大,这样能避免不必要的高频分量在主放大级先被放大、再被削掉。至于50Hz陷波器,能不用就不用,因为它会损失一部分有用信号能量,但实际测试时工频干扰往往压不住,所以还是加了可调的陷波电路,关键时候启动。

2.3 电源方案:双电源是省心之选

心电信号是双极性的,波形在零电平上下摆动,用双电源供电最简单直接。我用了两节9V电池串联抽头,做出正负9V的浮地电源,好处显而易见:没有开关电源的纹波,也没有单电源虚拟地的稳定性问题,整个模拟链路工作在几乎理想的双极性电源环境下。电池虽然容量有限,但作为教学实验和小型可穿戴原型验证完全够用,一块板子连续跑四五个小时没问题。如果要接市电,建议用三端线性稳压器比如7805和7905,把开关电源的纹波先降下来,再加电容滤波,绝对不能直接拿开关电源给模拟前端供电,后面调试的时候你会哭的。

3. 核心电路设计与参数计算全过程

方案定了,下面进入最核心的部分:具体电路怎么连,电阻电容怎么选,每一个参数怎么算出来的。这部分是整篇博客里信息密度最高的地方,建议拿纸笔跟着算一遍,算完你对整个信号链路的理解会上一个台阶。

3.1 前置放大级:AD620增益电阻和输入保护

AD620的增益由外部电阻RG决定,公式是G = 49.4kΩ / RG + 1。我需要前置增益10倍,所以49.4 / RG + 1 = 10,解出来RG ≈ 5.49kΩ。取标称值5.6kΩ,实际增益算出来是49.4 / 5.6 + 1 ≈ 9.82倍,约等于10倍,完全够用。注意RG一定要用精度高的金属膜电阻,最好1%精度,因为RG的漂移直接影响增益稳定性,而且它属于仪表放大器的关键增益设置电阻,用碳膜电阻的温度系数会拖后腿。

AD620的REF引脚要接地。原理很简单,REF引脚的电压会直接叠加到输出端,如果REF悬空或者接错电位,输出直流偏置就会飘掉。在双电源供电下,REF接模拟地即可。输入保护方面,人体静电放电和电极接触瞬间的冲击电压可能损坏运放,我的做法是在两个输入端各接一对背对背的1N4148二极管到电源轨,把输入电压钳位在正负0.7V以内,再加一个串联电阻限流。这套保护电路对教学实验板特别重要,因为你不知道学生什么时候会把电极线直接插到220V插座上(别问我是怎么知道的)。

输入端还要并联一个1nF到10nF的电容,跨接在两个输入之间。这个电容的作用有两个:一是滤掉进入前置级的射频干扰,二是配合源阻抗构成低通,避免高频噪声到达运放输入。取值不能太大,太大会衰减高频心电信号,实测1nF对0.05Hz到100Hz频段几乎没有影响。

3.2 滤波网络:从0.05Hz高通到100Hz低通的参数求解

高通滤波器的目标是把直流极化电压和低频漂移挡在门外,同时不能衰减有用的ST段信号。ST段的频率成分最低可以到0.05Hz左右,所以高通截止频率必须低于0.05Hz。一阶RC高通滤波的截止频率公式是f = 1 / (2πRC)。如果取C = 10μF,R = 330kΩ,那么f = 1 / (2 × 3.14 × 10μF × 330kΩ) ≈ 0.048Hz,刚刚好。这个值得说一句,为了0.05Hz这种超低截止频率,电容必须用到10μF级别的钽电容或者薄膜电容,普通瓷片电容在低频段会有压电效应,机械振动会转化为电信号,干扰波形。

低通滤波器放在高通的后面,目标是把100Hz以上的高频噪声和肌电干扰衰减掉。我用的是Sallen-Key结构的二阶有源低通滤波器,用运放做缓冲,优点是元件少、对元器件精度要求适中。Sallen-Key的同相结构,截止频率公式同样是f0 = 1 / (2πRC),当C1 = C2 = C时,f0 = 1 / (2πRC)。要求f0 = 100Hz,取C = 100nF,解R = 1 / (2π × 100Hz × 100nF) ≈ 15.9kΩ。取标称值16kΩ,实际截止频率99.5Hz,正好满足要求。品质因数由电阻比值控制,要让滤波器做到巴特沃斯响应(最平坦特性),需要R2 / R1 = 2,也就是R2 = 2R1,所以R1取8.2kΩ,R2取16kΩ。这样设计的二阶低通在100Hz处衰减3dB,到200Hz时衰减约12dB,虽然斜率不算特别陡,但配合后面的陷波器已经足够把带外噪声压住。

3.3 50Hz陷波器和右腿驱动:对付工频干扰的两把刀

工频50Hz干扰是心电放大器的头号敌人,前面说的共模抑制在理论上能把共模干扰压制到很低,但实际中电极阻抗不平衡、分布电容耦合总能把一部分工频信号带进来。我加了一个有源双T陷波电路,中心频率50Hz,用可调电阻微调。陷波器的中心频率公式还是f0 = 1 / (2πRC)。选R = 33kΩ(用20kΩ固定加20kΩ可调串联,方便调节),C = 100nF,代入公式f0 = 1 / (2π × 33kΩ × 100nF) ≈ 48.2Hz,再配合可调电阻拉到准确的50Hz。关键技巧是陷波器的Q值不能调太高,Q值越高陷波越窄,但要牺牲带宽和稳定性,我实际调到Q = 5左右最合适,既能抑制50Hz干扰,又不会把49Hz和51Hz附近的QRS波群频率成分削掉。

右腿驱动是主动式共模反馈,原理是这样的:人体表面感应到的共模电压,通过缓冲放大器取样之后,反相放大再送回人体,形成一个负反馈环路,驱动人体电位向地电位靠近,从而等效地减小共模电压的幅值。具体接法是从两个输入端的共模信号取样,经过反相放大器之后通过一个1MΩ左右的电阻接到右腿电极。这里反相放大器的增益取10倍左右足够了,太高容易引起环路自激振荡。右腿驱动的加入,相当于给整个系统增加了一个有源的共模抑制机制,效果立竿见影。我在实验中对比过,不接右腿驱动时,50Hz干扰峰峰值能到200mV以上,接了之后直接压到10mV以内。

4. 布局、焊接与调试全记录

电路图在纸上画得再漂亮,焊到PCB上又是另一回事。前面调好了仿真,实物上电发现全是问题,这种情况太常见了。我做这款心电放大器的时候,PCB布局和调试占的时间比电路设计多得多,这部分经验是课本上很少讲的。

4.1 PCB布局布线:模拟前端的地线命门

布局的第一原则是信号路径要短。心电信号是微弱模拟信号,任何一段长走线都是天线,都会引入噪声。所以我将AD620放在板子的最前端,紧挨着电极接口,从电极到AD620输入引脚的走线控制在5mm以内,并且左右两根信号走线保持等长、平行,这个对称性是保持共模抑制性能的最后一道物理保障。

地线的处理上,我遇到过坑。一开始图省事,整个板子铺整块地,结果发现噪声很大。原因很简单,整块地平面让数字地和模拟地混在一起,电源地返回路径上的电流压降会耦合进模拟前端。正确的做法是把模拟地和数字地分开铺铜,所有模拟电路的接地引脚汇总到一点,这个点再单点连接到电源地。模拟地的铺铜区域尽可能覆盖整个模拟电路区域,又不要让电源电流流经敏感区域。电源去耦电容也很关键,每个运放的电源引脚附近都要放一个100nF的陶瓷电容,再加一个10μF的钽电容做低频退耦,这些电容离运放引脚不超过3mm才有效果,否则去耦形同虚设。

另外一个容易被新手忽略的细节:仪表放大器AD620下方的铜皮要挖空,不要铺地。原因在于AD620的RG引脚是增益设置电阻的接入点,这个引脚对寄生电容很敏感,如果RG引脚附近有地平面,寄生电容会改变芯片高频响应,可能引发自激。我第一次画板时没注意这一点,结果高增益时输出高频毛刺特别明显,后来把芯片下方铜皮挖掉就好了。

4.2 上电调试流程:不要直接接人体

焊接完成之后直接往自己胳膊上贴电极?千万别。调试一定要分级进行,每级验证通过再接下一级,否则出了问题根本不知道是哪一级的原因。我的调试流程是:先检查电源电压是否稳定,正负9V分别测试,确保纹波小于20mV;然后输入端直接短接到地,观察输出波形,理论上应该是平直的一条线,噪声峰峰值应该在20mV以内,这对应输入等效噪声2μV左右,如果噪声太大,说明前置级选型或者布线有问题。

接下来用信号发生器从输入端注入1mV、10Hz的正弦波,观察输出波形幅度是否约为1V,这时候能验证总增益是否准确。如果输出波形有削顶失真,说明某级增益过大或者直流偏置有问题;如果输出噪声明显,可以逐级用示波器测量各测试点的波形,确定噪声来自哪一级。全部验证通过之后,再用电极贴到手臂上做人体实测。这时候示波器上应该能看到明显的QRS波群,再微调陷波器的可调电阻,把50Hz干扰压到最小。

实测下来,这套电路的输出端接到电脑声卡或者单片机的ADC都能得到清晰的心电波形。我用STM32的12位ADC以200Hz采样率采集,波形的P波、QRS波群、T波轮廓都很清晰,说明整个信号链路的带宽设计和增益分配是合理的。

5. 常见问题与排查技巧实录

做心电放大器过程中,最常见的不是电路设计错误,而是干扰和稳定性问题。这一章记录我实际遇到过的典型故障,每一条都是踩过坑换来的教训,建议存下来对照排查。

5.1 工频50Hz干扰怎么压都压不下去

如果你用了仪表放大器、接了右腿驱动、陷波器也按参数焊好了,输出端还是能看到明显的正弦波干扰,问题大概率不出在原理图,而出在“地”上。用示波器探头接地夹夹住电路板的地端去测输出,如果干扰波形随着探头位置变化而变化,说明地环路电流在作怪。解决方法是把所有实验设备(示波器、信号源、电源)和被测试电路板接到同一个电源插座上,避免地电位差,或者用电池供电让整块板子悬浮工作,这样效果最好。还有一个容易被忽略的点:人体和示波器如果不共地,示波器探头的地线会把工频干扰引到测量端,这时候可以用示波器探头的10倍衰减挡,同时确保探头地线夹牢靠接地。

工频干扰还有一个来源是输出端的测量电缆,如果用普通杜邦线接示波器,长线本身就拾取噪声。建议使用屏蔽线,屏蔽层单端接地。我实测同一块板子,用杜邦线看噪声峰峰值80mV,换成屏蔽线直接降到15mV,这个差异非常直观。

5.2 基线漂移吓死人,波形像在海浪上开船

基线漂移的根源是低频信号没有被高通滤波器处理干净。常见的两个原因:一是高通滤波器的截止频率设得太高,比如RC取值算错了,把0.05Hz算成了0.5Hz,导致0.1Hz左右的ST段信号被滤掉;二是电极和皮肤接触不稳定,接触阻抗随呼吸和运动变化,产生低频调制信号。处理方法是先拿万用表测电极间的阻抗,正常应该在几十千欧以下,如果阻抗太高,换导电膏涂抹后再贴;如果排除电极问题,再用示波器看前置级输出,确认高通滤波是否正常工作。

我犯过的具体错误是高通滤波器的10μF电容用了电解电容,而电解电容的漏电流很大,在330kΩ的电阻上产生了额外的直流偏置压降,导致波形整体偏移。后来换成钽电容,问题立刻解决。这说明超低频模拟电路里,电容类型的选型有时候比容值还关键。

5.3 高增益下的自激振荡

当你把增益调到1000倍以上,输出变成一片模糊的“毛茸茸”波形,高频密度很大,不会有心跳波形,这时候十有八九是自激振荡。自激的两个最常见原因:一是电源去耦不良,运放的高频增益在电源内阻上形成正反馈;二是反馈网络的杂散电容破坏了相位裕度。解决办法首先是加强电源去耦,在运放电源引脚就近加100nF和10μF电容,必要时在电路板电源入口再加一个1μF的钽电容做整体退耦。其次检查反馈电阻,如果反馈电阻值太大(超过100kΩ),杂散电容的影响更明显,可以减小反馈电阻的同时降低反馈电容值,或者干脆在反馈电阻上并联一个10pF左右的补偿电容,压低高频增益。

还有一个容易被忽视的自激诱导因素:放大器的输出走线和输入走线靠得太近,输出信号通过寄生电容耦合回输入端。我画板时把输出走线和输入走线拉开了至少5mm,并在中间铺了地线隔离,振荡就消失了。

5.4 问题速查表

现象可能原因排查步骤解决方案
输出全是50Hz正弦波共模抑制失效、地环路、屏蔽不良先短接输入端测噪声,再接信号源测增益用电池供电、右腿驱动接好、用屏蔽线
基线大幅漂移高通截止频率太高、电极接触不稳检查RC参数、测电极阻抗换钽电容、重新贴电极
高增益高频振荡电源去耦差、反馈电容不足、布线耦合用示波器高频挡观察振荡频率加强去耦、加补偿电容、拉出走线间距
输出波形削顶某级增益过大、直流偏置偏移逐级测各测试点信号幅度降低该级增益、检查REF端电平
信号正常但偏小总增益不足、电极阻抗过高注入已知信号验证实际增益修正增益电阻、涂抹导电膏
QRS波群模糊不清低通带宽太窄、工频干扰混叠检查低通截止频率、陷波器Q值扩展带宽、调低陷波器Q值

写到最后我再分享一个实际操作中的体会:心电放大器这个项目,绝大多数时间不是在“设计”,而是在“对抗环境”。同样的电路图,在面包板上工作不正常,焊到PCB上可能就好了;在实验室电源下正常,换成电池供电噪声更低;上午调试正常,下午太阳底下电源纹波变大又出问题。所以遇到问题先别怀疑电路原理,照着信号链路的顺序逐级排查,从电源、地线、屏蔽、去耦这些“看似无关”的环节开始检查,往往比死磕原理图更有效。多做几块板子,多记录几次调试日志,这套信号链路的直觉就会慢慢建立起来。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询