我了解了汉明码以及如何使用它们来纠正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)