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

📄 c8_3_2.c

📁 dsp入门与实践一书的源代码
💻 C
字号:

#define RS_2T (16)
#define RS_T (8)
void bk_massey_cn(	unsigned char * s, unsigned int * GF_inv, int T,
			int * fail_code, int * lam_deg, unsigned char * lambda )
{   
	unsigned char Told[RS_2T];
	unsigned char Tnew[RS_2T];
	unsigned char syn_rev[RS_T]; 	
	unsigned char delta, q;
	int i,j,k,L,case0, case1;
	
	for (i = 0; i <= RS_T; i++)
	{
	lambda[i] = 0;
	syn_rev[i] = 0;
	Told[i] = 0;
	}

	lambda[0] = 1;
	L = 0;
	Told[1] = 1;
	k = 1;
	delta = s[0];
	syn_rev[1] = s[0];
	for (j = 0; j < 2*T; j++)
	{
	case0 = (k - 2*L) >> 31;
	case1 = delta & ~case0;
	if (case1) L = k - L;
	for (i = RS_T; i > 0; i--) Tnew[i] = Told[i-1];
	q = (unsigned char) (0xff & GF_inv[0xff & delta]);
	for (i = RS_T; i > 0; i--)
	if ( case1) Tnew[i] = GMPY(lambda[i-1],q);
	for (i = RS_T; i > 0; i--) lambda[i] ^= GMPY(delta,Told[i]);
	for (i = RS_T; i > 0; i--) Told[i] = Tnew[i];
	delta = s[k];
	for (i = RS_T; i > 0; i--)
	delta ^= GMPY(lambda[i], syn_rev[i]);
	for (i = RS_T; i > 0; i--) syn_rev[i] = syn_rev[i-1];
	syn_rev[1] = s[k];
	k++;
	}
	*lam_deg = L;
	*fail_code = 0;
	}

⌨️ 快捷键说明

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