4、PA线性化技术:回退法、预失真(DPD)原理、DPD调试流程
功率放大器(PA)的线性化,说白了就是跟非线性失真做斗争。你想想看,PA天生就是非线性的,尤其是为了效率,我们总想把它往饱和区推。但一推,信号就变形了——邻道干扰、EVM恶化全来了。
我做了十几年射频,见过太多人在这上面栽跟头。有人为了省成本,回退到死,效率低得可怜;有人DPD调了半天,结果越调越差。嗯,今天咱们就把这事彻底聊透。
4.1 回退法:最朴素的线性化手段
回退法,说白了就是让PA别那么累。你给它输入功率小一点,它自然就工作在线性区了。
原理很简单:PA的AM-AM和AM-PM特性在小信号时是线性的,随着输入增大,增益开始压缩,相位开始偏移。回退就是让输入信号峰值远离这个压缩点。
我习惯用P1dB(1dB压缩点)作为参考。比如一个PA的P1dB是40dBm,你回退6dB,那最大输出就是34dBm。回退多少合适?这取决于信号的峰均比(PAPR)。
经验公式:回退量 ≈ PAPR + 1~2dB(余量)
比如LTE信号PAPR约8dB,那你至少回退9-10dB。
我在项目中遇到过一件事:有个同事为了省电,把回退量压到刚好等于PAPR。结果ACPR死活过不了。后来我让他加了2dB余量,一次通过。为什么?因为PA的温度漂移、老化、工艺偏差都会让压缩点变化,不留余量就是给自己挖坑。
注意:回退法虽然简单可靠,但效率损失巨大。PA在回退区效率可能只有饱和区的1/3甚至更低。所以现代基站很少只用回退法,而是结合DPD。
4.2 预失真(DPD)原理:以毒攻毒
DPD的思路很有意思——你不是非线性吗?那我先给你一个反过来的非线性,两者一抵消,不就线性了?
这就像两个人吵架,一个声音大,另一个更大,最后谁也听不清。但DPD不是这样,它是精确地制造一个“镜像失真”,让PA自己把自己给矫正了。
数学上,PA的非线性可以用多项式表示:
y(t) = a1*x(t) + a2*x²(t) + a3*x³(t) + ...
DPD做的就是:
x_dpd(t) = x(t) - (a2/a1)*x²(t) - (a3/a1)*x³(t) - ...
这样经过PA后,高阶项互相抵消,输出就接近线性了。
当然,实际系统比这复杂得多。还有记忆效应——PA的失真不仅跟当前输入有关,还跟过去的输入有关。所以现代DPD都用Volterra级数或者神经网络来建模。
我的建议:刚开始做DPD,别一上来就搞复杂模型。先用简单的记忆多项式(Memory Polynomial)试试,阶数取5-7阶,记忆深度取3-5。够用就行,别过度拟合。
4.3 DPD调试流程:一步一步来
DPD调试,说白了就是“测量-建模-补偿”的循环。我总结了一套流程,你照着做,基本不会出大问题。
4.3.1 第一步:搭建测试环境
你需要:
- 信号源(矢量信号发生器)
- 频谱仪或矢量信号分析仪
- PA(待测件)
- 耦合器、衰减器(保护仪器)
- DPD算法软件(Matlab/Python/C++)
我曾经犯过一个低级错误:衰减器没加够,直接把频谱仪前端烧了。嗯,从那以后我每次上电前都会检查三遍衰减链路。
4.3.2 第二步:采集PA特性数据
给PA输入一个宽带测试信号(比如20MHz的LTE信号),同时采集输入和输出信号。注意:
- 输入信号要足够大,能激励出PA的非线性
- 输出信号要精确对齐(时延校准)
- 采样率至少是信号带宽的5倍
时延校准这一步特别容易出错。我习惯用互相关法:
% 伪代码示例
[corr, lag] = xcorr(y_out, x_in);
[~, idx] = max(abs(corr));
delay = lag(idx);
y_aligned = circshift(y_out, -delay);
4.3.3 第三步:建立PA模型
用采集到的数据,拟合出PA的逆模型。常用的方法:
- 最小二乘法(LS)
- 递归最小二乘(RLS)——适合在线更新
- 神经网络——适合强非线性
我一般先用LS跑一遍,看看残差。如果残差太大,再换RLS或者加阶数。
关键指标:模型拟合度(NMSE)要低于-30dB,否则DPD效果会很差。
4.3.4 第四步:应用预失真
把拟合出的逆模型参数加载到DPD模块中。这时输入信号会先经过DPD处理,再送给PA。
验证方法:对比DPD前后的输出信号。
- 看频谱:ACPR改善了10-20dB就算成功
- 看EVM:从5%降到1%以内
- 看AM-AM/AM-PM曲线:从弯曲变直
4.3.5 第五步:迭代优化
DPD很少一次到位。你需要:
- 检查ACPR是否达标(通常要求<-45dBc)
- 检查EVM是否达标(通常要求<3%)
- 检查是否有记忆效应残留(看频谱是否对称)
- 如果不行,调整模型阶数或记忆深度
我记得有一次调一个GaN PA,ACPR始终差3dB。折腾了两天,最后发现是电源纹波太大,导致PA偏置点抖动。换了低噪声电源,问题解决。所以,有时候问题不在DPD本身,而在外围电路。
避坑指南:我曾经遇到过DPD越调越差的情况。后来发现是反馈路径的耦合器方向接反了,导致采集的相位是反的。所以,调试前一定要确认反馈路径的相位和幅度正确。
4.4 回退法与DPD的对比
| 对比项 | 回退法 | DPD |
|---|---|---|
| 实现复杂度 | 极低 | 高(需要算法和硬件支持) |
| 效率 | 低(回退越多效率越低) | 高(可工作在饱和区附近) |
| 线性度 | 好(但牺牲效率) | 极好(可同时兼顾效率) |
| 成本 | 低 | 高(需要DPD芯片或FPGA资源) |
| 适用场景 | 小基站、低功率、低成本 | 宏基站、高功率、高性能 |
说白了,回退法是“用效率换线性”,DPD是“用复杂度换效率”。现代基站通常两者结合:先回退3-5dB,再用DPD把线性度拉回来。这样既保证了效率,又保证了线性。
好了,这一章就到这里。下一章咱们聊聊PA的偏置电路设计——别看它不起眼,搞不好能让你的PA直接罢工。