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很少一次到位。你需要:

  1. 检查ACPR是否达标(通常要求<-45dBc)
  2. 检查EVM是否达标(通常要求<3%)
  3. 检查是否有记忆效应残留(看频谱是否对称)
  4. 如果不行,调整模型阶数或记忆深度

我记得有一次调一个GaN PA,ACPR始终差3dB。折腾了两天,最后发现是电源纹波太大,导致PA偏置点抖动。换了低噪声电源,问题解决。所以,有时候问题不在DPD本身,而在外围电路。

避坑指南:我曾经遇到过DPD越调越差的情况。后来发现是反馈路径的耦合器方向接反了,导致采集的相位是反的。所以,调试前一定要确认反馈路径的相位和幅度正确。

4.4 回退法与DPD的对比

对比项 回退法 DPD
实现复杂度 极低 高(需要算法和硬件支持)
效率 低(回退越多效率越低) 高(可工作在饱和区附近)
线性度 好(但牺牲效率) 极好(可同时兼顾效率)
成本 高(需要DPD芯片或FPGA资源)
适用场景 小基站、低功率、低成本 宏基站、高功率、高性能

说白了,回退法是“用效率换线性”,DPD是“用复杂度换效率”。现代基站通常两者结合:先回退3-5dB,再用DPD把线性度拉回来。这样既保证了效率,又保证了线性。

好了,这一章就到这里。下一章咱们聊聊PA的偏置电路设计——别看它不起眼,搞不好能让你的PA直接罢工。