简介这份《二阶高通滤波器模电课程设计报告》面向电子信息、通信工程等专业的模电课程设计学习者聚焦有源滤波器从理论推导到电路实现的全过程。报告围绕截止频率100Hz、增益2的设计指标分别采用压控电压源与无限增益多路反馈两种方案展开传输函数推导、品质因数与通带增益计算并给出电路设计、参数计算、器件选型及实验结果分析。压缩包内为1个doc文档约164KB结构覆盖设计内容与要求、方案原理、电路参数、结论体会、附录与参考文献篇幅紧凑但模块完整便于直接参考撰写格式与推导思路。目前已有226人学习下载适合需要完成同类二阶高通滤波器设计、对照两种电路方案并整理课程设计报告的学生使用。1. 二阶高通滤波器在模电课程设计里到底要交什么很多同学做模电课程设计拿到“二阶高通滤波器”这个题目就翻开模电笔记抄传递函数最后报告里公式很漂亮实物连截止频率都对不上。真正拉开分数的地方就三件事拓扑为什么选 Sallen-Key、元件值怎么算到能买到、实测的 -3dB 点为什么和仿真差一截。这里按一条完整链路来讲先用二阶高通传递函数定出 R1、R2、C1、C2 和 Q 值再用 LTspice 网表和 Python 扫频各跑一遍幅频特性互相印证接着落到洞洞板焊接、单双电源偏置和示波器扫频的具体操作最后说报告里该放哪些图、答辩会被追问什么。适合模电数电基础刚学完、正在写模电课程设计的同学也适合想把数模电里“滤波器”这一节真正做通的人。2. 从传递函数到元件取值二阶高通滤波器的参数怎么算2.1 为什么二阶高通优先用 Sallen-Key 有源拓扑无源 RC 高通直接级联看起来最省事两级 RC 串起来就有二阶但实际做出来会出问题。第一级的输出电阻和第二级的输入阻抗构成分压后级会把前级的截止频率往前拖两级互相加载理论算出来的 f0 和实际差 20% 以上很常见。更要紧的是无源网络里 Q 值上不去二阶高通想做出巴特沃斯那种平坦通带Q 必须达到 0.707无源 RC 在加载条件下很难精确控制到这个值。再加上无源网络通带增益小于 1输出幅度本来就不够后面还得补一级放大。Sallen-Key 结构正好补这三个短板。它只用一个运放、两个电容、两个电阻运放接成单位增益跟随器同相输入端阻抗极高不会给前级造成负载Q 值由 R2 与 R1 的比值决定调 Q 的时候不用动电容也不改变截止频率的量级参数微调特别适合课程设计这种“算完还要在洞洞板上凑标准值”的场景。同相放大接法也能做但增益一上去 Q 就跟着变调试时多一个变量除非题目明确要求通带增益大于 1否则单位增益跟随是最稳的选择。需要注意 Sallen-Key 的反馈路径是从输出经 R1 回到节点 A再经 C2 到运放同相端这个顺序不能颠倒。把 R1 和 R2 的位置接反传递函数的 Q 值会变成原来的四分之一幅频特性立刻变成过阻尼通带边沿会明显变圆。2.2 二阶高通传递函数、截止频率和 Q 值的对应关系单位增益 Sallen-Key 高通的接法是输入经 C1 到节点 A节点 A 经 C2 到运放同相端同相端经 R2 接地节点 A 经 R1 接输出。对节点 A 和同相端各列一次 KCL消去中间变量 V_A 后得到H(s) s²R1R2C1C2 / [ s²R1R2C1C2 sR1(C1C2) 1 ]取 C1 C2 C把分母整理成标准二阶形式和 H(s) (s/ω0)² / [ (s/ω0)² (1/Q)(s/ω0) 1 ] 逐项对比可以直接读出三组关系ω0 1 / (C·√(R1R2))f0 1 / (2πC·√(R1R2))Q 0.5·√(R2/R1)想得到巴特沃斯响应也就是通带最平坦、边沿没有隆起需要 Q 0.707代入上式就是 R2 2R1。很多模电笔记里写“两个电阻两个电容取值相等”那对应的其实是 Q 0.5 的过阻尼情况-3dB 点并不落在 1/(2πRC) 上报告里如果直接这么写和实测数据会对不上。提示C1 和 C2 不等值时Q 还会受电容比值影响通用表达式里 Q √(C1/C2)·√(R2/R1)/2 这种形式在部分教材里出现但课程设计用等值电容最省事调 Q 只改电阻比就够了。想调 Q 又不改截止频率就同比例改 R1 和 R2 的比值想调 f0 又不改 Q就把 R1、R2 同时乘一个系数。这是后面实测修正的主要手段。2.3 选定截止频率和元件值从算出来的数到 E24 能买到的电阻2.3.1 电容先定、电阻后配电容可选的标准值比电阻稀疏得多所以顺序是先定电容再算电阻最后往 E24 系列归一化。下面这段脚本按目标截止频率 1kHz、电容 10nF、巴特沃斯 Q 0.707 反算两个电阻import numpy as np f0_target 1000.0 # 目标截止频率单位 Hz C 10e-9 # 先定电容10nF 的 C0G 电容容易买到 w0 2 * np.pi * f0_target # 巴特沃斯要求 R2 2*R1此时 sqrt(R1*R2) R1*sqrt(2) R1 1 / (w0 * C * np.sqrt(2)) R2 2 * R1 print(R1 %.1f Ω, R2 %.1f Ω % (R1, R2)) # 往 E24 系列靠取 11k / 22k 后回算实际参数 R1_std, R2_std 11e3, 22e3 f0_real 1 / (2 * np.pi * C * np.sqrt(R1_std * R2_std)) Q_real 0.5 * np.sqrt(R2_std / R1_std) print(实际 f0 %.1f Hz, Q %.3f % (f0_real, Q_real))这段脚本里w0是角频率R1由 1/(ω0·C·√2) 得到是因为 R2 2R1 时 √(R1R2) R1√2。把 R1 改成 11k、R2 改成 22k 之后实际 f0 回到 1.02kHz 附近Q 仍然是 0.707误差在电容容差范围内可以接受。如果题目要求 10kHz同样保持 C 10nF把 R1、R2 同时缩小十倍左右即可取 1.1k 和 2.2k。2.3.2 一张可以直接抄进报告的元件表元件取值建议精度电路中的位置C110 nF±2% C0G/NP0输入端到节点 AC210 nF±2% C0G/NP0节点 A 到运放同相端R111 kΩ±1% 金属膜节点 A 到输出构成反馈R222 kΩ±1% 金属膜运放同相端到地运放通用双运放—单位增益跟随单电源时需偏置电容尽量别用 Y5V容值随温度和直流偏压漂得厉害10nF 标称可能实测只有 6~7nF直接导致截止频率偏高。C0G 或 NP0 温度系数在 ±30ppm/℃ 以内课程设计里贵不了多少但省掉一轮返工。3. 用 LTspice 和 Python 把二阶高通滤波器的幅频特性跑出来3.1 单位增益 Sallen-Key 高通的 LTspice 最小网表仿真先用理想压控电压源代替运放把电路本征响应和器件非理想因素分开看。下面这个网表可以直接存成.cir文件跑交流扫描* Sallen-Key 二阶高通滤波器理想跟随器 AC 扫描 V1 in 0 AC 1 C1 in n1 10n C2 n1 n2 10n R1 n1 out 11k R2 n2 0 22k E1 out 0 n2 0 1 ; 理想单位增益缓冲增益1 .ac dec 200 100 20k ; 100Hz~20kHz每十倍频程 200 点 .meas AC f_3dB WHEN mag(V(out))0.7071 .endV1的AC 1表示交流幅值 1V后面测出来的mag(V(out))就是电压增益。E1是压控电压源增益设 1把同相端电压复制到输出等价于理想运放跟随器。.ac dec 200 100 20k表示按对数频率扫描起点 100Hz终点 20kHz每十倍频程 200 个点这个密度足以把过渡带画平滑。.meas那句会在日志里直接给出 -3dB 频率预期落在 1.0kHz 附近。如果要把运放换成真实模型把E1那一行删掉换成对应运放的子电路调用并补上正负电源。用 TL072、NE5532 这类课程设计常见型号时增益带宽积和压摆率在 1kHz 量级完全够用不会明显影响 -3dB 点但电源脚一定要接只放一级运放符号不接供电是仿真不收敛的常见原因。注意LTspice 里元件值写10n是 10nF写成10m是 10mF单位差六个数量级网表里大小写不敏感但单位符号必须写对。3.2 用 Python 复现同一个传递函数和仿真互相印证LTspice 跑完之后用 Python 把同一个传递函数再算一遍两条曲线叠在一起看如果完全重合说明电路连接没接错后面实测偏差就只剩器件容差和运放非理想因素。import numpy as np import matplotlib.pyplot as plt R1, R2 11e3, 22e3 # 与网表保持一致 C1, C2 10e-9, 10e-9 f np.logspace(1, 4.3, 800) # 10Hz ~ 20kHz s 1j * 2 * np.pi * f # H(s) s^2 R1 R2 C1 C2 / [ s^2 R1 R2 C1 C2 s R1 (C1C2) 1 ] num s**2 * R1 * R2 * C1 * C2 den s**2 * R1 * R2 * C1 * C2 s * R1 * (C1 C2) 1 H num / den mag_db 20 * np.log10(np.abs(H)) idx np.argmin(np.abs(mag_db 3)) # 定位 -3dB 点 print(理论 -3dB 频率 %.1f Hz % f[idx]) print(低频 100Hz 增益 %.1f dB % mag_db[np.argmin(np.abs(f - 100))]) plt.semilogx(f, mag_db) plt.axhline(-3, colorr, linestyle--, label-3 dB) plt.axvline(f[idx], colorg, linestyle:, label%.0f Hz % f[idx]) plt.xlabel(Frequency / Hz) plt.ylabel(Gain / dB) plt.grid(whichboth, alpha0.4) plt.legend() plt.savefig(hpf_bode.png, dpi150)num和den一一对应 2.2 节推导出的传递函数np.logspace保证横轴是对数分布画出来才是标准波特图。mag_db用 20log10 取分贝idx那行是在所有频点里找离 -3dB 最近的一个输出频率就是理论截止频率。低频段 100Hz 的增益应该是明显的负值因为高通在截止频率以下每十倍频程衰减约 40dB这也是判断滤波器阶数的直观依据。3.3 仿真结果对不上时按这个顺序排查现象常见原因检查方法低频增益不是负几十 dB电容接成了电阻高通变低通核对 C1、C2 是否在信号通路串联-3dB 点比理论高很多电容实际容值偏小或 R2/R1 接反用万用表电容档实测重算 Q曲线整体抬升不衰减缓冲器接成了正反馈检查 E 源控制端是否接到同相端高频段翘起没加电源去耦或运放模型引脚接错仿真加理想电源并在电源脚并 0.1µF先把理想电路跑通再换运放模型这一步能让调试麻烦少一半。4. 从仿真到洞洞板二阶高通滤波器的实测与调试4.1 单电源和双电源的偏置差别双电源供电最简单正负对称给运放输入和输出都能直接耦合不需要额外偏置。单电源就必须在同相端叠一个 Vcc/2 的直流偏置否则运放只能放大半个周期输出会被削平。常见做法是用两个等值电阻分压得到 Vcc/2经过一个 10µF 电解电容滤掉电源噪声再接入 R2 的下端。输入输出都要串隔直电容否则前级和后级的直流工作点会互相干扰。隔直电容的取值不能让高通截止频率漂移太多一般取 10 倍于 C1 的容值保证它带来的附加高通转折点至少低于 f0 一个数量级。供电方式是否需要偏置耦合方式适用场景±5V 双电源不需要直接耦合实验室台式电源5V 单电源需要 Vcc/2输入输出均隔直单节电池或 USB 供电±12V 双电源不需要直接耦合通用运放展示最佳动态范围4.2 用信号发生器和示波器扫出 -3dB 点接线顺序是信号发生器输出接滤波器输入示波器探头接输出输入端的峰峰值也同时用第二通道监视。整个扫频过程按下面几步走信号发生器设 1kHz 正弦幅度调到 1Vpp先确认输出没有明显失真。从 100Hz 开始往下扫到 10kHz每个频点记录输出峰峰值输入幅度保持 1Vpp 不变。找到输出等于 0.707Vpp 的频率点就是实测 -3dB 频率。在 1kHz 附近加密取点间隔 50Hz 到 100Hz方便定位。示波器探头用 10x 档1x 档探头几十皮法的寄生电容会在高频段把输出拉低看起来像是滤波器高频增益下降。如果实测曲线整个比仿真低几 dB先查探头衰减比设置再查信号发生器输出阻抗是不是 50Ω。4.3 实测偏离理论值时的修正方法先记一周数据对照理论值找方向实测 f0 相对理论判断修正手段偏高 10% 以上电容实际容值偏小或电阻偏小找出偏差最大的那只电容并联小电容凑偏低 10% 以上电容偏大或运放输入电容不可忽略换容值更准的 C0G或缩小 R1、R2Q 明显偏小、通带发圆R2/R1 比值不足 2R2 换大一档或 R1 换小一档高频段掉落运放带宽不够或探头负载过重换增益带宽积更高的运放改用 10x 探头调整时优先动电阻电容一旦焊上洞洞板再拆容易把焊盘带下来。保持 C1 C2 不变只改 R1、R2 比值就能把 Q 拉回 0.707R1、R2 同时缩小同一个比例就能把 f0 往上推。5. 报告排版、图表规范和答辩追问的准备报告里的图不是越多越好但这四张缺一不可标注全部元件值的电路原理图、仿真波特图和实测数据叠在同一坐标系里的对比图、实测数据表、实物照片。对比图横轴必须用对数坐标纵轴每格 10dB-3dB 点用虚线标出来并写字注明频率老师一眼就能看出你有没有真做出高通特性。实测数据表至少覆盖 100Hz、300Hz、700Hz、1kHz、1.5kHz、3kHz、10kHz 七个点每个点记录输入幅度和输出幅度再换算成 dB。答辩被问得最多的是三个问题。第一个是“Q 值为什么取 0.707”回答要点是巴特沃斯响应在通带内最平坦、没有峰值隆起对应 R2 2R1如果取等值电阻就是 Q 0.5-3dB 点会偏到 f0 以上。第二个是“为什么不用无源 RC 级联”回答要点是级间加载、Q 值做不上去、通带增益小于 1。第三个是“单电源怎么保证输出不削顶”回答要点是同相端叠 Vcc/2 偏置、输入输出隔直、偏置点用电容滤波。想临时微调截止频率又不想拆电容可以用下面这段脚本快速试算import numpy as np C 10e-9 for R1 in [8.2e3, 9.1e3, 10e3, 11e3, 12e3, 13e3]: R2 2 * R1 f0 1 / (2 * np.pi * C * np.sqrt(R1 * R2)) print(R1%.1fk, R2%.1fk - f0%.0f Hz % (R1/1e3, R2/1e3, f0))改 R1 的同时 R2 保持两倍关系Q 始终是 0.707切换的只是截止频率。报告定稿前把这一组候选值列在附录里老师看到你考虑过标准值归一化比只给一个理论值更有说服力。本文还有配套的精品资源点击获取