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

📄 parallel encoder.cpp

📁 该代码是802.3ap推荐代码fir吗(42,33)的编码器和解码器,该代码采用C语言实现,可以完成译码功能,该代码采用并行编译码方式实现,可以应用于100G以太网的FEC
💻 CPP
字号:
//The programme is uesed to encode fire code (42,33)
#include<iostream.h>
void main()
{
	int signal_in[33]={1,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,0,1};//initial value
	int now_state[9]={0};
	int next_state[9]={0};
	int cycle,var_i;
	cycle=0;
	while(cycle<1)//encode fire code (42,33) in parallel
	{	cycle+=1;
		next_state[0]=signal_in[32]^signal_in[26]^now_state[0]^now_state[3]^now_state[5]^now_state[7]^now_state[8]^signal_in[0]^signal_in[1]^signal_in[3]^signal_in[28]^signal_in[5]^signal_in[24]^signal_in[8]^signal_in[9]^signal_in[10]^signal_in[25]^signal_in[11]^signal_in[13]^signal_in[29]^signal_in[16]^signal_in[30]^signal_in[19]^signal_in[20]^signal_in[21];
		next_state[1]=signal_in[23]^signal_in[32]^signal_in[26]^now_state[1]^now_state[3]^now_state[4]^now_state[5]^now_state[6]^now_state[7]^signal_in[1]^signal_in[2]^signal_in[3]^signal_in[4]^signal_in[5]^signal_in[31]^signal_in[7]^signal_in[11]^signal_in[12]^signal_in[13]^signal_in[15]^signal_in[16]^signal_in[30]^signal_in[18]^signal_in[27]^signal_in[21];
		next_state[2]=signal_in[26]^now_state[2]^now_state[4]^now_state[5]^now_state[6]^now_state[7]^now_state[8]^signal_in[0]^signal_in[1]^signal_in[2]^signal_in[3]^signal_in[4]^signal_in[31]^signal_in[6]^signal_in[10]^signal_in[25]^signal_in[11]^signal_in[12]^signal_in[29]^signal_in[14]^signal_in[15]^signal_in[17]^signal_in[30]^signal_in[20]^signal_in[22];
        next_state[3]=signal_in[32]^signal_in[26]^now_state[0]^now_state[6]^signal_in[2]^signal_in[8]^signal_in[14]^signal_in[20];
        next_state[4]=now_state[1]^now_state[7]^signal_in[1]^signal_in[31]^signal_in[7]^signal_in[25]^signal_in[13]^signal_in[19];
        next_state[5]=now_state[2]^now_state[8]^signal_in[0]^signal_in[6]^signal_in[24]^signal_in[12]^signal_in[30]^signal_in[18];
        next_state[6]=signal_in[23]^signal_in[32]^signal_in[26]^now_state[0]^now_state[5]^now_state[7]^now_state[8]^signal_in[0]^signal_in[1]^signal_in[3]^signal_in[28]^signal_in[24]^signal_in[8]^signal_in[9]^signal_in[10]^signal_in[25]^signal_in[13]^signal_in[16]^signal_in[17]^signal_in[30]^signal_in[19]^signal_in[20]^signal_in[21];
		next_state[7]=signal_in[23]^signal_in[32]^signal_in[26]^now_state[1]^now_state[3]^now_state[5]^now_state[6]^now_state[7]^signal_in[1]^signal_in[2]^signal_in[3]^signal_in[28]^signal_in[5]^signal_in[31]^signal_in[7]^signal_in[10]^signal_in[11]^signal_in[12]^signal_in[13]^signal_in[15]^signal_in[30]^signal_in[18]^signal_in[27]^signal_in[21]^signal_in[22];
		next_state[8]=signal_in[26]^now_state[2]^now_state[4]^now_state[6]^now_state[7]^now_state[8]^signal_in[0]^signal_in[1]^signal_in[2]^signal_in[4]^signal_in[31]^signal_in[6]^signal_in[9]^signal_in[10]^signal_in[25]^signal_in[11]^signal_in[12]^signal_in[29]^signal_in[14]^signal_in[17]^signal_in[30]^signal_in[27]^signal_in[20]^signal_in[21]^signal_in[22];
		for(var_i=0;var_i<9;var_i++)
		{
			now_state[var_i]=next_state[var_i];
		}
		for(var_i=0;var_i<33;var_i++)//display the input data
		{
			cout<<signal_in[var_i]<<" ";
		}
	}
		cout<<endl;
	for(var_i=0;var_i<9;var_i++)//display check bits
	{
		cout<<now_state[var_i]<<" ";
		if(var_i%4==0) cout<<endl;
	}
}

⌨️ 快捷键说明

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