• 大小: 4KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: C/C++
  • 标签: 信息论  循环码  

资源简介

信息论里面循环码的编程实现(信息论实验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

评论

共有 条评论