PLL环路滤波器设计与参数计算:二阶三阶无源LPF实战

发布时间:2026/10/1 1:26:20

PLL环路滤波器设计与参数计算:二阶三阶无源LPF实战 前阵子做一款2.4GHz频率合成器锁相环PLL的VCO控制电压在锁定后始终有周期性的毛刺环路带宽调低依然压不下去最后定位到是低通滤波器LPF的第三极点放得太低把相位裕度吃掉了近20度。这篇文章就是那次完整的设计记录核心讲清楚PLL环路滤波器特别是二阶和三阶无源LPF的参数计算到底是怎么回事。虽然网上各种“计算小工具”一抓一大把但如果你不知道背后的公式和每个电容电阻承担的角色参数填错一个数量级板子上去不是失锁就是自激。希望这篇记录能给正在调PLL频率合成器的同行省下几个通宵。1. 环路滤波器在PLL里的角色——先搞清楚它到底在滤什么1.1 锁相环的闭环骨架PLL不是一个单独的芯片而是一个负反馈闭环系统标准的电荷泵锁相环由鉴频鉴相器PFD、电荷泵CP、环路滤波器LPF、压控振荡器VCO和可编程分频器这五块组成。PFD负责比较参考频率信号和分频器反馈回来的信号输出一个与相位差成正比的脉冲宽度电荷泵把这个脉冲宽度转换成对应的充电或放电电流环路滤波器再把这股电流变成VCO需要的调谐电压最终让VCO频率锁定到参考频率的整数倍上。在这个结构里PFD和CP承担的是“比较误差”的角色VCO承担的是“被控对象”的角色真正决定系统动态品质的是中间的LPF。它并不仅仅是把高频分量滤掉那么简单它同时还提供了环路校正所需要的积分环节和零点。换句话说LPF就是PLL控制器本身控制器不好后面的一切性能都无从谈起。搜PLL资料时经常会出现生物领域里的多聚赖氨酸那东西和锁相环没有半点关系这里说的PLL特指Phase-Locked Loop。1.2 电荷泵输出为什么要滤波电荷泵的输出不是连续的模拟电压而是一串宽度等于相位误差的电流脉冲。如果环路滤波器只有单纯的低通电容那么电荷泵每来一个脉冲控制电压就会被充电一次随后在下一个脉冲到来之前缓慢放电控制电压上会叠加明显的纹波这个纹波直接调制VCO就会形成参考杂散。更麻烦的是如果滤波器是纯积分环路相位裕度会非常差系统很难稳定。实际使用的无源环路滤波器几乎都是“有零点的积分器”一个大电容完成电流到电压的积分同时为了让环路在穿越频率附近有足够的相位裕度必须串联一个电阻形成一个零点再并联一个小电容用于吸收电荷泵开关动作产生的高频脉冲降低参考杂散。这个结构就是经典的二阶环路滤波器也是很多PLL芯片数据手册里推荐的最基础拓扑。1.3 环路带宽、相位裕度与锁定时间的关系经常被拿来评估PLL的三组指标环路带宽fc、相位裕度PM、锁定时间Tlock其实都由LPF参数直接决定。环路带宽通常定义为开环传递函数幅度穿过0dB的频率在这个频率上系统开始失去对误差的修正能力所以带宽越高锁定越快但对噪声的抑制能力也越差。相位裕度则是衡量系统还剩多少稳定余量通常要求45度到60度之间低于30度大概率会出现严重的过冲甚至自激。锁定时间和环路带宽基本是反比关系fc做到100kHz锁定时间能到几十微秒级别fc做到10kHz就要几百微秒。相位裕度影响锁定过程的阻尼特性相位裕度偏小时锁定波形会大幅过冲偏大时锁定过程又显得迟钝。这里没有“只调一个参数就全能”的好事LPF计算本质上就是在这些矛盾指标之间找平衡点。2. 计算前的准备工作完整掌握PLL链路参数2.1 手算LPF需要哪几个数环路滤波器不是孤立存在的它要和PFD、电荷泵、VCO、分频器一起配合所以动手算之前必须把整个链路的参数都列清楚。我最常用的一张参数清单如下参数符号单位来源输出频率FvcoMHz系统需求参考频率/鉴相频率FrefMHz晶振或参考输入分频比N无量纲N Fvco / Fref电荷泵电流IcpmA芯片寄存器配置VCO增益KvcoMHz/V从VCO数据手册获得环路带宽fckHz根据锁定时间和杂散要求选择相位裕度PMdegree建议45到60这里容易踩坑的是KvcoVCO数据手册里给出的增益往往不是一条完全平坦的直线不同频段Kvco会有差异。设计时不能只看典型值要取对应频段附近的实际值否则按典型值算出的LPF在目标频点可能偏离。分频比N也很关键如果频率合成器要覆盖多个频点N变化范围很大就最好让电荷泵电流随频点做调节保持环路带宽相对稳定。2.2 分频比N和反馈系数fb的工程含义如果从自动控制角度来看PLL会发现它和常见的PI控制器很像LPF承担比例积分校正分频器反馈路径就是反馈系数。这里的反馈系数不是简单的1/N常数因为分频器同时改变了信号频率而相位域的反馈增益恰好是1/N。N越大反馈越浅开环增益越低环路带宽会降低N越小反馈越深环路增益越高但带内的噪声整形也越敏感。很多人喜欢把“pll pi控制带宽fb”当成纯软件概念实际上硬件PLL的反馈系数就写在分频比N里。想提高反馈深度最直接的办法是提高参考频率从而降低分频比N这也是为什么现代PLL芯片开始流行分数分频甚至亚采样结构。理解了这一点你就明白为什么LPF计算时不能只盯着R和C还要看N是多少。2.3 二阶还是三阶怎么选无源环路滤波器按阶数分最常见的是二阶和三阶。二阶滤波器由一个积分电容、一个零点电阻和一个纹波电容组成计算最简单环路稳定性也容易保证适合杂散要求不高的场景。三阶滤波器在二阶基础上额外增加一个RC低通网络相当于在远离环路带宽的高频处插入一个极点对电荷泵脉冲和VCO控制端耦合进来的噪声有更好的抑制效果。但三阶多出来的极点不是白送的它会在穿越频率附近贡献额外的相移如果极点距离环路带宽太近相位裕度会被明显吃掉所以设计三阶滤波器时必须把附加极点的位置严格控制在环路带宽的5倍以上甚至更高。我的习惯是先按二阶把主环路算好确认稳定裕度足够再考虑是否加第三极。如果只是参考杂散偏大优先把电荷泵电流、死区设置和PCB布局先查一遍直接加三阶滤波器往往是治标不治本。3. 三阶环路滤波器计算方法——手算流程与公式3.1 滤波器的等效模型与传递函数这里我按最常用的无源二阶拓扑来推导它是后续三阶计算的基础。拓扑结构是这样电荷泵输出节点同时也是VCO调谐电压节点从这个节点经过电阻R串联主电容C1到地再在这个节点上并联一个小电容C2到地。我习惯把C1称为积分电容C2称为纹波电容因为C1远大于C2R和C1构成提供零点的积分支路C2负责滤除高频脉冲。忽略电荷泵开关瞬间的非线性效应后环路滤波器的传递函数F(s)定义为VCO控制电压Vc(s)与电荷泵输出电流Icp(s)的比值。对上述电路做节点电流方程可以得到F(s) (1 sRC1) / [ s(C1C2)(1 sRC1C2/(C1C2)) ]这个式子很关键分子上的(1sRC1)就是零点由R和C1产生分母里除了一个s积分外还有一个由C1和C2并联等效后与R形成的高频极点。零点的频率为1/(RC1)高频极点的频率为1/(RC1C2/(C1C2))因为C1远大于C2所以极点频率大约是1/(RC2)。零点提供相位提升极点消耗相位两者配合才能保证稳定。3.2 开环传递函数与稳定条件把环路滤波器的传递函数放到整个PLL闭环里开环增益G(s)等于电荷泵相位增益、滤波器阻抗转移、VCO积分和分频器反馈系数的乘积。电荷泵把相位误差转换成电流等效增益是Icp/(2π)VCO从电压到频率的积分等效为2πKvco/s分频器反馈系数是1/N中间滤波器是F(s)。合并之后开环传递函数可以写成G(s) Icp·Kvco·F(s) / (s·N)把F(s)代进去就会发现分母里有一个s的积分项和F(s)里的低频积分极点合在一起是s²所以这是一个典型的二类环路系统。系统能稳定的关键是在开环增益穿过0dB的角频率ωc处G(jωc)的相位还留有足够的余量。相位裕度PM 180° ∠G(jωc)由于s²项稳定贡献-180°实际相位裕度主要来自F(s)零点和极点之间的相位差。合理设计的思路是把穿越频率ωc放在零点频率和极点频率的几何中心这样相位裕度最大。令零点时间常数T1RC1极点时间常数T2RC1C2/(C1C2)当ωc1/√(T1T2)时相位裕度可以解析表达。引入中间变量x tan(π/4 PM/2)则可以得到T1/T2x²设计公式会非常简洁。3.3 用目标fc和PM反推R、C1、C2整个手算流程可以归纳成四步。第一步根据目标相位裕度PM计算xx tan(π/4 PM/2)。第二步计算零点时间常数T1x/ωc和极点时间常数T21/(xωc)这里ωc2πfc。第三步利用增益条件求出C1C2的总和公式是Csum Icp·Kvco·√(1(ωcT1)²) / [N·ωc²·√(1(ωcT2)²)]。第四步由T2/T1 C2/(C1C2)的关系解出C2 C1/(x²-1)再结合Csum算出C1和C2最后用RT1/C1求电阻。这套公式看着长其实每一步都是中学数学。真正需要注意的是单位Icp用安培Kvco用Hz/Vωc用rad/s算出的电容是法拉电阻是欧姆。我见过不少人在这一步把Kvco的MHz/V直接代入结果电容整整差了6个数量级板子当然没法用。另外算出来的电容值往往不是标准系列实际选型时需要组合或用可调电容选定后再往回验算一次实际的fc和PM是否还能接受。4. 完整实例10MHz鉴相频率、2.4GHz输出4.1 设计指标确认用一个具体案例走一遍全过程。假设要设计一个2.4GHz的整数分频频率合成器参考频率选10MHz那么分频比N240。电荷泵电流设成1mAVCO在2.4GHz附近的调谐增益Kvco取20MHz/V。目标环路带宽fc取100kHz相位裕度PM取50度。100kHz对应参考频率的百分之一这是滤波器在杂散抑制和锁定时间之间比较平衡的取值50度相位裕度则能保证锁定过程没有过大的过冲。为什么电荷泵电流取1mA因为很多集成PLL芯片的电荷泵电流默认范围就在几百微安到几毫安之间1mA比较有代表性。如果电流太小Csum会变小对寄生电容越敏感电流太大Csum变大电容体积和成本跟着涨。取1mA不是为了标新立异而是让后面的计算数值落在工程上最容易实现的范围内。4.2 手算过程与参数核对先算中间变量。ωc2π×100kHz≈6.283×10⁵ rad/s。PM50度xtan(45°25°)tan70°≈2.7475x²≈7.5486。于是T1x/ωc≈4.37μsT21/(xωc)≈0.579μs。接下来计算CsumIcp0.001AKvco20×10⁶Hz/VN240代入增益条件Csum ≈ 0.001×20×10⁶×√(17.5486) / [240×(6.283×10⁵)²×√(10.1315)] ≈ 5.80×10⁻¹⁰F也就是580pF左右。由C2C1/(x²-1)且CsumC1C2得到C1≈503pFC2≈77pF。再用RT1/C1≈4.37×10⁻⁶/5.03×10⁻¹⁰≈8.69kΩ。这样算出的二阶LPF就是R≈8.7kΩC1≈500pFC2≈75pF。拿到数值后我习惯立刻做一次反向验算。用R8.69kΩ、C1503pF、C277pF重新计算零点频率1/(RC1)≈36.5kHz极点频率1/(RC1C2/(C1C2))≈295kHz而穿越频率133kHz落在了两者几何中心附近相位裕度应该正好在50度附近。如果反向验算时发现穿越频率和预设的fc偏差超过20%基本就是前面的计算过程或单位出了错要回头查。4.3 三阶扩展再加一级RC低通如果这个2.4GHz系统对参考杂散要求比较高二阶滤波器的抑制能力不够可以考虑在二阶基础上加第三级RC低通。通常做法是在VCO控制电压节点和VCO输入端之间串联一个R3然后在VCO输入端对地并联一个C3这样控制电压经过额外一级RC滤波之后再进VCO。附加极点的频率f3大约为1/(2πR3C3)工程上建议f3取5倍环路带宽以上这样对相位裕度的影响控制在5度以内。按fc100kHz取f3500kHz。为了不大幅增加VCO控制节点负载C3一般取10pF到100pF这里先取33pF那么R3≈1/(2π×500kHz×33pF)≈9.6kΩ。取标准电阻10kΩ后实际极点频率略低于500kHz这时需要重新检查相位裕度可能从50度降到46度左右还在可接受范围。要注意第三级RC低通本身也会引入直流压降但因为VCO输入阻抗极高几乎没有直流电流所以对锁定电压的影响可以忽略。4.4 落地到标准值后重新验证计算值很少能直接买到对应容值的电容。C1503pF可以选一个470pF并联33pF得到503pFC277pF可以用68pF并联10pFR8.69kΩ则可以直接选标准阻值8.66kΩ或者用8.2kΩ串联470Ω。选完标准值之后不要以为就算完了必须重新代入F(s)算一遍实际的环路带宽和相位裕度。用470pF33pF、68pF10pF、8.66kΩ代入实际fc大概在95kHz到105kHz之间相位裕度在48度上下完全可用。这个环节最容易忽略的是电容材质和寄生参数。C1和C2在射频环路里一定要选C0G或NP0材质温漂小、损耗低X5R/X7R虽然容量大但直流偏压特性很差电压变化时容值可能掉到标称值的一半以下。VCO控制电压在工作过程中会变化容值漂移会让环路带宽也跟着漂这就是为什么很多调好的环路一到电压边界就出现相位噪声恶化。电阻也尽量选低寄生电感贴片电阻靠近电荷泵输出放置引脚线尽量短。5. 仿真验证与实测调试5.1 用仿真工具验证Bode图手算只能给出设计点真正上板之前我至少会做一次频域仿真。仿真不一定要用昂贵的射频软件用Python或者Matlab写几十行脚本就能画出开环Bode图。脚本里把PFD电荷泵增益、环路滤波器传递函数、VCO积分和分频器反馈系数按顺序乘起来然后从1kHz扫到10MHz看开环增益过0dB的位置是不是在100kHz附近看该点的相位是不是在目标PM附近。下面是我用Python做快速验证的简化代码框架只在频域计算没有建闭环模型但足够检查稳定性和带宽import numpy as np import matplotlib.pyplot as plt Icp 0.001 # 1mA Kvco 20e6 # 20MHz/V N 240.0 R 8.69e3 C1 503e-12 C2 77e-12 f np.logspace(3, 7, 1000) w 2*np.pi*f s 1j*w F (1 s*R*C1) / (s*(C1C2)*(1 s*R*C1*C2/(C1C2))) G Icp*Kvco*F/(s*N) phase np.angle(G, degTrue) gain 20*np.log10(np.abs(G)) # 找穿越频率 idx np.argmin(np.abs(np.abs(G)-1)) print(Cross freq %.2f kHz % (f[idx]/1e3)) print(Phase margin %.2f deg % (180 phase[idx])) plt.semilogx(f, gain) plt.axhline(0, colork, lw0.8) plt.show()实际画出来后如果穿越频率落在预设fc的±20%以内相位裕度在目标值±5度以内就可以安排上板实测。如果仿真已经不对就不要再浪费时间直接改板子肯定有一处公式或参数填错了。这个检查习惯能帮我拦住至少一半的“低级错误”。5.2 锁定过程的瞬态观测频域验证通过之后上电看实际锁定过程。最直观的做法是用高阻探头接VCO控制电压配合示波器观察从失锁到稳定的波形。理想情况下控制电压会平滑爬升到目标电压附近然后有小幅衰减振荡几毫秒内收敛。如果看到大幅过冲说明相位裕度偏小可以稍微增大PM目标重新算一遍或者把环路带宽稍微降低一点。如果控制电压出现周期性波动则是参考杂散或者电荷泵泄漏在作怪。实测和仿真的差距大多来自芯片内部电荷泵的实际电流和设定值不完全一致。很多PLL芯片的电荷泵电流寄存器值只是标称实际输出电流随温度和电源电压有百分之几到百分之十几的偏差。手算时用标称1mA实测可能只有0.9mA环路带宽也会等比下降所以调试时不要盯着100kHz这个数死磕落在80到120kHz范围内都算正常。5.3 常见问题速查表我把调试中常见的问题整理成一张速查表方便现场排查现象可能原因调整方向完全无法锁定环路带宽过低或相位裕度过小提高fc或PM检查电荷泵极性锁定过程过冲严重相位裕度不足增大PM到55度以上或降低fc相位噪声偏高环路带宽过窄或VCO电源噪声适当提高fc检查VCO供电纹波参考杂散偏大二阶LPF抑制不足增加三阶极点加强电荷泵供电滤波锁定时间过长环路带宽过低提高fc但注意杂散和噪声变化温度变化后失锁电容材质不好或Kvco漂移换C0G电容重新校准Kvco这个表格不是万能药但它能帮你快速缩小排查范围。真正棘手的往往是几个问题叠加在一起比如相位噪声和杂散同时大这时候不要急着改滤波器先用频谱仪区分是近端噪声还是远端杂散再决定是动fc还是动滤波阶数。6. 实操心得手算只是起点工程验证才是终点6.1 使用芯片厂商工具与手算对比芯片厂商提供的PLL设计工具比如ADI的ADIsimPLL、TI的Clock Design Tool确实能大幅节省计算时间工具会自动迭代出元件值甚至给出相位噪声仿真曲线。但我不建议直接拿工具填参数然后抄结果原因很简单工具默认的拓扑和你的PCB布局不一定一致工具给出的值也经常是非标组合。用手算先建立对环路行为的直觉再用工具交叉验证是一个更稳妥的做法。有一次我全程用工具设计了一个高带宽PLL工具显示相位裕度55度但板子实测自激。查了很久才发现工具默认电荷泵输出电容是理想电容而我的板上电荷泵输出引脚到滤波器的走线太长寄生电容额外加了十几皮法等效于C2变大高频极点拉低相位裕度迅速恶化。如果当初手算了开环增益就会对寄生敏感度有概念不会完全依赖工具结果。6.2 板级布局和元件选择经验环路滤波器的布局对性能的影响不亚于计算本身。C1、R、C2应该尽量靠近PLL芯片的电荷泵输出引脚放置走线越短越好。VCO控制电压线本身对地电容和漏电都要控制有些高Kvco的VCO控制端多加10pF寄生电容等效于改变了LPF极点会让相位裕度明显下降。过孔、测试点焊盘也会引入寄生电容调试时如果实测振荡频率和仿真对不上先检查这些不起眼的寄生参数。元件选型方面所有LPF电阻电容都建议0603或0402封装过大封装会带来更多寄生参数。电阻要选低温度系数的薄膜电阻C1、C2选C0G电容。另外电荷泵电源和VCO电源的滤波电容不要和LPF混在一起VCO电源噪声会直接叠加到调谐电压上污染最终相位噪声。6.3 实测中我踩过的几个坑最后分享几个我在现场踩过的典型坑。第一个坑是电荷泵极性接反。某些PLL芯片的电荷泵电流方向可以通过寄存器配置成正反两种如果配置错误负反馈会变正反馈现象是控制电压撞到电源轨或者VCO频率一直漂和滤波器参数无关。遇到“怎么算都不锁定”的情况先查极性再查滤波器的电容有没有虚焊。第二个坑是示波器探头的负载效应。直接用1x探头点VCO控制电压几十皮法的叠加电容足够把环路相位裕度吃掉十几度本来稳定的系统一下就振荡。调试时建议用10x探头甚至差分探头或者通过一个高阻缓冲放大器引出测试点。第三个坑是电容焊错位置。C1和C2在封装上都是无极性小电容布局时如果位号弄反把77pF纹波电容焊到了C1的位置环路特性会完全改变从波形上看很像相位裕度不足但实际是元件装错。上电前用LCR表逐一对元件编号测量能省掉大量定位时间。从最初按数据手册抄电阻电容到后来能自己推导LPF传函这中间最值的经验就是不要迷信任何现成计算器先手算一遍再仿真再实测形成自己的一套验证闭环。PLL设计没有一劳永逸的“标准答案”只有根据具体链路参数和指标约束反复迭代才能把环路滤波器算到真正可用的水平。
延伸阅读

更多相关文章

2026/10/1 1:26:20

Cadence版图绘制全攻略:匹配结构、验证与高效技巧

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:26:20

Linux网卡bond模式全解析:7种模式原理、配置与选型指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:26:20

candb++安装与DBC文件创建实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 2:26:24

状态估计与导航滤波:EKF与四元数姿态解算实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 2:26:24

77GHz 车载毫米波雷达硬件拆解|基于 AWR1642 雷达结构剖析、车规参数详解、ADAS 装车落地、CAN 报文解析代码实战

目录 一、前言 二、毫米波雷达整机机械结构精细化拆解 2.1 雷达下壳体(底座)结构与选材细节 2.2 雷达上壳体(透波罩)设计与辅材配置 2.3 内部辅助配件 三、AWR1642 射频 PCB 主控板分区硬件详解 3.1 PCB 正面:射频天线区 + 主控芯片区 3.2 PCB 背面:电源、通信、…

2026/10/1 2:21:24

海关查验频次上升,跨境卖家如何备齐清关文件?

海关查验频次上升这件事,最近在跨境圈子里讨论度很高。很多卖家平时出单挺顺,一接到“海关查验”通知就开始手忙脚乱——不是缺这个资料,就是那个证书找不到,轻则延误派送,重则整批货被扣甚至罚款。这篇文章结合实操经…

2026/9/29 11:07:23

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/9/29 21:48:03

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 7:00:49

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑