资源简介
信息论里面循环码的编程实现(信息论实验C++版)
代码片段和文件信息
/*(73)循环码的编译及纠检错实现*/
#include
#include
#include
/*函数声明*/
void Begin();
void Code();
void Decoding();
/*主函数*/
main()
{
printf(“\n (73)循环码的编码和译码\n “);
Begin();
}
/*进行编码*/
void Code()
{
int Input[3];
int Output[7];
int reg[4]={0000};
int tempijt;
printf(“请输入信息码 :“);
for(i=0;i<3;i++)
scanf(“ %d“&Input[i]); /*输入3位信息码*/
for(i=0;i<3;i++) /*进行除法操作*/
{temp=reg[3]+Input[i]; /*生成多项式为g(x)=x^4+x^3+x^2+1*/
if(temp==2) temp=0;
reg[3]=reg[2]+temp;
if(reg[3]==2)reg[3]=0;
reg[2]=reg[1]+temp;
if(reg[2]==2)reg[2]=0;
reg[1]=reg[0];
reg[0]=temp;
}
for(i=0;i<3;i++) Output[i]=Input[i]; /*进行编码操作*/
for(i=3;i<7;i++)
{
temp=reg[3];
for(j=3;j>0;j--)
reg[j]=reg[j-1];
reg[0]=0;
Output[i]=temp;
}
printf(“________________________________________“);
printf(“\n“);
printf(“ 编码结果: \n“);
for(i=0;i<7;i++)
printf( “ %d “Output[i]); /*输出编码结果*/
printf(“\n“);
printf(“________________________________________“);
printf(“\n“);
Begin();
}
/*译码并进行纠检错*/
void Decoding()
{ int Input[7]Output[7];
int reg[4]={0000};
int tempidxp;
printf(“\n请输入7位码字(一次一位,输入7次):“);
for(i=0;i<7;i++)
scanf(“ %d“&Input[i]); /*输入接受码组*/
for(i=0;i<7;i++) /*进入除法电路*/
{temp=reg[3]; /*计算伴随式S(x)*/
reg[3]=reg[2]+temp;
if(reg[3]==2)reg[3]=0;
reg[2]=reg[1]+temp;
if(reg[2]==2)reg[2]=0;
reg[1]=reg[0];
reg[0]=temp+Input[i];
if(reg[0]==2
- 上一篇:斗地主MFC源代码
- 下一篇:c语言实现的发送邮件
评论
共有 条评论