还剩8页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
实验5-1纠错与检错
1.实验内容读程序,在所有红色日勺铲’背面添加解释,阐明程序的作用
2.实验题目1奇偶校验码在原始模式上增长一种附加比特位,即奇偶校验位,使最后整个模式中1的个数为奇数奇校验或偶数偶校验本程序用到列表、字符串合并、取模等概念co d e=i nputPlease inpu ta7-bit-binar yc ode:a=0#fo r循环作用是什么fo ri in range0,6,1:if co d e[i]==1’:,b0=0+1print A f tr oddpari ty checking th eco d e is:㊀i fa%2==0:p rin t code+l#这句做了什么else:printc0d W#这句做了什么㊀prin tAfter ev enp ari tyc hecki n gthe codei s:#下面i f..else---作用是什么if a%2==0:p rintco deels e:print code+12垂直水平奇偶校验如下图所示,14个字符纵向排列形成一种数据块,每个字符占据一列,低位比特在上,高位比特在下,用匕8第8位作为垂直奇偶校验位,各字符的同一比特位形成一行,每一行日勺最右边一位作为水平奇偶校验位,这里在垂直和水平方向均采用偶校验bj10101010101010b0110011001210011b30001111000011111bi000000011111111b00000000000005000b1010011001006010b010110011011071b0010110011080100#下面时函数做了什么d ef o ddevenl:a=0foriin range0,lenl l:zif l[i]==1a=a+1if a%2==0:retu rn Oelse:r eturn block=[
[0]*15,[O]*15,「01*15,
[0]*15JO]*15,[O]*15
[101]*15,「01*15]Zfor ii nr an ge0,14,1:vc o de=input Pleasei npu ta7-bit-bi nary c ode:fo r ji nran ge0,7,1:block[j][i]=vcod e[j]block
[7][i]=oddeven vcode#这句做了什么h c ode=
[0]*l4for jin ran ge0,8,1:f ori in r ange0,14,1:hcode[i]=b Io ck[j][i]b Iock[j]
[14]=odd even hc ode#这句做了什么prin tb Iock3循环冗余校验任何一种二进制位串都可以用一种多项式来表达,多项式的系数只有和l,n位长度曰勺码C可以用下述n-1次多项式表达n2,Cx=C.x-+C_x-+…+G+Gn}n2例如位串1010001可以表达为r+x4+7o数据背面附加上冗余码的操作可以用多项式的算术运算来表达例如,一种k位的信息码背面附加上r位的冗余码,构成长度为n=k+「时码,它相应一种n-1次日勺多项式Cx,信息码相应一种k-1次的多项式Kx,冗余码相应一种r-1次的多项式Rx,C x与Kx和R x之间的关系满足:rCx=x Kx+Rx由信息码生成冗余码的过程,即由已知的Kx求Rx的过程,也是用多项式日勺算术运算来实现其措施是:通过用一种特定日勺r次多项式G x清除*Kx,即f KxGx得到的「位余数作为冗余码Rx其中Gx称为生成多项式g enerator polynomiaI,是由通信时双方预先商定时除法中使用模2减法无借位减,相称于作异或运算要进行日勺多项式除法,只要用其相相应的系数进行除法运算即可父矛6本例中,10位二进制信息位串相应K x=++x+/+4/;CRC_4相应的Gx=x+x+7,r=4则生成位串为1001113]2B=19o则x:K x=x+x+x+x+x7+x5+x4,相应位串00,Rx的计算如错误味找到引用源所示,得出的4位余数1110作为冗余码,于是实际传播时位串为10o__________110000101010011/11010110110000-/1001110011100110000010110________1001110100100111110余数参照程序本程序用到函数,列表、字符串合并、取整、取模等概念#这个函数做了什么def c2n I:a=0for iinra nge0,lenl,l:a=a+in tl[i]*2**le nI-1-i returna#下面这个函数做了什么def n2c d:zb=while d!=0:b=s tr d%2+bd=d//2re tu rn binfor mationcode=i npu tPlease inp uta10-b it-b inarycode:code=i nformat ioncode+OOOOpro ducecode=19p=0j二ox orcode=whil ep14:j=5-lenxo rcode#下面语句做了什么xorc ode=n2cc2n xorcode+code[p:p+jA-1]pr od ucecodeP=P+iprintin formatio neode+xorco de4校验和校验和的算法流程如下发送方算法将待发送的数据划提成若干长度为16位日勺位串,每个位串当作是一种二进制数对这些16位的二进制数进行1时补码和累加运算,累加的成果再取反作为校验和,附加到数据背面,一起发送到接受方)上述计算中,1的补码和就是指带循环进位(nd round carr y日勺㊀加法,最高位有进位应循环进到最低位接受方算法将接受的数据(涉及校验和)进行1的补码和累加运算,累加时成果再取反若成果为0,表白传播对口勺;否则,表白传播有差错如图所示,在该例中,()是发送方日勺计算,
①、
②、
③是3个数据
④是它们的1曰勺补码和,
⑤是
④的反码,即校验和发送方将
⑤和数据一同发送,(b)是接受方的运算,如果没有传播差错,最后的成果应当为0CD数据10011100000110101101101010数据00100010101101数据00110101001000111101的补码和1100111011100取反得到检查码00100110()a发送方时运算100111000001数据10101101101010001数据0001010110100110数据10111011100001校验和00110111111111111的1补码和1111100000000000反码00000b接受方的运算由于输入时信息串是字符,要用到异或运算,而该运算只能针对数值,因此需要有将字符转换成数值,已经将数值转换成字符的有关运算,这里分别写了两个类型转换函数实现1的补码和时核心就是要判断最高位与否有进位,对于16进制无符号数来说,就是判断与否不小于65535本程序只给出了发送方计算校验和的过程,用到函数、列表、字符串合并、取整、取模等概念d efc2n I:for iinrange0,lenl,1:a=a+intI[i]*2**I en I-1-ireturn adefn2cd:bw hile d!=0:b=strd%2+bd=d//2re turnbs=0for iinra nge0,3,1:code=i npu tplea seinput a16-b it-bi na rycode:#这个语句做了什么s=s+c2ncodeif s65535:#下面语句做了什么s=s-65536+1s=sA65535#这个语句做了什么pr int n2cs。
个人认证
优秀文档
获得点赞 0