简介:面向射频与微波工程师及功率放大器研究者的数字双输入超宽带Doherty功率放大器设计资料包,覆盖从理论分析到ADS版图实现的完整链路。资源以0.7–3.1 GHz频段为实例,提供饱和输出功率43–45 dBm、回退6 dB效率45%–62%等多组参考数据,可直接用于DPA架构验证和性能评估。压缩包共11个文件,包含7个CSV格式的频点仿真/测试数据、3个MATLAB脚本用于理论分析与效率计算,另有1个ADS工程压缩包,便于对照版图与原理进行学习。目前已有635人学习下载,适合正在开展宽带高效PA设计、需要快速上手数字双输入DPA技术的工程师。通过这份资料,可获取多频点性能明细、理论推导脚本及ADS工程文件,帮助理解连续型Doherty设计与回退效率优化思路,缩短从理论到版图的实践周期。
1. 超宽带Doherty不是玄学:数字双输入架构这篇ADS工程能直接照做
做射频放大器的人都有过这种经历:单管Class-AB效率轻松上70%,一挂Doherty架构,带宽立刻缩回窄带;中心频率效率好看,拉到1.7GHz到2.7GHz就开始翻车,1dB压缩点、效率、增益三个指标互相打架。传统Doherty靠模拟移相器和固定偏置去凑相位对齐,这在窄带里还能用,带宽一旦超过一个倍频程,相位随频率的斜率根本补不回来。我这次拆的这份ADS工程,走的是数字双输入路线——把传统Doherty里“模拟相位补偿”这个环节整体搬到基带DSP里做,两路功放各自独立激励、独立控制幅度和相位。它的好处是相位对齐不再依赖无源网络的色散特性,而是靠基带算法随时校准,超宽带的高效率才真正落地。适合正在做4G/5G基站功放、或者做宽带通信发射机整机链路的人拿来对照设计:这套工程从理论参数一路做到ADS版图和EM联合仿真,可以直接复现,不用从头猜。
2. 数字双输入DPA的信号链路拆解:分离、塑形与合成的可执行参数
2.1 传统Doherty的相位对齐困局
传统Doherty功率放大器由载波功放(Carrier PA)和峰值功放(Peak PA)组成,输入信号经过一个等分功分器送到两个支路,两路之间靠一段微带线或集总移相器实现相位对齐。这个方案的最大局限在于相位差是固定值,只对单一频率精确成立。频率偏离中心点后,微带线的电长度变化,两路到达合路节点的相位不再相等,负载调制深度被削弱,回退效率直线下降。
实际做1.7GHz到2.7GHz这类宽带项目时,我一般不再去调微带线长度,而是把相位对齐问题整体转移到数字域。数字双输入架构的核心区别是:两路功放不再是同一个模拟信号分出来的,而是由基带分别生成两路独立的I/Q信号,通过两个DAC和两路射频链路分别驱动载波功放和峰值功放。这样相位差、幅度比都成了可编程参数,频率变化时直接在DSP里修正系数,不需要动PCB上的任何走线。
已知的问题也跟着转移了。两路射频链路里,DAC之后的滤波器、驱动放大器、无源匹配网络仍然会引入频变的相位差。这个残差要在基带预失真阶段做预补偿,做法是把两路信号处理成带频率相关时延的参考波形,再在数字域直接做分数延迟滤波。
2.2 数字双输入生成:时延补偿与幅度权重
双输入信号生成的核心是两个系数:各频率点的时延差,以及载波/峰值两路的目标幅度比。时延差控制相位对齐,幅度比控制负载调制深度。工程里的常见做法是用MATLAB或Python先把两路基带波形算好,导出成文本,再灌到ADS的基带信号源里。
下面是我在工程里常用的分数时延补偿片段,放在基带过采样之后、DAC之前:
import numpy as np from scipy.signal import resample_poly, lfilter fs = 122.88e6 # DUC后的采样率 delay_ns = 162.0 # 峰值路径相对载波路径的粗估时延 frac_delay = delay_ns * 1e-9 * fs # 折算成采样点 # 先用整数延迟对齐 int_delay = int(np.floor(frac_delay)) frac = frac_delay - int_delay # 载波路径波形 carrier = np.exp(2j * np.pi * 0.1 * np.arange(4096)) # 峰值路径波形,先整数移位,再用一阶分数延迟滤波 peak = np.roll(carrier, int_delay) if frac > 1e-6: b = np.array([1 - frac, frac]) peak = lfilter(b, 1.0, peak) # 写入两路I/Q文本,供ADS读取 np.savetxt('carrier_iq.txt', np.column_stack((carrier.real, carrier.imag)), fmt='%.8f') np.savetxt('peak_iq.txt', np.column_stack((peak.real, peak.imag)), fmt='%.8f')这段逻辑里,整数延迟用roll完成,剩余小数部分用一阶FIR滤波器实现。分数延迟滤波的系数只有两个,高频段会产生少量幅度纹波,但带内影响通常小于0.1dB。如果相位精度要求更高,我会换成立方插值滤波器,代价是多算几个历史点。
幅度权重方面,工程里默认的是载波路径保持满摆幅,峰值路径按功率回退点的目标效率曲线动态调整。低功率区峰值路径幅度很小,功放近似关断,高功率区逐渐加大,这样合路点的等效负载调制就和传统Doherty一致。
2.3 输出合路网络与谐波管理
数字双输入虽然改变了输入端,但输出端的合路网络仍然是传统Doherty形式。载波功放输出接一段λ/4阻抗变换线,峰值功放输出直接接到合路节点。在超宽带场景里,这段λ/4线不能再按单一中心频率做,而是在工作频段内把阻抗变换比做成缓变曲线。
表:宽带Doherty合路网络关键参数(1.7GHz–2.7GHz)
| 参数 | 数值 | 作用 |
|---|---|---|
| 载波支路λ/4线特性阻抗 | 35.4Ω | 将载波功放最佳负载变换到合路点约50Ω |
| 峰值支路补偿线长度 | 约60°@2.2GHz | 补偿载波到合路点的额外相位 |
| 合路点后微带线 | 50Ω,缩短到15mm内 | 避免引入额外电感 |
| 谐波短路面 | 在载波输出处并联1/4波长开路线 | 抑制二次谐波回灌 |
| 载波功放匹配目标 | Zopt=13.2–j4.7Ω | 由负载牵引扫描获得 |
谐波管理比窄带工程更敏感。宽带条件下二次谐波落在带内或靠近带边,输出端必须加谐波短路面。工程里通常用扇形开路线实现,对目标频段的二次谐波呈现低阻,把谐波电流短路到地,防止它通过合路节点回流到另一路功放。
3. 在ADS里搭出第一版可仿真的DPA链路:工程挂载、偏置扫描与负载牵引
3.1 建工程与挂工艺库
拿到这份ADS工程后,第一步不是急着看版图,而是确认库引用是否完整。工程里用到的晶体管模型是GaN HEMT,常见的是Wolfspeed/Cree系列或英飞凌的PDK模型。如果你本机已经装好对应厂商PDK,打开工程后直接在Library Manager里应该能看到库名。
拷来的工程最容易在这里翻车。Library路径如果写的是原机器的绝对路径,换机器后所有器件变成黄色问号。我习惯打开工程后先检查DesignKit Management,把库重新指向本机路径,再跑一遍直流仿真确认模型能被调用。
3.2 DC扫描选定工作点
Doherty两路功放的静态工作点决定负载调制的行为:载波功放偏置在Class-AB,静态电流通常取最大漏极电流的15%-20%,峰值功放偏置在Class-C,栅极电压要低于夹断电压。
ADS里用DC仿真模板扫两个栅极电压:
# 在Schematic中添加DC仿真控件后,在仿真设置里添加参数扫描 # 扫描变量: VGS_CARRIER, 起始-3.0V, 步进0.1V, 终止-1.5V # 扫描变量: VGS_PEAK, 起始-4.5V, 步进0.1V, 终止-2.8V扫描完成看两个电流源每个点的跨导和静态电流,先确认载波功放静态电流在200mA到400mA区间,再确认峰值功放在低功率区基本不导通。这个阶段不用追求精确效率,主要是确认两条支路的工作区间不重叠、不提前导通。
3.3 负载牵引与谐波平衡的设置
负载牵引是DPA设计里最关键的一轮仿真。ADS自带的Load-Pull模板可以直接复用,但需要改三个参数:频率点换成1.7GHz、2.2GHz、2.7GHz三个频点,谐波阶数从默认的3阶放宽到5阶,阻抗扫描范围按晶体管规格书的Zopt附近画。
表:负载牵引运行参数
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 扫描频率 | 1.7 / 2.2 / 2.7 GHz | 覆盖频段边缘和中心 |
| 输入功率 | POUT@3dB压缩以下2dB | 避免过早进入压缩 |
| 基波阻抗扫描范围 | 10–30Ω,步进0.5Ω | 目标Zopt附近加密 |
| 二次谐波阻抗 | 固定短路或开路两个case | 对比效率差异 |
| Harmonic Order | 5阶 | 兼顾精度与收敛速度 |
跑完负载牵引后,效率等高线会呈现一个密集的碗状区域,输出功率等高线是另一组正交曲线。选取的最佳点是使效率等高线中心和输出功率等高线中心较接近的位置,因为Doherty在回退点需要同时保证效率和功率。把最佳点在Smith圆图上标记出来,后面版图匹配就按这个目标做。
谐波平衡仿真里有个经验值:谐波阶数设到5阶,收敛时间大约是3阶的1.8倍,但效率计算结果更接近实测。阶数再往上加到7阶,对GaN模型来说提升已经不显著,反而容易出现不收敛。
4. 从原理图到版图:出图、基板设置与EM联合仿真的完整流程
4.1 版图映射与基板定义
原理图验证完匹配拓扑后,把匹配网络里的理想电容电感全部替换成微带线实现。这一步在ADS里用LineCalc计算微带线宽度和长度,然后通过Layout Gen把原理图映射到版图编辑器。
版图编辑器里必须先校准Substrate定义。我见过太多人忽略这一步:Substrate的介电常数和损耗角正切设置不一致,EM仿真结果与实测差0.3dB到0.5dB。工程中通用板材参数建议用Rogers 4350B:
表:Substrate参数模板
| 参数 | 数值 |
|---|---|
| 介质介电常数 | 3.66 |
| 损耗角正切 | 0.004 |
| 介质厚度 | 0.508mm(20mil) |
| 铜箔厚度 | 35μm |
| 顶层走线厚度 | 0.035mm |
| 地平面距离 | 0.508mm |
工程里Substrate用单层介质加地平面结构,并把频率相关介电常数选项打开。大部分板材的高频介电常数会比低频略低,关闭这个选项会在2.7GHz附近引入额外相位误差。
4.2 微带拐角、地孔与走线密度
版图里最容易埋雷的地方不是大线,而是小细节。微带线走直角弯时,拐角处等效电容突变,高频段会出现明显的反射。ADS里把拐角改成mitered bend或圆弧弯,线宽变化处加渐变段:
# ADS Layout中常用的通用编辑步骤 # 1) 选中拐角处两条微带线 # 2) 菜单 Draw > Polyline > Mitered Bend # 3) 设置Miter比率默认0.5,线宽>1mm时改为0.7 # 4) 地孔阵列间隔设置为最高频率波长的1/20地孔的作用被严重低估。EM仿真如果忽略了地孔电感,合路点附近的接地参考面会悬浮,导致S参数和实测明显不符。我一般在地平面铺铜区域按2.2GHz频率对应波长的1/20间距打过孔阵列,馈电点附近加密到1/30波长。
4.3 电路-版图联合仿真(Co-simulation)设置
版图画完后,不要直接拿去加工,先做一次电路-版图联合仿真。原理图里的理想传输线模型被版图的EM模型替换,这样才能看到微带线之间的耦合和过孔寄生。
联合仿真设置流程:
# 1) 在Schematic中把待替换的微带线子电路全部选中 # 2) 右键 > Create Layout > Generate Layout # 3) 在Layout中选择 EM > Simulate > Setup # 4) 求解器选Momentum RF,网格密度设Medium # 5) 频率扫描范围1.5GHz到3.0GHz,采样点数31 # 6) 生成EM模型后,替换回Schematic中的原传输线EM仿真网格的密度设置需要平衡精度与时间。网格太粗,拐角和不连续处仿真结果出现尖刺;网格太细,1.7GHz到2.7GHz扫一遍要跑大半个小时。我的经验是先跑Medium密度,确认收敛性后再对关键区域做局部加密。
特别注意检查EM仿真后的S参数是否在带内出现异常谐振。出现这类问题,大概率是某段微带线离地孔太远形成了半波长开路线,或者在合路节点出现了并联谐振。调整走线长度后重新仿真,比硬调匹配网络要直接得多。
5. DPA仿真最常见的五个翻车点:现象、原因与解决方案
5.1 现象:拷来的工程打开后元器件全是黄色问号
写死路径是ADS工程最常见的移植问题。原工程引用的库文件路径指向作者电脑的某个绝对目录,换机器后ADS找不到对应文件。
原因:Library路径存储在工程配置中,且驻留在原机器的绝对位置。
解决:打开工程后进入DesignKit Management,检查每个缺失库,点击Resolve Library指向本机对应库文件。如果厂商PDK未安装,需要先安装并挂载后再打开工程。建议直接从工程里拷出Schematic再做新工程,而不是直接编辑原工程。
5.2 现象:负载牵引扫描结果效率只有30%,明显低于手册水平
效率全场偏低时,先怀疑谐波阶数设置。Harmonic Order设为1时,谐波平衡仿真只计算基波,二次谐波被当作开路处理,效率结果必然偏低。
原因:谐波阶数太低,高次谐波的能量没有被正确建模。
解决:把Harmonic Order提高到5,并勾选Auto Convergence。观察仿真日志里残余误差是否降到1e-6以下,如果残余误差不降反升,还要检查是否某个阻抗点落在晶体管稳定区外。
5.3 现象:版图EM仿真的S21在带内出现尖峰
版图仿真结果连续光滑是常规状态,带内出现窄带吸收尖峰,通常是耦合效应。
原因:两条微带线距离过近,耦合产生寄生谐振;或者是拐角处未做补偿,等效电容形成串联谐振。
解决:先加宽微带线间距到三倍线宽以上,再用Mitered Bend替换所有直角弯。如果尖峰仍然存在,用电磁场的电流密度分布图定位谐振位置,把靠近的走线拉开或用屏蔽地线隔开。
5.4 现象:联仿效率与单独原理图仿真差了2个百分点以上
电路-版图联合仿真结果明显劣化,很多人的第一反应是匹配不对。
原因:这通常是版图里地孔数量不足或地平面不完整所致,尤其是峰值功放输出端附近。
解决:在功放输出和合路节点周围加密地孔,间距控制在2.2GHz对应波长的1/20以内。同时检查功放漏极馈电的过孔是否穿过完整地平面,必要时在漏极馈电线上并联一个小电容到地,给射频电流提供一个低阻回路。
5.5 现象:数字双输入波形在带内相位差并不是常数
DSP里算好的时延补偿系数,仿真出来两路到达合路点的相位差却随频率变化。
原因:数字补偿的是基带时延,但射频链路里滤波器、驱动放大器和匹配网络的群时延斜率没有被完全补偿,频段的边缘残差被放大。
解决:在基带补偿系数里加入二阶频率相关项。做法是在DSP里加一个全通滤波器,用带内三个频点的实测相位差做插值,拟合出二次多项式系数,再更新到时延补偿脚本中。这是数字双输入架构相对模拟方案最大的优势——不需要改版图,只更新代码就能收敛。
6. 一个校准技巧:用群时延差值迭代修正双输入相位系数
数字双输入DPA达到预期效率前,有一件事必须在仿真阶段做完:两路功放从基带输入到合路节点的群时延对齐。前文提到用粗估时延做初值,实际校准我一般用群时延差值法来精调,流程固定三步,两轮迭代就能把相位误差压到3°以内。
第一步,在ADS里跑一次S参数仿真,提取载波路径和峰值路径各自的传输相位,对相位做unwrap展开,再对频率轴求导得到群时延:
import numpy as np freq = np.linspace(1.7e9, 2.7e9, 101) # 仿真频点 phase_carrier = np.loadtxt('phase_carrier.txt') # 载波路径传输相位 phase_peak = np.loadtxt('phase_peak.txt') # 峰值路径传输相位 phase_carrier_unwrapped = np.unwrap(phase_carrier) phase_peak_unwrapped = np.unwrap(phase_peak) tau_carrier = -np.diff(phase_carrier_unwrapped) / (2 * np.pi * np.diff(freq)) tau_peak = -np.diff(phase_peak_unwrapped) / (2 * np.pi * np.diff(freq)) tau_diff = tau_peak - tau_carrier print("群时延差值(s):", np.mean(tau_diff))第二步,把group delay差值的均值作为新时延,更新到数字双输入的延迟补偿脚本里。注意不要只改一个点,要在三个频点各取一个值做二阶拟合,防止带内斜率残留。
第三步,重新跑S参数和谐波平衡仿真,观察合路点两路信号的相位差。相位差绝对值小于3°,且带内变化量小于2°时,说明双输入校准完成。如果边缘频点仍超出指标,把那一点对应的时延差值单独补偿进去即可。
我个人的习惯是,每次完成版图调整后,都强制自己走一遍这个校准流程再去看效率结果。有的工程师直接拿理想时延值做仿真,版图一改全废,白跑一晚上;而流程里先看群时延差值、再调数字系数、最后验证相位差,整个过程不超过半小时,能省下大量盲调时间。这份ADS工程的数字双输入系数也建议按这个流程重新校一遍。希望这个习惯帮你少走一次弯路。
本文还有配套的精品资源,点击获取