资源描述:
《信息论与编码实验二.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、信息论与纠错编码实验报告实验二一、实验目的理解信道编码的原理,理解汉明码的基本原理与编码过程,利用程序实现汉明码编码,理解信道编码对可靠性的追求。二、实验内容1950年,汉明描述了构造最小距离为3的编码的一般方法,现在称为汉明码。对于任意i值,其方法能产生(2i-1)位的编码,其中包含i个校验位和2i-1-i个信息位。程序源码:#include#include#includeusingnamespacestd;#defineN4intmain(){intaa[10
2、000];inti;intb[4][7]={{1,0,0,0,1,0,1},{0,1,0,0,1,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
3、,0},{0,0,0,0,0,1,0},{0,0,0,0,0,0,1},{1,1,0,0,0,0,0}};//定义错误图样intw[10000/4*7];intH[7][3]={{1,0,1},{1,1,1},{1,1,0},{0,1,1},{1,0,0},{0,1,0},{0,0,1}};intA=0,M=0,L=8;intf[3];intww[10000/4*7];cout<<"汉明码的编码与译码:"<4、ULL));//产生一个随机序列,并把它放入a[]中for(i=0;i5、){rr[i]=0;rr[i]=q[i-s]%2;cout<6、){w[i]=0;w[i]=(rr[i]+e[7][i-D])%2;cout<=9)&&(cc[j]<=30))///当随机数在9~30时,一个码字产生一个错误{dd[j]=rand()%7;p=dd[j];///随机产生一个0~6的数,以确定是码字一个错误的位置for(i=D;i<(D+7);i++){w[i]=0;w[i]=(rr[i]+e[p][i-D])%2;cout<7、+7);i++){w[i]=0;w[i]=rr[i];cout<8、)==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;//将出错的地方更正cout<