信息论汉明码实验报告.doc_第1页
信息论汉明码实验报告.doc_第2页
信息论汉明码实验报告.doc_第3页
信息论汉明码实验报告.doc_第4页
全文预览已结束

下载本文档

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

文档简介

汉明码实验报告姓名:资雁兵学号:20091616310029班级:信息安全一班汉明码校验方法进行奇偶校验的方法是先计算数据中1的个数,通过增加一个0或1(称为校验位),使1的个数变为奇数(奇校验)或偶数(偶校验)。例如,数据1001总共是4个比特位,包括2个1,1的数目是偶数,因此,如果是偶校验,那么增加的校验位就是一个0,反之,增加一个1作为校验位。通过“异或”运算来实现偶校验,“同或”运算来实现奇校验。单个比特位的错误可以通过计算1的数目是否正确来检测出来,如果1的数目错误,说明有一个比特位出错,这表示数据在传输过程中受到噪音影响而出错。利用更多的校验位,汉明码可以检测两位码错,每一位的检错都通过数据中不同的位组合来计算出来。校验位的数目与传输数据的总位数有关,可以通过汉明规则进行计算:d+p+1=2的p次方d表示传输数据位数目,p表示校验位数目。两部分合称汉明码字,通过将数据位与一个生成矩阵相乘,可以生成汉明码字。2008-07-05 19:10针对4位数据的汉明码编码示意图汉明码是一个在原有数据中插入若干校验码来进行错误检查和纠正的编码技术。以典型的4位数据编码为例,汉明码将加入3个校验码,从而使实际传输的数据位达到7个(位),它们的位置如果把上图中的位置横过来就是:数据位1234567代码P1 P2 D8 P3 D4D2 D1说明第1个汉明码第2个汉明码第1个数据码第3个汉明码第2个数据码第3个数据码第4个数据码注:Dx中的x是2的整数幂(下面的幂都是指整数幂)结果,多少幂取决于码位,D1是0次幂,D8是3次幂,想想二进制编码就知道了。另外,汉明码加插的位置也是有规律的。以四位数据为例,第一个汉明码是第一位,第二个是第二位,第三个是第四位,1、2、4都是2的整数幂结果,而这个幂次数是从0开始的整数。这样我们可以推断出来,汉明码的插入位置为1(20 (注:20表示2的0次幂))、2(21)、4(22)、8(23)、16(24)、32(25)源代码:#include#includevoid hanming() int i,n,k=2; int h20; for(i=0;i20;i+)hi=0; cout 请输入要转换的有效位的位数(n)n; while(pow(2,k)n+k+1)k+; cout 请输入要转换的有效码字 (每输入一位按一次回车) endl; for(i=1;ihi; h1=(h3+h5+h7+h9+h11+h13+h15)%2; h2=(h3+h6+h7+h10+h11+h14+h15)%2; h4=(h5+h6+h7+h12+h13+h14+h15)%2; h8=(h9+h10+h11+h12+h13+h14+h15)%2; for(i=1;i=n+k;i+)couthi;int jiaoyan(int a,int n) int i,p1,p2,p4,p8,m; int h20; for(i=0;in;i+)hi+1=ai; for(i=n+1;i=5&n=9&n=15) /k=4; p1=(h1+h3+h5+h7+h9+h11+h13+h15)%2; p2=(h2+h3+h6+h7+h10+h11+h14+h15)%2; p4=(h4+h5+h6+h7+h12+h13+h14+h15)%2; p8=(h8+h9+h10+h11+h12+h13+h14+h15)%2; m=8*p8+4*p4+2*p2+p1; return m; else cout!查错错误!endl; return -1; /主函数void main() hanming(); int coco; int i,n,m,h20; coutendl; cout请输入要查错的码字的位数 n; cout请输入要查错的码字(每输入一位按一次回车) endl; for(i=0;i

温馨提示

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

评论

0/150

提交评论