这个汉明码10101011110有错误吗



假设我们正在使用一个纠错代码,该代码将允许针对长度为7的存储字进行校正。我们已经计算出我们需要4个校验位,并且所有码字的长度将是11。码字是根据汉明创造的文中给出的算法。我们现在收到以下代码字:1 0 1 0 1 1 1 1 0假设奇偶校验,这是一个合法的码字吗?如果不是,根据我们的纠错码,错误在哪里?

p.s需要一些帮助来解决这个Hamming代码问题,这是一个书本问题。提前感谢:(

根据文本中提供的Hamming算法创建码字。

你不认为这是一条重要的信息吗?:-(

如果没有算法,我们就不能确定有效性,所以我给你一个通用的方法。

每个校验比特通常将应用于比特的某个子集。假设这七个比特是b6b0。四个校验位被计算为在以下子集中提供偶数奇偶校验:

1  0  1  0  1  0  1
ca  b6 b5    b3 b2 b1 b0  1+0+0+1+0+1   + (ca = 0)
cb  b6    b4    b2    b0  1+1+1+1       + (cb = 0)
cc  b6       b3       b0  1+0+1         + (cc = 0)
cd     b5          b1 b0  0+0+1         + (cd = 1)

现在,如果您没有获得与数据匹配的校验位序列,那么理想情况下,您可以计算出需要更改哪个单个数据或校验位才能修复它。只有当您能够确保每个校验位计算都经过精心编制,以添加最大的额外信息时,这才有效。

这可能是我上述计算的失败,因为我只是凭空得出的。但是,由于我的意图只是在没有算法的情况下解释概念,所以这应该无关紧要。


确保算法有效的一种方法是暴力:

  • 获取所有可能的11位值的列表。只有2048个,所以这并不繁重。现在,丢弃那些已经好的(我们只对无效的感兴趣(
  • 反过来,切换(11的(每个位,看看该项是否有效
  • 如果没有位切换使其有效,则这不是单个位错误,因此可以安全地忽略
  • 如果一个位切换使其有效,则您有足够的信息来修复这种情况
  • 如果多个位切换使其有效,则您没有足够的信息来修复这种情况

最重要的是,如果每个一位错误的可能性都可以通过一位切换(上面最后一个项目符号的第二个(有效,那么校正代码就是完美的。

您还应该检查,以确保如果切换单个位,每个有效的都将变为无效,但我将把这作为一个练习,因为您现在应该有足够的信息来了解如何做到这一点。

相关内容

  • 没有找到相关文章

最新更新