奇偶校验_校验和实验_第1页
奇偶校验_校验和实验_第2页
奇偶校验_校验和实验_第3页
奇偶校验_校验和实验_第4页
奇偶校验_校验和实验_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验5-1纠错与检错1.实验内容读程序,在所有红色的“#”后面添加解释,说明程序的作用2.实验题目(1)奇偶校验码在原始模式上增加一个附加比特位,即奇偶校验位,使最后整个模式中1的个数为奇数(奇校验)或偶数(偶校验)。本程序用到列表、字符串合并、取模等概念。code=input(Please input a 7-bit-binary code:)a=0# for 循环作用是什么for i in range(0,6,1):if codei=1:a=a+1print(After odd parity checking the code is:)if a%2=0:print(code+1) # 这句做了什么else:print(code) # 这句做了什么print(After even parity checking the code is:)# 下面 if . else 作用是什么if a%2=0:print(code) else:print(code+1)(2) 垂直水平奇偶校验如下图所示,14个字符纵向排列形成一个数据块,每个字符占据一列,低位比特在上,高位比特在下,用b8(第8位)作为垂直奇偶校验位,各字符的同一比特位形成一行,每一行的最右边一位作为水平奇偶校验位,这里在垂直和水平方向均采用偶校验。b1 1 0 1 0 1 0 1 0 1 0 1 0 1 0b2 0 1 1 0 0 1 1 0 0 1 1 0 0 1b3 0 0 0 1 1 1 1 0 0 0 0 1 1 1b4 0 0 0 0 0 0 0 1 1 1 1 1 1 1b5 0 0 0 0 0 0 0 0 0 0 0 0 0 0b6 1 0 1 0 0 1 1 0 0 1 0 0 1 0b7 0 1 0 1 1 0 0 1 1 0 1 1 0 11111000b8 0 0 1 0 1 1 0 0 1 1 0 1 0 00# 下面的函数做了什么def oddeven(l): a=0 for i in range(0,len(l),1): if li=1: a=a+1 if a%2=0: return 0 else: return 1block=0*15,0*15,0*15,0*15,0*15,0*15,0*15,0*15for i in range(0,14,1): vcode=input(Please input a 7-bit-binary code:) for j in range(0,7,1): blockji=vcodej block7i=oddeven(vcode) # 这句做了什么hcode=0*14for j in range(0,8,1): for i in range(0,14,1): hcodei=blockji blockj14=oddeven(hcode) # 这句做了什么print(block)(3)循环冗余校验任何一个二进制位串都可以用一个多项式来表示,多项式的系数只有0和1,n位长度的码C可以用下述n1次多项式表示:例如位串1010001可以表示为x6+x4+1。数据后面附加上冗余码的操作可以用多项式的算术运算来表示。例如,一个k位的信息码后面附加上r位的冗余码,组成长度为n=k+r的码,它对应一个(n1)次的多项式C(x),信息码对应一个(k1)次的多项式K(x),冗余码对应一个(r1)次的多项式R(x),C(x)与K(x)和R(x)之间的关系满足:由信息码生成冗余码的过程,即由已知的K(x)求R(x)的过程,也是用多项式的算术运算来实现。其方法是:通过用一个特定的r次多项式G(x)去除xr K(x),即:得到的r位余数作为冗余码R(x)。其中G(x)称为生成多项式(generator polynomial),是由通信的双方预先约定的。除法中使用模2减法(无借位减,相当于作异或运算)。要进行的多项式除法,只要用其相对应的系数进行除法运算即可。本例中,10位二进制信息位串对应K(x)x9+x8+ x6+x4+ x3+ x+1;CRC_4对应的G(x)x4+ x +1,r=4,则生成位串为10011B=19。则xr K(x)= x13+x12+ x10+x8+x7+x5+x4 ,对应位串11010110110000,R(x)的计算如Error! Reference source not found.所示,得出的4位余数1110作为冗余码,于是实际传输的位串为11010110111110。参考程序:(本程序用到函数,列表、字符串合并、取整、取模等概念。) # 这个函数做了什么def c2n(l): a=0 for i in range(0,len(l),1): a=a+int(li)*(2*(len(l)-1-i) return a# 下面这个函数做了什么def n2c(d): b = while d!=0: b = str(d%2)+b d = d/2 return binformationcode=input(Please input a 10-bit-binary code:)code=infor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论