ARTICLE DETAIL

资讯详情

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

Multisim仿真二阶有源带通滤波器:1kHz中心频率Q≈5设计全流程

Multisim仿真二阶有源带通滤波器:1kHz中心频率Q≈5设计全流程 做模拟电路的人都知道Multisim是验证想法最顺手的工具之一。这次的项目目标很明确在Multisim里设计一个中心频率1kHz的二阶有源带通滤波器带宽约200HzQ值做到5左右。带通滤波器在传感器信号提取、音频均衡器、测控系统里太常见了但很多人照着教科书搭电路参数却怎么都对不上。这篇文章我就把从指标计算、电路搭建到性能优化的完整过程放出来适合正在学EDA仿真、准备课程设计或者想搞懂有源滤波器参数关系的工程师。我这次的实现思路不是用很多人熟悉的单运放多重反馈MFB拓扑而是用一阶有源高通加一阶有源低通级联构成二阶带通。这样每一级的截止频率都能独立调整调试时能清晰看到是哪一级出了问题Multisim里改参数也直观非常适合做教学和验证。文章里会给你完整计算公式、仿真设置步骤还有我踩过的几个坑照着做基本不会翻车。1. 把设计指标先定下来1kHz、带宽200Hz、Q≈5动手搭电路前最重要的事情不是找元件而是把指标写清楚。做带通滤波器绕不开三个参数中心频率f0、通带带宽BW、品质因数Q。它们的关系是Q等于中心频率除以带宽所以只要定了f0和BWQ也就定了。我定的指标是f0≈1kHzBW200Hz这样Q≈5。为什么要约等于而不是精确等于因为用两个一阶RC级联做带通几何中心频率和算术中心频率并不完全一致后面我会详细说。先记住这个目标接下来所有计算都围绕它展开。1.1 为什么用一阶高通加一阶低通级联两种常见做法一种是单个运放加两个电容、三个电阻构成MFB带通特点是电路紧凑、Q值可以做高但公式推导相对绕元件参数牵一发动全身初学者很容易把Q和增益调乱。另一种就是我这边的做法一阶高通和一阶低通级联每一级只有一个RC和一个运放缓冲思路简单每一级独立调试级联后就有两个极点和一个零点整体是标准二阶带通响应。有人会问两个一阶级联是不是四阶不是。高通一阶和低通一阶各自贡献一个极点合起来就是二阶。中心频率由两个截止频率的几何平均值决定带宽由两个截止频率的差值决定。这个结构的缺点是高Q情况下元件精度要求高但对于Q在0.5到10这个范围它是一把非常顺手的工具。级联结构的另一个优势是抗负载效应。无源RC直接级联会互相影响前级的输出阻抗会拉低后级的截止频率。但我每一级都用运放接成电压跟随器做缓冲前级输出阻抗极低后级输入阻抗很高两级的RC网络互不干扰。这也是“有源”二字的工程价值。1.2 传递函数与频率参数换算一阶高通的传递函数是高通H(s) s / (s ωL)其中ωL2π·fLfL是高通截止频率。一阶低通的传递函数是低通H(s) ωH / (s ωH)其中ωH2π·fHfH是低通截止频率。两级级联后总的传递函数就是两者相乘。通过推导可以得到两个关键关系式。中心频率f0不是两个截止频率的算术平均而是几何平均f0 sqrt(fL·fH)。带宽BW接近两个截止频率的差值BW ≈ fH - fL。品质因数Q f0 / BW。这解释了为什么我不能简单用900Hz和1100Hz去算f0。如果直接算数平均中心频率是1000Hz但几何平均是sqrt(900×1100)≈995Hz偏差约0.5%。一般应用可以忽略但如果你做的是高精度滤波器这个差异就必须算进去。所以设计顺序是先定fL和fH再验证f0。例如我需要f0≈1kHz、BW≈200Hz可以取fL900Hz、fH1100Hz这样BW200HzQ995/200≈4.97非常接近5。后面所有电阻电容计算都用这两个截止频率。1.3 电阻电容的初步计算一阶RC的截止频率公式是f 1/(2πRC)。我先固定电容因为电容的标称值档位少电阻的档位多优先选电容再算电阻后续调整更灵活。取两个电容都是100nF。高通级有fL 1/(2πR1C1)所以R1 1/(2π×900×100×10^-9)≈1768Ω。低通级有fH 1/(2πR2C2)所以R2 1/(2π×1100×100×10^-9)≈1447Ω。Multisim里可以直接输入1768Ω和1447Ω这种非标称值仿真是为了验证设计不需要受E24系列标准电阻限制。如果你要在实际板子上实现可以选1.8k和1.5k标准电阻但那时实际截止频率会变成884Hz和1061Hz中心频率和Q都会偏离。后面优化环节我会专门讲容差问题。还有一点要注意这里的截止频率指的是-3dB点。两个一阶节在各自截止频率处衰减3dB级联后在中心频率附近总衰减大约5.2dB而不是0dB。这个原因我在1.2的传递函数中算过理想几何对称时总增益≈fH/(fHfL)1100/(1100900)0.55也就是-5.2dB左右。因此最终电路里需要增加一个约5.2dB的增益补偿级我放到第三章做。2. 在Multisim里面把电路搭起来Multisim的界面看起来功能很多但搭这种基础有源滤波器其实只需要少数几个元件。我用的版本是NI Multisim 14以后的版本操作逻辑大致相同。下面按我的搭建步骤讲跟着顺序做不会乱。2.1 元件准备与运放选型需要准备的元件列表如下运算放大器两到三个、电阻若干个、电容两个、直流电源两个、交流信号源一个。运放我选了常用的OP07它属于精密运放失调电压低单位增益稳定在1kHz这个频段绰绰有余。如果你想用LM741也不是不行LM741的增益带宽积约1MHz在1kHz下增益闭环后还有足够余量但性能不如OP07平滑。电源用±12V双电源正负电源各接一个12V直流源公共地接到运放的参考地。注意运放的同相输入端和反相输入端不能悬空尤其是反相输入端必须通过电阻网络建立直流通路。我的电路里每一级运放都是电压跟随器结构输出直接接到反相输入端所以直流工作点很稳定。取用元件的方式是按快捷键或者从菜单“Place→Component”打开元件选择窗口在Group里选AnalogFamily选OPAMP在Component列表里搜OP07双击放置。电阻电容则从Basic组里选RESISTOR和CAPACITOR。Multisim默认的电阻电容模型都带理想属性仿真时不会引入噪声和寄生参数这既是好事也是坏事好处是容易收敛坏处是仿真结果会比实际电路理想所以后面一定要做容差分析。2.2 一级高通模块的实现高通级的具体连接交流信号源的正端接电容C1C1的另一端接运放OP07的同相输入端同时这个节点通过电阻R1接地。运放的输出端直接连接反相输入端也就是单位增益跟随器。信号源负端接地。这个样子就是典型的一阶有源高通低频时C1阻抗高信号被挡住频率越高C1阻抗越低信号越容易通过R1决定高通转折频率。在Multisim里放置完元件后用导线依次连接。连接时小心运放的引脚编号OP07默认引脚布局中同相输入端是3脚反相输入端是2脚输出是6脚7脚接正电源4脚接负电源。很多人仿真失败就是因为电源引脚没接或者接反了。接好后可以先把信号源设成1kHz、1V的正弦波在运放输出端接一个示波器快速看一眼有没有输出。但瞬态看波形只能判断通断不能准确读出截止频率所以后面必须用AC分析。2.3 一级低通模块与级联低通级跟在高通级后面。高通输出电压作为下一级的输入连到电阻R2的一端R2的另一端接第二个OP07的同相输入端同时这个节点通过电容C2接地。第二个运放同样接成跟随器。这构成一阶有源低通低频时C2阻抗很高信号几乎全部落在运放输入端高频时C2把信号旁路到地实现低通。两级之间不需要额外的耦合电容因为双电源工作直流电平就是0V。如果使用单电源中间就必须用电容隔直并给后级设置直流偏置点这个要注意。我的设计全部用双电源简化和避免了很多问题。级联时最好在两级之间留一个测试点方便单独看前级输出。Multisim里可以用标签节点来标记例如把第一级输出命名为HP_OUT第二级输出命名为BP_OUT。这样后续添加探针查看波形时节点名称清晰不用数引脚。2.4 交流扫描分析设置搭好电路后进入“Simulate→Analyses and Simulation→AC Sweep”设置交流扫描。起始频率我习惯设10Hz终止频率设100kHz因为我们要看的1kHz附近以及高低频两侧都包含在内。扫描点数设1000纵坐标类型选Decibel横坐标选Logarithmic这样出来的幅频特性就是教科书里的标准曲线。交流扫描前需要在信号源里设置好频率参数但AC扫描本质是线性小信号分析信号源的幅值通常设为1V方便直接读增益。如果信号源里还有正弦幅值扫描时会自动按线性化处理。点击Run后Multisim会画出幅频曲线和相频曲线。读出中心频率、带宽和增益再和理论值对比。这里有一个很容易忽略的点AC扫描的起点不要设成0.1Hz以下。因为高通级在极低频的增益趋向负无穷曲线虽然能画出来但数值非常大可能影响纵轴范围。设10Hz或100Hz起就够了100Hz距离900Hz还有一段距离能看到完整的低端滚降。3. 看仿真结果调参数优化运行AC扫描后第一眼看到曲线时很多人会愣住中心频率处的增益怎么只有-5.2dB左右这不是电路错了而是级联带通本身就会在中心点产生固定衰减。这个问题我提前做了心理预期所以接下来要做的是读取实际数据然后针对性优化。3.1 第一次扫描结果怎么读在Multisim的AC分析结果图上可以用游标读取任意频率点的增益。把游标拖到最高点附近记录此时的频率和增益。正常的话最高点应该在990Hz到1000Hz之间增益大约-5.2dB。这时再找左侧下降3dB和右侧下降3dB的频率点两者相减就是实际带宽。如果测出来带宽明显偏离200Hz说明元件值输入有误或者某个电容电阻接错位置了。我第一次仿真时最高点落在了980Hz带宽变成了180Hz。检查后发现是低通R2我改成了1.8k导致fH变成了884Hz。每个环节的截止频率变了中心频率必然跟着变。所以在Multisim里要用精确计算值而不是随手取标准阻值。等仿真通过后再考虑实际硬件选型。读带宽时注意3dB点是指增益相对最高点下降3dB的位置不是相对0dB。如果最高点是-5.2dB那么-8.2dB对应的频率才是带边频率。用游标直接读-3dB会找不到正确的带宽。3.2 增益补偿加一级同相放大为了让带通滤波器的通带增益回到0dB左右我需要在输出级增加一个同相放大器增益约为1.82也就是5.2dB。同相放大器的增益公式是Av 1 Rf/Rg。我取Rf8.2kΩ、Rg10kΩ算出来Av1.82正好补齐级联带通的损耗。在Multisim里把第三个OP07接成同相放大电路带通输出接Rg的一端Rg另一端接到反相输入端反相输入端再通过Rf接输出同相输入端直接接带通输出信号。注意这里别把同相和反相接反否则会变成反相放大器相位和增益都会不对。加完补偿级后重新做AC扫描增益曲线最高点应该落在0dB附近。如果实际最高点是-0.3dB也正常因为电阻值不是绝对精确。补偿级除了提升通带增益还让整个电路的输出阻抗更低后面再接负载时不会影响滤波特性。3.3 中心频率与Q值微调如果你对中心频率有严格要求比如必须是1000Hz那就要回头微调fL和fH。因为f0是fL和fH的几何平均想让f0从995Hz升到1000Hz有两个办法一是同时按比例增大fL和fH但这样带宽也会变Q值可能偏移二是固定BW200Hz解方程组f0sqrt(fL·fH)fH-fL200。得到fL≈905HzfH≈1105Hz然后重新算R1和R2。Multisim里改电阻非常快改完重新扫描中心频率很快就能对上。Q值的调整思路也类似。想提高Q就要收窄fL和fH的间隔例如fL950Hz、fH1050Hz那么BW100HzQ≈10。但要注意两个截止频率靠得越近带通曲线越尖锐对元件误差越敏感。仿真里可以用理想值一旦接实际电阻电容偏差会很可观。在实际硬件中不要试图用这个级联结构去做Q20的带通因为电阻电容的温漂和容差会让性能很快劣化。真要做高Q应该改用状态变量滤波器或者开关电容滤波器。仿真阶段随意但工程上心里要有这根弦。3.4 参数扫描与蒙特卡洛分析Multisim里的Parameter Sweep可以让我快速看某个元件对响应的影响。比如我想知道R2变化±5%时中心频率和带宽怎么变就可以把R2设为全局变量或直接在参数扫描里指定元件为R2扫描类型选择Linear起始值设为1375Ω终止值1520Ω步长10Ω。运行后叠加显示所有曲线可以清楚看到频率峰值的移动轨迹。蒙特卡洛分析更有工程意义。Multisim里在元件属性中设置Tolerance比如电阻选1%电容选5%然后在“Simulate→Analyses and Simulation→Monte Carlo”中选择AC Analysis运行200次。结果会显示一系列曲线包络。我用这个方法验证过电阻1%、电容5%时中心频率偏移大概在±20Hz左右通带增益波动约±0.5dB。如果设计要求严格就必须选更高精度的电阻电容或者增加校准环节。蒙特卡洛结果不会自动算出Q的偏差需要自己读取每一次仿真的最高点频率和3dB带宽。建议把数据导出到表格里做统计这是性能优化中非常扎实的一步。4. 性能优化不能忽略的细节仿真能通过不意味着实际电路就一定没问题。Multisim里的理想元件屏蔽了很多真实世界的问题但作为工程师在仿真阶段就该主动把这些问题想清楚。4.1 运放带宽和压摆率的影响OP07的增益带宽积是0.6MHz左右在1kHz带通滤波器里闭环增益最大也就是1.82对应的闭环带宽还有几百kHz远高于我们的工作频段所以OP07没问题。但如果你把中心频率提高到100kHzOP07的增益带宽积就开始吃紧高频段增益会提前滚降带通曲线的右边沿会被“削”下去看起来像Q值降低。选择运放时至少保证增益带宽积大于10倍的f0×闭环增益。对1kHz应用任意单位增益稳定的运放都够。如果做高频带通可以考虑TL081、OPA2134这类GBW高很多的运放。在Multisim里更换运放很简单直接替换元件再重新运行AC扫描对比两种运放下的曲线就能直观看到带宽差异。压摆率影响的是瞬态大信号能力。滤波器在瞬态分析中如果输入是幅值很大的方波或尖峰运放压摆率不足会导致输出上升沿变慢造成瞬态失真。AC分析不反映这个问题建议做一次瞬态分析用1kHz、1V正弦波输入看输出波形是否有明显畸变或过冲。4.2 元件容差如何影响滤波器特性无源RC滤波器最怕的就是容差。电阻和电容的实际值和标称值都有偏差而f0和BW都依赖R×C的乘积两者偏差叠加后中心频率偏移可能超过预期。比如我设计时R11768Ω如果选用5%电容和1%电阻RC乘积偏差最大在6%左右对应中心频率偏移约60Hz。这对200Hz带宽的带通来说等于通带整体移动了三分之一带宽影响非常大。Multisim里可以在元件属性对话框的Tolerance页签中设置容差然后用蒙特卡洛分析评估。我建议把分析重点放在最坏情况电容正偏差同时电阻正偏差或者反过来负偏差看滤波器是否还能满足设计指标。如果不能满足要么选用更低容差的元件要么在调测阶段预留可调电阻。实际电路调测时我会在关键位置使用半可调电位器例如在R1或R2位置串一个固定电阻加一个微调电阻先把仿真值设好焊好后用频率计扫一遍微调电位器把中心频率拉回1000Hz。这个方法虽然老土但在精密滤波电路里非常有效。4.3 电源去耦和布局对实际电路的影响仿真中理想电源的电压是稳定的但实际板子上运放从电源吸取的电流会随信号变化导致电源线上出现纹波。如果电源去耦不好这些纹波会通过运放的电源引脚耦合到输出端在带通响应上表现为额外的毛刺或底部噪声抬高。每个运放的电源引脚应就近放置一个10μF电解电容和一个100nF陶瓷电容电解电容负责低频能量陶瓷电容负责高频旁路。这在Multisim仿真里不一定要加但在画PCB时必须加。如果你的设计准备从Multisim迁移到嘉立创EDA或立创EDA画板请特别注意地平面处理和星型接地。星型接地是指各模块的地线单独回到电源地而不是串成一串再接地。滤波器的模拟地、数字地、功率地如果混在一起很容易引入共地干扰带通性能被噪声拖垮。布局上输入信号路径要尽量短反馈电阻和电容要靠近运放放置。尤其是在高Q带通中任何寄生电容耦合到同相输入端都可能改变截止频率。Multisim虽然没有这些寄生参数但心里要有概念。4.4 仿真速度与仿真设置技巧Multisim运行瞬态分析时如果电路里有大电容或高阻节点仿真步长会被自动缩小导致速度极慢。我建议几件事能用AC扫描就不要用瞬态AC扫描是线性化小信号分析速度飞快如果必须瞬态设置合适的最大时间步长比如看1kHz信号最大步长设20μs就够不要让它自动选到几十纳秒。另外示波器如果连接太多每次电压刷新都会占用计算资源调试完成后先断开不用的探针。对于RLC值特别大或特别小的电路Multisim还会出现不收敛提示。这时可以右键点击运放选择属性把运算速度改到更低准确说应该调整仿真参数中的相对误差容限和绝对误差容限默认值通常够用。如果碰到不收敛我习惯先检查有没有悬空引脚再检查电源是否接反这两类问题占大多数。5. 实操中会遇到的几个坑最后整理一份我这几个月里被反复问到、并且自己踩过的坑。这些问题不影响原理理解但会直接影响仿真结果和实际制作。5.1 中心频率偏了不是设计值最常见的原因是R或C值没按计算值设置。Multisim里元件属性允许直接输入任意数值但还是有人用默认的1k或者随手输入的10k。解决方法是回到计算公式用游标实测中心频率再反推实际R或C是否等于设计值。如果你用的是可调电阻模型还要检查当前设置的百分比我试过把电位器设置为50%后忘了改回100%结果仿真曲线偏了将近一倍。另一个原因是两级RC之间没有加缓冲器或者缓冲器接错导致后级RC加载前级RC。这个级联拓扑里每一级都必须有运放隔离。如果中间直接连起来了fH会受到前级输出电阻影响中心频率自然偏移。5.2 幅频曲线顶部不平或增益不对曲线顶部不平通常有两个来源。一是中心频率处本身有约5dB衰减但你没有补偿顶部看起来凹陷。二是补偿级增益设置太大顶部会被运放增益带宽限制削平尤其在频率较高时。先加补偿级再看曲线如果此时顶部仍然不平可能是补偿电阻Rf和Rg选错或者运放输出摆幅受限。用Multisim的AC分析看增益信号源幅值必须设为1V或明确单位。如果幅值设置成10V增益纵轴还按1V参考解读数值就会差20dB。这是一种非常基础但常见的误读。5.3 Multisim数据库报错或元件找不到很多人在打开Multisim时遇到过“主数据库无法访问”或者“访问数据库发生错误”的提示。这种情况通常不是电路问题而是软件自带的数据库索引损坏或路径指向错误。我的处理步骤是关闭Multisim用管理员身份重新打开如果还报错进入“Options→Global Preferences”检查数据库路径是否存在最后备份好自己创建的元件后修复或重装软件。千万不要直接删除安装目录里的数据库文件。元件找不到时可以试着在搜索框输入完整的型号比如OP07而不是只输OP。有些器件按功能分类存放在不同的Group里如果你找不到某个芯片可以换用等效模型例如UniversalOpamp这种通用运放模型仿真精度足够。5.4 仿真波形异常或速度极慢波形发散的典型原因是电路存在自激振荡。用AC扫描看幅频特性如果某个频率处出现非常大的尖峰说明环路增益或相位裕度有问题。对于单位增益跟随器接法OP07本身是稳定的但如果你把补偿级增益调得过大又接了很大的容性负载就可能振荡。解决方法是降低增益或者增加一个小阻值电阻串在输出端再带电容负载。仿真速度慢的问题我在4.4提过最有效的办法是缩小时间范围。瞬态分析时如果设了1秒的仿真时长而实际要看的只是几千个周期的瞬态那真的非常慢。改为看20ms到50ms就足够1kHz信号也就几十个周期。以上这些坑几乎每一个我都亲手踩过。尤其是数据库报错第一次遇到时我还以为是电路文件损坏后来发现只是索引问题。希望这些记录能让你少走几步弯路。最后再分享一个我的习惯每完成一次仿真我会把元件参数和对应的仿真曲线截图保存下来作为下次调整的参考。Multisim工程文件本身不算大但保存版本很重要因为性能和稳定性优化的每一版我都想对比。这个项目到这里实现了从指标到电路再到验证的完整闭环后面如果你想把Q值做到10以上或者换到其他EDA工具如嘉立创EDA去画板这个级联结构和调参思路都可以继续沿用。
返回列表