<!-- title: 格雷映射：错认邻居只丢1比特 -->

你有没有想过一个问题：当手机信号变差、接收机把一个星座点认成了旁边那个点时，到底会错几个比特？

直觉上，"认错一个符号"就该"错掉这个符号里的所有比特"。可现实恰恰相反——在 4G/5G、Wi-Fi 里，认错一个邻居符号，**通常只错 1 个比特**。这不是巧合，而是一项被精心设计的编码技巧：**格雷映射（Gray Mapping）**。它让星座图上任意相邻的两个点，比特标注永远只差 1 位。

这项技术的根，扎在 1947 年贝尔实验室的一台旋转圆盘上。今天我们就从那台圆盘讲起，把 QAM 星座映射从直觉一路拆到公式。

## 一、一切的源头：1947 年那块转动的圆盘

1947 年，贝尔实验室的工程师 **Frank Gray** 在为一个机械难题发愁：怎么用一个旋转的圆盘精确测量轴的转角？

他的方案是"光电编码盘"——圆盘上有若干圈同心环，每圈按黑/白分段（黑代表 0、白代表 1）。每个角度位置，用一排光电传感器读出对应的多位二进制数。最朴素的做法，是让每圈按**自然二进制**排布：000、001、010、011、100……

问题来了。圆盘从"011"转到下一个角度"100"时，**3 个位要同时翻转**。可机械上，那排传感器不可能绝对对齐——只要差一点点，读数就会在过渡瞬间出现 000、001、010……等任何中间垃圾值，角度直接"大跳变"，产生巨大误差。

Gray 的天才之处在于：重新设计每圈的分段，使得**任意相邻两个角度，只有 1 个位翻转**。这样即使传感器错位，最多也只读成"隔壁那个角度"，误差被锁死在 1 个最小步进内。这种编码后来以他命名，叫**格雷码（Gray Code）**，又叫**反射二进制码（Reflected Binary Code）**。

```mermaid
flowchart TB
    P["共同根因: 两个相邻的状态,<br/>二进制标注却差了很多位"]
    P --> R["旋转编码盘 1947<br/>Frank Gray · 贝尔实验室"]
    P --> Q["QAM 星座映射<br/>现代数字通信"]
    R --> R1["传感器错位<br/>→ 读数大跳变"]
    Q --> Q1["噪声把点推到邻居<br/>→ 多个比特出错"]
    S["共同解法: 格雷码<br/>任意相邻状态恒差 1 位"]
    R1 --> S
    Q1 --> S
```

75 年后，QAM 星座图面对的是**一模一样**的问题：圆盘换成了星座图，机械错位换成了电波噪声，但"相邻状态多位翻转会导致大错"的本质完全相同。于是格雷码顺理成章地成了高阶 QAM 的标配标注法。

## 二、先理清：QAM 到底在干什么

QAM（正交幅度调制）的本质，是用一个复平面上的**点**来携带若干比特。复平面的横轴叫 **I（同相）**，纵轴叫 **Q（正交）**。每个星座点是一对坐标 $(I, Q)$，对应一个复数 $s = I + jQ$。

$M$-QAM 的星座图上有 $M$ 个点，每个点携带 $m = \log_2 M$ 个比特：

- 16-QAM：$m=4$，一个符号 = 4 比特
- 64-QAM：$m=6$，一个符号 = 6 比特
- 256-QAM：$m=8$，一个符号 = 8 比特
- 1024-QAM：$m=10$，一个符号 = 10 比特

所谓"映射"，就是规定**哪一组比特对应哪一个点**。比如 16-QAM 有 16 个点、每组 4 个比特，从 `0000` 到 `1111`。你可以随意把这 16 组比特摆到 16 个点上——但摆法不同，抗噪声能力天差地别。格雷映射，就是经过优化后、**让相邻点只差 1 位**的那一种摆法。

```mermaid
flowchart LR
    B["待发送比特流<br/>b0 b1 b2 b3 ..."] --> G["按每 m 位分组<br/>+ 格雷映射"]
    G --> S["星座点 (I,Q)<br/>= 1 个复符号 s"]
    S --> N["功率归一化<br/>除以 √Es"]
    N --> TX["上变频 → 发射"]
    RX["接收 r = s + n"] --> DD["最大似然判决<br/>找最近的星座点"]
    DD --> DM["格雷反映射<br/>恢复比特"]
```

## 三、误判的真相：噪声让你"认错邻居"

为什么"相邻点"这么关键？因为**接收机最常犯的错，就是把一个点认成它紧挨着的邻居**。

接收信号 $r = s_k + n$，其中 $s_k$ 是发出的符号，$n$ 是加性高斯噪声。接收机用**最近邻判决**：在星座图上找离 $r$ 最近的那个点，作为判决结果 $\hat{s}$。

高斯噪声的特点是"小幅扰动概率大、大幅扰动概率小"。所以当 $n$ 大到足以引起误判时，$r$ 几乎总是被推到**紧邻** $s_k$ 的那个点，而不是跨越大半个星座图跑到对面去。

```mermaid
flowchart TD
    T["发送符号 s_k"] --> N["+ 高斯噪声 n"]
    N --> R["接收: r = s_k + n"]
    R --> D["判决: 找离 r 最近的点"]
    D --> E{"判对了吗?"}
    E -->|"是"| OK["0 比特错"]
    E -->|"否, 推到邻居"| NG["符号错"]
    NG --> K["错几个比特?<br/>由标注方式决定"]
```

这就把问题转化成了：**一次"邻居误判"会带来几个比特错误？**

- 如果用**自然二进制**标注：相邻两个点的比特串可能差 1 位，也可能差 2 位甚至更多。认错邻居，平均会错掉约 2 个比特。
- 如果用**格雷码**标注：相邻两个点**恒定只差 1 位**。认错邻居，**只错 1 个比特**。

这就是格雷映射的全部精髓：**它把"最常见的错误"造成的损失，压到了理论最小值。**

## 四、格雷码长什么样：相邻只差 1 位

格雷码的构造有一条极简的规则。给定自然二进制数 $b_{m-1}b_{m-2}\cdots b_1b_0$，对应的格雷码 $g_{m-1}\cdots g_1g_0$ 为：

$$g_i = b_i \oplus b_{i+1} \quad (\text{最高位 } g_{m-1} = b_{m-1})$$

其中 $\oplus$ 是异或。用程序员的写法更直接：`g = b ^ (b >> 1)`。

以 2 位（4 个电平）为例，对比一下两种标注：

```mermaid
flowchart TB
    subgraph NAT["❌ 自然二进制 (相邻最多差 2 位)"]
        direction LR
        A0["00"] --- A1["01"] --- A2["10"] --- A3["11"]
    end
    subgraph GRAY["✅ 格雷码 (相邻恒差 1 位)"]
        direction LR
        B0["00"] --- B1["01"] --- B2["11"] --- B3["10"]
    end
```

看格雷码那一行：`00 → 01 → 11 → 10`，每跨一步只翻转 1 个位。而自然二进制的 `01 → 10`，两位同时翻转——这正是 Frank Gray 当年最怕的"大跳变"。

**16-QAM 怎么用？** 方形 16-QAM 的 I 轴和 Q 轴各有 4 个电平，每个电平用 2 位格雷码标注（`00, 01, 11, 10`）。一个星座点的 4 位比特 =（I 轴 2 位）（Q 轴 2 位）。因为 I、Q 两轴各自满足格雷性，所以**任意水平或垂直相邻的两个点，都只差 1 位**。把这套二维格雷标注画出来，就是教科书里那张经典的 16-QAM 标注图。

## 五、从符号错误到比特错误：格雷映射到底省了多少

我们来量化格雷映射的收益。定义两个量：

- **符号错误率（SER, $P_s$）**：判决出的符号 $\hat{s} \neq s_k$ 的概率。
- **比特错误率（BER, $P_b$）**：单个比特出错的概率。

对方形 $M$-QAM 在 AWGN 信道下，符号错误率有一个经典近似：

$$P_s \approx 4\left(1 - \frac{1}{\sqrt{M}}\right) Q\!\left(\sqrt{\frac{3\,E_s}{(M-1)N_0}}\right)$$

其中 $E_s/N_0$ 是符号信噪比，$Q(\cdot)$ 是 Q 函数。

**关键的一步来了**：当误判几乎全是"邻居误判"（高信噪比下的主流事件）时，每个符号错误平均只对应 1 个比特错误，于是比特错误率被"摊薄"：

$$\boxed{\;P_b \approx \frac{P_s}{\log_2 M} = \frac{P_s}{m}\;}$$

这才是格雷映射的数学灵魂。以 64-QAM（$m=6$）为例：一次符号错误只贡献约 1 个比特错，而一个符号携带 6 个比特，所以 $P_b \approx P_s/6$。

**如果没有格雷映射呢？** 用自然二进制标注时，一次邻居误判平均会错约 2 个比特，于是 $P_b$ 会逼近 $P_s/2$ 量级。对比之下：

| 比较项 | 格雷映射 | 自然二进制标注 |
|---|---|---|
| 邻居误判的比特错误数 | 恒为 1 | 平均约 2 |
| 64-QAM 的 $P_b$ 与 $P_s$ 关系 | $P_b \approx P_s/6$ | $P_b \approx P_s/2$（量级） |
| 同一 SNR 下的 BER | 较低 | 高出近一倍 |
| 等效增益 | 基准 | 格雷约"省一半错误" |

换句话说，**格雷映射在同样信噪比下，大致能把比特错误率砍掉一半**——这在很多教材里被宽松地表述为"约 3 dB"的增益（具体数值依 SNR 和阶数而定）。对一个每秒吞吐几十 Gbit 的 5G 系统而言，"错误减半"意味着重传更少、有效吞吐更高、覆盖更稳，是实打实的工程价值。

## 六、一个常被忽略的细节：星座点为什么不是整数

如果你去看 16-QAM 的标准星座，会发现点的坐标不是 $(\pm1,\pm3)$，而是 $(\pm1/\sqrt{10},\ \pm3/\sqrt{10})$。这串奇怪的 $\sqrt{10}$ 从哪来？

答案是**功率归一化（Power Normalization）**。通信系统要求"无论用什么调制阶数，发射的**平均符号能量 $E_s$ 都相等**"——否则切换调制方式时发射功率会忽大忽小，功放和非线性都会出问题。

方形 $M$-QAM（点分布在 $\pm d, \pm 3d, \dots$）的平均能量为：

$$E_s = \frac{2}{3}(M-1)\,d^2$$

若取最小间距 $2d = 2$（即 $d=1$），则 $E_s = \tfrac{2}{3}(M-1)$。把所有点除以 $\sqrt{E_s}$ 归一化后，平均能量就变成 1：

| 调制方式 | 比特/符号 $m$ | 归一化因子 $\sqrt{E_s}$ | 归一化后最小点距 | 相对 QPSK 抗噪 |
|---|---|---|---|---|
| QPSK (4-QAM) | 2 | $\sqrt{2}\approx1.414$ | 1.414 | 基准 |
| 16-QAM | 4 | $\sqrt{10}\approx3.162$ | 0.632 | ↓ |
| 64-QAM | 6 | $\sqrt{42}\approx6.481$ | 0.309 | ↓↓ |
| 256-QAM | 8 | $\sqrt{170}\approx13.04$ | 0.153 | ↓↓↓ |
| 1024-QAM | 10 | $\sqrt{682}\approx26.12$ | 0.077 | ↓↓↓↓ |

这张表揭示了一个残酷的物理事实：**调制阶数越高，归一化后相邻点越挤，最小点距越小**。256-QAM 的点距只有 QPSK 的约 1/9，1024-QAM 更是约 1/18。点挤在一起，噪声稍微一推就越界——这就是为什么高阶 QAM 需要高得多的 SNR，也解释了"为什么小区中心用 256-QAM、边缘只能退回 QPSK"。

## 七、实战连接：工程师在哪里会用到这些知识

**1. 调 EVM（发射质量）时，要先确认"用的哪套标注"。** EVM 测量的是"实测星座点偏离理想点"的距离。如果你的仪表/芯片用了自然二进制标注去解一个实际用格雷映射的信号，星座图会"看起来很乱、EVM 暴涨"——但硬件其实没坏。排查 EVM 异常时，**先核对标注规则**是基本功。

**2. 看 MCS / CQI 表时，理解"阶数越高越脆弱"。** 调制编码方案（MCS）把信道质量（CQI）映射到调制阶数。信道好→用 256-QAM（每符号 8 比特，吞吐高）；信道差→退回 QPSK（每符号 2 比特，但点距大、扛得住噪声）。理解了归一化最小点距，你就明白这套自适应机制不是为了"炫技"，而是**在吞吐和抗噪之间找平衡**——格雷映射 + 自适应阶数，是这套平衡术的两大支柱。

**3. 调试"误码率比理论值高"时，查标注和归一化。** 仿真 BER 偏高，最常见两个坑：(a) 映射/反映射没用同一套格雷码；(b) 忘了功率归一化，导致 SNR 算错。先核对这两点，再去怀疑信道模型。

**4. 常见误解：以为"格雷映射能提升 SNR"。** 不能。格雷映射**不改变符号错误率**（星座图几何没变），它只改变"符号错→错几个比特"的转换关系，压低的是 **BER**，对 SER 毫无影响。它是"止损"，不是"增益"。

## 八、格雷映射是万能的吗：标注方式的三国演义

值得强调：格雷映射不是唯一答案，也不总是最优。星座标注其实有三大流派，各有用武之地：

| 标注方式 | 相邻符号比特差 | BER 特性 | 典型场景 |
|---|---|---|---|
| **自然二进制** | 1～$m$ 位 | BER 偏高 | 不推荐用于未编码高阶调制 |
| **格雷码（BRGC）** | 恒为 1 位 | $P_b \approx P_s/m$ | BICM、未编码 QAM（4G/5G/Wi-Fi 主流） |
| **集分割（Set Partitioning）** | 子集内点距大、子集间分层 | 配合编码获额外增益 | TCM 网格编码调制 |

格雷码是"**没有信道编码、或编码与调制分离（BICM）**"时的最优标注。但如果用了 **TCM（Ungerboeck 提出的网格编码调制）**，会把星座点分成若干子集，让"子集内点距尽可能大"——这时用的是**集分割标注**，相邻点的比特差反而被刻意设计得更大，靠卷积码来纠错。也就是说，**格雷码和集分割各有主场，看你是否"编码与调制联合优化"**。现代 4G/5G 用的是 LDPC/Polar + 比特交织（BICM 思路），所以格雷映射稳坐主流。

## 常见问题

**Q1：既然格雷映射把错误减半，为什么还需要 LDPC/Polar 信道编码？**
A：格雷映射只是"认错邻居时少错几个比特"，无法消除符号错误本身。当 SNR 较低、点距又小（如 256-QAM），符号错误率本身就很高，光靠格雷"止损"远远不够。信道编码（LDPC/Polar）才是把 BER 从 $10^{-2}$ 压到 $10^{-6}$ 的主力，二者是互补关系：格雷负责"少错"，编码负责"纠错"。

**Q2：256-QAM、1024-QAM 还能用格雷映射吗？**
A：能，而且照样成立。方形 QAM 的 I/Q 两轴各自独立做格雷标注，无论多少阶，相邻点都恒差 1 位。阶数越高，格雷映射"省一半错误"的相对收益越明显（因为 $m$ 更大，$P_s/m$ 的摊薄效应越强）。难点不在标注，而在高阶对 SNR 和 EVM 的苛刻要求——1024-QAM 要求 EVM 低至约 1%～2%。

**Q3：格雷映射能提升信噪比或符号错误率吗？**
A：不能。星座图的几何（点距、能量）没变，所以 SER 不变。格雷映射改变的是"符号错↔比特错"的转换系数，压低的是 **BER**。它是"误判止损术"，不是"信噪增强术"。

**Q4：工程上怎么确认我的星座图用的是格雷映射？**
A：最直接的办法——看相邻两个点的比特标注的汉明距离。沿 I 轴或 Q 轴取任意一对相邻点，若比特串恒定只差 1 位，就是格雷映射。也可以查芯片/仪表的"星座标注表（labeling map）"，或用 MATLAB `qammod(...,'gray')` 与实测星座比对。

**Q5：QPSK 也需要格雷映射吗？**
A：QPSK 只有 4 个点（2 比特），它的标准标注 `00, 01, 11, 10` 本身就满足相邻差 1 位——也就是说 **QPSK 的常规标注天然就是格雷码**，所以一般不特别强调。格雷映射的价值在高阶 QAM（16 及以上）才凸显。

## 参考来源

1. [QAM 格雷码映射的规则（Gray Code Mapping in QAM）— 博客园](https://www.cnblogs.com/YangGuangPu/p/12107288.html) — 详述方形 QAM 在 I/Q 方向的格雷标注规则
2. [正交振幅调制 QAM — 知乎专栏](https://zhuanlan.zhihu.com/p/690801997) — QAM 调制理论与星座图的通俗讲解
3. [Scaling factor in QAM — dsplog](https://dsplog.com/2007/09/23/scaling-factor-in-qam/) — QAM 功率归一化因子 $\sqrt{E_s}$ 的推导与数值
4. [modnorm — MathWorks MATLAB 文档](https://www.mathworks.com/help/comm/ref/modnorm.html) — 官方对 QAM 平均功率归一化的定义与实现
5. [On the BICM Capacity—Part I: Binary Reflected Gray Code — arXiv](https://arxiv.org/pdf/1001.4548v1) — 格雷标注在 BICM 容量分析中的理论地位
6. [Constellation Diagrams Part 2: Normalization — What About Wi-Fi](https://whataboutwifi.com/?p=947) — 星座图归一化与不同 QAM 阶数的对比

---
> 本文由「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)
