错误纠正

在数据通信中,错误纠正可以通过两种方式进行。 一种方式是当发现错误时,接收方可以让发送方重新发送整个数据单元;另一方式是可以采用错误纠正码,即纠错码,自动纠正一些错误。

  1. 单比特错误纠正

错误纠正的关键在于发现错误后还能对错误比特位或比特组进行定位,这就需要更多的冗余位。
如果可传输单元的总比特数是m+r(m位数据r位冗余位),那 么r必须能至少代表m+r+1种状态。在这些状态中,一种状态代表 没有错误,其它m+r种状态代表在m+r位每个位置上发生的错误。 因此有: 2r >= m+r+1
在这里插入图片描述

  1. 海明码
    在海明码中,冗余比特被放在比特位中的2的指数序数处,如1, 2,4,8等,每个冗余比特都是一组数据比特的VRC校验位。r1是通过 所有二进制表示中最低位为1的比特位置计算得到的, r2是通过所有 二进制表示中次低位为1的比特位置计算得到的,依次类推。在这里插入图片描述
    在7位数据序列中,需要4位冗余位。计算这4个冗余比特位的比 特组合为:
    r1:第1,3,5,7,9,11比特
    r2:第2,3,6,7,10,11比特
    r3:第4,5,6,7比特
    r4:第8,9,10,11比特

错误检测与纠正:
在这里插入图片描述

  1. 多比特错误纠正 在互相重叠的数据比特组上计算的冗余位也可以用来纠正多比特错误。但是,纠正这些错误所需要的冗余比特数将大大高于纠正单比特错误的冗余比特数。