编码 | 解码 | 压缩

> 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 等更复杂的编码可以纠正多比特错误,但开销更大。汉明码非常适合低噪声信道。

其他语言