下载此文档

RM码的生成矩阵1.doc


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
,这类码构造简单的构造,结构特性丰富。对于任意整数m和r,0<r<m,存在一个二进制r阶RM码,记为RM(r,m),其参数如下:码长:n=2;维数:k(r,m)=1+mcm+cm+.......+cm12r最小距离:d=(r,m)成如下:V0={1,1,...........................................1}Vi={0,.....0,1.....1,0.....0,..........,1......1}ViVj={Vi0*Vj0,..............,Vi(n-1)*Vj(n-1)}.....一直到r次相乘即Grm(r,m)={V0,V1,........,Vm,V1V2,........Vm-1Vm.......至r次相乘}++编写Grm(r,m)思想如下::利用for循环m次,每次乘以二令n的初值为1for(i=1;i<=m;i++)n=n*2;维数的计算:先定义一个递归函数fac1(inta)完成一个整数的阶乘计算;在定义一个函数fac2()完成排列组合的计算,其中调用fac1(inta)函数;代码如下:intfac1(inta){if(a==1)return1;elsereturna*fac1(a-1);}intfac2(inta,intb){returnfac1(a)/fac1(b)/fac1(a-b);}令k的初值为1,利用for循环r次,累加每次排列组合数:for(i=1;i<=r;i++){k=k+fac2(m,i);}:对于V0向量直接用赋除值的方法:for(j=0;j<n;j++){*(*(g+0)+j)=1;cout<<*(*(g+0)+j)<<"";}对于Vi向量生成方法:先算出码长2(i-1)整除n,将码长分成多少组0,1交替的序列;对于Vi序列中的第J个数整除2(i-1),得的商为奇数是,则第J个数为1,否则为0;for(i=1;i<=m;i++){a=(int)pow(2,i-1);b=n/a;for(j=0;j<n;j++){if((j/a)%2==0)*(*(g+i)+j)=0;else*(*(g+i)+j)=1;cout<<*(*(g+i)+j)<<"";}对于ViVj向量的生成方法:利用三个for循环,第一个变量i为控制Vi向量不变,通过第二个变量j的自加,分别使异于Vi的向量与Vi相乘,第三个变量是控制Vi和Vj的第a个元素相乘。其代码如下:for(i=1;i<m;i++){for(j=i+1;j<=m;j++){for(a=0;a<n;a++){*(*(g+m+i)+a)=(*(*(g+i)+a))*(*(*(g+j)+a));cout<<*(*(g+m+i)+a)<<"";}cout<<endl;}}}下面以m=4,r=2为例,其总的代码如下:#include<>#include<>voidmain(){inta,b,m=4,r=2,n=1,k=1;inti,j;//cin>>m>>r;//cout<<"m="<<m<<""<<"r="<<r<<endl;for(i=1;i<=m;i++)n=n*2;//计算

RM码的生成矩阵1 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人q1188830
  • 文件大小93 KB
  • 时间2019-12-13