云计算百科
云计算领域专业知识百科平台

标准海明码,为什么称为“码距 3“?

文章目录

      • 标准海明码,为什么称为“码距 3“?
      • 先搞清楚"码距"是什么
      • "码距 3"说的不是某两个编码,而是整组编码的性质
      • 举个具体的例子
      • 为什么恰好是 3?
      • 码距 3 意味着什么?
      • 一句话总结

标准海明码,为什么称为“码距 3“?

很多同学学海明码的时候,听到"码距 3"这个说法,总觉得有点抽象。今天我们就来彻底搞清楚:这个"3"到底是怎么来的,为什么恰好是 3,以及它意味着什么。

先搞清楚"码距"是什么

码距,全称"汉明距离",指的是两个等长的二进制编码之间,逐位比较后有多少位不同。

比如:

编码 A:1 0 1 0
编码 B:1 0 0 1

第 3 位和第 4 位不同,所以 A 和 B 之间的码距 = 2。

就这么简单,码距就是两个编码之间的"差异程度",可以理解为它们之间的"距离"。


"码距 3"说的不是某两个编码,而是整组编码的性质

这是最关键的一点。

当我们说"标准海明码的码距是 3"时,意思是:在这组编码方案中,任意两个合法编码之间,至少有 3 位不同。

换句话说,不管你从所有合法编码里随便挑哪两个出来比较,它们之间的距离最少也有 3 位。没有任何一对合法编码之间的距离小于 3。


举个具体的例子

假设 4 位数据经过标准海明码编码后,得到一组合法编码:

数据 0000 → 编码 0000000
数据 0001 → 编码 0001101
数据 0010 → 编码 0011010
数据 0011 → 编码 0011111

我们随便挑几个来比较:

  • 0000000 和 0001101:第 4、5、7 位不同 → 距离 = 3
  • 0000000 和 0011010:第 3、5、6 位不同 → 距离 = 3
  • 0001101 和 0011010:第 3、4、6、7 位不同 → 距离 = 4

你会发现,最近的一对也只差 3 位,没有任何两个合法编码之间的距离小于 3。

所以这组编码的最小码距 = 3,这就是"码距 3"的由来。


为什么恰好是 3?

这不是随便定的,而是由海明码的构造方式决定的。

海明码用 r 个校验位,每个校验位负责检查一组特定的数据位,而且不同校验位覆盖的组合各不相同。这种精心设计的覆盖方式,天然保证了任意两个合法编码之间至少差 3 位。

所以它"恰好"是码距 3,而不是 2,也不是 4。


码距 3 意味着什么?

码距决定了编码的纠错和检错能力:

  • 错 1 位:收到的编码离正确编码距离为 1,离其他任何合法编码至少距离为 2。系统能确定"离谁最近",从而定位并纠正这一位错误。
  • 错 2 位:收到的编码离正确编码距离为 2,但可能离另一个合法编码也是距离为 2。这时候系统分不清到底哪个才是原始编码,只能知道"出错了",但无法确定错在哪。

所以码距 3 的能力是:

  • 能纠正 1 位错误
  • 或者能检测 2 位错误
  • 但二者不能同时进行

一句话总结

叫"码距 3",是因为这组编码里最近的两个合法编码之间也差 3 位。这个"3"是海明码构造方式决定的,也正是这个"3",让它具备了纠正 1 位错误的能力。


码距越大,纠错能力越强,但校验位也越多,传输效率越低。所以码距不是越大越好,够用就行。标准海明码选择码距 3,正是在纠错能力和传输效率之间取得了很好的平衡。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 标准海明码,为什么称为“码距 3“?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!