海明编码报告-.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
海明编码报告-

计算机网络课程设计 课程设计题目:海明码设计 学 号:201320181519 姓 名:彭磊 专 业:电子商务 班 级:1321815 2015年06月17日 一.海明编码原理 海明码是一种可以纠正一位差错发现两位差错的编码。它是利用在信息位为k位,增加r位冗余位,构成一个n=k+r位的码字,然后用r个监督关系式产生的r个校正因子来区分无错和在码字中的n个不同位置的一位错。它必需满足以下关系式:          2r=n+1? 或? 2r=k+r+1   海明码的编码效率为:             R=k/(k+r) 式中 k为信息位位数      r为增加冗余位位数 2.海明码的生成与接收 a.每个校验位Ri被分配在海明码的第2的i次方的位置上; b.海明码的每一位(Hi)是由多个/1个校验值进行校验的,被校验码的 位置码是所有校验这位的校验位位置码之和。 二.海明编码方法 1)海明码的生成(顺序生成法)。  例.已知:信息码为: 1 1 0 0 1 1 0 0  (k=8)   求:海明码码字。 解:1)把冗余码p1、p2、p3、…,顺序插入信息码中,得海明码    码字: p1 p2 1 p3 1 0 0 p4 1 1? 0? 0    码位: 1 2 3 4 5 6 7 8 9 10 11 12??    其中p1,p2,p3,p4分别插于2k位(k=0,1,2,3)。码位分别为1,2,4,8。   2)冗余码p1,p2,p3,p4的矩阵变换:(相当于监督关系式)       3)把线性码位的值的偶校验作为冗余码的值(设冗余码初值为0):       P1=∑(0,1,1,0,1,0)=1       P2=∑(0,1,0,0,1,0)=0       P3=∑(0,1,0,0,0) =1       P4=∑(0,1,1,0,0) =0    4)海明码为:1 0 1 1 1 0 0 0 1 1 0 0 2)海明码的接收。  例.已知:接收的码字为:1 0 0 1 1 0 0 0 1 1 0 0(k=8)     求:发送端的信息码。 解: 1)设错误累加器(err)初值=0     2)求出冗余码的偶校验和,并按码位累加到err中:       A=∑(1,0,1,0,1,0)=1 err=err+20=1       B=∑(0,0,0,0,1,0)=1 err=err+21=3       C=∑(1,1,0,0,0) =0 err=err+0 =3       D=∑(0,1,1,0,0) =0 err=err+0 =3      由err≠0可知接收码字有错,     3)码字的错误位置就是错误累加器(err)的值3。     4)纠错--对码字的第3位值取反得正确码字:       1 0 1 1 1 0 0 0 1 1 0 0     5)把位于2k位的冗余码删除得信息码:1 1 0 0 1 1 0 0 三.程序 #includestdio.h void output(int *num); int InputCheck(int *Num); void CodeSq(int *Num,int *Out); void bianma(int *Num,int bNum[][15]); int cifang(int a,int b); void yima(int *Num,int bNum[][15],int *Yout); void jieshou(int *Num); void main() { int bNum[4][15]={{0,0,0,0,0,0,0,1,1,1,1,1,1,1,1}, {0,0,0,1,1,1,1,0,0,0,0,1,1,1,1}, {0,1,1,0,0,1,1,0,0,1,1,0,0,1,1}, {1,0,1,0,1,0,1,0,1,0,1,0,1,0,1}}; int InputNum[11];//输入11位数 int Out[15]; int Yout[4]; int i=0; printf(Please input 11 numbers(only 0 or 1):\n); for(i=0;i11;i++) { scanf(%d,InputNum[i]); } if(!InputCheck(InputNum))//判断是否输入正确 { CodeSq(InputNum,Out);//把p1、p2等位加入数据里 printf(初始编码值:

您可能关注的文档

文档评论(0)

haocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档