贝尔实验室,1947年
Richard Hamming于1946年加入贝尔电话实验室。那里的中继计算机只在工作日运行,技术人员可以在出现错误时重启它们。周末时,机器每当出现问题就会停止——导致任务排队直到周一。
Hamming很愤怒。他想:"如果机器能检测到错误,为什么不能定位并纠正它呢?"这种挫折感,结合他对二进制运算和奇偶校验的深入理解,为后来的发现奠定了基础。
第一个洞察:矩形码
Hamming的第一个想法:将消息比特排列成m×n矩形,为每一行和每一列添加奇偶校验。单个错误会导致恰好一个行校验失败和一个列校验失败。它们的交点指出了错误的位置。
冗余比率:(m+1)(n+1) / mn。微积分告诉你,对于固定的消息大小,正方形最小化这个比率。但随着m和n增大,双比特错误变得更可能——这是一个没有通用答案的工程判断。
最小化矩形冗余
4×4矩形包含16个消息比特,具有4个行校验和4个列校验,加上1个角奇偶校验比特 = 16个消息比特对应9个校验比特。
冗余比率:(m+1)(n+1) / mn = 25/16 ≈ 1.56。
对于10×10矩形:100个消息比特,121个总比特,冗余≈ 1.21。
伴随式作为二进制数
发现矩形码之后几周,Hamming驾车前往纽约,穿过新泽西州农田,在脑中回顾他的成果。三角码的想法突然出现——冗余更低。然后是立方体。然后是四维、五维……
每个额外的维度都改进了冗余。n维超立方体的边长为2,有n+1个奇偶校验位用于2^n个顶点。但这是最优的吗?
计数论证
n+1个奇偶校验比特产生伴随式:一个(n+1)位二进制数。这个伴随式需要识别2^n + 1个不同的结果:2^n个错误位置中的每一个,加上特殊的"无错误"结果。
2^(n+1) = 2·2^n——几乎足够。相差一个因子2。Hamming搁置了这个问题。
关键洞察
后来,Hamming带着一个新想法回到这个问题:使用伴随式本身作为二进制数来标记错误位置。位置1 = 二进制001,位置2 = 二进制010,位置3 = 二进制011,等等。保留全零表示"无错误"。
这将伴随式从奇偶校验的输出转变为一个地址。奇偶校验位的设计使其在任何单个比特翻转时产生正确的地址。
设计(7,4)码
对于7位码(3个奇偶校验位,4个消息比特),位置1到7的二进制表示为:001, 010, 011, 100, 101, 110, 111。
奇偶校验1覆盖第0位为1的位置:位置1, 3, 5, 7。
奇偶校验2覆盖第1位为1的位置:位置2, 3, 6, 7。
奇偶校验3覆盖第2位为1的位置:位置4, 5, 6, 7。
奇偶校验位占据2的幂次位置:1, 2, 4。消息比特占据其余位置:3, 5, 6, 7。
如果第6位翻转,奇偶校验2和3失败(二进制110 = 6)。伴随式读为110 = 6。翻转第6位。完成。
单错纠正,双错检测
(7,4) Hamming码纠正单个错误。但如果两个比特翻转怎么办?没有额外保护,解码器应用伴随式规则并将码字"纠正"为错误的消息——无声的错纠。
SECDED:再加一个奇偶校验位
添加单个奇偶校验位p₀覆盖整个码字(所有7位)。现在伴随式有4个条目:原来的3个检查加上p₀。
``
旧伴随式 新p₀ 含义
000 0 正确
000 1 仅p₀出错
xxx 1 单错,旧伴随式指出它
xxx 0 双错——标记它
``
这四种情况是完整的。双错翻转两个比特:旧伴随式不会读为000(两个比特一起损坏其两个校验),但p₀翻转两次回到0。模式xxx + 0是无歧义的。
SECDED为什么有效
SECDED规则利用了奇偶校验的模运算结构。在偶奇偶校验下,任何单个翻转都改变p₀。任何双翻转使p₀保持不变。所以p₀按模2计算错误。
几何图像
Hamming从不同方向到达同一地点:解析几何。将每个n位字符串表示为n维超立方体的顶点。单个比特翻转沿一个轴移动点一个边长。两个翻转:两条边。度量是Hamming距离。
定义围绕码字c的Hamming球(半径t):所有距c不超过t个比特翻转的点。对于单错纠正,t = 1。
单错纠正的条件:围绕每对不同码字的半径1球不能重叠。如果它们重叠,接收到的字可能属于任一码字,解码器失败。
这直接转换为最小距离:两个半径1的球不重叠当且仅当码字距离至少为3(d_min ≥ 3)。
(7,4)码达到d_min = 3。Hamming界:2^7 / (1 + 7) = 16 = 2^4。正好16个码字。一个完美码:16个半径1的球用零间隙或重叠平铺{0,1}^7。
工程判断
Hamming非常明确:纠错码涉及工程判断,而不是纯数学。
消息长度:更长的消息允许更高效的编码(n个消息比特需要log n个奇偶校验位)。但更长的消息也累积更多噪声,增加双错通过作为假单错的风险。
纠正vs.检测级别:用两个额外的错误检测交换一个错误纠正。最优分割取决于通道的噪声特性。
现地维护价值:当设备变得更复杂时,现地技术人员无法从第一原理诊断每个故障。自诊断系统大大降低了维护所需的技能。Hamming称此为最重要的好处之一,通常比原始可靠性增益更重要。
风格:幸运眷顾有准备的人
Hamming在第12章结尾提出了直接的挑战。他描述发现需要三到六个月的工作,大多数在空闲时刻进行,同时进行他在贝尔实验室的主要职责。
他确定了三件使这成为可能的事:
1. 准备:在问题出现之前,对奇偶校验、二进制运算和群论的深入熟悉。
2. 回顾成功:习惯性地重放过去的解决方案来内化它们的风格。在往纽约的通勤时,三角码的想法出现时他正在心中回顾矩形码。
3. 不满足于'看起来不错':他曾因接受表面上的最优性而烧伤。他一直推到能证明码是最优的为止。