拓冰建站拓冰建站
首页 / 资讯中心 / 正文

小信号采样全攻略:从信号调理到ADC选型与噪声抑制

做个决定之前先吐槽一句如果你是因为搜“Thompson Sampling”误打误撞点进来那得先提醒你那是机器学习里的“汤普森采样”多臂老虎机用的贝叶斯决策算法跟咱要聊的电子信号采样完全不是一回事。这篇文章的Small Signal Sampling说的是那种幅度小到微伏、毫伏级别的模拟信号怎么把它从噪声堆里捞出来再高质量地送进ADC的整套方法论。这类需求太常见了热电阻测温、称重传感器、心电信号、光电二极管检测、电池内阻测量全是小信号采样的典型场景。问题在于信号小意味着信噪比天然吃亏噪声、失调、分辨率、参考源、接地任何一个环节漏了出来的数据就是飘的。这篇文章把这些点全部拆开讲清楚从硬件调理到ADC选型再到软件层的过采样和校准最后给一个完整的调试实录。电子工程入门到进阶的读者尤其是正在做采集电路、传感器接口或者精密仪表的这篇可以直接照着改。1. 小信号采样到底难在哪1.1 先定义清楚什么才算“小信号”做工程最怕定义含糊。我一般把“小信号”分成两个档次毫伏级1mV~100mV比如电流检测电阻上的压降、热电偶的输出。这类信号普通万用表能测但要稳定采样前级增益和噪声抑制就得认真设计了。微伏级1μV~1mV比如称重传感器的差分输出、心电信号、热敏电阻的微弱变化。这个量级PCB布局的地噪声、热电动势、甚至你手靠近都会影响读数。区分这两个档次不是较真而是直接决定方案前者用普通精密运放加放大电路就够了后者必须上仪表放大器加差分结构而且大概率要做长时间积分或过采样。还有一个容易被忽视的点小信号大小是相对的跟你的基准电压和ADC满量程对比才有意义。一个5V满量程的12位ADCLSB就是1.22mV你给个10mV的信号采出来只有8个码根本没法用。所以判断“信号小不小”本质上是在问“信号幅度相对于系统噪声和量化步长够不够大”。1.2 三大敌人噪声、失调、分辨率采样小信号真正要对付的其实就三个东西。噪声。噪声是全域的热噪声、1/f噪声、环境工频干扰、电源纹波任何一个都能骑在微伏信号头上。热噪声有个经典公式一个10kΩ电阻在室温下带宽1kHz就有约12.8μVrms噪声光这个就快赶上信号了。所以小信号采样从来不是“放大信号”而是“抑制噪声的同时放大信号”。失调。运放的输入失调电压Vos和失调温漂是直流和低频采样的隐形杀手。普通运放Vos动辄1~5mV比你信号还大。所以小信号前端要么选低失调精密运放几μV等级要么在软件里做自动校准。给个参考我在仪表放大器上见过最坑的一次厂家标称漂移0.1μV/℃看着很美结果PCB旁边就是一个电源电感热风一吹读数直接跳了几十个码。分辨率。ADC位数决定了你最终能把信号细分到什么程度。好在现代ADC便宜24位Σ-Δ的到处都是。但这里有个陷阱标称24位不等于有效24位。后面会细说ENOB这个概念在这里先记住一句话——有效位数才是真分辨率标称位数是营销数字。1.3 为什么“直接采”必死一个估算例子我经常拿一个例子教育组里的新人你算一遍就永远记住了。假设有一个0~10mV的传感器信号直接接到一个16位ADC上满量程5V。那么信号只占满量程的0.2%量化后能用的码值只有(10mV / 5V) × 2^16 ≈ 131个码131个码是什么概念理想情况下分辨率只有满量程的0.076%稍微叠加一点系统噪声信号就是个“毛刺里游泳”的状态。更致命的是这还没有算ADC本身的失调和增益误差很多16位SAR的失调误差就有±3mV的级别比你整个信号还大。这就是为什么100个做小信号采集的项目里99个都要加前级放大。你需要的不是“直接采”而是“先把信号搬到ADC擅长的区间”比如放大100倍到1V级别这样信号占满量程20%码值才有13100个才能谈精度。2. 采样之前的信号调理硬件设计的四步棋2.1 放大仪表放大器还是普通运放小信号前端放大选放大器是第一关。我见过太多人拿个LM358之类上去就干然后回来问为什么测不准——大哥LM358的Vos是2mV你的信号才2mV这账根本没法算。选型基本就两条路单端信号参考地幅度大于1mV选精密低失调运放比如OPA2188Vos 25μV温漂0.05μV/℃、ADA4522这类自动稳零chopper运放。这类运放噪声低、失调极小适合放大后直接送ADC。差分信号或者共模干扰大上仪表放大器比如INA128、AD8421、AD8221。仪表放大器能用电阻设定增益一般1~1000更重要的是有接近90dB以上的共模抑制比能把传感器两根线上的同相干扰比如工频抵消掉。一个实用的经验仪表放大器选型时别只看带宽和增益要看“增益×共模抑制比”的乘积。很多普通运放接成差分电路理论CMRR不错但电阻匹配度稍差就崩了。仪表放大器内部激光校准电阻匹配做到极致这才是小信号差分采样的底气。另外提一个我踩过好多次的细节绝大多数精密放大器的输出驱动能力都很弱带不动后级ADC的采样电容。如果ADC是SAR型采样瞬间会抽取一个电流尖峰直接污染输出。稳妥做法是放大器到ADC之间加一个RC低通并选一个能驱动ADC的缓冲级或者用Σ-Δ ADC那种内部集成缓冲器的型号。2.2 滤波抗混叠与去噪的平衡滤波在小信号链路里有两个功能很多人只想到去噪但抗混叠才是ADC的前置硬性要求。先搞明白奈奎斯特定理采样率fs理论上能无混叠恢复的最高频率是fs/2。如果输入信号里混入高于fs/2的高频噪声比如手机射频、开关电源的毛刺这些分量会被“折叠”回低频段变成你根本分辨不出来的伪信号。所以ADC前必须有低通滤波器。但这里有个小信号特有的矛盾滤波器的截止频率越低对噪声抑制越好但它会把信号的有用带宽也砍掉。比如心电信号主要能量在0.05~100Hz你放个1kHz低通工频干扰还是漏进去了。我的习惯做法是分两级无源RC一阶低通放在放大器前截止频率放到信号带宽的5~10倍主要滤高频射频干扰避免放大器被强干扰“全波整流”。二阶有源低通放在放大器后、ADC前用运放搭MFB即多重反馈结构做到模拟巴特沃斯响应截止频率按信号带宽的1.5~3倍留余量。计算公式很简单MFB结构的截止频率是f_c 1 / (2π × √(R1 × R2 × C1 × C2))不过我不会在这里堆公式给个经验值如果信号带宽是1kHz我会把后级低通做到2kHz左右这样既能压住10kHz以上的开关噪声又不伤信号边沿。2.3 差分采样用共模抑制撕开信号小信号如果来自传感器八成是差分输出比如惠斯通电桥、应变片、热敏电阻桥。这种场景采样端务必用差分结构别把一端接地变成单端。关键的直觉理解传感器到ADC之间有很长一段走线两根线会同时感应到相同的噪声共模比如工频电场耦合。如果单端采样这个共模噪声直接叠加在信号里如果差分采样仪表放大器的核心做法是对两根线的差值放大共模部分被抵消。CMRR是100dB的话10V的共模干扰只剩0.1mV出现在输出端这就是差分采样能“撕开”信号的原因。实操上有几个细节可能比选什么型号更重要传感器和放大器之间的“地”必须干净。差分只对共模有效如果整个系统参考地是脏的差分也救不了你。用双绞线传输传感器的差分信号让两根线受到的电磁耦合尽量一致这样共模干扰相关性高CMRR才能发挥。确保共模电压不超过放大器的输入共模范围。仪表放大器虽然CMRR高但输入共模范围有限超出后内部放大器饱和输出就废了。2.4 保护与阻抗没人提的两个坑第一个坑是静电保护。小信号放大器输入阻抗极高几根飞线就是一根天线静电打一下就报废。所以输入前最好加保护比如BAT54S双二极管对电源轨钳位或者用专门的输入保护芯片。这里有个参数要注意保护二极管的漏电流要低否则漏电本身就是新的噪声源。第二个坑是源阻抗。很多传感器源阻抗很高特别是光电二极管等效一个电流源并联几十兆欧电阻这时候不能用普通电压放大器直接采否则输入偏置电流在源阻抗上形成压降误差巨大。正确做法是接成跨阻放大器TIA把电流先变成电压。也就是说小信号采样的前端设计必须先搞清楚信号的“性格”是什么是低阻电压型还是高阻电流型方案完全不同。这个判断错了后面全白干。3. ADC选型与参考源精度工程的另一半3.1 别只看位数ENOB才是真实力前级信号调理做得再好ADC不给力也白搭。很多人选ADC只看“24位”“16位”标称实际有效位数ENOB直接打个对折。ENOB这个概念的意思是这个ADC在实际条件下有噪声、有失真能达到的等效理想位数。比如一个标称24位的Σ-Δ ADC在100SPS采样率下ENOB可能到21~22位但如果你把采样率拉到十万级有效位数可能掉到16位以下比很多SAR ADC还差。所以选ADC的正确姿势是先看频率特性表里的ENOB曲线再查“无噪声分辨率”Noise-free bits指标。我用过一个简单的经验换算无噪声分辨率 ≈ ENOB - 2.7位举例某24位ADC在20SPS时ENOB是21.5位无噪声分辨率就是18.8位也就是说输出在188万码左右波动。如果信号峰峰只有满量程的10%那真实分辨率只剩约17.8位。要评测一个采集系统到底能分辨多少微伏算这个比直接看位数靠谱得多。3.2 参考源噪声被人低估了小信号采样系统里参考源VREF的噪声是“倍增”的。ADC把模拟电压和VREF做比例比较如果VREF自己在那抖ADC就会把这抖动当成信号变化。很多工程师在VREF上翻车我见过一个案例用了标准三端稳压器给ADC供电结果采集数据周期性抖动怎么查都查不到最后在VREF上串了个1μF电容抖动好了。原因就是三端稳压器的宽带噪声大概在几百μV级别直接污染了比较基准。选参考源的几个硬指标温漂低温度系数用ADR441、LM4140这类精度0.5ppm/℃起步。宽带噪声典型值应该在几μVpp以下比如REF5025的0.1~10Hz噪声约3μVpp。负载调节能力选带缓冲输出的参考源别让ADC的动态电流直接抽参考源。实操上有个建议无论参考源芯片多好都必须在VREF引脚到地加一个至少10μF的电容并联一个0.1μF瓷片电容用于吸收微分噪声。位置要尽量靠近ADC引脚走线加粗别绕弯。3.3 采样时钟的孔径抖动这个细节教科书写得多现场做的人倒很少注意。简单说ADC采样有个精确的时刻如果这个时刻不准采到的电压就是“飘”的。孔径抖动Aperture Jitter表示这个时刻的不确定性它会直接转化为电压噪声信号频率越高越明显ΔV dV/dt × Δt对于直流或慢变信号孔径抖动基本可以忽略但对高频采样这个误差就成了主要噪声源。所以如果项目里要用单片机定时器产生AD触发信号你还会发现单片机内部锁相环抖动较大想测好100kHz以上的信号就开始吃力了。小信号采样的场景往往是低频慢变信号这时候孔径抖动不算主要矛盾。但如果你的数采板要兼顾高速采样就老老实实用外部晶振给ADC提供可靠的转换时钟别用系统里那颗省成本的振荡器。3.4 从ADS1256到AD7606常见ADC怎么挑市面上常见的ADC选型我按使用场景做一个对比方便你快速定位ADC型号架构标称位数典型有效位数适用场景注意事项ADS1256Σ-Δ2421~22位2.5SPS高精度称重、温度、低频传感器需要干净的模拟电源和参考源ADS1220Σ-Δ2420位左右小体积、低功耗传感器前端内置温度传感器但别依赖AD7606SAR1615.5位8通道同步采样电力/振动内置参考和驱动但输入带宽有限AD7768Σ-Δ2421位以上高通道数、高精度价格偏高MCU内置ADCSAR12~1611~14位一般信号采集千万别拿来测微弱信号除非外挂放大结论不复杂做小信号精密采样闭着眼睛选Σ-Δ架构的24位ADC基本不会错。Σ-Δ架构靠内部过采样和数字抽取滤波对模拟前端的要求比SAR低很多自带数字滤波也帮忙压噪声。但代价是采样率上不去一只ADS1256在最高精度模式下只有2.5SPS只适合慢速变化信号。4. 软件层挖信噪比过采样、滤波与校准4.1 过采样抽取用速度换分辨率硬件做到位了软件还能再抠一点。最经典的手段就是过采样加抽取用速度换分辨率。原理是如果噪声近似白噪声那么把采样率提高到原来的4倍再做平均抽取信噪比提升约6dB等效分辨率增加1位。写成公式过采样率OSR f_actual / f_required有效位数每增加1位过采样率需要提高4倍。这个技术对Σ-Δ ADC是天然内建的但你用MCU内置12位ADC时也能自己实现。比如你用100kHz采样率采一个1kHz的信号每100个点平均成一个输出等效位能提升约log2(√100) ≈ 3.3位也就是12位变15位左右。当然前提是噪声确实接近白噪声如果噪声主要是50Hz工频这种确定性干扰简单平均没用得上陷波滤波器。我一般把这个技术用在高分辨率慢速采集上。一个实操建议过采样平均之后别忘了去掉直流偏移有时候你平均出来的那个值包含ADC和运放的固定失调还得在软件里做一次零点校准才能变成真正的物理量。4.2 滑动平均和加权滤波的取舍平均滤波虽然好但对突变信号响应太慢会“抹平”有用细节。这时候需要用滑动平均Moving Average或者加权平均。滑动平均的典型实现就是开个环形缓冲区每次来新数据就去掉最旧的数据求一次平均。它的好处是实时性好每个新采样就能出一个平滑值。但要注意窗口长度窗口越长噪声抑制越强但对阶跃信号的响应越迟钝。如果既要低噪声又要快响应可以用一阶IIR滤波y[n] α × x[n] (1 - α) × y[n-1]α通常取0.01~0.1之间越小滤波越平滑但响应越慢。这种滤波器的优点CPU占用极低适合单片机里做实时处理。不过这里要提醒一个很多人踩过的坑IIR滤波器作为信号链的一部分会改变信号的相位如果你做的是需要实时控制的系统相位延迟会导致控制环变慢甚至震荡。这种场景下用有限冲激响应FIR滤波器更好虽然计算量大但可以做线性相位。4.3 基线校准与数字去漂移小信号系统最大的麻烦其实是漂移。电路一热整个基线就在那爬你以为是信号其实是温漂。软件校准的思路分三层零点校准上电后或者定期让输入短路到地记录零点码值之后每次采样都减去这个值。增益校准用精密基准源输入一个已知电压记录增益误差之后按比例修正。动态漂移补偿对温漂进行多项式补偿用板上温度传感器的读数乘以温度系数把基线拉回来。我最常做的是前两种已经能解决绝大多数问题。动态漂移补偿建议只在零点长期稳定性要求极高的场景再上因为温度系数标定本身就是一道极其麻烦的工序搞不好越补越乱。另外一个能用软件做的好东西是数字陷波滤波器专门用来吃50Hz/60Hz工频。可以做一个二阶IIR陷波器中心频率50HzQ值取20左右对工频干扰的抑制能到30dB级别。不过这套东西在信号本身含50Hz成分时会误伤使用前要确认信号带宽。5. 一个实测场景毫伏级电流信号的采集调试记录5.1 系统结构和指标预算用一个实际做过的项目来把上面的内容串起来。需求是测一个电池放电回路的电流采用低侧采样方案采样电阻10mΩ最大电流5A采样电阻上最大压降50mV。目标分辨率是1mA对应采样电阻上10μV的分辨能力。系统结构是这样的采样电阻 - 仪表放大器(INA128, G100) - 二阶有源低通滤(1kHz) - ADS1256 - STM32指标预算50mV信号放大100倍是5V接近ADS1256的满量程。1mA对应放大后1mVADS1256在100SPS下ENOB大概20位满量程5V的LSB是4.77μV看起来绰绰有余但实际上要把系统噪声算进去。计划好的信号链路和供电模拟部分用单独的线性稳压LT3045供电跟数字电源彻底分开放大器靠近采样电阻放走线越短越好地线采用星形接地模拟地、数字地在ADC处单点汇合5.2 从示波器上看噪声来源第一次上电测量的数据噪声峰峰值大概30mV输出端折算到输入端是0.3mV也就是30mA误差完全不合格。示波器一测就看到几个明显特征50Hz密集的正弦叠加工频干扰原因是采样电阻到放大器之间的走线比较长形成等效天线。用差分输入加双绞线工频大幅下降。高频毛刺同步于电源开关这是开关电源的纹波直接耦合进了参考地。解决办法是把电流采样的模拟地单独走线汇合点从电源端改到ADC的地。低频漂移开机后几分钟内基线一直往上走。查下来是放大器旁边一颗功率电阻发热热辐射导致INA128温漂。后来把功率元件挪远顺带在放大器底下铺了接地铜皮散热漂移好了一半。5.3 三次改造后的实测提升第一次改造把仪表放大器的输入改成真正的差分之前有一端误接了地并用双绞线连采样电阻。输出噪声从30mVpp降到12mVpp。第二次改造模拟地单独走线切断和数字地上的开关噪声耦合同时把参考源旁边加了10μF电解电容和0.1μF陶瓷电容。噪声从12mVpp降到5mVpp。第三次改造软件里做了64次过采样平均等于OSR64信噪比理论上又提升约9dB再加上零点校准。最终输出数据的峰峰值噪声约1.2mV输出端折算8mA输入端虽然还没到完美但已经能满足项目10mA的精度要求。这个调试过程一方面验证了前面讲的每个环节的重要性另一方面也提醒大家小信号系统的噪声是“每个环节贡献一点”的叠加排查时永远不要期待一个灵丹妙药一处处检查才是正路。6. 常见问题与排查技巧实录6.1 故障现象速查表现象可能的元凶验证方法解决办法读数持续跳动幅度大接地回路不正确用示波器看ADC输入波形星形接地模拟地单点汇合只在小信号时噪声大放大器增益不足算一下信号占ADC满量程比例增加前级增益匹配满量程有固定周期毛刺开关电源耦合看毛刺频率是否与DC-DC开关频率一致加LC滤波模拟区域远离功率电感上电后基线漂移温漂热像仪或手摸查发热元件移开热源选低漂移放大器软件校准信号频率高时误差变大孔径抖动/抗混叠不足降低采样率看是否改善换低抖动时钟加抗混叠滤波器差分输入读数仍被共模干扰输入共模超范围测输入引脚对地电压改用仪表放大器或电平搬移6.2 几条成本极低的接地与屏蔽经验这些经验都是花钱买来的但分享出来成本很低。第一条模拟地和数字地单点汇合放在ADC的地引脚。别做一整块地平面在小信号板上反而容易被数字电流搅浑。两边各自铺地中间用0Ω电阻或者磁珠连一次位置一定要选在ADC的地附近这样数字电流不会流经模拟区分。第二条采样电阻用四线开尔文接法。我见过太多人在两个焊盘上直接焊两根线就去测微欧级电阻的压降结果导线电阻和焊锡电阻完全淹没信号。四线制让采样线与电流路径分开放大器只测电压不流过负载电流精度能提高一个数量级。第三条屏蔽罩不是随便扣的。屏蔽罩必须接模拟地并且只在一点接地。如果多点接地反而会形成环路电流把噪声引进来。还有一个常被忽略的点屏蔽罩别把发热元件罩进去里面闷着热温漂更严重。第四条放大器底下的铺地既是屏蔽也是散热。但这块地要跟信号地的连接位置选好否则就是增加寄生电容影响高频响应。低频小信号场景基本没有这个问题直接连模拟地就行。6.3 给新手的一句话总结做小信号采样最忌讳的是“一步到位”的幻想——指望选个好ADC就什么都解决了。我在实际调试中反反复复验证过系统性能是由信号调理、ADC、参考源、布局布线、软件滤波共同决定的每个环节都会吃你一点信噪比。与其迷信高端芯片不如把每个环节的噪声预算搞清楚一块一块地扣。这样即使最后指标还是差一点你至少知道差在哪、该往哪个方向补。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门