ARTICLE DETAIL

资讯详情

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

ADS射频接收链路预算仿真:从Friis公式到超外差链路实操

ADS射频接收链路预算仿真:从Friis公式到超外差链路实操 射频链路预算这件事说简单也简单无非是把增益、噪声、非线性这几笔账算清楚说复杂也复杂因为一旦落到 ADS 里做仿真很多人就会卡在“模型怎么选、参数怎么填、结果怎么读”这三道坎上。我见过太多新手原理图拖得漂漂亮亮一跑 S 参数仿真增益曲线跟手算差了七八个 dB回头查半天发现是端口阻抗没设对或者把电压增益当成功率增益用了。这篇内容就是写给正在啃射频接收链路预算的工程师和学生的不管你是刚装好 ADS 想跑通第一个链路仿真还是已经能跑仿真但结果总对不上手算我都会从零开始把一条超外差接收链路的预算仿真完整走一遍把每一步背后的“为什么”讲透。1. 链路预算到底在算什么账1.1 从系统指标倒推每一级的压力做接收链路设计起点从来不是“我要用哪个放大器”而是系统给下来的指标。灵敏度、动态范围、选择性、镜像抑制这几个词背后其实是一整套级联公式在支撑。链路预算的本质就是把系统级的总指标一层层分摊到每一级器件上看看到底哪一级是瓶颈。举个具体的例子。假设我们要做一个 2.4 GHz 的接收机要求灵敏度 -100 dBm在 1 MHz 带宽下解调所需的信噪比是 10 dB。那么接收链路输入端允许的最大噪声系数就可以反推出来NF_total Sensitivity - (-174 dBm/Hz 10log(BW) SNR_required)代入数值-174 60 10 -104 dBm所以 NF_total -100 - (-104) 4 dB。这个 4 dB 就是整条链路噪声系数的天花板。接下来你要做的就是把这个 4 dB 分配给 LNA、混频器、滤波器、中频放大器等各级。分配的原则很简单前级噪声贡献大后级增益要够。但具体怎么分就要靠链路预算仿真来验证了。1.2 级联公式Friis 公式的工程含义Friis 公式是链路预算的骨架NF_total NF1 (NF2-1)/G1 (NF3-1)/(G1·G2) ...这个公式看起来平淡但它传递了一个极其重要的工程直觉第一级的噪声系数直接加到总噪声系数上而后面每一级的噪声贡献都被前面所有级的增益除掉了。这意味着如果第一级 LNA 的增益足够大后面混频器哪怕噪声系数很差对总噪声的贡献也可以忽略不计。我经常用一个生活类比来解释第一级就像是你家水龙头如果水龙头本身水质就差噪声大后面接多少净水器都白搭但如果水龙头水质好后面接一个增压泵增益再脏的管道后级噪声影响也被冲淡了。在 ADS 里这个公式不需要你手算但你必须理解它否则仿真结果出来你根本不知道对不对。我见过有人把 LNA 放在滤波器后面结果噪声系数比预期高了 2 dB就是因为滤波器插损直接恶化了第一级噪声。1.3 增益、噪声、非线性三者的拉扯链路预算不是只算噪声系数就完事了。增益决定了后级噪声被抑制的程度但增益太高会把信号推到非线性区导致压缩和互调。这三者是一个此消彼长的三角关系。具体来说LNA 增益每增加 1 dB后级噪声贡献就减少 1 dB但输出 P1dB 点就往前移 1 dB动态范围被压缩。所以链路预算的核心工作就是在这个三角里找一个平衡点。ADS 的预算仿真Budget Simulation之所以好用就是因为它能同时把增益、噪声、P1dB、IP3 全部串起来算让你一眼看到每一级的累积效果。2. ADS 环境准备与工程搭建2.1 版本选择与安装避坑ADS 的版本迭代很快2020、2022、2023 各有差异。对于链路预算仿真这个场景我建议用ADS 2020 及以上版本因为从 2020 开始Budget Simulation 控制器的界面和稳定性都有明显改善。如果你还在用 ADS 2016 甚至更早的版本预算仿真功能是有的但有些器件的噪声模型不完整容易出坑。安装方面几个常见的坑我提前说一下。第一安装路径不要有中文和空格否则仿真时临时文件路径会报错这个坑我踩过报错信息还特别隐晦只说“cannot write temp file”。第二license 配置要确认 Budget Simulation 这个 feature 是包含在内的有些精简版 license 不含这个模块。第三如果你之前装过旧版本卸载后注册表里可能残留配置导致新版本启动时加载错误的库路径这时候需要手动清理注册表相关项。提示安装完成后先跑一个最简单的 S 参数仿真确认环境正常再开始链路预算工程不要一上来就搭复杂链路出问题不好定位。2.2 新建工程与库配置打开 ADS 后新建一个 Workspace再新建一个 Schematic。这里有个细节链路预算仿真需要用到 ADS 自带的System-Amps和System-Passive库这两个库在默认安装里是有的但如果你用的是自定义的库配置可能被屏蔽了。检查方法是打开 Component Palette看有没有 “System-Amps” 这个分类。工程目录结构我建议这样组织根目录下建schematics、data、moments三个文件夹。schematics放原理图data放仿真数据moments放电磁仿真结果如果后续要做版图联合仿真。这样做的原因是 ADS 默认会把所有数据堆在根目录链路一多就乱成一锅粥后期找数据非常痛苦。2.3 器件模型的选择逻辑链路预算仿真里器件模型分三类行为级模型、数据文件模型、电路级模型。行为级模型就是直接用 Gain、NF、P1dB、IP3 这几个参数定义的理想器件比如Amplifier里的System Amplifier。它的优点是快缺点是忽略了匹配和频率响应。数据文件模型是导入厂商的 S2P 或 S3P 文件精度高但需要你有器件的数据。电路级模型是完整的晶体管级电路最准但仿真最慢。对于链路预算这个阶段我的建议是LNA 和混频器用行为级模型先跑通预算确认指标分配合理后再换成数据文件模型做精细验证。因为预算仿真的目的是快速迭代指标分配不是做最终验证。用电路级模型跑预算一个链路跑十分钟迭代效率太低。3. 接收链路原理图搭建实操3.1 链路拓扑的确定我们以一个典型的超外差接收链路为例拓扑如下天线 → 带通滤波器BPF→ LNA → 镜像抑制滤波器 → 混频器 → 中频滤波器 → 中频放大器 → ADC这个拓扑的选择理由BPF 放在最前面抑制带外干扰LNA 紧跟其后保证噪声系数镜像抑制滤波器放在混频器前抑制镜像频率中频滤波器做信道选择中频放大器补足增益驱动 ADC。每一级的位置都不是随便放的。比如为什么 LNA 不放在 BPF 前面因为 BPF 有插损如果 LNA 在前面BPF 的插损会被 LNA 增益补偿噪声贡献小但 LNA 直接暴露在带外强干扰下容易饱和。所以这是一个取舍噪声优先还是抗干扰优先。在 2.4 GHz 这种干扰密集的频段我通常选择 BPF 在前牺牲一点噪声系数换抗干扰能力。3.2 逐级参数设置与计算现在开始往原理图里放器件。在 ADS 的 Component Palette 里找到System-Amps库拖入Amplifier2器件作为 LNA。双击设置参数Gain 15 dBNF 1.2 dBOIP3 30 dBmP1dB -5 dBm输入这些参数的来源LNA 选型时15 dB 增益是常见值1.2 dB 噪声系数对应低噪声 CMOS 或 GaAs 工艺OIP3 30 dBm 是中等线性度水平。P1dB 输入 -5 dBm 意味着输出 P1dB 约 10 dBm。接下来放混频器用Mixer2器件。参数设置Conversion Gain 8 dBNF 10 dB双边带OIP3 20 dBm混频器噪声系数通常比 LNA 高很多但因为有 LNA 增益在前面它对总噪声的贡献被除以 15 dB约 31.6 倍实际贡献只有 10/31.6 ≈ 0.32 dB。滤波器用Filter器件设置插入损耗。BPF 插损设 1.5 dB镜像抑制滤波器设 2 dB中频滤波器设 3 dB。这些值都是典型值实际选型时根据器件手册调整。中频放大器用另一个Amplifier2Gain 20 dBNF 3 dBOIP3 25 dBm。3.3 端口与仿真控制器的配置链路两端需要加端口。输入端用Port器件阻抗设 50 欧姆功率设 -100 dBm对应灵敏度测试条件。输出端也用Port阻抗 50 欧姆。然后是关键的 Budget Simulation 控制器。在 Component Palette 的Simulation-Budget分类里找到Budget Controller拖入原理图。双击配置勾选 Gain、NF、P1dB、IP3 四个预算项频率设 2.4 GHz输入功率设 -100 dBm温度设 25 摄氏度这里有个容易忽略的点Budget Controller 的输入功率设置会影响 P1dB 和 IP3 的计算结果因为它需要根据输入功率算输出功率再判断是否压缩。所以输入功率要跟你实际测试条件一致不能随便填。4. 仿真运行与结果解读4.1 第一次跑仿真常见报错与处理点击仿真按钮如果一切正常几秒钟就能出结果。但第一次跑通常会遇到几个报错报错一No Budget Controller found。原因是控制器没放或者没启用。检查原理图里是否有Budget Controller并且它的Enable属性是 yes。报错二Unconnected port。链路里有器件没连上或者端口没接。ADS 的连线有时候看起来连上了实际是悬空的放大检查每个节点。报错三Model parameter out of range。某个器件参数填了负数或者超出模型范围。比如 NF 填了 -1 dB这物理上不可能ADS 会报错。处理完这些仿真就能跑通了。4.2 预算结果表格逐行解读仿真完成后ADS 会弹出一个 Budget 结果窗口里面是一张表每一行对应链路的一级。表格列包括Stage、Gain、Cumulative Gain、NF、Cumulative NF、P1dB、IP3 等。我们逐行看第一行 BPFGain -1.5 dBCumulative Gain -1.5 dBNF 1.5 dBCumulative NF 1.5 dB。滤波器的噪声系数等于插损这是无源器件的铁律。第二行 LNAGain 15 dBCumulative Gain 13.5 dBNF 1.2 dBCumulative NF 1.5 (1.2-1)/0.708 ≈ 1.78 dB。注意这里 Cumulative NF 的计算前级增益是 -1.5 dB换算成倍数约 0.708所以 LNA 的噪声贡献被放大了因为前级是衰减。第三行镜像抑制滤波器Gain -2 dBCumulative Gain 11.5 dBNF 2 dBCumulative NF ≈ 1.78 (2-1)/22.4 ≈ 1.82 dB。这里前级累积增益是 13.5 dB换算成倍数约 22.4所以滤波器噪声贡献很小。第四行混频器Gain 8 dBCumulative Gain 19.5 dBNF 10 dBCumulative NF ≈ 1.82 (10-1)/22.4 ≈ 2.22 dB。第五行中频滤波器Gain -3 dBCumulative Gain 16.5 dBNF 3 dBCumulative NF ≈ 2.22 (3-1)/89 ≈ 2.24 dB。第六行中频放大器Gain 20 dBCumulative Gain 36.5 dBNF 3 dBCumulative NF ≈ 2.24 (3-1)/89 ≈ 2.26 dB。最终总噪声系数约 2.26 dB远低于我们 4 dB 的天花板说明指标分配是合理的还有余量。4.3 增益压缩与线性度检查除了噪声还要看 P1dB 和 IP3 的累积。ADS 的预算表里会给出每一级的输出功率和累积 P1dB。在输入 -100 dBm 的情况下输出功率约 -63.5 dBm远低于 P1dB所以线性度没问题。但如果你把输入功率提高到 -40 dBm模拟强信号场景输出功率变成 -3.5 dBm这时候就要检查末级放大器的 P1dB 是否够。如果末级 P1dB 输出只有 0 dBm那信号就被压缩了增益会下降互调产物会上升。我通常会在预算仿真里做两个场景灵敏度场景输入 -100 dBm和强信号场景输入 -40 dBm分别看噪声和线性度确保两个极端都满足。5. 从预算仿真到精细验证的过渡5.1 行为级模型替换为数据文件模型预算跑通后下一步是把关键器件的行为级模型换成厂商提供的数据文件。以 LNA 为例从厂商官网下载 S2P 文件在 ADS 里用S2P器件替换Amplifier2。注意 S2P 文件只包含 S 参数不含噪声参数所以还需要单独的噪声参数文件通常是 S2P 里带噪声行或者单独的 .nf 文件。替换后重新跑预算仿真对比结果。通常会有 0.2 到 0.5 dB 的差异因为行为级模型是理想化的数据文件模型包含了实际的频率响应和匹配损耗。5.2 加入匹配网络后的影响行为级模型假设器件已经匹配到 50 欧姆但实际电路里你需要自己设计匹配网络。匹配网络的插损会直接加到噪声系数上。所以在预算仿真阶段我建议在每级之间预留 0.3 到 0.5 dB 的匹配损耗余量这样从预算到实际电路时不会太意外。5.3 与电路级仿真的交叉验证最终验证需要跑 Harmonic Balance 或 S 参数仿真。把预算仿真得到的增益和噪声系数跟电路级仿真结果对比。如果差异超过 1 dB就要查原因可能是匹配没做好可能是偏置点不对可能是模型参数设错了。这个交叉验证的过程是链路预算仿真真正产生价值的地方。预算仿真给你方向和量级电路级仿真给你精度和细节两者结合才能保证一次流片成功。6. 常见问题与排查技巧实录6.1 预算结果与手算对不上这是最常见的问题。排查顺序如下第一检查每一级的增益和噪声系数单位是 dB 还是线性值。ADS 的 Budget Controller 默认用 dB但如果你手动改了器件参数的单位可能混用。第二检查 Cumulative NF 的计算是否包含了前级衰减。如果第一级是滤波器它的插损会让后级噪声贡献放大手算时容易忽略这一点。第三检查频率设置。预算仿真是在单一频率点算的如果你设的频率跟器件参数对应的频率不一致结果会偏。6.2 噪声系数异常偏高如果总噪声系数比预期高很多通常是以下几个原因LNA 增益不够导致后级噪声贡献大。检查 LNA 增益是否设成了 15 dB 而不是 15线性值。第一级插损太大。滤波器插损每增加 1 dB总噪声系数至少增加 1 dB。混频器噪声系数设成了单边带值。混频器的 DSB 和 SSB 噪声系数差 3 dB如果设错总噪声系数会差很多。6.3 仿真速度慢的优化链路级数多的时候预算仿真也会变慢。优化方法减少不必要的频率扫描点预算仿真只需要在中心频率点算。用行为级模型代替数据文件模型做初步迭代。关闭不需要的预算项比如你只关心噪声就先不勾选 IP3。6.4 常见问题速查表问题现象可能原因解决方法仿真报错 No Budget Controller控制器未放置或未启用检查原理图中是否有 Budget ControllerEnable 设为 yes总噪声系数比手算高 2 dB 以上第一级插损或 LNA 增益设置错误检查第一级器件参数确认增益单位增益曲线异常平坦或异常陡峭器件频率响应未设置检查器件是否设置了频率相关参数P1dB 结果不合理输入功率设置错误确认 Budget Controller 输入功率与实际测试条件一致仿真结果与电路级仿真差异大匹配网络损耗未计入在预算中加入匹配损耗余量或直接跑电路级仿真对比注意预算仿真的结果是一个“预期值”不是“保证值”。实际电路会因为寄生参数、温度漂移、器件离散性而偏离。所以预算阶段要留足余量通常噪声系数留 0.5 dB 余量增益留 2 dB 余量。7. 我踩过的坑与实操心得第一个坑把电压增益当成功率增益。ADS 里有些器件的增益参数默认是电压增益而链路预算用的是功率增益。两者在 50 欧姆系统里差 3 dB因为功率增益 电压增益平方 / 2。我一开始没注意LNA 增益设了 15结果实际功率增益只有 12 dB总噪声系数差了 0.5 dB。后来养成习惯每次设置增益参数都确认单位是 dB 还是 dBm是功率还是电压。第二个坑忽略混频器的镜像频率响应。混频器对镜像频率的增益和噪声系数跟射频频率不一样。如果镜像抑制滤波器插损不够镜像频率的噪声会混入中频恶化噪声系数。预算仿真里如果只算射频频率会漏掉这个效应。解决方法是在预算仿真里同时算射频和镜像两个频率点对比结果。第三个坑温度设置。ADS 默认温度是 27 摄氏度但实际工作环境可能是 -40 到 85 摄氏度。噪声系数随温度变化LNA 在高温下噪声系数会恶化 0.3 到 0.5 dB。所以预算仿真时要把温度设成最坏情况留足余量。第四个坑忘记加匹配损耗。行为级模型是理想匹配的但实际匹配网络有插损。我通常在每个器件之间加一个 0.3 dB 的衰减器来模拟匹配损耗这样预算结果更接近实际。第五个坑Budget Controller 的输入功率设成了 0 dBm。默认值有时候是 0 dBm如果你不改成 -100 dBmP1dB 和 IP3 的计算结果会完全不对因为 0 dBm 输入已经把链路推饱和了。这个坑很隐蔽因为噪声系数结果看起来正常只有线性度结果异常。最后分享一个提高效率的技巧把常用的链路拓扑做成模板。在 ADS 里建一个模板工程包含常用的 LNA、混频器、滤波器行为级模型和 Budget Controller每次新建工程时直接复制模板改参数就行。这样能省掉大量重复搭建的时间我现在的模板里已经预置了超外差、零中频、低中频三种拓扑切换起来非常快。链路预算仿真这个事说到底就是把 Friis 公式用图形化界面跑一遍但真正有价值的是你对每一级参数背后物理意义的理解。仿真工具只是帮你算账账怎么算、为什么这么算还是得靠人。我见过太多人仿真跑得飞起但问他为什么 LNA 要放在滤波器后面就答不上来。工具是死的人是活的把原理吃透了仿真结果一眼就能看出对不对。
返回列表