我了解了汉明码以及如何使用它们来纠正 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))
关于error-correction - 纠正所有 2 位错误所需的最少位数是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5631871/