你一定有过这样的体验:KTV里把话筒音量推到最大,音箱就开始"嘶啦嘶啦"地破音;用手机外放最大音量听歌,鼓点重的地方声音发劈。这不是音箱坏了,而是功放(功率放大器,Power Amplifier,简称 PA)被"喂"得太饱,进入了非线性区。
基站里的射频功放,本质上和这个音箱是同一类东西——它把微弱的基带信号"喊"出去,喊得越响,覆盖得越远。但通信信号远比音乐"娇贵":音乐破了,顶多难听;通信信号破了,星座点会糊成一团,误码率飙升,更糟糕的是多余的能量会"溅"到隔壁信道,干扰别人,这就是监管死死盯着的"邻道泄漏"。
这就出现了一个让人抓狂的矛盾:
功放要省电(高效率),就得工作在"破音"区;要信号干净(高线性),就得退回"小声"区(功率回退)。 效率和线性,像鱼和熊掌。
数字预失真(Digital Pre-Distortion,DPD)就是来解决这个矛盾的。它的思路非常反直觉,堪称通信工程里最优雅的"以毒攻毒":
既然功放会在大信号处把幅度"压扁",那我就在数字域里先把它"撑大"一点,等它经过功放被压扁后,刚好回到正确的值。 预先扭曲,抵消后天的扭曲,最终级联起来像一条直线。
这一篇,我们就从功放为什么会破音讲起,一路推到 DPD 如何自己学会"以毒攻毒",再到你在现网调试时踩过的那些坑。
先看一组让人心疼的数字:一个 5G 宏基站,射频部分的功耗往往占到整机的一半以上,而其中功放又是射频部分的大头。功放吃进去的直流电,只有一部分变成有用的射频信号送上天线,剩下全变成了热。这个"有用比例"就是功放的效率。
不同类型的功放,效率和线性是天平的两端:
| 功放类别 | 典型效率 | 线性度 | 主要用途 |
|---|---|---|---|
| A 类 | ~25-30% | 极好 | 实验室仪表,几乎不用在基站 |
| AB 类 | ~35-50% | 好 | 中等线性要求场景 |
| B 类 | ~50-60% | 中等 | — |
| Doherty(多赫蒂) | ~50-70% | 中等偏低 | 4G/5G 基站主力 |
A 类功放线性最好——它永远"在线",信号再大也不破音。但代价是它永远在满负荷耗电,效率只有三成左右,剩下七成全变成热烤机房。这种"用钱(电)换线性"的豪横做法,商业基站用不起。
基站普遍采用 Doherty 功放:它在平均功率附近效率很高,但一遇到信号峰值,增益就开始"塌",进入非线性。偏偏现代调制信号(OFDM、高阶 QAM)又是出了名的"忽大忽小"——峰值功率比平均功率高出一大截(这就是峰均比 PAPR)。
所以现实就是:你不可能让功放又省电又干净,只能选一个,然后用 DPD 去"补"另一个。 这正是 DPD 存在的根本理由——它不是锦上添花,而是基站能正常通过入网测试、满足 ACLR(邻道泄漏比)指标的关键命门。
一句话记住:DPD 不是为了把信号变得更好,而是为了让功放可以"大胆地破音工作"的同时,从外面看不出来它破音。
要把功放的"破音"刻画清楚,工程师用两张图来描述它的"脾气":
输入信号幅度 $A_{in}$ 越大,理想功放的输出幅度 $A_{out}$ 应该成比例增大:$A_{out} = G \cdot A_{in}$,一条过原点的直线。但实际功放在大信号处会"压扁"——增益下降,曲线弯下来。这种幅度随幅度变化的失真,叫 AM-AM 失真。
用一条经典的 Saleh 模型曲线来示意(数字归一化):
xychart-beta
title "功放 AM-AM 特性:大信号处被压扁"
x-axis "输入幅度" 0 --> 1
y-axis "输出幅度" 0 --> 1.1
line "理想线性" [0, 0.15, 0.3, 0.45, 0.6, 0.75, 0.9, 1.0]
line "实际PA(压缩)" [0, 0.15, 0.3, 0.44, 0.56, 0.65, 0.72, 0.76]
看到没有?小信号处两条线几乎重合(功放老实放大),大信号处分叉了——功放"使不上劲",输出被压住。这就是增益压缩,常说的"1dB 压缩点"就是增益比线性值掉了 1dB 的那个输入点。
更隐蔽、但同样致命的是 AM-PM 失真:输入幅度变化,竟然会让输出相位也跟着转。也就是说,同一个星座点,因为它的幅度不同,到达时相位被额外旋转了一个角度。在星座图上,这表现为整个星座"拧"了一下,外圈的点转得更厉害。
把两者合起来,功放对信号的作用可以用一个复数增益描述:
$$ y(t) = G\big(|x(t)|\big) \cdot x(t) $$
其中 $G(\cdot)$ 是一个复函数,它的模 $|G|$ 随幅度变化就是 AM-AM,它的辐角 $\angle G$ 随幅度变化就是 AM-PM。非线性 = 增益不再是常数,而是输入幅度的函数。
关键直觉:非线性失真的本质是"大信号和小信号被区别对待"。DPD 要做的事,就是反过来——在大信号处提前"补偿"这种区别对待。
你可能会问:星座点糊一点,忍忍不就行了?不行,因为非线性会带来一个更严重的后果——频谱再生(Spectral Regrowth)。
时域上"幅度被压扁"是个非线性操作,非线性操作在频域上等于"产生了输入里原本没有的新频率分量"。回忆一下三角公式:
$$ \sin^3(\omega t) = \frac{3}{4}\sin(\omega t) - \frac{1}{4}\sin(3\omega t) $$
一个三阶非线性,输入一个纯正弦,输出里就冒出了三倍频成分。实际信号是宽带的,三阶、五阶交调产物会像墨水一样向信号主瓣两侧"晕开",落到相邻信道里去。
这就是为什么监管机构规定 ACLR(Adjacent Channel Leakage Ratio,邻道泄漏比) 指标——你的信号主瓣功率,和"溅"到隔壁信道的功率之比,必须大于某个门槛(比如 45dB,即相差约三万倍)。一旦功放"破音"过头,ACLR 就会超标,基站入网测试直接挂掉。
flowchart LR
A["原始频谱<br/>干净的主瓣"] --> PA["功放(非线性)"]
PA --> B["再生频谱<br/>主瓣+两侧'晕开'"]
B --> C{"ACLR是否达标?"}
C -->|"未达标的功率溢出"| D["❌ 干扰邻道<br/>入网测试失败"]
C -->|"功率被压在掩膜下"| E["✅ 合规"]
style D fill:#f4cccc
style E fill:#d9ead3
内行看门道:ACLR 不达标,第一个怀疑对象就是 DPD 没调好,而不是调制器或滤波器。这也是为什么一线工程师必须懂 DPD。
现在主角登场。DPD 的思路可以用一句话概括:
在数字域里给信号施加一个"相反的扭曲",使 预失真器 + 功放 的整体看起来是一条直线。
如果功放在大信号处把幅度压到 0.76(本该是 1.0),那预失真器就在大信号处把输入撑到 $1.0/0.76 \approx 1.31$ 倍,喂给功放后,$1.31 \times 0.76 = 1.0$,正好回到理想值。相位同理——功放转了 $+10°$,预失真器先转 $-10°$,两者抵消。
数学上,设预失真器的特性为 $F(\cdot)$,功放的特性为 $G(\cdot)$,目标是:
$$ G\big(F(x)\big) = K \cdot x $$
即整体只是一个恒定增益 $K$ 的线性系统。这意味着 $F$ 是 $G$ 的逆函数(在数值上是广义逆):
$$ F(\cdot) = G^{-1}(\cdot) $$
整个发射机的闭环架构长这样:
flowchart TD
X["数字基带信号 x"] --> PD["数字预失真器<br/>F(·):施加反向扭曲"]
PD --> DAC["DAC + 上变频"]
DAC --> PA["功放 G(·):自然扭曲"]
PA --> ANT["天线发射"]
PA -.->|"耦合采样"| FB["反馈接收机<br/>下变频+ADC"]
FB -.-> ENG["自适应算法引擎<br/>估计逆模型"]
ENG -.->|"更新系数"| PD
style PD fill:#fff2cc
style ENG fill:#cfe2f3
注意几个设计精髓,理解了它们你就理解了 DPD "为什么这么搭":
为什么预失真放在数字域、且在 DAC 之前? 因为数字域可以精确地施加任意复杂的非线性变换,零成本(相对而言)、可编程、不受温度漂移影响。模拟域做预失真既不灵活又难调。
为什么需要一个反馈回路? 因为功放的"脾气"会变——温度升高、器件老化、负载变化、不同频段、不同带宽的信号,都会让非线性特性漂移。预失真器不能调好一次就一劳永逸,必须持续学习、实时跟踪。
为什么采样的是功放输出而不是输入? 因为目标是让"功放输出"线性,所以反馈必须观测真实的输出,再倒推出需要补偿多少。这是一个典型的闭环辨识问题。
类比总结:DPD 像一个提前量很准的神枪手——他知道子弹会受风偏(功放扭曲),于是瞄准时反向偏一点(预失真),最终子弹(输出)正中靶心(线性)。
如果你只考虑 AM-AM 和 AM-PM,理论上一个无记忆多项式就够了:
$$ y(n) = \sum_{k=1}^{K} a_k \cdot x(n)\,|x(n)|^{2(k-1)} $$
只含奇数次项(因为基带模型的对称性),$a_k$ 是待拟合系数。这就是把功放当成"当前输出只依赖当前输入"的瞬时非线性。
但现实残酷:宽带信号下,功放有记忆效应。功放的输出不仅取决于"现在这一刻"的输入,还取决于"刚才"的输入——因为电路里有储能元件(电容、电感)、热惯性、偏置网络的迟滞。于是同一个幅度的输入,因为它"刚才经历的历史"不同,输出可能不一样。
无记忆模型在窄带(如 3G 的 5MHz)还能凑合,但到了 LTE 的 20MHz、5G 的 100MHz 甚至 200MHz 带宽,记忆效应会让无记忆 DPD 的补偿效果大打折扣——ACLR 怎么调都差那么几个 dB。
解决办法是引入记忆多项式(Memory Polynomial,MP),把"历史"也纳入模型:
$$ y(n) = \sum_{k=0}^{K-1}\sum_{m=0}^{M-1} a_{km}\, x(n-m)\,|x(n-m)|^{2k} $$
这里 $M$ 是记忆深度(看过去多少个采样),$K$ 是非线性阶数。一个 5G 基站 DPD 典型配置可能是 $K=5\sim7$(阶数)、$M=3\sim5$(记忆深度)。
更高级的还有广义记忆多项式(GMP)、Volterra 级数、以及近年来热门的神经网络 DPD。它们的取舍很清晰:
| 模型 | 是否含记忆 | 精度 | 计算复杂度 | 适用场景 |
|---|---|---|---|---|
| 无记忆多项式 | ❌ | 低 | 极低 | 窄带、教学演示 |
| 记忆多项式 MP | ✅ | 中高 | 中 | LTE、5G 中等带宽主流 |
| 广义记忆多项式 GMP | ✅+交叉项 | 高 | 较高 | 5G 宽带、高指标 |
| Volterra 级数 | ✅ | 极高 | 极高(系数爆炸) | 研究、超高要求 |
| 神经网络 | ✅ | 高(自适应) | 高(推理开销) | 宽带、多频、未来趋势 |
工程直觉:阶数越高,能抵消的交调产物阶数越高;记忆深度越大,能跟踪的宽带失真越多。但两者都涨,系数就指数级膨胀,DSP 算不动、收敛也变慢。 DPD 调参,本质是在"补偿能力"和"实现代价"之间找平衡点。
最难也最巧妙的部分来了:预失真器的那些系数 $a_{km}$ 是怎么来的? 它们不是人手算的,而是 DPD 自己学出来的,而且每隔几十毫秒就刷新一次。这个过程叫自适应学习。
最经典的是间接学习结构(Indirect Learning),思路绕但很妙:
整个流程用时序图看最清楚:
sequenceDiagram
participant TX as 数字基带 x(n)
participant PA as 功放输出 y(n)
participant FB as 反馈接收机
participant ENG as 自适应引擎
TX->>PA: 信号经预失真+上变频+放大
PA->>FB: 耦合一小部分输出
FB->>ENG: 反馈样本 y(n)(对齐到 x(n))
ENG->>ENG: 时间对齐+幅度/相位校准
ENG->>ENG: 最小二乘估计后失真器系数
ENG->>TX: 复制系数到预失真器
Note over TX,PA: 级联输出逼近线性,ACLR达标
这里有几个只有踩过坑才懂的工程细节:
一句话:DPD 不是一次性配置,而是一台时刻在"自学微调"的机器。 它的强大正在于——你换了频段、信号变了、机房空调坏了导致温度飙升,它都能跟得上。
理论讲完,回到一线。当你拿到一台新基站或在现场排查 ACLR 超标,DPD 的调测是绕不开的关卡。常见的症状和对应原因,我整理成一张"诊断速查表":
| 症状 | 典型原因 | 排查方向 |
|---|---|---|
| ACLR 整体差几个 dB | 阶数/记忆深度不够 | 提高非线性阶数、加深记忆深度 |
| ACLR 时好时坏飘忽 | 自适应未收敛、样本太少 | 增加训练样本数、检查学习率 |
| 单边频谱再生严重 | I/Q 不平衡、镜像泄漏 | 先查 I/Q 校准,再查 DPD |
| 低功率时反而变差 | DPD 工作点偏高、回退过大 | 确认功放工作点,避免过度预失真 |
| 温度升高后指标恶化 | 学习周期太长跟不上热漂移 | 缩短自适应刷新周期 |
| 换频段/带宽后失效 | 模型不通用 | 重新采集训练样本、换模型 |
几个容易踩的调试陷阱:
把 DPD 当万能药:ACLR 不达标先怀疑 DPD,但有时根因是峰均比太高、CFR(削峰)没做好。DPD 补偿的是功放的非线性,它"压"不住太高的峰值——必须先 CFR 把 PAPR 砍下来,再交给 DPD。CFR 是减负,DPD 是矫正,顺序不能乱。
反馈链路信噪比被忽略:反馈接收机自己也有噪声和线性度问题。如果反馈链路比功放还差,DPD 学到的就是"噪声的逆",越学越乱。一线经验:反馈链路的线性度要比被测功放好 10dB 以上。
忽视 PA 工作点:DPD 不是在任何功率都有用。功放工作点太低(回退太大),非线性本来就不明显,DPD 反而引入量化噪声;工作点太高(接近饱和),即使最高阶模型也救不回来。DPD 有效区间一般在 1dB 压缩点回退 6~10dB 处。
现网价值:一个调得好的 DPD,能让基站在同样的 ACLR 指标下,输出功率提高 1~2dB——别小看这一两个 dB,在覆盖和容量上意味着真金白银。这也是为什么芯片厂商(如 ADI 的 ADRV9002、各种基站 SoC)都把 DPD 做成可配置的硬核模块。
回到最初那个 KTV 音箱的比喻。如果你只把它当成"功放坏了要修",你就永远停留在被动应对;一旦你理解了"功放天生要在非线性区高效工作,而 DPD 用数字域的反向扭曲把它伪装成线性"这层逻辑,你在看任何发射机架构、任何 ACLR 故障、任何芯片 datasheet 里的 DPD 章节,都会豁然开朗。
DPD 是通信工程里少有的、把数学之美和工程之用结合得淋漓尽致的技术:它用最小二乘辨识、Volterra 级数这些看似纯理论的工具,实打实地给运营商省下几千万度电、给基站省出宝贵的发射功率。理解它,就是理解了现代无线发射机最核心的一块拼图。
Q1:DPD 和功率回退(Back-off)有什么区别,为什么不直接回退? A:功率回退是把功放工作点压低,让它待在线性区,简单但极其费电——回退 3dB,效率可能掉一半。DPD 则是让功放大胆工作在高效率的非线性区,再用数字补偿把非线性"擦掉"。一句话:回退是"花钱(效率)买线性",DPD 是"用算力换效率",后者在基站这种长期高功率场景下性价比碾压。
Q2:CFR(削峰)和 DPD 是什么关系,能互相替代吗? A:不能,是互补的。CFR 负责把信号的峰均比降下来(减少偶尔的极端峰值),让功放不必为这些罕见峰值而过度回退;DPD 负责补偿功放的非线性。顺序永远是 CFR → DPD:先减负,再矫正。只调 DPD 不做 CFR,峰值把功放打到饱和,DPD 再厉害也补不回来。
Q3:DPD 的系数需要多久更新一次? A:典型在几十毫秒到几百毫秒更新一轮,取决于功放特性漂移速度。温度变化快、负载驻波波动大、频繁切换频段时,更新要更勤。但每轮更新都要采集成千上万样本做 LS 求解,太频繁会占用 DSP 算力,所以这是个平衡。
Q4:无记忆多项式、记忆多项式、神经网络 DPD,我该选哪个? A:带宽是决定因素。窄带(< 20MHz)无记忆或浅记忆即可;LTE/5G 中等带宽(20~100MHz)记忆多项式 MP 是主流;超宽带、多频并发、毫米波,考虑 GMP 或神经网络。工程上先用 MP 跑通,指标不够再升级模型,不要一上来就上最复杂的——复杂模型收敛慢、占资源。
Q5:手机里为什么很少提 DPD,主要是基站用? A:因为功耗量级差太多。基站功放几十瓦到上百瓦,DPD 带来的效率提升能省下巨大的电费和散热成本,值得投入专门的 DSP。手机功放功率小(毫瓦级到几瓦),且对芯片面积、待机功耗敏感,更多依赖功放本身的良好设计和适度的回退,DPD 用得轻量甚至省略。但随着 5G 毫米波和高带宽调制,旗舰手机射频芯片也开始集成简化版 DPD。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
