本节摘要:信息论回答三个问题:信息怎样度量(熵)、一条信道最多能传多少(信道容量)、怎样逼近这个极限(编码)。香农公式给所有通信系统划定了不可逾越的速率天花板,而纠错编码是信号在噪声旅程中的"护身符"。本节从熵的定义讲到汉明码的手工纠错,再到 LDPC 与极化码,案例做一次"亲手给比特纠错"的推演。
抛硬币的结果为什么比"太阳明早升起"更有信息量?因为后者几乎确定,告诉你等于没说。信息论的核心洞察就藏在这个日常判断里:信息的量等于不确定性的消除量。越是不容易猜中的事,揭晓时给你的信息越多。这条朴素的原理量化之后(熵),成为整个数字通信的记账单位——你的每一张照片、每一段语音,在机器眼里都是一串待消除的不确定性。
一个信源每次输出一个符号,各符号概率已知,则该信源的平均信息量(熵)定义为概率对概率的加权求和,以比特为单位。等概二值信源熵恰为 1 比特;概率越倾斜,熵越低——恒定不变的信源熵为零。熵有三重身份:信源的平均不确定性;无损压缩的下限(信源编码定理);也是"猜中一个符号平均要问几个是非问题"。最后一重身份最实用:压缩算法本质是给常见符号短代码、罕见符号长代码,哈夫曼编码正是贪心地逼近熵的方案。
信道容量是熵的对偶:给定带宽与信噪比,信道无差错传输的速率上限由香农公式给出——容量正比于带宽,且随信噪比按对数增长。两个推论影响深远:

两个码字之间不同位的个数叫汉明距离。编码的纠错能力由最小码距决定:距离为三的码集,能纠一个错、检两个错。直觉是把码字想成空间里的球心,每个球半径为纠错能力,收到的落点离哪个球心近就算谁——这正是译码的"最近邻"原则。
背景:四位数据加三位校验,拼成七位码字,能纠任一位错误,是 1950 年汉明在计算机内存易错的愤怒中发明的方法。操作:三位校验位分别监视第 1/2/3/4 位、第 1/3/5/7 位、第 2/3/6/7 位三组,收端对每组重算奇偶,三组结果拼成"病灶地址"。推演:
def hamming_encode(d): # d: 4位数据 (d1..d4) p1 = d[0]^d[1]^d[3] # 三组校验(这里按位序安排) p2 = d[0]^d[2]^d[3] p3 = d[1]^d[2]^d[3] return [p1,p2,d[0],p3,d[1],d[2],d[3]] def hamming_decode(c): # 返回纠错后的4位数据 s1 = c[0]^c[2]^c[4]^c[6] # 三位伴随式:全零=无错 s2 = c[1]^c[2]^c[5]^c[6] s3 = c[3]^c[4]^c[5]^c[6] pos = s1*1 + s2*2 + s3*4 # 伴随式直接给出出错位置(1..7,0为无错) if pos: c = c[:pos-1] + [c[pos-1]^1] + c[pos:] # 翻转出错位 return [c[2],c[4],c[5],c[6]] msg = [1,0,1,1] code = hamming_encode(msg) bad = code[:]; bad[4] ^= 1 # 模拟第5位在信道中被噪声翻转 print("发送:", code, " 收到:", bad) print("纠错后数据:", hamming_decode(bad)) # 输出:纠错后数据: [1, 0, 1, 1]
结果与解读:伴随式不只是报警器,还是"定位器"——三位校验的组合恰好编码了七个出错位置加"无错",设计之精巧在于校验组的成员分配使伴随式二进制值等于出错位序号。变式:若信道可能翻转两位,(7,4) 码只能检测到错误但纠不了(可能"纠"到另一个码字);要纠两位错需距离为五的码,冗余随之上升。这就引出编码的核心账本:冗余率换可靠性,纠错能力每加一级,代价是一定比例的额外比特。
卷积码(记忆性编码,维特比译码)统治了二十世纪后期的卫星与深空通信;1993 年涡轮码首次把性能推到距香农极限不到 1 分贝,业界哗然;LDPC 码(稀疏校验矩阵,迭代置信传播译码)以并行友好、逼近极限的特性拿下 WiFi 与 5G 数据信道;极化码(利用信道两极分化构造)被 5G 选为控制信道编码,短码场景表现利落。五十年编码史的主旋律只有一个:用更聪明的结构,把香农留出的最后几分贝冗余一分一分省下来。每一分贝的节省,直接折算成卫星功率、基站覆盖半径或手机电池续航。
💡 关键直觉:看任何通信标准,先找它的信道编码方案,就知道它"活在距极限多远的地方"。这个距离就是那个时代工艺与算法的水平线。
问:香农公式是否过时,5G 不是超越它了吗?答:没有。5G 的速率提升来自更宽频谱、更多空间流与更高阶调制,全部在公式框架内做加法;MIMO 相当于把同一公式套到多个并行空间信道上。任何宣称"突破香农极限"的说法,要么重新定义了信道(如利用反馈的非因果信息),要么是营销话术。
问:既然编码能纠错,为什么还需要重传?答:纠错码按设计纠错能力工作,信道突然恶化(深衰落、强干扰)时错误数超过能力,译码失败;此时重传是最后防线。混合重传把两者的冗余软合并,一次传输不够就再来一次增量冗余——现代链路的可靠性正是"编码打底、重传兜底"的双保险结构。
比特已经健壮。下一章看谁来处理这些比特——从处理器的指令流水线,到把这些算法铸进芯片的设计方法。