d个单比特错就可以把一个码字转换成另一个码字,为了检查出d个错(单比特错),需要使用海明距离为d+1的编码;为了纠正d个错,需要使用海明距离为2d+1的编码。
例如对于信息位长度为K,监督码长度为r,则要指示一位错的N(N=K+r)个可能位置,即纠正一位错,则必须满足如下关系:
2^r-1≥N=K+r
因此当信息位为5时,满足2^r-1≥K+r=5+r,则r=4。
用于编码的检错和纠错
为了检测d个错误,需要一个海明距离为d+1的编码方案。因为在这样的编码方案中,d个1位错误不可能将一个有效码字改编成另一个有效码字。当接收方看到一个无效码字的时候,他就知道已经发生了传输错误。类似地,为了纠正d个错误,需要一个距离为2d+1的编码方案,因为在这样的编码方案中,合法码字之间的距离足够远,因而即使发生了d位变化,则还是原来的码字离它最近,从而可以唯一确定原来的码字,达到纠错的目的。