码字:
一个帧中包含m个数据位和r个校验位,帧长n=m+r,包含数据和校验位的n位单元通常称为n位码字(codeword)
码距:
两个码字中不相同的二进制位的个数,即一个编码系统中任意两个合法编码之间不同的二进制数位数
为了检测d位错误,要求码距>=d+1
为了纠正d位错误,要求码距>2d
海明码:
确定校验位位长:
假设校验位位长为k,信息位位长为m
如果只有1位出错,那么可能有m+k种错误
由于校验位有k位,对应着种校验码,除了1种正确的校验码外,剩余的
种校验码对应着m+k种错误,即存在以下关系:
校验位的位置:
计算公式:,即对应着第1、2、4、8等位置
校验位计算公式:
将信息位的位置号转变为二进制位
P1=二进制位中第1位为1的信息位进行异或
P2=二进制位中第2位为1的信息位进行异或
P3=二进制位中第3位为1的信息位进行异或
后面以此类推。注意P1、P2、P3、P4是校验位的编号,不是位置号
校验:
接收方对接收到的信息进行计算,将位置号转变为二进制位
X1=第1位为1的所有信息进行异或
X2=第2为为1的所有信息进行异或
X4=第3位为1的所有信息进行异或
X8=第4位为1的所有信息进行异或
出错位置即X8X4X2X1二进制形式转为10进制数值
CRC编码(cycle redundancy code,循环冗余编码):
生成多项式(generator polynomial):
最高位和最低位必须为1,如:
生成CRC校验码:
1)原始信息添0。生成多项式的最高位为几就添加几位0,如上式最高位为4,那么添加4个0
2)模2除(异或)
3)余数添加到原始信息后