题目:待传输的二进制串为“1001111”,若采用偶校验,需增加几位校验位才能判断出哪一位传输错误,若传输过去变为“1011111”,则如何判断出是哪一位出错?请描述判断过程。
解答:①若不考虑校验位出错,因为二进制串为“1001111”,从数据位第一位到第七位依次编号为D1、D2、D3、D4、D5、D6、D7,数据位二进制编号依次为001、010、011、100、101、110、111,因为二进制编号最高只有3位,所以需要3个校验位,依次命名为P1、P2、P4,数据都设置为1。按照“偶校验规则”,此时Pn为编号的第n位为1的数据位相加之和,且相加后只看第一位。所以P1=D7+D5+D3+D1=1,P2=D7+D6+D3+D2=1,P4=D7+D6+D5+D4=0。 若传输过去变为“1011111”,则重新设置三个校验位P1’,P2’,P4’。P1’=D7+D5+D3+D1+P1=1,P2’=D7+D6+D3+D2+P2=0,P4’=D7+D6+D5+D4+P4=1。所以出错的数据位的二进制编号第一位为1,第二位为0,第三位为1,即D5数据位出错。 ②若考虑校验位出错,因为二进制串“1001111”一共有7位,按照顺序排列在数轴上,因为只有第n位为1的数据需要作为校验位,所以2^n次方位置空出,则空出4个位置,所以需要4个校验位,依次命名为P1、P2、P4、P8,数据位二进制编号依次为0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011。按照“偶校验规则”,此时Pn为编号的第n位为1的数据位相加之和,且相加后只看第一位。所以P1=编号的第1位为1的位相加=D11+D9+D7+D5+D3=0,P2=编号的第2位为1的位相加=D11+D10+D7+D6+D3=0,P4=编号的第3位为1的位相加=D7+D6+D5=1,P8=编号的第4位为1的位相加=D11+D10+D9=1。 若传输过去变为“1011111”,保持校验码个数不变,重新设置4个校验码,命名为P1’、P2’、P4’、P8’,P1’=D11+D9+D7+D5+D3+P1=1,P2’=D11+D10+D7+D6+D3+P2=0,P4’=D7+D6+D5+P4=0,P8’=D11+D10+D9+P8=1。排列后得到数据位二进制编号为1001,即D9所对应的数据出错。 相比于第一种方法,我个人认为第二种方法更好,可以检测出校验码传输出错和数据传输出错。因为两位数字传输出错的概率比一位数字出错概率小很多,故这里不考虑。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)