8

我了解了汉明码以及如何使用它们来纠正 1 位错误并检测所有 2 位错误,但是如何将其扩展到纠正 2 位甚至更多位?

纠正所有 2 位错误所需的最小位数是多少?

4

1 回答 1

7

我想我想通了。

N=数据位数,k=纠错位数(例如汉明奇偶校验)

在任何 ECC 方案中,您都有 2^(N+k) 个可能的位串。

对于单位错误:

您必须找到 k 使得可能的位字符串的总数大于给定字符串的最多 1 位错误的可能字符串数。

最多有 1 位错误的可能字符串总数为 2^N(n+k+1)

1 个字符串没有错误,N+k 个字符串有 1 位错误

2^(N+k)>=(2^N)*(N+k+1)

您只需插入 k 的值,直到找到满足上述要求的值(或者您希望解决它)

同样对于 2 位错误,它是

1 个没有错误的字符串,N+k 个有 1 位错误的字符串,N+k 选择 2 个有 2 位错误的字符串。

2^(N+k)>=(2^N)*(N+k+1 + (N+k 选择 2))

于 2011-04-12T07:58:33.667 回答