logo资料库

C语言循环码的生成.doc

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
第 4 次实验 学生姓 名 实验项 目 XX 班级 XX 学号 循环码的编码 指导教师 XX XX 一 实验目的: 掌握通过计算机实现系统循环码编码 二 实验要求: 对于给定的消息序列,按照循环码编码的方法进行计算机实 现. 三 实验原理 循环码的非系统编码步骤(省略): 实验目 的和要 求 循环码的系统码构造的步骤为: 1) 将消息多项式消息多项式 ( )m x 乘以 n kx  ,即 ( ) m x 的 余 式 ( )p x ,即: 2) 计 算 ( ) m x mod ( ) g x x  n k x n k    n k  ( ) m x x  3) 码多项式为 ( ) c x 法为二元域上的加法 mod ( ) g x ( ) m x x  n k    ( ) p x ( ) p x ,其中的加 注释:本实验要求的循环码为(7,4)循环汉明码,其 1  ,具体的实现方法之 生成多项式为 一可以采用教材 p199 例题 6.3.6 的方法。 ( ) g x   x x 3 2
实 验 内 容 一、 程序设计流程图 开始 从主函数中获取信息 元 m 和监督矩阵 g 调 用 xunhuan 函数 求 信 息 多 项 式的次幂 实现二进制除法 输出循环码 结束 程序代码 二、 #include #define N 7 void xunhuan(int g[N],int c[N],int r,int n); void main() { int g[N]={0,0,0,1,1,0,1},m[N]={1,0,1,0};
xunhuan(g,m,4,7); } void xunhuan(int g[N],int c[N],int r,int n) { int temp1,temp2,i,k,t,j,e,u,sum=0; int d[N][2*N]={0},C[N],R[N],q[N]; temp1=r; for(i=0;i<=n-r-1;i++) //求信息多项式的次幂 if(c[i]!=0) { temp2=n-i-1; break; } for(i=0;i=e;i--) { t=q[i];q[i]=q[i-e];q[i-e]=t; } for(i=0;i<=n-1;i++) c[i]=(c[i]+q[n-1-i])%2; for(i=0;i<=n-1;i++) if(c[i]!=0) { temp2=n-i-1; break; } e=temp2-temp1; u=j; if(e<0) break; } for(i=0;i<=n-1;i++) C[i]=(R[i]+c[i])%2; cout<<"循环编码的结果为:"<
for(j=0;j<=n-1;j++) cout<
分享到:
收藏