<!-- title: 出门前先变形：预编码原理 -->

# 出门前先变形：预编码原理

上一轮我们聊过多天线怎么形成波束、接收端怎么把缠在一起的多股数据流拆开。这一轮换一个视角：**在信号出门之前，发射端能不能先做点什么，让接收端拆得毫不费力？**

答案就是本文的主角——预编码（Precoding）。它是 Massive MIMO 基站每天都在做、但很多工程师只闻其名不知其理的操作：PMI、RI、码本、互易性、SRS，这些天天挂在嘴边的词，全都是围绕它转的。

## 一、先看问题：两股流为什么会在空中缠死

先建立最简模型。基站两根发射天线，手机两根接收天线，各自同时传一路独立数据。接收天线1收到的，不是“流一”，而是“流一乘一个系数，加上流二乘另一个系数”；接收天线2同理，只是系数不同。写成矩阵就是无线通信里出场率最高的一行公式：

$$\mathbf{y} = \mathbf{H}\mathbf{x} + \mathbf{n}$$

其中 $\mathbf{x}$ 是发射的两路信号，$\mathbf{y}$ 是接收到的两路混合信号，$\mathbf{H}$ 就是 **2×2 的信道矩阵**——四个复数，分别描述“天线A到接收天线1、2”和“天线B到接收天线1、2”的衰减与相移。

麻烦在哪？在于 $\mathbf{H}$ 的形状不由你定。举一个极端例子：如果两根发射天线挨得非常近，信号几乎走同一条路，那么“天线A到接收天线1”和“天线B到接收天线1”的系数几乎一样。这时两股流在每一根接收天线上都以**相同的比例**混合——听感上就像两个人说话的声波在你两个耳朵里混响比例完全相同，你听到的其实是“一个人的声音”，物理上就拆不开。

这个“能不能拆开”，数学上就是信道矩阵 $\mathbf{H}$ 的**秩（rank）**：秩为几，空中就只容得下几条互不纠缠的独立数据流。这也是为什么层数（RI 的取值）不取决于基站有多少根天线，而取决于信道的“独立性”。

## 二、核心思想：出门前先朝反方向拧

接收端硬拆当然可以（均衡、检测那套活儿），但信道缠得越厉害，拆得越吃力，误码越多。既然发射端多少也知道一些信道情况，能不能**对着信道的“扭曲规律”，提前朝反方向拧一道**？

打个比方：你面前是一面哈哈镜（信道），照出来的人是歪的。均衡的思路是“照完之后把像掰直”——那是接收端的活儿。预编码的思路更釜底抽薪：**你既然知道镜子怎么歪，出门前就先把自己朝反方向摆好姿势，一照，正好是标准像。**

数学上这对应线性代数里一个优美的结论：任何信道矩阵 $\mathbf{H}$ 都可以做奇异值分解（SVD）：

$$\mathbf{H} = \mathbf{U}\,\boldsymbol{\Sigma}\,\mathbf{V}^{H}$$

这个式子直译成人话是：信道这个“扭曲体”可以拆成三步动作——**发射端旋转**（$\mathbf{V}^{H}$，这就是预编码矩阵）、**逐条管道缩放**（对角阵 $\boldsymbol{\Sigma}$，对角线上是奇异值 $\sigma_1, \sigma_2, \dots$）、**接收端旋转**（$\mathbf{U}^{H}$）。

发射端做完“先拧”这个动作之后，再叠加信道，接收端只需完成自己的那一拧，等效模型变成：

$$\tilde{\mathbf{y}} = \boldsymbol{\Sigma}\,\tilde{\mathbf{x}} + \tilde{\mathbf{n}}$$

$\boldsymbol{\Sigma}$ 是对角阵——**每股流只影响自己，互不串扰**。原本缠死的信道，被“拧”成了几条平行的、互相隔离的独立管道，每条管道的“管径”就是对应的奇异值。维基百科 Precoding 词条对此的表述是：当信道矩阵完全已知时，SVD 预编码可以达到 MIMO 信道容量——每个奇异值上传送一路数据流（配合合理的功率分配），**不产生任何相互干扰**。

用图把“拧之前”和“拧之后”摆在一起看：

```mermaid
flowchart TD
    subgraph RAW["裸发：信道里缠成一团"]
        A1["数据流一"] --> H1["信道矩阵H"]
        A2["数据流二"] --> H1
        H1 --> R1["每根接收天线<br/>两股流混叠"]
    end
    subgraph PRE["先拧后发：出门前先变形"]
        B1["数据流一"] --> V["预编码矩阵V<br/>按信道反向预拧"]
        B2["数据流二"] --> V
        V --> H2["信道矩阵H"]
        H2 --> W["接收端再拧一下<br/>两流自动分开"]
    end
```

注意一个容易忽略的细节：**预编码矩阵和接收端的合并矩阵是一对**。SVD 把“在纠缠信道里传多路”这个大难题，拆成了两端各做一次旋转的两个简单操作。说预编码是“半套方案”，另一半在接收端，这个认知在调试接收质量时很有用。

## 三、管道有粗有细：不是每条都值得灌水

SVD 给出的是“最多几条管道”，但管道之间**粗细悬殊**。视距好、相关性弱的信道，几条管道都粗；相关性强的信道，可能一条粗、一条细如发丝。衡量悬殊程度的量叫**条件数**：

$$\kappa = \frac{\sigma_{\max}}{\sigma_{\min}}$$

那要不要把细管道也用满？最直觉的做法是直接对 $\mathbf{H}$ 求逆做“完全反卷”（零迫使 ZF 预编码的思路），把所有管道强行拉平。问题是：把细管道的增益从 0.05 放大回 1，同时把这条管道里的**噪声也放大了 20 倍**——你烧掉一半发射功率，换来的容量几乎为零，还拖累了整体信噪比。

信息论给出的最优解叫**注水定理（water-filling）**：把功率想象成水，往几条粗细不同的管道里灌，粗管道多灌、细管道少灌、细到没用的干脆不灌，总容量最大：

$$C = \sum_{i=1}^{k}\log_2\!\left(1 + \frac{p_i\,\sigma_i^2}{N_0}\right)$$

这个道理直接解释了现网里 RI 的含义：**手机上报 RI，本质上是在数“显著非零的奇异值有几个”**。所以看到 RI 常年等于 1 或 2，不要先怀疑设备，先想想这个用户所处的信道到底撑得起几条独立管道。

## 四、关键难题：发射端是怎么知道信道的？

前面所有美妙的数学都有一个前提：发射端得知道 $\mathbf{H}$。但信道是收发双方之间的事，基站怎么“未卜先知”？工程上演化出两条路线，理解了这两条路线，PMI、SRS 这些日常参数就全部串起来了。

### 路线一：码本——双方提前合写一本“密码字典”

完整矩阵太大、上报太贵，于是收发双方**提前约定一组“拧法”**——这就是码本（codebook）。可以把它理解成一本波束字典：每一页是一种典型的预编码权值组合（多由 DFT 波束栅格加极化组合生成）。手机测完信道后，不用上报矩阵本身，只需翻到最合适的那一页，**报一个页码**。

这个页码就是 PMI（预编码矩阵指示）。配合层数（RI）和信道质量（CQI），几个到几十个比特就完成了“信道信息传递”。维基百科 CSI 词条的说法是：接收端估计信道后，通常**量化后反馈**给发射端——量化的载体就是码本。5G NR 里这套机制的成员与依赖关系如下（手机报 RI 之前得先选中哪个导频资源，报 CQI 之前得先定 RI 和 PMI，顺序是环环相扣的）：

| 成员 | 全称 | 手机告诉基站什么 | 依赖谁 |
|---|---|---|---|
| CRI | CSI-RS Resource Indicator | 哪个导频资源/波束最好 | — |
| RI | Rank Indicator | 信道撑得起几层 | CRI |
| PMI | Precoding Matrix Indicator | 字典里选中哪一页“拧法” | RI、CRI |
| CQI | Channel Quality Indicator | 该拧法下能吃多大的调制码率 | PMI、RI、CRI |
| LI | Layer Indicator | 哪一层信号最强 | CQI、PMI、CRI、RI |

NR 的码本还分粗细两档：**Type I** 是“从字典里挑一页”，反馈小、覆盖好；**Type II** 是“挑出两到四个波束做加权组合，并细化各分量的相位与幅度”，相当于用几个标准波束拼出一个非标准波束，精度上一个台阶，代价是反馈量暴涨。两者的对比：

| | Type I 码本 | Type II 码本 |
|---|---|---|
| 选择方式 | 单个波束级选择 | 2~4 个波束线性组合 |
| 相位/幅度细化 | 无（仅波束级） | 有（相位量化 4 或 8 档，可带子带幅度） |
| 反馈开销 | 小（十几个比特量级） | 大（随端口数、子带数增长） |
| 承载信道 | PUCCH、PUSCH 均可 | 仅 PUSCH |
| 适用场景 | 宽覆盖、中低秩 | 高信噪比、高秩、大流量用户 |

码本闭环的完整时序长这样：

```mermaid
sequenceDiagram
    participant G as 基站
    participant U as 手机
    G->>U: 周期发CSI-RS导频
    U->>U: 估计信道矩阵H
    U->>G: 上报RI、PMI、CQI
    G->>U: 按PMI查码本预编码后发数据
    U->>U: 借DMRS核对实际信道再解调
```

### 路线二：互易性——同一条路，走一遍就懂两遍

另一条思路干脆绕开反馈：在 TDD 制式下，上行和下行用**同一个频段的不同时刻**。电磁波传播特性只跟频率和空间路径有关，同一频段上“你到我”和“我到你”走的是物理上的同一条路——这叫**信道互易性**。

于是流程变成：手机发一串上行探测信号（SRS），基站收下来直接估计**上行**信道；因为上下行是同一条路，**下行信道也知道了**——根本不需要手机报任何反馈。基站拿到完整的信道矩阵后，甚至可以现场做 SVD、现场算最优预编码，精度和时效都远超码本量化。

两条路线放在一起看：

```mermaid
flowchart TD
    Q["发射端想要信道信息"] --> Q1["看双工方式"]
    Q1 -->|FDD上下行不同频| CB["码本路线"]
    Q1 -->|TDD上下行同频| RC["互易性路线"]
    CB --> CB1["双方约定码本<br/>一本波束字典"]
    CB1 --> CB2["手机测完只报索引<br/>RI、PMI、CQI"]
    CB2 --> CB3["基站按页码查表预编码"]
    RC --> RC1["手机发SRS探测信号"]
    RC1 --> RC2["基站据此估上行信道"]
    RC2 --> RC3["同一条路反着走<br/>直接推算下行信道"]
```

维基百科 CSI 词条对此的表述是：信道信息通常需要接收端估计并反馈给发射端，**但 TDD 系统可以通过反向链路估计获得**——一句话道破了两条路线的分界线。

## 五、预编码和波束赋形，到底什么关系？

这两 个词经常混着用，其实是一对“数学名字”和“物理名字”。维基百科 Precoding 词条开篇第一句就说得很清楚：**预编码是波束赋形向多流传输的推广**。

拆开讲：

- 当预编码矩阵的每一列只做移相、所有子载波共用一组权值时，它的物理效果就是**把能量聚成一个指向某方向的波束**——这就是经典的波束赋形，可视为预编码的特例；
- 当权值做到每个子载波、每层流各不相同（数字预编码）时，它除了聚能之外还多干了一件事：**让多条流在空间上互相正交**，也就是把第二节说的“管道拆分”落实了。这种多流场景下的增益，用“波束”一词已经描述不全，所以才需要“预编码”这个名字。

| 维度 | 纯波束赋形 | 完整的预编码 |
|---|---|---|
| 目标 | 单流能量聚焦 | 多流正交化 + 能量分配 |
| 权值粒度 | 常为宽带级、纯相位 | 可精确到子载波、复数权值 |
| 数学动作 | 相当于取 $\mathbf{H}$ 的主方向 | 相当于 SVD 对角化 + 注水 |
| 对应反馈量 | 一个波束索引 | RI + PMI + CQI 全家桶 |

所以工程师嘴里说的“BF 权值”，多数时候其实就是预编码矩阵的某一列；说“预编码”，则默认多层多流的完整问题。

## 六、现网里它长什么样：调试视角

原理落到现网，几个高频场景值得记住：

**1. RI 常年为 1，先查空间相关性。** 奇异值数量缩水，多半是信道矩阵的行/列长得太像：天线间距不足（相关性随间距增大而下降）、终端贴身使用（人体遮挡造成强相关）、走廊隧道等狭窄环境（只存在一条主径）。这些都属物理现实，调参数救不了，但如果配置层面把 RI 白名单限制住了（码本配置里有专门的 RI 限制比特串），那才是白丢容量。

**2. PMI 频繁跳变，吞吐会“坐过山车”。** 手机在两页码本之间反复横跳，MCS 跟着震荡。本质是量化边界上的犹豫，惯用手段是拉长 CSI 上报周期、加大滤波平滑，让“页码”稳定下来。

**3. 反馈链条是有顺序的，排障要按依赖来。** 从上表可知：CQI 是在“已选定 RI 和 PMI”的前提下算出来的。如果基站的调度器拿到的 RI 和 PMI 已经过期，CQI 再准也是空中楼阁——高 MCS 顶着旧预编码发数据，误码率立刻报警。FDD 大带宽、高移动场景尤其要警惕“CSI 过期”这个隐形杀手。

**4. 互易性路线的两个坑。** 一是**收发通道的幅相不一致**：互易性假设收发链路完全对称，但射频通道的放大器、滤波器各有各的幅相响应，会系统性污染信道估计，因此 TDD 大规模天线系统需要周期性做通道校准，校准失效会直接表现为波束打歪、SINR 异常。二是 **SRS 资源有限**：小区里用户一多，探测资源不够分，部分用户只能退回码本路线，性能预期要相应下调。

**5. 一个常见误区：PMI 不是信道矩阵。** 它只是量化后的页码，误差是设计内的。看到“PMI 精度不够”就想去“上报完整信道”，方向就错了——上行控制信道根本驮不动那么大的反馈量，工程上的正解是 Type II 这种更细的量化，或者在 TDD 下走互易性。

标准在这套机制上允许多种实现选择，不同网络的具体配置策略以各厂家官方文档为准，但“奇异值—码本—互易性”这条原理主线是通用的。

## 常见问题

**Q: 预编码和均衡有什么区别？不都是“掰直信道”吗？**
A: 方向相反。均衡在接收端，把已经收到的扭曲信号校正回来，靠的是接收端自己估计信道；预编码在发射端，趁信号还没出门先朝反方向拧，需要**发射端**掌握信道信息。均衡是“事后纠偏”，预编码是“事前整形”，两者在系统里常常并存。

**Q: 为什么 FDD 只能走码本、TDD 才能用互易性？**
A: 互易性成立的条件是“同频”。FDD 上下行频点相差几十上百 MHz，折算成波长是几十个波长以上，多径的相位细节完全不同，上行测到的信道对下行没有直接参考价值；TDD 上下行同频，只隔一个收发转换时刻，路径才是“同一条路”。

**Q: RI 为什么经常只有 1？是手机坏了还是基站坏了？**
A: 多数情况谁都没坏——是信道只能撑起一条独立管道。强相关（天线间距小、遮挡、走廊环境）、视距主径过强、码本配置里限制了 RI，都会压低 RI。先看无线环境，再查配置限制，最后才怀疑设备。

**Q: 零迫使（ZF）预编码为什么不直接拿去用？它不是能完全消干扰吗？**
A: 消干扰的代价是放大噪声：把小奇异值管道强行拉平的过程，同时把噪声放大了条件数倍。信道好、用户多时 ZF 表现尚可；噪声受限场景下，正则化 ZF（在求逆里加一个防爆炸的小项）或 MRT 往往更划算。这正是“精确消干扰”与“保信号增益”之间的经典折中。

**Q: Type I 和 Type II 码本怎么选？**
A: 记住开销与精度的交换律。边缘用户、中低信噪比，Type I 的小反馈已经够用；小区中心、高信噪比、需要高秩大流量的用户，Type II 的精细量化才能兑现容量。注意 Type II 反馈量大，只能搭 PUSCH 这条“宽带车道”，PUCCH 驮不动它。

## 参考来源

1. [Precoding - Wikipedia](https://en.wikipedia.org/wiki/Precoding) — 预编码的定义（波束赋形向多流的推广）、SVD 预编码达容量、MRT/ZF 线性预编码分类与有限反馈码本思想
2. [Channel state information - Wikipedia](https://en.wikipedia.org/wiki/Channel_state_information) — y=Hx+n 模型、瞬时/统计 CSI 之分、TDD 反向链路估计（互易性依据）
3. [5G CSI Report - ShareTechnote](https://www.sharetechnote.com/html/5G/5G_CSI_Report.html) — NR CSI 报告组件（CQI/PMI/RI/LI/CRI）及其依赖关系、Type I / Type II 码本配置细节、PUCCH/PUSCH 承载限制

---
> 本文由「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 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
