十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

运放噪声分析与低噪声设计:从手算到Cadence仿真

运放噪声分析与低噪声设计:从手算到Cadence仿真 运放噪声这话题做模拟的人迟早要面对。你可能遇到过这种场景电路功能正常、增益带宽都达标示波器上也看不出明显问题但一到整机测试输出底噪就是压不下去或者你对着数据手册手算了一遍噪声再拿仿真工具跑一版两个结果怎么都对不上。我在项目里踩过不少这样的坑后来慢慢整理出一套从理论手算到仿真验证的完整套路这次就把它写透。这篇文章围绕“Noise in Op Amp Circuits”展开会讲清楚运放噪声到底从哪来、怎么用手算做一个靠谱的底噪估算、怎么用Cadence跑噪声仿真来验证设计以及工程上真正见效的降噪技巧。适合正在做精密信号链、传感器前端、音频电路或者只是被“噪声规格书看不懂”卡住的人。不用把每种噪声公式都背下来但看完之后再拿到一个放大电路你应该能快速判断噪声瓶颈在哪个元件上。1. 运放噪声的直觉从白噪声到带限白噪声1.1 band-limited white noise到底是什么意思很多教科书爱说“白噪声”好像噪声在所有频率上都有均匀的功率。但实际电路里的噪声永远是有带宽限制的所以“band-limited white noise”这个概念在做仿真时特别关键——它说的是在某些频带内噪声功率谱密度是平坦的但超出带宽就滚降。举一个直观例子一个噪声密度为10 nV/√Hz的运放理论上在1Hz到10MHz都有差不多的噪声密度但你把输出端接一个一阶低通滤波器截止频率设为10kHz那么高于10kHz的噪声会被压下去低于10kHz基本保持平坦。这个时候你得到的就是一个典型的带限白噪声它的总功率不再等于“密度乘以无限带宽”而是由有效噪声带宽决定。Cadence里跑noise analysis时本质上就是在做这件事它把信号链等效成一个带通或低通系统然后告诉你每一Hz宽度上贡献了多少噪声功率。如果你用transient noise仿真看时域波形里面还会让你填Noise Fmax。这个Noise Fmax就是仿真器给噪声设的带宽上限本质作用就是生成带限白噪声防止高频噪声分量混叠到采样率之下。很多人忽视这个参数结果是仿真出来的底噪又大又抖其实多半是带宽上限设得过高把仿真器逼着去产生一堆高频噪声成分。1.2 运放噪声的三大来源先分清再算噪声分析最怕一把抓。我习惯把所有来源归成三类第一类是电阻热噪声。只要温度不是绝对零度电阻里的自由电子就在做随机热运动宏观上表现为一个微小电压波动。这个噪声跟频率无关是平坦的公式是热噪声电压密度 √(4·k·T·R)室温下2kΩ电阻的热噪声密度约5.75 nV/√Hz100kΩ约40.7 nV/√Hz。它和频率分布无关只要电阻值固定这个底噪就跑不掉。第二类是运放的等效输入电压噪声。这是运放内部晶体管、偏置结构等产生的在数据手册里通常写成如1.1 nV/√Hz。它等效为串联在运放正输入端的电压源会随电路噪声增益放大输出。第三类是运放的等效输入电流噪声。它等效为并联在运放输入端口的电流源流过源阻抗或反馈网络阻抗后会变成电压噪声。电流噪声在低源阻抗电路里不起眼但在高源阻抗或跨阻放大器里它往往比电压噪声更致命。此外还有1/f噪声闪烁噪声低频段明显噪声密度随频率下降而上升。它和热噪声的交叉点叫1/f噪声拐角频率。对音频和直流精密测量来说1/f噪声很关键但对几十kHz带宽的电路只要拐角频率不高它对总噪声贡献占比很小。2. 手算运放电路噪声从谱密度到RMS值2.1 电路噪声模型与噪声增益的关系有了噪声源分类下一步就是建手算模型。以同相放大器为例信号源内阻Rs、负反馈电阻RF、反相端到地电阻RG噪声增益NG 1 RF/RG。噪声增益的物理含义是从运放输入端看进去的任意微小电压扰动输出端会被放大多少倍。计算技巧是把每个噪声源都折算到运放输入端算出等效输入噪声密度再统一乘以噪声增益得到输出噪声密度。折算时注意三点源电阻Rs的热噪声与正端电流噪声都串联在正输入环路里反馈网络RG与RF并联后的等效电阻上的热噪声和运放自身电流噪声出现在负输入环路运放的等效输入电压噪声直接看作正输入端的串联源。如果不想被这些折来折去绕晕可以直接用更工程化的公式估算输出电压噪声密度输出噪声密度 ≈ NG × √(en² (in×(RG∥RF))² 4kT(RG∥RF) 4kT·Rs (in×Rs)²)其中en是运放电压噪声密度in是运放输入电流噪声密度。这个公式把主要噪声源都包括进去了适合快速算出一个量级。注意输入电流噪声在正、负输入端分别流过Rs和RG∥RF两处都要算进去这一步经常被人漏掉。2.2 从噪声密度到RMS值等效噪声带宽才是关键频谱密度只能用来对比真正影响信噪比的是RMS噪声电压。把频谱密度在整个带宽上积分才能得到RMS值。但实际电路多是一阶或二阶滚降带宽并非矩形截止因此会引入等效噪声带宽ENBW的概念。对一个一阶RC低通来说真实噪声面积等于密度²乘上截止频率的π/2倍而不是直接乘截止频率。也就是说一阶系统的ENBW是3dB带宽的1.57倍。对一个理想二阶系统ENBW约等于3dB带宽的1.11倍阶数越高越接近1。这个系数不能省否则手算结果会比仿真低很多。实际手算的时候我会先确定-3dB信号带宽根据电路阶数取对应的ENBW系数再用公式噪声RMS √(噪声谱密度² × ENBW)如果你是在Cadence里仿真则不需要乘以π/2因为你已经直接用积分器去积噪声谱密度曲线了等效噪声带宽已经被积分运算自然包含。2.3 一个完整算例OPA1612同相放大器的噪声估算用真实器件算一遍才有体感。假设用OPA1612做同相放大器它的电压噪声密度约1.1 nV/√Hz电流噪声密度约1.7 pA/√Hz。电路参数取信号源内阻Rs2kΩ反馈电阻RF198kΩRG2kΩ则噪声增益NG1198k/2k100。各项噪声密度分别算出来运放电压噪声 en×NG1.1×100110 nV/√Hz。正端电流噪声 in×Rs×NG1.7 pA×2kΩ×100340 nV/√Hz。负端电流噪声 in×(RG∥RF)×NG其中RG∥RF2k∥198k≈1.98kΩ得到1.7 pA×1.98k×100≈337 nV/√Hz。源电阻热噪声 √(4kT×2k)×NG≈5.75×100575 nV/√Hz。RG与RF并联等效电阻的热噪声 √(4kT×1.98k)×NG≈5.72×100572 nV/√Hz。把五项平方相加再开根得到输出噪声总密度约948 nV/√Hz。假设信号带宽20kHz且按一阶响应处理ENBWπ/2×20k31.4kHz输出RMS噪声就是948 nV×√31416≈168 μVrms。如果信号满幅是1Vrms那么信噪比大约115dB。这个算例最有价值的结论是在信号源内阻2kΩ、反馈电阻快200kΩ的电路里主导噪声的不是运放自身的1.1 nV电压噪声而是电阻热噪声和电流噪声流过阻抗产生的电压噪声。你就算换个电压噪声更低的运放总噪声也降不了多少。真正该动的是电阻取值、源阻抗和电流噪声这几个环节。3. Cadence噪声仿真实操用结果验证手算3.1 跑一个标准的noise analysis参数怎么填手算之后必须用仿真交叉验证。Cadence环境里最常用的是ADE L或ADE Explorer仿真器用Spectre。搭建测试电路时特别注意把信号源内阻Rs用具体电阻画出来不要依赖理想电压源model。理想源内阻为零如果直接在源端接一个vdc或vsin而不加Rs仿真里根本不会出现源电阻的噪声那结果就偏小了。跑noise analysis的路径一般是Choose Analysis → Noise关键填几项Start/Stop扫描起止频率。低频从0.01Hz或者0.1Hz起能抓到1/f转折高频至少要到10倍信号带宽让滚降充分展开。Sweep Type一般用Logarithmic按十进制取点比如每10倍频50个点以上。Input Source选择信号源。Spectre会以这个源作为参考计算输出端总噪声折算到输入端的等效输入噪声。Output选择输出节点通常是Vout。也可用“Output Probe”选一个流过特定元件的电流。还有一处容易被忽略的选项是1/f噪声。Spectre的noise analysis默认是否包含1/f噪声不同版本不完全一样。如果只想评估热噪声和宽带噪声可以不勾但如果要对标规格书最好把1/f噪声勾上。要记得低频起始点必须低到覆盖1/f拐角以下否则仿真器从100Hz开始1/f噪声会被低估。3.2 仿真结果怎么读输出噪声、等效输入噪声、器件贡献仿真完去看结果主要关注三种视图。第一是输出噪声谱密度曲线。横轴频率纵轴V/√Hz。看到低频上翘说明1/f噪声在起作用看到中频平坦那是典型白噪声段看到高频有尖峰要警惕环路稳定性余量不足导致的噪声增益峰。这个尖峰如果出现在带宽附近会在RMS积分里被显著放大。第二是等效输入噪声谱密度。Spectre会根据你选的input source把输出噪声折算到输入端。这带来一个好处等效输入噪声可以跨电路对比。不同增益架构的噪声性能直接比等效输入噪声密度看谁的底子好。第三是器件贡献列表。在ADE里的“Results→Noise Summary”Spectre会列出每个器件在不同频率点对总输出噪声的贡献占比。这是定位噪声瓶颈最直接的工具。比如在算例里几乎可以立刻看到RF和Rs的热噪声贡献最大运放本体的电压噪声贡献反而靠后。这比靠猜靠谱得多。3.3 用Calculator把RMS噪声算出来Spectre跑完noise analysis输出的是一条谱密度曲线必须积分才能得到RMS值。在Cadence Calculator里常用integ函数处理。具体做法是在主波形窗选中输出噪声谱密度把它送到Calculator然后用integ函数设置积分从fmin到fmax。注意Calculator里的integ默认是对波形做积分最好先确认波形单位是V²/Hz还是V/√Hz。如果波形是V/√Hz需要先平方再积分。有些版本支持直接在积分选项里选“squared”积分结果就是V²再开根号得到RMS值。如果你要的是总积分噪声随频率变化的曲线则不需要开方积分结果从低频逐渐爬升到稳定值读末端就是全频段RMS。这里有个比较隐蔽的坑如果把积分上限设到扫描上限而扫描上限很高分页里高频段的噪声虽然密度小但乘以很宽的频率区间后仍然会带入一定功率。所以最好按实际电路带宽来设积分上限。如果是信号链路带宽20kHz积分到100kHz虽然也能得到更大值但那是把没用的噪声也算进去了。真实系统最终会通过滤波限制噪声带宽积分上限应当对应系统滤波等效带宽。3.4 仿真结果和手算对不上先检查这几个点我碰到过最典型的对不上案例就是把噪声仿真结果比手算低不少第一反应往往是“仿真器没算准”但绝大多数时候是自己配置不对。排查顺序我建议从下面几个方向走先看信号源内阻有没有建模。理想电压源没有热噪声如果电路里没有Rs电阻仿真自然少了源阻抗噪声这一大块。再看电阻模型的噪声开关。在Spectre里model选“resistor”通常默认开启热噪声但个别PDK库为了仿真速度会把噪声关掉需要检查model设定在model library里确认“noise”参数没有被置0。然后看频率积分区间是否一致。手算用ENBW仿真用积分上限两者必须对应。如果手算用20kHz带宽而仿真直接积到10MHz扫描上限结果当然差很多。最后看是否有噪声增益峰。Cadence里如果看到噪声谱在高频处明显凸起那可能是反馈电容不足、相位裕度低。手算模型往往忽略这种高频增益峰所以仿真值会比手算高。这个差异其实是真实存在的不是错误。它提醒你光靠手算只能得到理想量级仿真能看到手算看不到的高频效应。4. 低噪声实战光电二极管放大器的噪声优化4.1 TIA电路的噪声结构和普通放大器不一样如果把文章前面讲的同相放大器当作基础那实际项目里遇到最多的低噪声应用之一就是光电二极管跨阻放大器TIA。它和普通电压放大器最大的区别在于输入信号是电流输出靠反馈电阻RF转换成电压。结构简单但噪声分析思路不同。TIA的三个主要噪声源第一个是反馈电阻RF的热噪声它直接出现在输出端以√(4kT·RF)计算。这块噪声是所有噪声里最“物理刚需”的——只要RF定下来它就在那里。RF取100kΩ时热噪声密度约40.7 nV/√Hz取1MΩ时约128.5 nV/√Hz。第二个是运放输入电压噪声。它被光电二极管电容和反馈电容分压造成噪声增益随频率升高而抬高。光电二极管结电容越大高频噪声增益越严重最终输出噪声谱会在高频出现明显的“上翘”而不再是平坦白噪声。第三个是运放输入电流噪声。对TIA来说输入电流噪声直接流过RF转化为电压噪声输出噪声 in × RF。如果RF很大即便很小的电流噪声都会被放大得很明显。这三项叠加后就是典型的TIA输出噪声谱低频平坦由RF热噪声主导高频因为噪声增益上翘积分得到的RMS噪声往往比简单“√(4kTRF)×√ENBW”大不少。4.2 关键器件选择与Cadence仿真验证针对TIA设计选运放不能只看电压噪声低还要看电流噪声和输入电容的平衡。比如OPA837这类低电流噪声运放电流噪声密度约0.9 pA/√Hz电压噪声密度相对稍高如果信号源阻抗高这类以电流噪声为优势的运放比纯电压噪声低的运放更合适。反馈电阻的选择要同时考虑增益和噪声。RF越大增益越高但热噪声也按平方根增大。如果只需要100kΩ的跨阻增益把RF做得更大来省一级放大未必划算——你的底噪会同步起来。更合理的思路是分段增益比如第一级RF100kΩ第二级再电压放大信号和噪声同比例放大总SNR不损失还能通过第一级带宽设计抑制高频噪声。在Cadence里验证TIA时我会给光电二极管建一个等效模型一个电流源并联一颗结电容通常50pF左右。然后跑noise analysis看输出噪声谱。这时会发现高频段噪声明显大于低频段这就是电压噪声和结电容耦合导致的高频噪声增益。要抑制这个上翘最常用的手段是在RF两端并联一个小反馈电容CF把它调整到让噪声增益在合适频率滚降。CF的大小要基于电路稳定性和目标带宽来定常见做法是先算出让相位裕度足够的临界值再结合仿真微调。参考起点可以用CF≈√(Cpd/(π×RF×GBW))但最后一定以闭环spice仿真为准。加了CF之后输出噪声谱的高频尖峰会明显下降RMS噪声显著降低。4.3 实际布局和元件的噪声陷阱仿真只能说明理想情况做成PCB之后还会有一些额外的噪声问题。TIA的输入端是高阻抗节点任何流过这个节点的耦合电流都会变成电压噪声。比如PCB板材漏电流、焊盘脏污、保护环没做好这些在仿真里根本看不到。还有一个常见陷阱反馈电阻用普通厚膜电阻在高阻值下会产生额外的电流噪声或电压噪声闪烁。有些物料手册不标注低频噪声实际测下来底噪超标。所以低噪声TIA的反馈电阻我会优先选金属膜或薄膜电阻尽量避开厚膜贴片。在低温漂、低噪声同时要求时可以考虑分立电阻串联不过注意串联的等效电阻会变热噪声也会增加。我在CAD里放器件时习惯把反馈电阻和反馈电容之间的寄生走线宽度尽量缩短跨阻节点的铜皮面积不要铺太大否则寄生电容和漏电会给噪声提供额外的通路。这类经验在仿真里不容易见到但在实际项目中确实会改变底噪。5. 工程上的降噪技巧与问题排查思路5.1 电阻值不要盲目加大噪声与阻抗的权衡很多设计为了降低静态功耗或提高增益把反馈电阻加到几百千欧甚至兆欧级。但电阻热噪声和阻值的平方根正相关电阻越大底噪天然越高。以1MΩ为例热噪声密度约128 nV/√Hz比1kΩ时高出近30倍。如果你发现某个电路的总噪声主要由电阻热噪声主导那么第一件事不是换运放而是看能不能把电阻值降下来。比如同相放大器中如果想保持增益100而降低RG和RF的阻值可以把RG从2k降到1k、RF从198k降到99k。源阻抗不变的情况下热噪声贡献会按√(RG∥RF)比例降低。代价是放大器输入阻抗变低、运放电流噪声流经这些并联电阻时产生的电压会变小这是有利影响但运放的输出驱动负担增大。这里需要权衡不是电阻越低越好。更常见的折中方案是把高增益留给第二级。第一级用中等增益值把传感器信号抬到足够大让后级自身噪声相对信号足够小再整体滤波。这样第一级的阻值不用取太大噪声来源也就被控制住了。5.2 带宽限制方式滤波器的位置和阶数噪声的问题往往不只是前级放得大不大而是把多少无用带宽里的噪声带进了系统。带宽限制做得好不好直接影响底噪。最笨的办法是在输出端加一个RC低通但RC本身会引入一个电阻这个电阻热噪声会被后面电路放大或直接串联进输出。如果RC里的电阻取几千欧它在噪声谱上不是可以忽略的。更好的办法是让放大电路本身的闭环带宽就限制在信号带宽附近比如通过反馈电容或运放自身的GBW来控制这样噪声不会被过度放大再配合输出级低通滤波做“整形”。滤波器阶数也要看系统需求。一级滤波器对带外噪声的抑制斜率只有-20dB/dec如果高频噪声功率很大单级RC压制不够。二级或三级滤波的ENBW系数接近1对总RMS噪声的贡献更接近“3dB带宽”不会像一阶那样多出57%的面积。工程上如果关心SNR二阶或三阶滤波往往是更合理的选择。5.3 定位噪声问题的排查顺序真正做低噪声调试的时候我很少上来就改运放。定位问题的顺序是先仿真看理论底噪再用频谱仪或示波器FFT实测输出底噪对比两者差多少。如果实测高于仿真很多优先怀疑外部干扰或电源噪声而不是运放本身。此时要看输出频谱里是否有50Hz市电干扰或开关频率尖峰那些通常不是运放内部噪声。如果实测值接近仿真值但系统SNR仍不达标那就是设计本身的噪声预算问题了。这时再去看噪声贡献列表锁定最大的那个源。如果最大的源是电阻热噪声就降阻值或者改增益架构如果是电流噪声就换更低电流噪声的运放或降低源阻抗如果是电压噪声主导才考虑换更低电压噪声的器件。最后再看是不是被带宽拖累很多“底噪大”其实不是噪声源变大了而是带宽放得比实际需要的宽。把带宽限制到所需信号频率就够的话总RMS噪声自然下降。6. 一点个人习惯做低噪声电路这么多年我现在拿到一个新电路会先看几个关键数值信号源内阻是多少、反馈网络等效阻抗是多少、目标带宽多少。这三个数一出来基本就能估算噪声瓶颈在哪。如果源阻抗本身几千欧那运放电压噪声低到1nV级也别太兴奋因为电流噪声和电阻噪声通常才是主角。真正有价值的降噪工作经常不在运放手册的数字上而在电路架构和带宽管理里。做仿真时要养成和手算对账的习惯不指望两边完全一致但应该能对上量级。对不上的时候大多数情况是某个噪声源没建模或带宽条件不一致。Cadence这种工具的好处是能直观看到每颗器件的贡献权重但它不会告诉你“为什么不合理”这个判断还得靠实际经验来补偿。如果你正在被运放噪声困扰建议从今天开始每个放大电路都按“噪声源分类、手算量级、仿真贡献列表、带宽积分”四步走一遍几次之后你对噪声的感觉会完全不一样。
返回列表