![2023年汉明码编码译码实验报告信息论与编码及源程序_第1页](http://file4.renrendoc.com/view/6d64481e799454cc83f54835ec487a1c/6d64481e799454cc83f54835ec487a1c1.gif)
![2023年汉明码编码译码实验报告信息论与编码及源程序_第2页](http://file4.renrendoc.com/view/6d64481e799454cc83f54835ec487a1c/6d64481e799454cc83f54835ec487a1c2.gif)
![2023年汉明码编码译码实验报告信息论与编码及源程序_第3页](http://file4.renrendoc.com/view/6d64481e799454cc83f54835ec487a1c/6d64481e799454cc83f54835ec487a1c3.gif)
![2023年汉明码编码译码实验报告信息论与编码及源程序_第4页](http://file4.renrendoc.com/view/6d64481e799454cc83f54835ec487a1c/6d64481e799454cc83f54835ec487a1c4.gif)
![2023年汉明码编码译码实验报告信息论与编码及源程序_第5页](http://file4.renrendoc.com/view/6d64481e799454cc83f54835ec487a1c/6d64481e799454cc83f54835ec487a1c5.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、原理与环节在随机信道中,错码的出现是随机的,且错码之间是记录独立的。例如,由高斯白噪声引起的错码就具有这种性质。因此,当信道中加性干扰重要是这种噪声时,就称这种信道为随机信道。由于信息码元序列是一种随机序列,接受端是无法预知的,也无法辨认其中有无错码。为了解决这个问题,可以由发送端的信道编码器在信息码元序列中增长一些监督码元。这些监督码元和信息码元之间有一定的关系,使接受端可以运用这种关系由信道译码器来发现或纠正也许存在的错码。在信息码元序列中加入监督码元就称为差错控制编码,有时也称为纠错编码。不同的编码方法有不同的检错或纠错能力。有的编码就只能检错不能纠错。汉明码是一种可以纠正一位错码且编码效率较高的线性分组码。汉明码是一种多重(复式)奇偶检错系统。它将信息用逻辑形式编码,以便可以检错和纠错。用在汉明码中的所有传输码字是由本来的信息和附加的奇偶监督位组成的。每一个这种奇偶位被编在传输码字的特定比特位置上。推导并使用长度为m位的码字的汉明码,所需环节如下:1、拟定最小的监督位数k,将它们记成DI、D2、…、Dk,每个监督位符合不同的奇偶测试规定。2、原有信息和k个监督位一起编成长为m+k位的新码字。选择k监督位(0或1)以满足必要的奇偶条件。3、对所接受的信息作所需的k个奇偶检查。4、假如所有的奇偶检查结果均为对的的,则认为信息无错误。假如发现有一个或多个错了,则错误的位由这些检查的结果来唯一地拟定。2、算法描述一个二元(7,4)汉明码的系统码形式的矩阵和校验矩阵分别为10001011110100G=0100111H=G=0100111H=0111010001011000101101101001000101100101101101001等价的编码方程为G=m.i=0,1,2,3C4=m0+mi+m2Cs=mi+m2+mC6=m0+mi+m33、源程序及注释voidmain(){intaa[10000];inti;ointN;intb⑷[7]={{1,0,0,0,1,0,1},{1。{0,0,1,0,1,1,0},{0,0,0,1,0,1,1}};〃定义生成矩阵inty=0,s=0;intj,k,m;inta[4],q[7],rr[10000/4*7];intp,D=0;。intcc[2500],dd[2500];«inte[8][7]={{1,0,0,0,0,0,0},{0,1,0,0,0,0,0},{0,0,1,0,0,0,0},{0,0,0,1,0,0,0},{0,0,0,0,1,0,0},。{0,0,0,0,0,1,0},{0,0,0,0,0,0,1},{1,1,0,0,000});〃定义错误图样intw[10000/4*7];intH[7][3]={{1,0,1},{1,1,1},{1,1,0},。1,1},{1,0,0},{0,1,0},{0,0,1)};intA=0,M=0,L=8;,intf[3];intww[10000/4*7];printf("汉明(7,4)码的编码与译码程序:\n”);printf("请输入你想产生的二进制个数:");scanf("%d",&N);〃输入想产生的信源的个数while(N<4)(Printf("输入无效,请重新输入");printf("请输入你想产生的二进制个数:*,);scanf(”%d”,&N);)printf("随机产生的二进制序列为:\n“);srand((unsigned)time(NULL));〃产生一个随机序列,并把它放入a口中efor(i=0;i<N;i++){aa[i]=rand()%2;printf("%d"zaa[i]);}oprintf("\n");oprintf("编码后变为:\n”);〃编码生成码字®for(m=0;m<N/4:m++)。{for(i=y;i<(y+4);i++)66{a[i-y]=aa[i];}//〃取出4位出来for(j=0;j<7;j++)。{q口]=0;。for(k=0;k<4;k++)。。。。q[j]+=a[k]*b[kJ[j];/////与生成矩阵相乘000}for(i=s;i<(s+7);i++)。。{rr[i]=0;。rr[i]=q[i-s]%2;-printf("%d,rr[i]);〃〃将生成的放入rr[]中00)y=y+4;〃〃向后移动4位s=s+7;///向后移动7位printf("\n");)printf("通过信道后变为:\n");srand((unsigned)time(NULL));for(j=O:j<N/4;j++){cc[j]=rand()%100;////产生一个0〜99的随机数if(cc[j]<9)////当随机数小于9时,一个码字产生2个错误{for(i=D;i<(D+7);i++)°。{w[i]=0;w[i]=(rr[i]+e[7][i-D])^2;oprintf("%d",w[i]);})elseif((cc[j)>=9)&&(cc[j]<=30))〃/当随机数在9〜30时,一个码字产生一个错误{。dd[j]=rand()%7;P=dd[j]:〃/随机产生一个0〜6的数,以拟定是码字一个错误的位置»P=dd[j]:o。{w[i]=0;。。w[i]=(rr[i]+e[p][i-D])%2;oprintf(”%d”,w[i]);})else//〃〃当随机数在30~99时,不发生错误{afor(i=D;i<(D+7);i++)。{w[i]=0;^w[i]=rr[i];Printf("%d",w[i]);}°}。D=D+7;////向后移动7位printf("%6d",cc[j]);〃///进行跟踪,以拟定码字错几位printf("\n");)Printf("通过译码后变为:\n");for(i=0;i<N/4;i++){for(j=0;j<3;j++){。f[j]=0;。for(k=A;k<A+7水++)-f[j]+=w[k]*H[k-A]皿〃〃/计算随着式for(m=0;m<7;m++){«for(j=0;j<3;j++)。if((f[j]%2)==H[m][j])M=M+1;if(M==3)L=m;。M=0;〃清零}〃/根据随着式找到犯错的位置for(m=0;m<7;m++)。{®if(m==L)。{ww[A+m]=(w[A+m]+1)%2;〃将犯错的地方更正printf(”%d”,ww[A+m]):8)else。{ww[A+m]=w[A+m];Printf("%d",ww(A+m]);〃没有犯错的地方))A=A+7;〃向后移动7位L=8;〃复位M=0;〃/清零,复位printf("\n");))4、运营输出结果实例
SB"D:\C语习\Debug\cppl.exe"汉明<7,4〉码的编码与译码程序:请输入你想产生的二进制个数:4随机产生的二进制序列为:1010解码后变为:010110匿过信道后变为:01011110度过译码后变为:010110ressanykeytocontinueressanykeytocontinueressanykeytocontinue5、实验总结ressanykeytocontinue这次的实验是实现汉明码的编码与译码,达成纠错功能。通过信息论的课程,我基本了解了汉明码编译的原理和方法,但在编程的过程中碰到了不小的困难。一方面还是理解汉明码概念的问题,由于还存在纠错的功能,所以汉明码的编码方式和以前学的哈夫曼编码或Fano编码比起来要复杂不少,开始的时候理解起来有些困难。但是通过仔细看PPT,不久就弄懂了汉明码的原理。但是最开始编出来的程序运营的结果总是不对的,和书上的码字不同样,后来发现是在校验矩阵上出了问题,自己对矩阵方面的知识一直把握得不是很好。通过调试,程序不久就可以对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 知产保护在国际贸易中的重要性分析
- 知识产权评估技术的研究进展与挑战
- 班级文化墙提升学生归属感的利器
- 领导新年开工发言稿
- 生产数据处理的技巧与策略
- 知识产权保护的教育与培训重要性
- 男性的自我保健意识与行为习惯培养
- 小学三年级下册数学教学总结
- 收银员年度总结
- 电竞酒店的卫生监督与健康保障
- 高二物理上期期末复习备考黄金30题 专题04 大题好拿分(提升20题)
- 【高分复习笔记】陈澄《新编地理教学论》笔记和课后习题详解
- 节事活动策划与组织管理 节事活动概论
- 肋骨骨折病人的业务学习
- 生产建设项目水土保持补偿费免征申请表
- 全过程工程咨询服务大纲
- 日本酒类消费行业市场分析报告
- GB/T 4151-1996硝酸铈
- GB/T 31586.2-2015防护涂料体系对钢结构的防腐蚀保护涂层附着力/内聚力(破坏强度)的评定和验收准则第2部分:划格试验和划叉试验
- GB/T 29594-2013可再分散性乳胶粉
- 危房鉴定报告
评论
0/150
提交评论