做模拟电路设计时,滤波器是绕不开的模块,不管是做信号调理、抗混叠滤波、还是电源纹波抑制,都要用到。但手动算巴特沃斯、切比雪夫这些滤波器的参数真的挺头疼,公式多、算起来容易错。好在Microchip(以前的微芯)出了个免费的工具叫FilterLab,输入几个参数就能自动生成滤波器的电路图、元件参数甚至SPICE仿真文件,非常方便。今天就手把手教大家怎么用FilterLab做滤波器设计。
先说说FilterLab能做什么,它支持设计有源滤波器,用运放搭的那种,阶数支持到8阶,类型包括巴特沃斯(Butterworth,通带最平坦)、切比雪夫I型(Chebyshev,通带等波纹,过渡带更陡)、贝塞尔(Bessel,群时延最平坦,脉冲信号不会失真)、反切比雪夫(Inverse Chebyshev,阻带有波纹)四种常见的响应类型。滤波类型支持低通、高通、带通、带阻四种,基本覆盖了大部分模拟滤波的需求。最新的版本还能直接生成常见运放(比如MCP6022、MCP6004这些Microchip自家的运放)的参考电路,直接用就行。
设计流程其实挺简单的,打开软件之后,第一步选滤波器类型:低通、高通、带通还是带阻,这个根据实际需求来。比如做ADC的抗混叠就选低通,做工频干扰抑制就选带阻(50Hz陷波)。第二步选响应类型,一般用巴特沃斯就够了,对通带平坦度要求高的话巴特沃斯最合适;如果过渡带要陡、允许通带有一点点波纹就选切比雪夫;如果是处理脉冲信号、怕过冲和振铃就选贝塞尔。第三步输入关键参数:通带截止频率(-3dB点的频率)、阻带截止频率、通带纹波(选切比雪夫的话要设,一般0.1dB到1dB)、阻带衰减(一般40dB到60dB足够)。
参数输完之后,软件会自动算出需要的阶数,并给出幅频响应和相频响应的曲线图,你可以直观地看到滤波器的效果。如果觉得阶数太高或者过渡带不够陡,可以回去调整参数重新算,比如把阻带衰减加大、或者把截止频率拉开一点,阶数就会跟着变。满意之后就到了选电路结构的环节,FilterLab提供了几种常见的结构:Sallen-Key结构(压控电压源型,同相输入,输入阻抗高,用得最多)、多重反馈(MFB,反相输入,适合高Q值的情况)、状态变量型(能同时输出低通、高通、带通,灵活但元件多),一般选默认的Sallen-Key就行,结构简单,元件少,稳定性好。
接下来是选运放和生成元件参数。FilterLab会自动选一个推荐的运放,一般是Microchip自家的,但你也可以换成自己常用的型号,比如LM358、OP07、AD822这些,注意运放的增益带宽积(GBW)要够,至少是滤波器截止频率的50到100倍以上,不然高频段增益掉得厉害,滤波器实际效果跟理论差很多。运放选好之后,软件就会生成完整的电路图,每个电阻电容的值都给出来了,电阻一般选E96系列的标准值,电容选E12系列的。软件还贴心地给了元件值的灵敏度分析,告诉你哪个元件的参数变化对滤波器特性影响最大,关键元件选精度高一点的(1%精度的电阻,5%精度的电容),非关键的用普通精度就行。
最后说几个实战中的经验。第一个,仿真完一定要实际搭电路测一下,因为FilterLab用的是理想元件模型,实际元件有寄生参数,PCB走线也有分布电容电感,实际测出来的截止频率可能跟设计值差个10%到20%,可以微调电阻电容来修正。第二个,高阶滤波器一般是由多个二阶或者一阶节级联组成的,每一级的顺序不要随便换,软件给的顺序是优化过的,Q值高的节放在后面,不容易自激振荡。第三个,电源去耦不能省,每个运放的电源脚旁边都要加一个0.1uF的陶瓷电容去耦,不然电源纹波会经过运放耦合到输出,滤波效果就白做了。第四个,如果是做高Q值的窄带滤波器,建议用状态变量结构,稳定性比Sallen-Key好,不容易受元件参数误差的影响。
下一篇:没有了