第3章 1dB压缩点仿真原理:输入功率扫描,增益压缩曲线提取,1dB压缩点判读方法
各位同学,今天我们来聊聊LNA线性度仿真里最基础、也最核心的一个指标——1dB压缩点。
说实话,我刚入行那会儿,觉得1dB压缩点不就是找个功率点嘛,扫一下增益掉1dB就完事了。结果第一次做项目,仿真出来的P1dB跟实测差了3个dB,被老大叫去办公室聊了半小时人生。从那以后,我才真正沉下心去抠这个仿真原理。
这一章,我就把当年踩过的坑和总结出来的方法,掰开了讲给你们听。
3.1 什么是1dB压缩点?
先看一个最直观的现象。
你给LNA输入一个小信号,比如-30dBm,放大器老老实实放大,输出功率线性增长。但当你把输入功率往上推,推到某个点,放大器开始“累了”——增益开始下降。
为什么会这样?
说白了,晶体管是非线性的。小信号时,我们可以用跨导gm的一阶项近似;大信号时,高阶项(尤其是三阶项)开始起作用,导致基波增益被压缩。
1dB压缩点的定义:
- 输入1dB压缩点(IP1dB):增益比线性增益下降1dB时对应的输入功率。
- 输出1dB压缩点(OP1dB):同一状态下对应的输出功率。
两者关系很简单:
OP1dB (dBm) = IP1dB (dBm) + (Gain_linear - 1) (dB)
注意,这里的Gain_linear是小信号线性增益,单位是dB。
关键概念:1dB压缩点本质上是放大器线性工作区的“上边界”。超过这个点,增益压缩会加速恶化,谐波和互调产物急剧增加。
3.2 仿真原理:输入功率扫描
仿真1dB压缩点的方法,听起来很简单——扫功率。
但怎么扫、扫多密、从哪开始扫,这里面有讲究。
3.2.1 基本流程
- 设置输入功率扫描:从远低于P1dB的功率点开始(比如-30dBm),逐步增加到超过P1dB约10dB。
- 在每个功率点做谐波平衡仿真:提取基波输出功率和增益。
- 绘制增益 vs. 输入功率曲线。
- 找到增益下降1dB的点:读取对应的输入/输出功率。
我习惯在ADS里用P1dB控件直接跑,但如果你想深入理解原理,建议手动搭一个扫描模板。
3.2.2 扫描步长的选择
这里有个常见的坑:步长太大,P1dB点找不准;步长太小,仿真时间翻倍。
我个人建议:
- 粗扫阶段:5dB步长,快速定位P1dB大致范围。
- 精扫阶段:在P1dB附近±5dB范围内,用0.5dB或0.2dB步长。
小技巧:在ADS里可以用sweep plan做自适应步长——在增益变化快的区域自动加密扫描点。我一般设两个plan:一个粗扫,一个精扫,然后合并结果。
3.3 增益压缩曲线提取
扫完功率,我们得到一堆数据点。接下来要做的,就是从这些点里提取出增益压缩曲线。
3.3.1 增益的计算方式
增益有两种定义:
| 增益类型 | 计算公式 | 说明 |
|---|---|---|
| transducer gain (G_T) | P_load / P_avs | 最常用,考虑源和负载匹配 |
| power gain (G_P) | P_load / P_in | 不考虑源匹配,仅放大器自身 |
在P1dB仿真中,我通常用transducer gain,因为它更贴近实际测试环境——信号源内阻50Ω,负载50Ω。
3.3.2 提取步骤
假设你已经跑完功率扫描,得到以下数据:
Pin:输入功率数组(dBm)Pout:基波输出功率数组(dBm)
增益计算:
Gain(dB) = Pout(dBm) - Pin(dBm)
然后找到线性区的增益平均值:
Gain_linear = mean(Gain[Pin < -20]) // 取小信号区的增益平均
最后,找到满足下式的功率点:
Gain(Pin) = Gain_linear - 1 (dB)
这个Pin就是IP1dB。
注意:有些仿真器会直接输出GainCompression曲线,但不同工具对“压缩量”的定义可能不同。我遇到过ADS和Spectre对同一电路给出的P1dB差了0.3dB,原因就是增益参考点的选取方式不同。建议自己写脚本算一遍,心里有底。
3.4 1dB压缩点判读方法
数据算出来了,但怎么判读?这里我总结了几种方法。
3.4.1 直接读取法
最直观的方法:在增益曲线上画一条水平线(线性增益),再画一条向下偏移1dB的平行线,两条线与增益曲线的交点就是P1dB。
在ADS里,可以用Marker工具直接拖拽读取。但我建议你用Equation控件写个自动判读脚本,避免人为误差。
3.4.2 插值法
如果扫描步长不够密,P1dB可能落在两个扫描点之间。这时需要用插值。
我常用的插值方法:
- 线性插值:简单快速,但精度一般。
- 三次样条插值:精度高,适合增益曲线平滑的情况。
- 多项式拟合:用二阶或三阶多项式拟合增益曲线,然后求解方程。
我个人偏好三次样条插值,在Python里用scipy.interpolate几行代码就搞定。
3.4.3 判读注意事项
这里有几个坑,我曾经都踩过:
- 增益波动:如果电路在低频段有增益波动(比如多级LNA级间匹配不好),线性增益的平均值要取准,别把波动点算进去。
- 多级压缩:多级LNA中,后级可能先压缩。这时增益曲线会出现“拐点”,P1dB判读要小心。
- 温度影响:P1dB随温度变化明显。我一般会在-40°C、+27°C、+85°C三个温度点分别仿真。
实战经验:有一次我仿真一个三级级联LNA,P1dB仿真结果比预期低了2dB。排查了半天,发现是第二级偏置电路在大信号下电压被拉低了,导致增益提前压缩。从那以后,我每次仿真P1dB都会同时监控各级的偏置电压和电流。
3.5 知识体系流程图
下面这张图总结了1dB压缩点仿真的完整知识体系,从原理到判读,一目了然。
3.6 本章小结
1dB压缩点仿真,说白了就是三步:扫功率、提曲线、判读点。每一步都有细节,每一步都可能踩坑。
我个人觉得,初学者最容易忽略的是两点:一是扫描步长的选择,二是增益参考点的定义。这两点搞清楚了,P1dB仿真基本不会出大问题。