卷积码编码程序的c 语言实现
#include
using namespace std;
int table1[8]={1,2,4,8,16,32,64,128};
int myn=0;
int stalen=0;
int stan0[256][2]={0};//输入 0 时个状态的输出
int stan1[256][2]={0};//输入 1 时各状态的输出
int stachn[256][2]={0};//状态装换表
int myg1[10]={0};
int myg2[10]={0};
int myout[100]; //
int myoutsym=0;
void chartobits(char ch,int *bits);
char bitstochar(int *bits);
void convolution(void);
void creatsta(void);
void myinput(void);
int main(){
char exit_char;
myinput();
creatsta();
convolution();
cin>>exit_char;
}
void myinput(void){
int i,j;
cout<
cin>>myn;
stalen=int(pow(2 、0,myn-1));
cout<
cin>>i;
if(i==1){
switch(myn){
case 3:myg1[0]=1,myg1[1]=1,myg1[2]=1;
myg2[0]=1,myg2[1]=0,myg2[2]=1;
break;
case 4: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;
case 5:myg1[0]=1,myg1[1]=0,myg1[2]=1,myg1[3]=1,myg1[4]=1;
myg2[0]=1,myg2[1]=1,myg2[2]=0,myg2[3]=1,myg2[4]=1;
break;
case 6: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;
卷积码编码程序的c 语言实现
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,myg2[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]=0,myg1[5]=1,myg1[6]=1,myg1[7]=1,m
yg1[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,m yg2[8]=1;
break;
}
}
else{
cout<
for(j=0;j
cin>>myg1[j];
cout<
for(j=0;j
cin>>myg2[j];
}
cout<
for(j=0;j
cout<
cout<
cout<
for(j=0;j
cout<
cout<
cout<
cout<
}
void creatst