码距:
单个编码A:00而言,其码距为1,因为其只需要改变一位就变成另一个编码
在两个编码中,从A到B码转换所需要改变的位数称为码距,如A:00要转换为B:11 码距为2.一般来说,码距越大,越利于纠错和检错。
奇偶校验码
在编码中增加1位校验位来使编码中的1的个数为奇数(奇校验)或者偶数(偶校验),从而使码距变为2.列如:
奇效验:编码中,含有奇数个1,发送给接收方,接收方收到后,会计算收到的编码有多个1,如果是奇数个,则无误,是偶数个,则有误。
偶效验,同理只是编码中有偶数个1
由上述,奇偶校验只能检1位错,并且无法纠错。
循环冗余校验码CRC
CRC只能检错,不能纠错,其原理是找出一个能整除多项式的编码,因此首先要将原始报文除于多项式,将所得的余数作为效验位加在原始报文之后,作为发送数据发给接收方,其编码格式为:
由此可知,CRC由两部分组成,左边为信息码(原始数据),右边为校验码。校验码是由信息码产生的,校验码位数越长,效验能力越强。求CRC编码时,采用的是模2运算(按位运算,不发生错位和进位)
海明校验码
海明码:本质也是利用奇偶性来检错和纠错的检验方法,构成方法是在数据位之间的确定位置上插入K个效验位,通过扩大码距实现检错和纠错。
设数据位是N位,效验位是K位,则N和K必须满足以下关系:2^k-1>=n+k
需要设置多少个效验位
如何分组