我了解了汉明码以及如何使用它们来纠正 1 位错误并检测所有 2 位错误,但是如何将其扩展到纠正 2 位甚至更多位?
纠正所有 2 位错误所需的最小位数是多少?
我了解了汉明码以及如何使用它们来纠正 1 位错误并检测所有 2 位错误,但是如何将其扩展到纠正 2 位甚至更多位?
纠正所有 2 位错误所需的最小位数是多少?
我想我想通了。
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))