第 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<