做射频和模拟的人大概都有过这种经历:指标定好了,翻开滤波器设计手册找椭圆函数系数表,厚厚一摞表格,看两页就头疼,好不容易选中一列,还要自己反归一化换算电容电感。更要命的是中间某个参数看错,后面全部推倒重来。这次我接了一个需要7阶椭圆低通滤波器的任务,截止频率100MHz,阻带要从130MHz开始压到60dB以下,过渡带只给30%的余量。说实话,如果继续用手算加查表的老办法,半天能算完就算运气好。后来我换了思路,直接用FilterSolutions从指标出发做综合,十几分钟就拿到了完整的7阶椭圆LC拓扑和元件值,整个过程顺畅得有点不真实。
这篇文章就把我从指标拆解、软件设置、元件定标到实际调试的完整过程记录下来,重点聊聊哪些参数最容易填错、为什么7阶椭圆不是拍脑袋定的、软件给出的理想元件值怎么变成能上板的实际元件。新手可以把它当操作流程参考,老手也可以看看有没有自己没留意的细节。
1. 为什么选椭圆低通:7阶不是拍脑袋定的
1.1 椭圆低通的性格:拿纹波换陡度
椭圆低通滤波器在教科书里还有个名字叫Cauer滤波器,它和巴特沃斯、切比雪夫最大的区别是,通带和阻带都是等波纹的。别小看这个“通带阻带双波纹”,它带来的直接好处是,在阶数相同的情况下,椭圆滤波器的过渡带是最陡的。换句话说,如果你想用相对低的阶数实现很窄的过渡带,椭圆几乎是唯一的选择。
代价也很清晰:通带不再平坦,有起伏;阻带不是单调下降,而是会出现等幅波纹;群延迟更是明显变差。所以选椭圆之前,要先想清楚系统能不能接受这些副作用。以我这次的应用场景来说,后端是ADC抗混叠,对通带平坦度有一定要求但可以接受0.1dB的纹波,对相位线性度不敏感,这就让椭圆滤波器站到了最优解的位置上。
1.2 为什么偏偏是7阶:选择性因子和有限零点的账
要理解为什么是7阶,先得明白一个概念——选择性因子k,它大致等于通带截止频率和阻带起始频率的比值。k越接近1,说明过渡带越窄,滤波器越难做,需要更高阶数。这次的指标是fp=100MHz、fs=130MHz,算下来k约等于0.77。这个选择性要求,配合0.1dB通带纹波和60dB阻带抑制,6阶椭圆是压不下来的,8阶又性能过剩导致元件数量多、PCB面积和成本都上去了。7阶正好卡在这个平衡点上。
还有一个角度值得说:7阶椭圆滤波器有3个有限传输零点。这3个零点在阻带里相当于扎下三根“桩”,能在不同频率位置把信号压住,所以阻带抑制做起来比同样阶数的切比雪夫轻松得多。相比6阶只有2个有限零点,7阶的阻带起始频率能往通带方向推不少;而作为奇数阶,7阶拓扑天然对称,输入输出阻抗一致性好,这也是我选它的一个原因。
1.3 FilterSolutions在这条链路里的位置
FilterSolutions最早是Nuhertz公司的老牌滤波器综合工具,被Ansys收购之后,现在也集成在Ansys Electronics Desktop里,作为滤波器设计与分析模块使用。它的定位很明确:把指标输入进去,软件自动完成滤波器综合、拓扑生成、元件值计算、理想仿真,还可以做容差分析和导出到第三方电路仿真工具。说白了,它把最繁琐的查表、换算、反复迭代那部分工作接了过去,让工程师把精力放在指标合理性和可制造性上。
我这次用的是独立版本的FilterSolutions,界面走的是典型的Windows风格,左侧是工程树,右侧是参数区和分析结果。如果你之前接触过其他滤波器设计工具,上手基本没有门槛。
2. 动手前先把指标聊清楚:四条边界条件缺一不可
2.1 从系统需求翻译成滤波器指标
很多人拿到任务就急着打开软件填参数,结果做出来的滤波器看着曲线完美,焊到板子上却完全不是那么回事。问题往往出在第一步——没有把系统需求翻译成明确的滤波器指标。比如这次“ADC抗混叠”这个需求,我需要先搞清楚ADC的采样率是多少,信号带宽是多少,带外噪声要到什么程度才不会影响信噪比。这些系统层面的信息才决定了滤波器该在哪个频率截止、阻带要压多深。
我的做法是先列一个清单:通带截止频率fp、阻带起始频率fs、通带最大纹波Ap、阻带最小抑制As、系统阻抗Z0。这五个参数算是滤波器设计的“纲”,纲举目张。指标没定清楚之前,后面所有综合和优化都是空中楼阁。
2.2 通带截止、阻带起始和纹波怎么定
这里有个常见的误区:通带截止频率不等于你信号的实际带宽。你要留出过渡带的余量,也要考虑元件误差带来的频偏。比如信号实际占用到95MHz,我不会把fp定在95MHz,而是定在100MHz,留出5%的余量。阻带起始频率同理,如果系统要求130MHz以上必须压住,我不会把fs就设在130MHz,而会留一点余量到125MHz左右,这样生产时元件有偏差也不至于直接踩线。
通带纹波和阻带抑制就更考验经验了。Ap定得越小,同样阶数下过渡带越宽。0.1dB和0.01dB看起来只差0.09dB,但对椭圆滤波器的综合结果影响很大。我建议先按系统实际能接受的底线来定,不要盲目追求小纹波。阻带抑制也是一样,ADC的SFDR要求60dB,你就按60dB定,不用做到70dB——多出来的这10dB意味着元件灵敏度大幅提高,调试时自己给自己找麻烦。
2.3 别忘了阻抗和频率的单位
说一个我见过无数次的翻车现场:单位制选错。FilterSolutions里频率默认可能是GHz,你的指标是100MHz,如果不注意填了个100进去,软件会综合出一个截止频率100GHz的滤波器,元件值全是fF和nH量级,拿去打板必挂。填完参数之后第一件事,看软件界面上显示的截止频率是否跟你的目标一致,这个习惯能帮你省掉后面所有的返工时间。
阻抗同样重要。大部分射频系统是50Ω,但也有不少视频或中频系统是75Ω。同样一组归一化原型,阻抗变了,所有电容电感值都要跟着变。如果拿50Ω综合出来的元件值用在75Ω系统里,带内回波损耗会惨不忍睹。
3. FilterSolutions实操全流程:从新建工程到拿到拓扑
3.1 新建工程与模块选择
打开FilterSolutions之后,首先要新建一个Filter Design。如果你用的是Ansys Electronics Desktop集成版本,需要在菜单里插入一个Filter Design,然后会弹出设计向导。独立版本的流程更直接:File -> New,然后从左侧树形菜单找到Design Synthesis,在这里选择滤波器类型。
这里有个细节:FilterSolutions把设计过程分成Synthesis(综合)、Analysis(分析)、Optimization(优化)这几个阶段,工程树里会依次展开。新手容易在综合之前就去点Analysis,结果什么曲线都没有,这很正常,因为拓扑还没生成。正确顺序一定是先综合,再分析。
3.2 参数填写:四个数字定乾坤
在Design Synthesis页面里,我这次填的参数如下:
| 参数 | 值 | 说明 |
|---|---|---|
| Filter Type | Lowpass | 低通 |
| Response | Elliptic | 椭圆响应 |
| Passband Corner (fp) | 100 MHz | 通带截止频率 |
| Stopband Corner (fs) | 125 MHz | 阻带起始频率,留了一点余量 |
| Passband Ripple (Ap) | 0.1 dB | 通带最大纹波 |
| Stopband Attenuation (As) | 60 dB | 阻带最小抑制 |
| Source/Load Impedance | 50 ohm | 源端和负载端阻抗 |
填完先别急着点确定,再检查一遍单位。我习惯在填写之前就把单位切到MHz和ohm,填数字时心里默念一遍这些参数对应的物理意义。都确认无误后,点击Synthesis按钮。
3.3 拓扑审阅:看到一堆谐振支路别慌
综合完成之后,软件会给出拓扑图。我第一次用椭圆滤波器的时候,看到拓扑里一堆“串联电感+并联电容”和“并联谐振支路”混在一起,还以为是哪里设置错了。其实这就是椭圆滤波器的正常形态:奇数阶椭圆低通从串联电感开始,以串联电感结束,中间夹杂着几个LC串联谐振支路,这些谐振支路的谐振频率正好对应阻带的传输零点。
以这次7阶综合为例,拓扑结构是4个串联电感加3个并联谐振支路,刚好对应3个有限传输零点。你可以在这个页面里看到每个元件的初始值,也可以看到传输零点的位置。我建议你花一分钟把零点的频率记下来,后面调试阻带凹陷位置时用得上。
3.4 分析曲线:读图之外还要读这些数
综合完成后进入Analysis阶段,软件会算出S参数曲线和群延迟曲线。S21曲线在通带内会有等波纹起伏,这正是椭圆滤波器的特征;阻带内可以看到明显的凹陷点,这些凹陷点的频率就是前面提到的传输零点。
除了肉眼看曲线,我还会专门看几组数值:通带内的最大插入损耗、阻带内的最小抑制、以及带内回波损耗。FilterSolutions在分析结果里会直接给出这些数据,不用自己去曲线上慢慢找。如果回波损耗在带内某段变差,多半是源端阻抗或者负载阻抗跟设计值有偏差,先检查Z0设置。
4. 元件值定标与选型:从理想值到能上板的元件
4.1 理解定标公式:软件算完你也得会算
虽然FilterSolutions已经把元件值自动算好了,我还是建议你花三分钟理解背后的定标逻辑,这样才具备反向验证的能力。归一化低通原型里,频率定标和阻抗定标分两步走:电感值乘以R0/(2πfp),电容值除以(2πfp·R0)。R0是系统阻抗,fp是通带截止频率。
以我的100MHz、50Ω设计为例,一个归一化原型电感0.32H,换算过来就是0.32×50/(2π×100e6),算出来大约是25.5nH;一个归一化电容1.24F,换算过来是1.24/(2π×100e6×50),大约是39.5pF。你拿这个公式去核算软件输出的元件值,如果同一个量级的偏差,说明单位制没搞错;如果差出一百倍,赶紧回查设置。
4.2 元件值取舍:标准值、寄生参数与Q值
软件综合出来的是理想值,现实世界里你买不到25.5nH的贴片电感,只能找到27nH或者24nH的标准值。我的做法是先把所有元件值往最接近的E24系列标准值上靠,然后回到FilterSolutions里,把这些实际元件值填进去重新跑一遍分析,看看指标是否还在余量内。这一步相当于一次手工优化。
元器件选型也要格外注意。100MHz这个频段,电感要优先选高Q值的绕线电感或者空心线圈,叠层电感虽然便宜但Q值通常不够,通带插损会明显变大。电容优先选C0G/NP0材质,别用X7R——X7R在100MHz以上容量会明显下跌,而且偏压特性差,信号幅度变化都会导致容量漂移。
下面是我这次设计综合出来的元件值量级,以及我最终选用的标准值方案:
| 元件 | 综合理想值 | 选用标准值 | 说明 |
|---|---|---|---|
| L1(串联) | 约26 nH | 27 nH | E24系列 |
| 支路1电容 | 约39 pF | 39 pF | C0G |
| 支路1电感 | 约52 nH | 51 nH | 绕线式 |
| L2(串联) | 约84 nH | 82 nH | 绕线式 |
| 支路2电容 | 约53 pF | 56 pF | C0G |
| 支路2电感 | 约36 nH | 36 nH | 绕线式 |
| 其他元件 | 按对称关系对应 | 与前面相同 | 7阶拓扑对称 |
4.3 量级快速复核:别让软件背锅
在把元件值交给Layout之前,我会再做一次量级估算,防止软件设置或单位制错误导致整套元件值偏离正常范围。方法很简单:取滤波器里最靠前的一段LC,估算一下它的截止频率大致在哪里。单个LC节的特征频率大概是1/(2π√(LC)),把前面L1和支路1电容代入,算出来应该落在100MHz附近,如果差太多就要回头检查。
举个例子,L1取27nH、第一个并联支路等效电容约39pF,1/(2π√(27e-9×39e-12))算下来大约在155MHz。注意这里只是粗略检查,不是精确计算,因为梯形网络各节之间互相影响,特征频率不会刚好等于截止频率。但量级能对上,说明综合结果可信;如果算出来是1.5GHz或者15MHz,那一定有问题。
5. 仿真验证与优化:别让出厂设置背锅
5.1 理想参数仿真与群延迟检查
拿到FilterSolutions的分析曲线,第一件事是确认S21曲线是否满足四条指标:通带纹波是否小于0.1dB、阻带在125MHz之后是否小于-60dB、通带回波损耗是否足够。如果这些都满足,再去看群延迟曲线。
群延迟是椭圆滤波器最容易被人忽略的短板。因为通带边缘的相位变化剧烈,群延迟会在靠近截止频率的地方拱起一个明显的峰。如果接收机对相位失真敏感,比如是相干解调系统,这个峰可能直接让误码率恶化。我这次的应用是ADC抗混叠,对群延迟不敏感,所以只做了确认没有深究。如果你的系统对相位有要求,要么放宽过渡带要求,要么改用自均衡椭圆滤波器。
5.2 容差分析:哪些元件碰不得
FilterSolutions自带了Tolerance Analysis功能,可以设置每个元件的误差范围做蒙特卡洛分析。这一步很多人会跳过,我强烈建议别省。7阶椭圆滤波器对元件偏差的敏感度并不均匀,有些元件偏差3%都无所谓,有些元件偏2%就直接踩线。
我这次跑了一遍±2%的容差分析,结果最敏感的是靠近输入端的第一个谐振支路。它的电感和电容只要偏了2%,阻带第一个凹陷点的深度就会从-70dB恶化到-55dB。这意味着这个支路的元件必须选1%精度,其他支路用5%的常规精度也能接受。这个信息对控制物料成本非常有价值。
5.3 导出到电路仿真器做后仿真
FilterSolutions可以导出Spice格式网表,或者直接生成Ansys的电路原理图,也可以把S参数文件导出来给其他工具用。我的习惯是导出一份Spice网表到LTspice里,把理想元件替换成带寄生参数的厂商模型,再做一次“后仿真”。这一步能提前暴露很多问题:电感自谐振频率够不够高、电容的等效串联电阻会不会压低Q值、走线寄生电感会不会让阻带出现异常。
以这次的电感为例,27nH绕线电感的自谐振频率一般在600MHz以上,远高于我们的工作频段,问题不大。但如果换成47nH甚至更大的电感,自谐振频率可能掉到300MHz附近,这时候滤波器的阻带特性就会走样。选型前先查一下厂商给出的SRF参数,这个习惯能避免不少返工。
6. 实测与调试实录:那些软件里看不出来的坑
6.1 通带纹波变大:先怀疑电感Q值
样板打出来上矢网实测,S21曲线在通带内的波动比仿真明显大了一圈。第一个怀疑对象就是电感Q值。FilterSolutions综合用的理想元件是无损的,实际电感在100MHz的Q值可能只有40到60,这个损耗会折到通带纹波上,让原本0.1dB的纹波变成0.2dB甚至更多。
解决办法有两个方向:一是换更高Q值的电感,比如线径更粗的绕线电感或者空心线圈;二是在FilterSolutions里把损耗模型加进去重跑仿真,让设计阶段就留出纹波余量。我后面重新设计时会在元件模型里给电感加上等效串联电阻,这样仿真结果跟实测能对上七八成。
6.2 阻带抑制不足:谐振支路失谐是头号嫌疑
阻带抑制不够是最让人头疼的症状。排查思路要先看S21在三个传输零点频率上是否还有明显的凹陷。如果凹陷还在,但深度不够,说明谐振支路的Q值不足,信号没有被完全短路到地;如果凹陷完全没有,说明谐振支路严重失谐,先检查元件是不是焊错位置或者焊反了。
还有一种情况是凹陷深度够,但两个凹陷之间的“鼓包”超出了指标线。这种问题多半不是谐振支路本身的问题,而是输入输出之间的空间耦合。信号从输入端直接窜到输出端,绕过滤波器走了一条“空中走廊”。解决办法是在输入端和输出端之间加一道接地屏蔽墙,或者调整PCB布局拉开两端的距离,也可以在滤波器外围加一圈接地过孔把它围起来。
6.3 实测曲线和仿真对不上:从寄生参数找原因
实测与仿真不一致,很多人第一反应是软件不准,但大多数时候问题出在PCB寄生参数上。贴片元件的焊盘对地有寄生电容,走线有串联电感,过孔也有寄生电感和电容,这些在高频下都会改变滤波器的响应。
我的做法是在后仿真里给每个元件脚上串联一个0.5nH的寄生电感,然后再看曲线,通常就能和实测对上。如果还不够,把地平面的过孔间距、滤波器的铺铜面积这些Layout参数也纳入考虑。这一套做下来,你的FilterSolutions仿真就从“理想状态”逼近到“贴地气”的状态了,后续调试也会快很多。
6.4 常见问题速查表
| 现象 | 可能原因 | 排查与对策 |
|---|---|---|
| 通带纹波比仿真大 | 电感Q值不足、PCB寄生电容 | 换高Q电感、缩短走线、后仿真加寄生参数 |
| 阻带抑制不够且凹陷浅 | 谐振支路Q值低或失谐 | 检查谐振点、确认元件值、选用低ESR电容 |
| 阻带出现异常隆起 | 输入输出空间耦合、地不完整 | 加屏蔽墙、拉大输入输出距离、补齐接地过孔 |
| 截止频率整体偏低 | 元件值偏大或单位制错误 | 复核元件定标、确认软件单位设置 |
| 带内回波损耗差 | 阻抗不匹配、元件值偏差 | 确认50Ω链路、检查最敏感元件精度 |
7. 收尾前再聊两句:让流程变成你手里的工具
最后分享一个我个人的习惯:不管FilterSolutions综合出来多漂亮,我都会把元件值按最接近的标准系列选一遍,再倒回去让软件用实际值重新优化一轮。这一步看起来多花了十几分钟,实际上是最值得花的时间,尤其对7阶椭圆这种本来就对元件偏差敏感的滤波器来说,提前做一步“落地”处理,后面打样和调试的摩擦会小很多。
还有一个经验:第一次用椭圆滤波器时,别一上来就追求极限指标。把过渡带放宽10%设计一版,打样测通,再逐步收紧,这样既能看到理论曲线和实测差异的规律,也能积累元器件选型的感觉。滤波器设计从来不是一次就能成功的活,但有了FilterSolutions这类工具,我们至少可以把试错的周期从几天缩到几小时。这套流程跑完之后,我对那次综合出来的各项数据始终心里有数,后面再遇到同类项目,直接沿用这个套路就行。