9 分钟
本页目录

信道容量与编码

香农信道编码定理是全信息论最反直觉的结论:只要传输速率低于信道容量 C = max I(X;Y),就能把错误率压到任意接近零——不必牺牲速率去换可靠性,代价只是更长、更聪明的编码。这条定理定义了通信的物理极限,现代 LDPC/turbo 码已经贴着它跑。

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

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

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

香农在 1948 年给出的答案,当年震惊了整个学界:⁠你不必用速率去换可靠性⁠。只要传输速率低于某个门槛,错误率可以压到任意接近零,而速率一分不让。这个门槛就是信道容量。这一章把它讲清楚。

信道模型:噪声怎么建模

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

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

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

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

用一次信道,输出 Y 关于输入 X 的信息量,就是 互信息:

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),发什么收什么。
  • 纯噪声信道⁠(YX 无关):I(X;Y)=0,收到的东西对推断输入毫无帮助。
  • BSC 的每比特互信息⁠:I = 1 - H(p),其中 H(p)二元熵函数。当 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——不可能可靠传输。

反直觉在哪?人们本以为"要降低错误率,就必须降低速率"(比如把每个比特重发三遍,速率掉到 1/3)。香农说不必⁠。只要在 C 以下,你可以既保住速率、又把错误率压到任意低。

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

速率 R 与可达性:C 是一道锐利的门槛 R C(信道容量) R < C 存在编码使错误率 → 0 可任意逼近零错误 R > C 错误率有下界,无法归零 不可能可靠传输 门槛在 C,不在 0——低于它可靠性免费,高于它可靠性买不到。

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

算一个 BSC 的容量

抽象讲完,代进数字。BSC 的容量有闭式解:C = 1 - H(p),其中 p 是翻转概率,H(p)二元熵函数

  • 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 遍历所有输入分布:信道能传多少,还取决于你怎么喂它。

几个反直觉但要命的点

  • 可靠传输不必牺牲速率。 直觉里"要更可靠就多加冗余、降速率",但香农说只要 R<C,零错误不用拿速率换,拿码长换。重复码(把 1 bit 发三遍)是最笨的抗噪方式,速率掉到 1/3 还远不如一个好码。
  • 容量是硬墙,不是软约束。 R>C 时不是"错误率高一点",而是原理上不可能压到零——加再多冗余、再聪明的码都没用。这条线由逆定理证死。
  • 香农只证了"存在",没给"怎么造"。 定理用随机编码证明好码存在,却对如何高效编解码只字未提。这道存在性与构造性之间的鸿沟,养活了整个编码理论半个多世纪。

香农极限的工程意义

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

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

最后提一个漂亮的对偶。信道编码(往数据里精心加冗余,对抗噪声)和 源编码 / 压缩(把冗余榨干,逼近熵),是一对镜像:一个加冗余、一个去冗余,而两端都由信息论的极限定理封顶。

参考

  • 论文⁠: "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, 互信息 mutual information, 信道编码定理 channel coding theorem, 香农极限 Shannon limit, LDPC, turbo 码, 可达性与逆定理