---
title: 信道容量与编码
url: https://doc.liz6.com/theory/01-information-theory/04-channel-capacity-and-coding
locale: zh
area: theory
tags:
- theory
- 信息论
date: 2026-07-18
modified: 2026-07-29
description: 香农信道编码定理是全信息论最反直觉的结论:只要选定的传输速率低于信道容量 C = max I(X;Y),就能靠更长、更聪明的编码把错误率压到任意接近零,不必为了继续降低错误率而把速率一路降到零。这条定理定义了通信的渐近极限。
---

# 信道容量与编码

> 香农信道编码定理是全信息论最反直觉的结论:只要选定的传输速率低于信道容量 $C=\max I(X;Y)$,就能靠更长、更聪明的编码把错误率压到任意接近零,不必为了继续降低错误率而把速率一路降到零。这条定理定义了通信的渐近极限。

## 引子:一条注定会出错的线路

前几章讲的是"怎么把信息压小"。这一章反过来:信息要**穿过一条会出错的线路**送到对面,怎么保证它不被噪声毁掉?

线路会翻转比特、会叠加噪声。最笨的对策是加冗余——把每个比特重发三遍,收端少数服从多数。但这样速率直接掉到 $1/3$,而且噪声一大照样出错。

香农在 1948 年给出的答案,当年震惊了整个学界:只要先选定一个低于门槛的正速率,就能通过增加码长和改进编码,把错误率压到任意接近零,**不必随着目标错误率降低而继续把速率降向零**。这个门槛就是信道容量。这一章把它讲清楚。

## 信道模型:噪声怎么建模

先要有个能算的噪声模型。**信道(channel)** 就是一个把输入 $X$ 变成输出 $Y$ 的带噪声映射,用条件分布 $p(y \mid x)$ 刻画。两个最基础的模型撑起所有直觉:

- **二元对称信道(Binary Symmetric Channel, BSC)**:输入 $0$ / $1$,以概率 $p$ 翻转($0$ 变 $1$ 或 $1$ 变 $0$),以 $1-p$ 正确通过。这里的 $p$ 就是误码率。这是数字通信最简的抽象——每个比特独立地有一定概率被噪声打翻。
- **加性高斯白噪声信道(AWGN)**:输出 $Y = X + N$,其中 $N$ 是均值为 $0$、方差为 $\sigma^2$ 的高斯噪声。这是模拟 / 无线信道的标准模型:信号在传输中被叠上一层随机噪声,信噪比 $\text{SNR}$ 越高,噪声相对越小。

信道的本质约束是:噪声让收端无法完全确定发的是什么,$Y$ 只携带了关于 $X$ 的**部分**信息。而这个"部分有多少",正好由互信息度量。

## 互信息:信道到底传了多少信息

用一次信道,输出 $Y$ 关于输入 $X$ 的信息量,就是 [互信息](/theory/01-information-theory/01-entropy-and-information-measures.md):

$$I(X;Y) = H(X) - H(X \mid Y)$$

拆开读很顺:发送前对 $X$ 的不确定性是 $H(X)$;收到 $Y$ 后残余的不确定性是 $H(X \mid Y)$(这就是噪声引入的模糊)。两者之差,就是**成功穿过信道的信息**。

三个极端把手感喂足:

- **无噪声信道**:$H(X \mid Y)=0$,$I(X;Y)=H(X)$,发什么收什么。
- **纯噪声信道**($Y$ 与 $X$ 无关):$I(X;Y)=0$,收到的东西对推断输入毫无帮助。
- **均匀输入的 BSC**:当 $0$ / $1$ 等概率输入时,$I(X;Y)=1-H(p)$,其中 $H(p)$ 是 [二元熵函数](/theory/01-information-theory/01-entropy-and-information-measures.md)。均匀输入恰好达到 BSC 的容量;若输入有偏,互信息通常更小。当 $p=0.5$,$H(p)=1$,$I=0$——翻转概率一半就等于纯噪声,信道彻底废了。

## 信道容量与香农信道编码定理

**信道容量(channel capacity)** 定义为:在所有可能的输入分布上,互信息能取到的最大值。

$$C = \max_{p(x)} I(X;Y)$$

它是这个信道每用一次,最多能可靠携带的比特数,单位是 bit / 信道使用。

**香农信道编码定理(1948)** 给出那个反直觉的结论:

> 对任何传输速率 $R < C$,都存在编码方案,使解码错误率任意接近 $0$;反之,若 $R > C$,错误率无法压到 $0$——不可能可靠传输。

反直觉在哪?人们本以为"要把错误率继续降低,就必须继续降低速率"(比如增加重复次数)。香农说:一旦选定 $R<C$,可以固定这个速率,再靠更长的块码把错误率压到任意低。

那代价换到哪去了?换到**延迟、编码复杂度和码字长度**上。方法是把很多比特打包成长码字,用信息在长块上的统计规律去抵抗噪声——码字越长,越有机会逼近这个渐近极限。

<svg viewBox="0 0 720 280" xmlns="http://www.w3.org/2000/svg" font-family="-apple-system,'Source Han Sans CN','Microsoft YaHei',sans-serif" role="img" aria-label="速率与可达性:传输速率 R 小于信道容量 C 时可任意逼近零错误,R 大于 C 时不可能可靠传输">
  <rect width="720" height="280" fill="#ffffff"/>
  <text x="360" y="30" text-anchor="middle" font-size="17" font-weight="700" fill="#1f2933">速率 R 与可达性:C 是一道锐利的门槛</text>
  <line x1="80" y1="200" x2="660" y2="200" stroke="#475569" stroke-width="1.6"/>
  <text x="675" y="205" font-size="12" fill="#64748b">R</text>
  <line x1="400" y1="90" x2="400" y2="215" stroke="#1f2933" stroke-width="2" stroke-dasharray="5 4"/>
  <text x="400" y="82" text-anchor="middle" font-size="14" font-weight="700" fill="#1f2933">C(信道容量)</text>
  <rect x="80" y="120" width="320" height="80" fill="#22c55e" fill-opacity="0.15" stroke="#22c55e" stroke-width="1.6"/>
  <text x="240" y="150" text-anchor="middle" font-size="14" font-weight="700" fill="#166534">R &lt; C</text>
  <text x="240" y="172" text-anchor="middle" font-size="12" fill="#15803d">存在编码使错误率 → 0</text>
  <text x="240" y="190" text-anchor="middle" font-size="11" fill="#64748b">可任意逼近零错误</text>
  <rect x="400" y="120" width="260" height="80" fill="#94a3b8" fill-opacity="0.18" stroke="#94a3b8" stroke-width="1.6"/>
  <text x="530" y="150" text-anchor="middle" font-size="14" font-weight="700" fill="#475569">R &gt; C</text>
  <text x="530" y="172" text-anchor="middle" font-size="12" fill="#475569">错误率有下界,无法归零</text>
  <text x="530" y="190" text-anchor="middle" font-size="11" fill="#64748b">不可能可靠传输</text>
  <rect x="120" y="234" width="480" height="30" rx="8" fill="#eef2ff" stroke="#c7d2fe"/>
  <text x="360" y="253" text-anchor="middle" font-size="12" fill="#3730a3">门槛在 C,不在 0——低于它可靠性免费,高于它可靠性买不到。</text>
</svg>

定理有两半,一半保证下界可达,一半封死上界:**可达性(achievability)** 说 $R<C$ 时用随机编码就能构造出好码(这是存在性证明,不给具体码);**逆定理(converse)** 说 $R>C$ 时任何码都逃不过非零错误。两者从上下夹出 $C$ 这道锐利的门槛。

### 算一个 BSC 的容量

抽象讲完,代进数字。BSC 的容量有闭式解:$C = 1 - H(p)$,其中 $p$ 是翻转概率,$H(p)$ 是 [二元熵函数](/theory/01-information-theory/01-entropy-and-information-measures.md)。

- $p=0$(无噪声):$H(0)=0$,$C=1$ bit。每次使用满载传 $1$ bit。
- $p=0.11$(约 $11\%$ 误码):$H(0.11)\approx 0.5$,$C\approx 0.5$ bit。想可靠,平均每传 $1$ bit 信息要发约 $2$ 个信道比特,一半带宽拿去抗噪。
- $p=0.5$(纯噪声):$H(0.5)=1$,$C=0$ bit。输出和输入独立,传不了任何信息。
- $p=1$(必翻转):$C=1$ bit。有意思——确定性翻转不是噪声,收到后取反即可,信息毫发无损。

最后一条点破了一个常见误解:**真正杀死信道的是 $p=0.5$ 的"最大不确定",不是翻转本身**。达到容量的最优输入分布,这里是均匀的($0$ / $1$ 等概率)——这也解释了为什么 $C$ 的定义要 $\max$ 遍历所有输入分布:信道能传多少,还取决于你怎么喂它。

### AWGN 容量:为什么必须先限制功率

AWGN 信道写成 $Y=X+N$,其中噪声 $N\sim\mathcal N(0,\sigma^2)$。如果允许输入信号功率无限大,发送端只要把信号幅度不断放大就能压过噪声,容量也就没有有限上界。因此谈 AWGN 容量时,必须同时给出平均功率约束 $\mathbb E[X^2]\leq P$。

对单次使用的实数 AWGN 信道,容量是:

$$C=\frac{1}{2}\log_2\left(1+\frac{P}{\sigma^2}\right)
=\frac{1}{2}\log_2(1+\mathrm{SNR})\quad\text{bit / 信道使用}$$

这里的 $\frac12$ 来自"一次实数信道使用"的口径。连续时间、带宽为 $B$ 的常见写法是 $C=B\log_2(1+\mathrm{SNR})$ bit/s。真正值得记住的不是系数,而是两点:**容量依赖输入约束;提高 SNR 的收益只有对数增长**。把功率翻倍,容量并不会翻倍。

### 几个反直觉但要命的点

- **固定在容量以下的速率后,可靠性主要拿码长换。** $R<C$ 本身已经给容量留出了余量;定理保证不必随着目标错误率趋近零,再把 $R$ 一路降向零。实际系统还要支付延迟和计算复杂度;在有限码长下,渐近定理本身并不告诉你错误率究竟能降到多少。
- **容量是硬墙,不是软约束。** $R>C$ 时不是"错误率高一点",而是**原理上不可能**压到零——加再多冗余、再聪明的码都没用。这条线由逆定理证死。
- **香农只证了"存在",没给"怎么造"。** 定理用随机编码证明好码存在,却对如何高效编解码只字未提。这道存在性与构造性之间的鸿沟,养活了整个编码理论半个多世纪。

## 香农极限的工程意义

强调一遍:香农定理是**存在性**的。它证明好码存在,却没告诉你怎么造,更没说解码得多快。此后半个多世纪的编码理论,都在追赶这条"**香农极限**"——造出既逼近 $C$、又能高效编解码的实用码。

- 早期的 Hamming、Reed-Solomon 码,离极限还远。
- **turbo 码(1993)** 和 **LDPC 码(Gallager 1962,90 年代重新发现)** 借助迭代 / 置信传播解码,在 AWGN 上做到了距香农极限不到 $1$ dB。这是通信工程的一次胜利,如今 5G、Wi-Fi 6、深空通信都在用 LDPC。
- 具体纠错码的构造与迭代解码细节这里点到为止。要记住的骨架是:**理论极限由香农定死,工程几十年就在贴着它跑**。

## 信源—信道分离:压缩和纠错如何接起来

[源编码](/theory/01-information-theory/03-source-coding-and-compression.md) 负责去掉信源自身的冗余,把速率压到熵率附近;信道编码再有控制地加入冗余,抵抗传输噪声。香农的**信源—信道分离定理**说:对经典的点对点、长块、平稳信源和无记忆信道,只要经过单位换算后的信源熵率低于信道容量,就可以"先压缩、再纠错",而不损失渐近最优性。

这给出了整套通信链路最简洁的判据:

$$\text{压缩后的信息速率}<\text{信道容量}\quad\Rightarrow\quad\text{原则上可以可靠传输}$$

它也解释了为什么压缩与纠错看似方向相反却能串联工作。不过"分开设计总是最优"有明确边界:短延迟、复杂网络、多用户或强实时约束下,联合信源—信道编码可能更合适。

因此,信道编码(精心加冗余,对抗噪声)和源编码(榨掉可预测的冗余,逼近熵率)是一对镜像,分离定理把这两端接成了一个闭环。

## 参考

- **论文**: "A Mathematical Theory of Communication" (Shannon, 1948 — 信道容量与编码定理的原始出处)
- **教材**: "Elements of Information Theory" (Cover & Thomas — 第 7 章 Channel Capacity,BSC/AWGN 与容量推导)
- **论文**: "Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes" (Berrou et al., 1993 — 首次逼近香农极限的实用码)

*关键词: 信道容量 channel capacity, 二元对称信道 BSC, 加性高斯白噪声 AWGN, SNR, 互信息 mutual information, 信道编码定理 channel coding theorem, 信源—信道分离 source-channel separation, 香农极限 Shannon limit, LDPC, turbo 码, 可达性与逆定理*
