> hamming | (7,4) | ecc <
// 汉明码 – 用于可靠数据传输的错误校正码
[纠错]
错误校正
自动检测并纠正数据中的单比特错误。
[检测]
双比特错误检测
可以检测(但不能纠正)每个块中的双比特错误。
[高效]
开销极小
每 4 位数据只需 3 位校验位(效率 75%)。
>> 技术说明
汉明码的工作原理:
Hamming(7,4) 代码在每 4 位数据后添加 3 位校验位,形成 7 位数据块。校验位被放置在 2 的幂次位置(1、2、4)。当发生错误时,综合症(奇偶校验结果)会直接指示出错比特的位置。
Hamming(7,4) 结构:
数据:1011(4 位) 位置:P1 P2 D1 P3 D2 D3 D4 Hamming:1 0 1 1 0 1 1 P1 = D1 ⊕ D2 ⊕ D4 = 1 ⊕ 0 ⊕ 1 = 0 P2 = D1 ⊕ D3 ⊕ D4 = 1 ⊕ 1 ⊕ 1 = 1 P3 = D2 ⊕ D3 ⊕ D4 = 0 ⊕ 1 ⊕ 1 = 0
为什么选择汉明码:
- >内存错误校正
- >卫星通信
- >数据存储系统
- >网络传输
- >RAID 阵列
>> 常见问题
什么是汉明码?
汉明码是一种由 Richard Hamming 于 1950 年提出的错误校正码。它通过给数据添加校验位,使系统能够自动检测并纠正单比特错误。
(7,4) 表示什么?
Hamming(7,4) 表示总共 7 位,其中 4 位是数据位,3 位是校验位。它可以纠正 7 位块中任意一个单比特错误。其他变体包括 (15,11)、(31,26) 等。
错误校正是如何工作的?
在接收数据时,会重新计算校验位。如果不匹配,综合症(差值)会直接指出哪个比特出错。通过翻转该比特即可完成修正。
汉明码与其他 ECC 编码相比如何?
对于单比特错误,汉明码简单、高效。Reed–Solomon 等更复杂的编码可以纠正多比特错误,但开销更大。汉明码非常适合低噪声信道。