⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 encorder.cpp

📁 这是本人做到RCPC码(速率兼容删余卷积码)的程序
💻 CPP
字号:
#include "iostream.h"
#include "stdio.h"
#include <stdlib.h>
#include <time.h> 	   
#define G0 1
#define G1 5
#define G2 7  
	   

unsigned int random0_1()      //产生随机的0,1数据
{int i;
 srand( (unsigned)time( NULL ) ); 
 return rand()%2;
}
 
       
unsigned int partab(int data1)
{
    
    return (data1&1)^(data1>>1&1)^(data1>>2&1);
}

   

void main()
{
	int *data,*symbol;
	int t,i,s,j,encorder=0,nbyte;
	unsigned int a0,a1,a2,a3;
	unsigned int encstate=0;
int c1,c2,c3,d1,d2,d3;
	int A=0xc3;
	int B[5]={0,0,0,0,0};
static int
   A0[3]={0XFF,0XFF,0XFF},
   A1[3]={0XFF,0XFF,0XFF},
   A2[3]={0X00,0X0f,0Xff};

	data=&A;
	symbol=&B[0];
	nbyte=1;

	cout<<*data<<'\n';
	for(i=0;i<8;i++)
	{
		j=*data>>i;
		cout<<"j="<<j<<'n';
		cout<<"data="<<*data<<'\n';
	}

	
	cout<<"请输入s的值=";
	cin>>s;
	cout<<"\n";
	                                   
	if(s==0)
	{
		a0=A0[s];
		a1=A1[s];
		a2=A2[s];
	}
	else
	{
			a0=A0[s]^A0[s-1];
			a1=A1[s]^A1[s-1];
			a2=A2[s]^A2[s-1];		
	}

    while(nbyte--!=0)
	{
		for(i=7;i>=0;i--)
		{ 
            encstate=(encstate<<1)|((*data>>i)&1);
			cout<<"data="<<*data<<"\n";
			cout<<"encstate="<<encstate<<'\n';
            d1=encstate&G0;
			d2=encstate&G1;
			d3=encstate&G2;
			c1=partab(d1);
			c2=partab(d2);
			c3=partab(d3);
			cout<<c1<<c2<<c3<<'\n';
			
            if((a0>>i)&1){*symbol++=c1; encorder++;}
            if((a1>>i)&1){*symbol++=c2;  encorder++;}
			if((a2>>i)&1){*symbol++=c3;  encorder++;}
		}
			
		
	}
	
	for(i=0;i<encorder-1;i++)
	   cout <<B[i];
}



     


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -