很多做射频前端的人都有过这种体验:单做一路带通滤波器,仿真指标漂漂亮亮,插损、回波、带外抑制样样合格。可一旦把三路滤波器接到同一个端口上,准备做成微带三工器,问题就全来了——回波损耗从 -25 dB 恶化的 -8 dB,三个通道的中心频率互相拉扯,调好了通道 A,通道 B 和 C 又跑偏了。
问题往往不在单个滤波器上,而在那个把所有通道汇合在一起的“公共端”。
微带三工器本质上是把一个宽带射频信号按照频段分成三路的无源器件,在通信基站、多频收发前端、软件无线电和测试仪表里非常常见。很多人以为它就是把三个带通滤波器并联到同一个 T 型结上,仿真完才发现完全不是这么简单。本文从工程实现角度讲清楚微带三工器仿真设计的完整链路:指标怎么拆、滤波通道怎么定、仿真工具怎么配合、三通道怎么合并优化、结果怎么验证,以及那些真正容易踩坑的细节。
如果你正准备做多频段射频前端,或者正在调一个“怎么也调不通”的三工器,这篇文章值得读完。
1. 微带三工器:先把目标场景讲清楚
1.1 三工器在射频前端中做什么
接收天线下来的信号往往是宽带或者多频段的,三工器的任务就是把这一段宽的频带按频段“分拣”成三路,分别送到不同的收发链路里。举例来说,一个同时覆盖 2.4 GHz、3.5 GHz、5.8 GHz 三个频段的无线设备,天线端只需要一根馈线,经过三工器后就能拆分出三条独立的信号通路。
和双工器相比,三工器并非简单多一路的问题。双工器只有一条分界频率,设计时主要处理隔离和一个交叉点;三工器有两个分界频率、三个通带,公共端的阻抗条件会同时受三条支路影响,调试维度明显增加。工程中还有四工器、五工器,但它们的核心难点在三工器阶段就已经完整暴露了。
1.2 为什么微带实现是工程首选
三工器可以用腔体、介质谐振器、波导来实现,但微带结构是目前最普遍的一种选择。原因很直接:微带线可以直接用 PCB 工艺加工,平面结构,成本低,体积可控,而且容易和其他微带电路集成在同一块板上。
微带三工器的设计难点主要体现在三个方面:一是微带线本身的损耗比腔体大,通带插损要提前留余量;二是微带结构在 T 型结处会有明显的不连续效应,高频时尤其明显;三是微带电路的谐振频率受介质介电常数和加工精度影响大,仿真和实测之间常常存在偏移。这些特点决定了微带三工器不能只靠“原理正确”,必须经过完整的全波仿真设计闭环。
1.3 三工器设计真正的难点
回到开头的问题:为什么三个单独合格的滤波器并到一起就调不通?
因为三工器的工作方式不是简单的“并联”。理想的并联要求每个滤波器在另外两个通道频段内呈现近似开路的高阻状态,此时三路互不影响。但实际滤波器带外阻抗并不是理想开路,而是呈现出感性或容性的复数阻抗。三路复数阻抗在公共端叠加后,会导致公共端的等效阻抗偏离 50 欧姆,于是回波损耗恶化、通带变形、通道之间互相影响。
所以微带三工器仿真设计的真正核心,不是把三个滤波器做好,而是处理“公共端匹配”和“支路间隔离”这两个问题。这也是全文始终围绕的主线。
2. 核心概念:S参数、隔离度与公共端匹配
2.1 衡量三工器的关键指标
三工器在仿真软件里通常被建模为一个四端口网络:一个公共端(天线端)加三个通道输出端。最常见的评价指标是 S 参数,先明确每个人的含义:
| 指标 | 定义 | 工程参考 |
|---|---|---|
| 回波损耗 S11 | 公共端口反射功率的大小,体现全频段匹配质量 | 通带内通常要求 < -15 dB |
| 插入损耗 S21 / S31 / S41 | 公共端到各通道的传输损耗,即每个通带信号能过去多少 | 通常要求 < 1.5~3 dB,视应用而定 |
| 通道隔离度 S23 / S24 / S34 | 一个通道泄漏到另一个通道的信号水平 | 一般要求 < -20 dB |
| 带外抑制 | 某通道对其它频段信号的抑制能力 | 通常要求 > -30 dB,视系统要求 |
一个容易忽略的点是:三工器的隔离度不仅仅取决于滤波器本身的带外抑制,还包括公共端到各支路的耦合路径。即便滤波器带外抑制很好,如果 PCB 布局上两支路空间距离太近,仍然会产生空间耦合导致隔离度恶化。
2.2 三工器为什么不能简单并联
很多教材会画一个图:三个带通滤波器直接接在同一个节点上,看起来原理上没问题。工程中这样做的结果是:匹配很差。
原因有两层。第一层是“带外阻抗”问题。理想滤波器在带外是开路,但实际带通滤波器的带外输入阻抗并不可控,可能是几十欧姆的实部加一个很大的电抗。三路电抗并联后,公共端阻抗会偏离 50 欧姆相当远。第二层是“不连续”问题。三条微带线汇聚到一个 T 型结,结区的电流分布和电场分布都不均匀,这本身就是一个寄生电抗源,频率越高越明显。
所以实际设计时,公共端通常要加一小段匹配线或者 T 型枝节,把三条支路的合成阻抗“拉”回 50 欧姆附近。这段匹配线不是可有可无的装饰,它是决定三工器能否同时满足回波、插损和带宽的关键部件。
2.3 常用滤波器结构与选择
微带三工器里每个通道本质是一个带通滤波器,常见实现结构有几种:
| 结构 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 平行耦合线 | 结构直观、设计公式成熟、适合教学和初版设计 | 尺寸较大,分支多 | 频率不高、尺寸不敏感的场景 |
| 发夹型(Hairpin) | 由平行耦合线折叠而来,体积减小 | 设计时需要调整折叠段耦合 | 中低频段、对尺寸有要求 |
| 阶跃阻抗谐振器(SIR) | 谐波位置可控,有利于带外抑制设计 | 设计参数较多,初值计算繁琐 | 需要抑制谐波或宽带场景 |
| 交指型 | 结构紧凑、陡峭度高 | 建模复杂,互耦分析难度大 | 体积敏感、性能要求高 |
对于第一次做三工器仿真,平行耦合线带通滤波器是最容易跑通全流程的选择。本文后续的单通道设计也以它为例。
这里可以顺便消除一个误区:很多人会把“三工器仿真”直接等同于“滤波器仿真”。两者有关联但侧重点完全不同。滤波器设计关注的是单个通带的带内特性;三工器设计关注的是多通带共存时的端口匹配和通道隔离。如果一开始只盯着单通道滤波器指标,合并时很容易陷入反复返工。
3. 指标拆解与方案选型
3.1 一个可执行的设计指标示例
为了让设计流程具体化,这里给出一组示例指标。实际项目中的频段和指标可能不同,但拆解方法是通用的:
| 参数 | 通道 1 | 通道 2 | 通道 3 |
|---|---|---|---|
| 中心频率 | 2.45 GHz | 3.50 GHz | 5.20 GHz |
| 带宽范围 | 2.40~2.50 GHz | 3.40~3.60 GHz | 5.10~5.30 GHz |
| 分数带宽 | 约 4.1% | 约 5.7% | 约 3.8% |
| 插入损耗目标 | < 2.5 dB | < 2.5 dB | < 3.0 dB |
| 回波损耗 | < -15 dB | < -15 dB | < -15 dB |
| 通道隔离 | < -20 dB | < -20 dB | < -20 dB |
单看每个频段的带宽跨度不大,属于窄带到中等带宽的滤波器。这类指标用平行耦合线结构很容易实现。如果分数带宽大于 20%,平行耦合线做起来会很吃力,那时需要换成宽带多谐振器结构。所以设计三工器,第一步不是打开软件建模,而是先把指标拆开,判断每路滤波器的可实现性。
3.2 根据指标选滤波器类型
在指标确定后,滤波器类型的选择主要看两个因素:目标分数带宽和可接受的尺寸。
分数带宽在 2%~15% 之间时,平行耦合线带通滤波器和发夹型滤波器都是合理选择。其中发夹型因为把四分之一波长线折叠起来,体积通常更小,但折叠段之间存在附加耦合,初版仿真时需要微调。如果项目对带外抑制有很高的要求,例如要求 2 倍频处抑制大于 40 dB,可以考虑 SIR 结构,因为它可以通过调整阻抗比把寄生通带推到更高频段。
对于三通道整体方案,另一个设计决策是:三个通道是否用同一类滤波器结构。从加工便利性来看,建议三路采用相同结构,只是尺寸缩放;从性能最优来看,如果某个通道带宽特别窄,单用平行耦合线可能阶数过高,该通道可以单独选其他结构。但作为工程习惯,尽量保持结构统一,便于批量仿真和容差分析。
3.3 衬底参数怎么定
微带三工器的一切仿真结果都建立在衬底参数上。需要明确的四个参数是:
- 相对介电常数 εr。
- 介质厚度 h。
- 损耗角正切 tanδ。
- 铜箔厚度 t。
这里以 Rogers RO4003C 这类常用射频板材为例做一个参数示意:εr 约为 3.5~3.7,厚度可选 0.508 mm 或 0.813 mm,损耗角正切约 0.002~0.003。注意不同批次、不同频率下的实际值会有差异,更稳妥的做法是使用板材厂商提供的官方模型,或者在样片实测后把 εr 和 tanδ 校准回仿真模型中。
高频段尤其要注意铜箔表面粗糙度的影响。粗糙的铜表面在高频会产生额外导体损耗,仿真时如果不设置粗糙度,估算的插损会偏乐观。从工程经验看,5 GHz 以上的微带滤波器如果忽略粗糙度,仿真和实测的插损误差可能达到 0.3~0.5 dB。
4. 仿真工具如何配合:HFSS、CST 与 ADS
4.1 三种工具的适用边界
微带三工器仿真设计通常离不开全波电磁仿真软件,目前工程中用得最多的是 HFSS 和 CST,辅以 ADS 做快速初设。
HFSS 基于有限元方法,在微波无源器件和天线设计仿真领域非常成熟,特别擅长处理谐振类结构。三工器里的每个带通滤波器都有多个谐振器,HFSS 的自适应网格能比较准确地捕捉谐振频率和耦合系数,因此在做三工器最终验证和优化时,HFSS 是主力工具。
CST 的主求解器基于时域有限积分法,它的优势在于一次宽带扫频就可以覆盖三工器的所有通道和过渡带,适合用来看整个频段内的 S 参数全貌。另外 CST 的 TDR 时域仿真能力在高速连接器设计中常用于定位阻抗突变点,对于三工器来说,也可以用同样的方法观察公共端到各通路的阻抗渐变情况,辅助判断公共端匹配哪里出了问题。
ADS 则属于电路级和版图级工具,计算速度快,适合做滤波器初综合、微带线尺寸换算和拓扑验证。ADS 的不足在于对三维电磁效应、T 型结不连续和空间耦合的建模能力弱于 HFSS/CST,因此它更适合作为“方案设计”工具,而不是最终验证工具。
| 工具 | 求解类型 | 优势 | 典型用途 |
|---|---|---|---|
| ADS | 电路级 / 矩量法 | 速度快,适合初综合和快速优化 | 滤波器和匹配网络初设 |
| HFSS | 有限元 | 精度高,适合谐振结构 | 三工器整体建模和最终验证 |
| CST | 时域积分法 | 宽带扫频快,TDR 分析方便 | 全频段扫描、公共端阻抗定位 |
4.2 推荐设计流程
很多新手一上来就把三工器整体丢进全波仿真里,然后发现参数极多、调参毫无方向。更稳妥的流程是分阶段推进:
第一步,用 ADS 或手算完成每个单通道滤波器的初综合,得到每级微带的物理尺寸初值。第二步,在 HFSS 或 CST 里单独仿真每个通道滤波器,确认单个滤波器在工作频段内的插损、回波和带外抑制达标。第三步,把三个通道和 T 型结拼成三工器整体结构做全波仿真,此时主要看公共端匹配和各通道隔离。第四步,做参数扫描和协同优化,把公共端匹配枝节、各支路相位长度作为主要优化变量。
这个流程的核心原则是:先保证每个模块独立合格,再进入系统集成。直接跳到整体仿真,失败后往往说不清是滤波器本身的问题还是公共端的问题。
5. 单通道设计:微带线尺寸计算与滤波器初设
5.1 用 MATLAB 计算微带线线宽
微带三工器里所有传输线和滤波器的谐振器,本质上都是从 50 欧姆微带线的宽度出发进行尺寸换算。计算微带线宽度可以使用经典的 Hammerstad 近似公式。下面这段 MATLAB 脚本可以直接运行,输入介质参数和目标阻抗,输出对应的线宽。
% 文件路径:calc_microstrip_width.m % 功能:根据介质参数和特征阻抗计算微带线宽度 % 运行环境:MATLAB R2016b+ 或 Octave 5.0+ clear; clc; Er = 3.66; % 相对介电常数(示例值,请按实际板材修改) h = 0.508; % 介质厚度,单位 mm t = 0.017; % 铜箔厚度,单位 mm(仅作为参考,宽度计算暂未计入修正) Z0 = 50; % 目标特征阻抗,单位 Ohm % 用 fzero 求解 W/h fun = @(Wh) microstrip_z(Wh, Er) - Z0; Wh = fzero(fun, 1.0); W = Wh * h; fprintf('目标阻抗 = %.1f Ohm\n', Z0); fprintf('介质厚度 = %.3f mm\n', h); fprintf('50欧姆微带线宽 W = %.3f mm\n', W); function Z = microstrip_z(Wh, Er) % 有效介电常数近似 Eff = (Er + 1) / 2 + (Er - 1) / 2 / sqrt(1 + 12 / Wh); if Wh < 2 Z = 60 / sqrt(Eff) * log(8 / Wh + Wh / 4); else Z = 120 * pi / (sqrt(Eff) * (Wh + 1.393 + 0.667 * log(Wh + 1.444))); end end这段代码的关键逻辑是:先给出一个 W/h 的初始猜测,通过 fzero 寻找使特征阻抗等于 50 欧姆的 W/h 值,最后乘以介质厚度得到线宽。运行结果会直接打印 50 欧姆微带线对应的宽度,这是后续设计中的基础尺寸。
实际工程中还需要考虑线宽修正系数(例如铜厚、频率色散等),但作为初算和方案评估,上述精度已经足够。在 HFSS 或 ADS 里建模时,可以用内置的微带线计算器对这个值做二次确认。
5.2 平行耦合线带通滤波器参数计算
平行耦合线带通滤波器是微带三工器中常见的单通道结构。设计步骤可以分成四步:确定滤波器阶数和纹波、计算切比雪夫低通原型 g 值、计算导纳变换器参数、换算成每段耦合线的奇偶模阻抗。
下面这段 MATLAB 脚本示意了前三步的核心计算:
% 文件路径:parallel_coupled_bpf.m % 功能:平行耦合线带通滤波器初综合(J 变换器法) % 运行环境:MATLAB R2016b+ 或 Octave 5.0+ clear; clc; f0 = 2.45e9; % 中心频率 Hz(示例:2.45 GHz 通道) FBW = 0.04; % 分数带宽(示例:4%) n = 3; % 滤波器阶数 ripple = 0.1; % 切比雪夫纹波 dB Z0 = 50; % 端口阻抗 % 第 1 步:计算切比雪夫低通原型 g 值 g = cheb_g(n, ripple); % 第 2 步:计算导纳变换器 J/Y0 JY0 = zeros(1, n+1); JY0(1) = sqrt(pi * FBW / (2 * g(1) * g(2))); for k = 2:n JY0(k) = pi * FBW / (2 * sqrt(g(k) * g(k+1))); end JY0(n+1) = sqrt(pi * FBW / (2 * g(n) * g(n+1))); % 第 3 步:换算奇偶模阻抗 Z0e = Z0 * (1 + JY0 + JY0.^2); Z0o = Z0 * (1 - JY0 + JY0.^2); % 输出结果 fprintf('g 值:'); fprintf('%.4f ', g); fprintf('\nJ/Y0:'); fprintf('%.4f ', JY0); fprintf('\nZ0e :'); fprintf('%.2f ', Z0e); fprintf('\nZ0o :'); fprintf('%.2f ', Z0o); fprintf('\n'); function g = cheb_g(n, ripple) % 切比雪夫低通原型元件值 beta = log(coth(ripple / 17.37)); gamma = sinh(beta / (2 * n)); g = zeros(1, n + 1); g(1) = 1; for k = 1:n a = sin((2*k - 1) * pi / (2*n)); if k == 1 g(2) = 2 * a / gamma; else a_prev = sin((2*(k-1) - 1) * pi / (2*n)); b_prev = gamma^2 + sin((k-1) * pi / n)^2; g(k+1) = 4 * a_prev * a / (b_prev * g(k)); end end if mod(n, 2) == 0 g(n+1) = coth(beta / 4)^2; else g(n+1) = 1; end end运行这段脚本后,你会得到三阶平行耦合线带通滤波器对应的四组 Z0e 和 Z0o 数值。下一步是把每个奇偶模阻抗转换成实际的微带线宽和间距,这一步可以使用 ADS 的 LineCalc 工具,或者 HFSS 内置的阻抗计算器来完成。
对三工器来说,每个通道都要重复一次上述综合,只是 f0 和 FBW 换成对应通道的中心频率和带宽。三个通道的滤波器级数不必完全一样,带宽更窄的通道可能阶数更高。
5.3 单通道仿真要验证什么
单通道滤波器在加入三工器整体之前,必须先建立一个独立的仿真工程,验证三件事:
第一,中心频率和带宽是否符合预期。由于微带线存在色散效应和边缘场,理论计算出的谐振器长度通常不会让中心频率正好落在目标值上,需要微调谐振器长度。
第二,带内回波损耗是否达到 -15 dB 以下。这一步主要靠调整输入输出耦合段的间距和位置,也就是耦合系数。
第三,带外抑制是否满足三工器隔离需求。三工器各通道的隔离度不会优于滤波器本身的带外抑制,所以单通道仿真时就要确认在其他两个通道频段内的抑制水平足够低。
建议在单通道仿真的 S 参数曲线旁同时观察群时延响应。群时延在谐振频率附近会出现极值或跳变点,可以帮助你快速定位每个谐振器是否调到了目标频率,这个方法远比只盯 S11 有效。
6. 三工器联合建模与协同优化
6.1 合并顺序:先 T 型结,再逐路接入
三工器的整体模型不建议一次性把三个通道全部拼接上去,而应该分成两步。
第一步,先建模公共端到各通道的微带馈线,也就是把三条支路和 T 型结画出来,三个输出端暂时用端口替代,不做滤波器本体。这一步的目的是单独验证三条支路在三个目标频段内是否能把阻抗条件做好。此时公共端看进去的输入阻抗应该在一个合理的范围内,如果 T 型结本身反射很大,后面接滤波器会更难调。
第二步,把每个通道的滤波器模型接入对应支路。每接入一路,就重新观察公共端回波和已接入通道的插损。这种逐步合并的方式能让你清楚知道性能退化发生在哪一步,避免三路同时接入后无从排查。
6.2 在 HFSS 中建模的脚本思路
HFSS 支持通过 VBScript 脚本实现参数化建模,适合后期做参数扫描和批量优化。下面是一段结构示意代码,用来说明创建介质基板和微带线的核心思路。实际使用中,HFSS 各版本的脚本对象模型存在差异,需要根据你本机版本调整对象调用方式。
' 文件路径:create_triplexer_template.vbs ' 说明:HFSS 脚本结构示意,请根据 HFSS 实际版本调整 API 名称。 Set oHfssApp = CreateObject("AnsoftHfss.HfssScriptInfo") Set oDesktop = oHfssApp.GetAppDesktop() Set oProject = oDesktop.NewProject() Set oDesign = oProject.InsertDesign("HFSS", "Triplexer", "Driven Modal", "") Set oEditor = oDesign.SetActiveEditor("3D Modeler") ' 创建介质基板:宽度为 80mm,长度为 60mm,厚度 0.508mm oEditor.CreateBox Array("NAME:BoxParameters", _ "XPosition:=", "-40mm", _ "YPosition:=", "-30mm", _ "ZPosition:=", "-0.508mm", _ "XSize:=", "80mm", _ "YSize:=", "60mm", _ "ZSize:=", "0.508mm"), _ Array("NAME:Attributes", "Name:=", "Substrate", "SolveInside:=", true) ' 将基板材料设置为 Rogers RO4003C(具体名称以材料库为准) oEditor.ChangeProperty Array("NAME:AllTabs", _ Array("NAME:Geometry3DCmdTab", _ Array("NAME:PropServers", "Substrate:Box"), _ Array("NAME:ChangedProps", _ Array("NAME:Material", "Value:=", "Rogers RO4003C (tm)"))))在实际操作中,更常见的做法是在 HFSS 图形界面里手动建模并设置好参数变量,然后利用 HFSS 自带的参数扫描功能自动生成多组仿真。脚本方式适合需要批量建模或版本化管理的场景,如果你还不熟悉 HFSS 的脚本对象模型,不要急着用脚本取代图形界面,先把手动建模流程跑通,再逐步引入脚本。
6.3 优化目标与参数扫描
三工器的协同优化通常以公共端回波损耗、三个通带插损和隔离度作为目标函数。优化变量一般包括:每个通道馈线的长度和宽度、T 型结匹配枝节的长度