资源描述:
《卷积码编码程序的c语言实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#includeusingnamespacestd;inttable1[8]={1,2,4,8,16,32,64,128};intmyn=0;intstalen=0;intstan0[256][2]={0};//输入0时个状态的输出intstan1[256][2]={0};//输入1时各状态的输出intstachn[256][2]={0};//状态装换表intmyg1[10]={0};intmyg2[10]={0};intmyout[100];//intmyoutsym=0;voidchartobits(charch,int*bi
2、ts);charbitstochar(int*bits);voidconvolution(void);voidcreatsta(void);voidmyinput(void);intmain(){charexit_char;myinput();creatsta();convolution();cin>>exit_char;}voidmyinput(void){inti,j;cout<<"输入编码的约束长度N:(3>myn;stalen=int(pow(2.0,myn-1));cout<<"选择默认的编码矢量则输入1,
3、输入2则可输入其他的编码矢量"<>i;if(i==1){switch(myn){case3:myg1[0]=1,myg1[1]=1,myg1[2]=1;myg2[0]=1,myg2[1]=0,myg2[2]=1;break;case4:myg1[0]=1,myg1[1]=1,myg1[2]=1,myg1[3]=1;myg2[0]=1,myg2[1]=0,myg2[2]=1,myg2[3]=1;break;case5:myg1[0]=1,myg1[1]=0,myg1[2]=1,myg1[3]=1,myg1[4]=1;myg2[0]=
4、1,myg2[1]=1,myg2[2]=0,myg2[3]=1,myg2[4]=1;break;case6:myg1[0]=1,myg1[1]=0,myg1[2]=1,myg1[3]=1,myg1[4]=1,myg1[5]=1;myg2[0]=1,myg2[1]=1,myg2[2]=0,myg2[3]=1,myg2[4]=0,myg2[5]=1;break;case7:myg1[0]=1,myg1[1]=0,myg1[2]=0,myg1[3]=1,myg1[4]=1,myg1[5]=1,myg1[6]=1;myg2[0]=1,myg2[1]=1,my
5、g2[2]=0,myg2[3]=1,myg2[4]=1,myg2[5]=0,myg2[6]=1;break;case8:myg1[0]=1,myg1[1]=0,myg1[2]=0,myg1[3]=1,myg1[4]=1,myg1[5]=1,myg1[6]=1,myg1[7]=1;myg2[0]=1,myg2[1]=1,myg2[2]=1,myg2[3]=0,myg2[4]=0,myg2[5]=1,myg2[6]=0,myg2[7]=1;break;case9:myg1[0]=1,myg1[1]=1,myg1[2]=0,myg1[3]=1,myg1[4
6、]=0,myg1[5]=1,myg1[6]=1,myg1[7]=1,myg1[8]=1;myg2[0]=1,myg2[1]=0,myg2[2]=0,myg2[3]=0,myg2[4]=1,myg2[5]=1,myg2[6]=1,myg2[7]=0,myg2[8]=1;break;}}else{cout<<"输入g1"<>myg1[j];cout<<"输入g2"<>myg2[j];}cout<<"连接矢量1为"<7、8、i][0]=i/2;myi=i;for(j=0;j=pow(2.0,myn