




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#includevoid main()/*G:生成矩阵 H:监督矩阵 HT:监督矩阵对应的转置矩阵*/*M:输入信息序列 C:编码输出序列 Input:输入接收码序列 B:译码输出序列 S:伴随式*/int Q,N;/*定义开始*/int i,j,s,r,k,t,p,u,m; int G47=1,0,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,1;int IR33=1,0,0,0,1,0,0,0,1;int H37, C107,M104,B207,Input100,HT73,P10,S1003;/*定义结束*/printf(n您好!欢迎使用线性分组码编译器!n);printf(nn本编译器针对(7,4)码,所采用的生成矩阵G=n);for(i=0;i4;i+) /生成矩阵的建立 for(j=0;j7;j+)printf( %d,Gij);printf(n);printf(编译码过程都是针对二进制码组,除了系统要求选择功能,其他情况下禁止输入除0,1以外的数。请在使用的过程中严格按照编译器要求的格式输入数据。nn);printf(现在请输入您所选择的编译器所对应的序号,按回车键继续:n);printf(n1.编码器 2.译码器 3.退出n);printf(n我选择:);scanf(%d,&Q);if(Q=0)Q+=4;while(Q)if(Q=1|Q=2|Q=3)break; /判 断输入是否有误elseprintf(对不起,您输入有误,请重新输入);scanf(%d,&Q);while(Q=1|Q=2|Q=3)if(Q=1)/*编码程序*/printf(n请输入您需要编码的信息组数);scanf(%d,&N);printf(nn请输入您需要编码的%d组四位二进制信息组,码组间用空格分开,按回车键确认。n,N);/*输入信息码*/printf(n信息组m=);for(i=0;iN;i+)scanf(%1d%1d%1d%1d,&Mi3,&Mi2,&Mi1,&Mi0);/*求监督码*/for(i=0;iN;i+)Ci2=Mi3Mi2Mi1; /a2=a6a5a4Ci1=Mi3Mi2Mi0; /a1=a6a5a3Ci0=Mi3Mi1Mi0; /a0=a6a4a3for(j=0;j2;i-)/*输出编码结果*/Cji=Mji-3;printf(n您所输入的信息组编码结果c=);for(j=0;j=0;i-)printf(%d,Cji); /输出编码结果printf(n); /换行 printf(nn);printf(n接下来您想:nn);/*选择功能*/printf(1.用编码器 2.用译码器 3.退出nn);printf(我想:);scanf(%d,&Q);else if(Q=2)/*译码程序*/for(i=0;i3;i+)/*求监督矩阵*/for(j=0;j4;j+)Hij=Gji+4; for(j=4;j7;j+)Hij=IRij-4; /单位矩阵printf(n监督矩阵H=n);/*输出监督矩阵*/for(i=0;i3;i+)for(j=0;j7;j+)printf( %d,Hij);printf(n);t=1;while(t!=2)/*输入接收码组*/p=1;printf(n请输入总位数为7的倍数的接收码组,每位用空格隔开,每组位数为7的倍数,以十进制2作为结束标志!按回车键确认n);while(p)for(i=0;i+)scanf(%d,&Inputi);if(Inputi=2)break; k=i%7; /判断是否为7的倍数if(k=0)p=0;t=2;elsep=1;k=-k+7; /计算丢失了几位printf(您接收到的码组丢失了%d位,系统不能判断丢失位的具体位置,请重新输入n,k);u=i/7; /接收到的码组分成u组i=0;for(r=0;r=0;j-,i+)Brj=Inputi; printf(n将接收码组每七位分为一个码组,如下:n); for(i=0;iu;i+)for(j=0;j7;j+)printf( %1d,Bi6-j); /显示分好的码组printf(n);for(i=0;i3;i+)/*求监督矩阵H的转置矩阵*/for(j=0;j7;j+)HTji=Hij;for(i=0;iu;i+) /计算伴随式for(m=0;m3;m+)for(j=0;j7;j+)s+=(Bi6-j*HTjm); if (s%2=1)s=1;else s=0;Si2-m=s;s=0;printf(nn伴随式S=n);/*输出伴随式*/for(j=0;j=0;i-)printf( %1d,Sji);printf(n);printf(n);for(i=0;i=0;j-)printf(%1d,Bij);printf(请您再次确认!);printf(译出的信息序列为:); for(j=6;j2;j-)printf(%d,Bij);break;case 2:Bi0=1Bi0;printf(nn您接收的第%d个码组有错误,正确的码组应为:,+i);i-;for(j=6;j=0;j-)printf(%1d,Bij);printf(译出的信息序列为:);for(j=6;j2;j-)printf(%d,Bij);break;case 3:Bi1=1Bi1;printf(nn您接收的第%d个码组有错误,正确的码组应为:,+i);i-;for(j=6;j=0;j-)printf(%1d,Bij);printf(译出的信息序列为:);for(j=6;j2;j-)printf(%d,Bij);break;case 4:Bi3=1Bi3;printf(nn您接收的第%d个码组有错误,正确的码组应为:,+i);i-;for(j=6;j=0;j-)printf(%1d,Bij);printf(译出的信息序列为:);for(j=6;j2;j-)printf(%d,Bij);break;case 5:Bi2=1Bi2;printf(nn您接收的第%d个码组有错误,正确的码组应为:,+i);i-;for(j=6;j=0;j-)printf(%1d,Bij);printf(译出的信息序列为:); for(j=6;j2;j-)printf(%d,Bij);break;case 6:Bi4=1Bi4;printf(nn您接收的第%d个码组有错误,正确的码组应为:,+i);i-;for(j=6;j=0;j-)printf(%1d,Bij);printf(译出的信息序列为:);for(j=6;j2;j-)printf(%d,Bij);break;case 7:Bi5=1Bi5;printf(nn您接收的第%d个码组有错误,正确的码组应为:,+i);i-;for(j=6;j=0;j-)printf(%1d,Bij);printf(译出的信息序列为:);for(j=6;j2;j-)printf(%d,Bij);break;case 8:Bi6=1Bi6;printf(nn您接收的第%d个码组有错误,正确的码组应为:,+i);i-;for(j=6;j=0;j-)printf(%1d,Bij);printf(译出的信息序列为:);for(j=6;j2;j-)printf(%d,Bij);break;printf(nn总的译码结果为:);for(i=0;i2;j-)printf(%1d,Bij);printf(nn接下来您想:nn);/*继续选择功能*/printf(1.用编码器 2.用译码器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论