简介一份面向射频与通信电路设计者的Keysight ADS应用笔记聚焦功率放大器的ACPR、EVM与PAE仿真评估适合需要验证调制信号频谱泄漏、调制精度和效率指标的中高级读者。压缩包仅含1个PDF大小约1.8MB内容以应用说明与仿真设置讲解为主便于随查随用。笔记基于Ptolemy协同仿真以EDGE信号源驱动待测功放结合规范兼容接收端测量相邻与交替信道功率比、误差矢量幅度及平均发射载波功率并说明如何由偏置电压电流估算平均直流功耗和PAE。文中还介绍自动验证建模在Ptolemy仿真前运行谐波平衡用特征数据预测子电路响应以减少逐时间点完整电路仿真并支持功率扫描、参数扫描和蒙特卡洛分析帮助判断器件尺寸、负载阻抗、偏置条件对指标的影响。已有2775人学习可作为功放设计验证、性能权衡与统计变化分析的参考材料。1. 三个指标互相拉扯时先别急着盲调调 EDGE 功放最难受的不是单个指标压不下去而是 ACPR、EVM、PAE 三者互相拉扯偏置调高一点ACPR 好看了PAE 掉下去输入功率往回退EVM 刚达标输出功率又不够。这时候靠单点谐波平衡加手算基本等于盲调。ADS 仿真计算 ACPR、EVM、PAE 的这套 Ptolemy 协同仿真台架解决的就是「调制信号激励下三个指标同时读出来」这件事规格兼容的 EDGE 源打功放子电路输出端挂规格兼容的测量 sink再叠上功率扫描、参数扫描和蒙特卡洛。它适合正在做射频功放、发射链路预算或者要给设计留统计余量的人尤其是那些已经能用 HB 看工作点、但一到调制指标就卡住的场景。2. Ptolemy 协同仿真台架为什么不能只靠谐波平衡2.1 纯 HB 给不了调制条件下的 ACPR 和 EVM谐波平衡的强项是单音、双音、负载牵引这类稳态问题收敛快工作点、增益压缩、三阶交调都能从一次扫描里读出来。问题是它算的是稳态频谱输入是一组离散频率分量你很难从一个 HB 单点里直接得到「一段 EDGE 调制波形经过功放后相邻信道漏了多少功率」。ACPR 的来源是调制包络经过非线性产生的频谱再生它的形状跟信号峰均比、记忆效应、偏置网络都有关必须让完整调制波形在时域里跑一遍才看得清。EVM 更直接它比较的是实际解调矢量与理想参考矢量之间的误差没有标准解调链路就没有这个统计量。这两件事决定了要出 ACPR 和 EVM得用能跑调制信号的仿真器。Ptolemy 协同仿真的思路是把模拟/RF 子电路嵌进时域包络仿真顶层用符合标准的信号源产生调制波形经过被测子电路再由符合标准的测量 sink 解调和做频谱分析。好处是源和测量都按标准来读出来的数才有可比性代价是速度逐时间点跑完整电路仿真很慢这也是后面要开 Fast Cosim 的原因。我一般先用 HB 把静态工作点、匹配和稳定性扫一遍确认管子没跑飞再切到 Ptolemy 出指标两步分开排错时不容易混。2.2 顶层台架源、被测子电路、测量 sink 三件套顶层连接很朴素EDGE_Signal_Source 接 Power_Amp_Subcircuit输出分三路进测量组件。输入功率由变量 Pin 控制扫描范围从 -20 dBm 到 16 dBm这个范围覆盖了小信号到接近饱和的整段P1dB 和增益压缩都能落在曲线里。组件作用关键点EDGE_Signal_Source产生规格兼容的 EDGE 调制信号时间步定义要与子电路控制器一致Power_Amp_Subcircuit被测功放子电路内含包络控制器和偏置探针EDGE_EVM_Meas测量误差矢量幅度按标准解调输出 EVM 统计量EDGE_4CH_ACP_Mod_Meas测相邻与交替信道功率比由标准 EDGE_TxORFS_Modulation_Meas 改出EDGE_Pwr_Meas_Local测平均发射 RF 载波功率标准组件的本地副本便于减时隙EDGE_4CH_ACP_Mod_Meas 是从标准 EDGE_TxORFS_Modulation_Meas 改出来的改的目的不是换算法而是把相邻信道和交替信道一起测四信道配置下一次扫描就能同时看到第一邻道和第二邻道的泄漏。EDGE_Pwr_Meas_Local 是标准 EDGE_Pwr_Meas 的本地副本做副本是为了方便把测量的时隙数减下来——标准组件默认按完整帧测时隙一多仿真时间直线上升。这两个改动都很轻但直接决定了整套台架能不能在可接受的时间里跑完一次功率扫描。2.3 子电路里的包络控制器Step 要对齐Stop 不生效子电路里必须放 Envelope 或 Transient 控制器协同仿真没有这个就跑不起来。有两个参数要特别注意Step 和 Stop。Step 决定包络仿真的时间步必须和顶层 EDGE 源用的时间步一致Stop 在协同仿真里是被忽略的因为仿真什么时候结束由顶层的测量 sink 决定你在子电路里填了也不起作用。对齐的做法不复杂回到顶层推进 EDGE_Signal_Source找到定义时间步的那组方程把方程复制到功放子电路里用同一组变量去驱动 Envelope 控制器的 Step。这样源和子电路共用一个时间步定义改一处两边同步不会出现一个改了另一个忘了的情况。参数设置方式说明Step与 EDGE 源时间步一致用同一组方程驱动避免重采样误差Stop忽略由顶层测量 sink 控制结束时刻控制器类型Envelope 或 Transient协同仿真硬性要求缺一不可为什么要盯住这个细节包络仿真的采样率决定了能表示的调制带宽时间步不一致相当于源和电路各按各的节奏采样重采样误差会直接反映到频谱上ACPR 首当其冲。血泪经验是曲线在某些 Pin 点突然抬头查了半天匹配和偏置最后发现是 Step 差了一位小数。操作上按这个顺序走在顶层 EDGE 源里确认时间步方程记下变量名和表达式把这组方程原样复制到功放子电路用复制过来的变量驱动 Envelope 控制器的 Step先跑一个单点看输出频谱底噪是否干净再开扫描。3. 三项指标怎么接ACPR、EVM、PAE 的测量链路3.1 ACPR相邻信道和交替信道要分开看ACPR 衡量的是主信道功率与相邻信道泄漏功率的比值单位是 dBc。工程上通常分两个数第一邻道相邻信道和第二邻道交替信道。第一邻道离主信道近主要受三阶非线性和包络再生影响第二邻道更远更多反映高阶非线性和记忆效应。只看一个数容易误判比如第一邻道压下去了、第二邻道还在模板外面这种在宽带调制下并不少见。EDGE_4CH_ACP_Mod_Meas 的价值就在这里四信道配置下一次扫描同时给出相邻和交替两组比值不用改两次台架。用法上把它挂在功放输出端信道间隔和积分带宽按标准模板设输出功率从 -20 dBm 扫到 16 dBm得到 ACPR 随 Pout 变化的曲线。读曲线的方法是从高功率往低功率找在满足 ACPR 模板的前提下能取到的最大 Pout 就是这套偏置下的实际能力边界。小信号区 ACPR 通常很好看越接近饱和越差拐点位置比单个数值更有参考价值。3.2 EVM 与平均载波功率本地副本为什么能提速EVM 是实际解调矢量与理想矢量之间的误差按 RMS 统计数值越低调制精度越高。EDGE_EVM_Meas 按标准解调链路算这个量挂在输出端即可。它和 ACPR 看的是同一件事的两个侧面ACPR 看频域泄漏EVM 看矢量误差功放进入压缩区时两者通常一起恶化但恶化的斜率不一定同步所以两条曲线要放在一张图里对照。平均发射 RF 载波功率由 EDGE_Pwr_Meas_Local 测。这个组件是标准组件的本地副本改它的目的是减少测量的时隙数。标准 EDGE 帧结构里时隙多逐时隙完整测量会拖慢仿真而做功率扫描时其实不需要每个时隙都算满。把时隙数减到够用仿真时间能下来一大截代价是要确认减少时隙后统计窗口仍然覆盖了调制包络的主要部分否则平均功率会偏。我的做法是先按完整时隙跑一次做基准再减时隙跑一次两个平均功率对得上才继续往下扫。3.3 PAE协同仿真里取 DC 功耗的迂回做法PAE 的定义是输出 RF 功率减输入 RF 功率除以平均直流功耗。RF 功率好拿难的是直流功耗在 Ptolemy 协同仿真里顶层不能直接输出子电路的支路电流或节点电压这是协同仿真的边界不是设置问题。硬要找 branch current 会一直翻车。可行的做法是绕一层在子电路里用 CCVS电流控制电压源把偏置电流转换成节点电压然后把 VD_Bias 和 ID_Bias 两个节点设成全局节点让顶层能看见。顶层再用 EnvOutSelector 取这两个节点OutFreq 设为 Lowpass只采基带分量接着用 VItoPower 把电压和电流相乘并求平均得到平均直流功耗最后 P_DC_1 这个 NumericSink 把 Start 和 Stop 设成同一个值指向最后一个采样点只落一个数避免数据集无谓膨胀。环节组件/设置作用电流转电压CCVS把偏置电流变成可观测节点电压节点可见性VD_Bias、ID_Bias 设为全局顶层能访问子电路内部量基带采样EnvOutSelectorOutFreqLowpass只取包络基带分量相乘求平均VItoPower得到平均直流功耗结果落地P_DC_1StartStop最后采样点最小化数据集只留一个平均值拿到平均直流功耗后PAE 就是输出功率减输入功率再除以它。这里有个容易忽略的点输入功率要用实际送到管子输入端的值不是源设定的 Pin中间还有匹配和线损。做功率扫描时 PAE 曲线通常先升后降峰值位置和偏置、负载都相关这个峰值比单点 PAE 更能说明效率潜力。4. Fast Cosim自动验证建模的开关与功率扫描边界4.1 它在每个时间点替你省掉了什么Ptolemy 协同仿真慢的根源是每个时间点都要跑一次完整电路仿真。Fast Cosim文档里也叫 Automatic Verification Modeling 或 Automatic Behavioral Modeling的做法是每次 Ptolemy 仿真开始时先在若干功率点上跑谐波平衡把功放子电路的响应特征化出来建一个行为模型真正跑时域仿真时用这个模型预测子电路响应而不是逐时间点解全电路。精度取决于特征化覆盖的范围速度提升则相当明显尤其是叠加蒙特卡洛这种要跑几十上百次的时候。代价是它引入了一层模型误差。特征化点选得够密、输入功率范围覆盖得够宽误差就小范围不够模型外推结果就会在边界附近出现不合逻辑的拐点。所以 Fast Cosim 不是开了就完事两个开关必须按场景设对。4.2 Build Model 还是 Use previous dataEnvelope 控制器的 Fast Cosim 页里Characterization 有两个选项Build model 和 Use previous data。选 Build model 表示每次仿真开始重新跑特征化、重建模型选 Use previous data 表示复用上一次的特征化数据跳过重建。判断标准很简单子电路本身变不变。只扫顶层输入功率 Pin功放的偏置、匹配、器件参数都没动特征化数据仍然有效可以用 Use previous data 省时间。一旦扫描的是子电路里的参数或者跑蒙特卡洛让子电路内部统计变量在变就必须选 Build model否则模型还是旧的扫出来的曲线会完全重合看起来像「参数没影响」实际是模型没更新。这个坑很隐蔽因为仿真不报错只是结果静悄悄地错。场景选择原因只扫顶层 PinUse previous data子电路未变特征化可复用扫子电路参数如线长、线宽Build model子电路变了必须重建蒙特卡洛子电路内统计变量变化Build model每次抽样都对应不同的子电路4.3 Max input power 与外推自检Set Characterization Parameters 里的 Max input power 是特征化覆盖的输入功率上限这个值要设得足够高至少高于顶层扫描的最大 Pin还要留出峰均比的余量。调制信号的峰均比越高瞬时峰值越可能超过平均功率特征化范围就要相应往上抬。EDGE 这类信号峰均比不低如果 Max input power 只跟扫描上限齐平高功率点很容易落到外推区。自检方法不复杂先把顶层的 Pin 扫描关掉把 Pin 固定成扫描范围的最大值这里是 16 dBm跑一次看有没有外推警告再把 Pin 往上抬到 17 dBm 跑一次正常情况下应该能看到警告提示。看到警告说明特征化范围不够回去把 Max input power 调高再重跑。这个动作花不了几分钟但能避免整条 ACPR 曲线在高功率段失真。注意外推警告不是每次都显式弹出曲线在高 Pin 端突然变好或突然变差先怀疑特征化范围再怀疑电路。4.4 功率扫描与结果落点扫描设置本身很直接Pin 从 -20 dBm 到 16 dBm步长按需要的分辨率取步长太粗会漏掉增益压缩拐点。一次扫描产出五组曲线ACPR 对输出功率、增益对输出功率、增益压缩对输出功率、EVM 对输出功率、PAE 对输出功率。这五条放在同一个数据展示里横轴统一用输出功率而不是输入功率读起来更接近系统指标的口径。数据展示里用 desired_Pout_dBm 指定目标输出功率通过插值取出各条曲线在该功率下的值再画直方图看分布。这里要留意插值函数的边界行为下一章的坑会专门讲。5. 避坑与排查五个把结果带偏的细节5.1 配置层的三个坑坑一Envelope 的 Step 和源时间步不一致。现象是 ACPR 随 Pin 的曲线出现台阶或者某些功率点 EVM 突然跳变重跑一次跳变位置还会漂。原因是子电路和源各用各的采样节奏包络重采样引入误差频谱上表现为泄漏形状异常。解决办法是把顶层源里定义时间步的方程复制到子电路用同一组变量驱动 Step改完先跑单点看频谱底噪再开扫描。这个坑之所以常见是因为它不报错只让结果慢慢偏。坑二扫子电路参数却还用 Use previous data。现象是参数扫描的各条曲线完全重合或者蒙特卡洛跑完没有任何分布直方图缩成一根线。原因是特征化模型没重建仍在用旧的子电路响应。解决办法是凡是子电路内部参数变化或统计变量抽样一律选 Build model只有纯顶层 Pin 扫描才可以复用。判断口诀子电路动没动动了就重建。坑三Max input power 设得太低。现象是高 Pin 端 ACPR 曲线出现不合逻辑的拐点或者 EVM 在接近饱和时反而变好有时伴随外推警告。原因是特征化覆盖范围不够模型在高功率点外推。解决办法是按信号峰均比留余量把 Max input power 抬到扫描上限之上改完用固定 Pin 的单点仿真验证确认不再告警。这个参数不是设一次就永久有效换了调制信号或换了扫描范围都要重新核。5.2 数据层的两个坑坑四想直接从顶层输出支路电流算 Pdc。现象是翻遍输出选项找不到 branch current或者强行接了探针后数据为空。原因是协同仿真的顶层本来就不能直接访问子电路内部电流电压。解决办法是走 CCVS 那条路子电路内把偏置电流转成节点电压VD_Bias 和 ID_Bias 设全局节点顶层用 EnvOutSelector 低通采样再进 VItoPower 求平均。这套链路搭一次可以复用后面换功放只改偏置探针位置。坑五desired_Pout_dBm 超出实测输出功率范围。现象是直方图显示的平均输出功率和目标值差了一大截设定的 desired 越高差得越多。原因是插值函数 interpolate_swept_data 不做外推请求的 X 超出原始数据最大或最小值时只返回边界 X 对应的 Y 值。解决办法是把 desired_Pout_dBm 设在实测 Pout 范围内或者扩大 Pin 扫描让输出功率覆盖到目标点改完对照直方图均值确认偏差在可接受范围。提示这五个坑里前三个改的是配置后两个改的是数据链路。排错时先分清楚是「仿真没跑对」还是「结果取错了」能省一半时间。6. 进阶参数扫描、蒙特卡洛与相关性怎么读功率扫描只能回答「这套设计在某个偏置下表现如何」回答不了「哪个参数值得调」和「量产会散成什么样」。台架里预留了两层扩展参数扫描和蒙特卡洛。参数扫描的样本是功放子电路里的一根传输线长度。扫这个长度ACPR、EVM、增益、增益压缩都跟着变趋势是长度增加时几项性能改善但 PAE 变差。这条结论本身比任何单点数据都有用它告诉你效率和线性在这根线上是反向拉扯的调的时候要划出一条可接受的折中线而不是指望一个参数把三个指标同时拉满。蒙特卡洛的样本更贴近真实子电路里定义了 eps_nominal、±10% 的高斯分布变量、若干偏置电压和传输线宽度每次抽样对应一组不同的子电路参数配合 Build model 重跑特征化。跑完得到的是各响应的直方图以及统计变量与响应之间的散点图。散点图里能看到相关性ACLR 与高 supply 电压呈明显负相关PAE 与较低偏置电压相关而这个偏置电压与 ACLR 的相关性很弱。这意味着调低偏置可以换效率对线性的代价有限是一个相对安全的调整方向。分析类型扫描对象关键设置产出功率扫描顶层 PinUse previous data 可复用ACPR/EVM/PAE 对 Pout参数扫描子电路传输线长度Build model各指标随参数变化的趋势蒙特卡洛子电路统计变量Build model 足够抽样数直方图与相关性散点图验证习惯上我坚持先单点后扫描先把 Pin 固定到扫描上限跑一次确认没有外推告警、频谱干净、直流功耗读数合理再开功率扫描功率扫描对上了再开参数扫描蒙特卡洛先跑小样本看分布形态形态正常再加抽样数。从那以后我每次开跑蒙特卡洛前都强制走一遍单点验证宁可多花五分钟也不想在几十次抽样跑完之后才发现特征化范围不够、整批数据作废。希望帮到你。本文还有配套的精品资源点击获取