亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bchencoder.cpp

?? 一個解碼的類
?? CPP
字號:
// BCHEncoder.cpp: implementation of the CBCHEncoder class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "BCHEncoder.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CBCHEncoder::CBCHEncoder()
{
	//Initialize Variables
	m = 5; n = 31; k = 21; t = 2; d = 5;
	length = 31;

	// Primitive polynomial of degree 5
    // x^5 + x^2 + 1
	p[0] = p[2] = p[5] = 1; 
	p[1] = p[3] = p[4] = 0;


	//Initialize BCH Encoder
	InitializeEncoder();
}

CBCHEncoder::~CBCHEncoder()
{

}

void CBCHEncoder::GenerateGf()
{
	/*
	* generate GF(2**m) from the irreducible polynomial p(X) in p[0]..p[m]
	* lookup tables:  index->polynomial form   alpha_to[] contains j=alpha**i;
	* polynomial form -> index form  index_of[j=alpha**i] = i alpha=2 is the
	* primitive element of GF(2**m) 
	*/
	
	int i, mask;
	mask = 1;
	alpha_to[m] = 0;
	
	for (i = 0; i < m; i++) 
	{
		alpha_to[i] = mask;
		
		index_of[alpha_to[i]] = i;
		
		if (p[i] != 0)
			alpha_to[m] ^= mask;
		
		mask <<= 1;
	}

	index_of[alpha_to[m]] = m;
	
	mask >>= 1;
	
	for (i = m + 1; i < n; i++) 
	{
		if (alpha_to[i - 1] >= mask)
		  alpha_to[i] = alpha_to[m] ^ ((alpha_to[i - 1] ^ mask) << 1);
		else
		  alpha_to[i] = alpha_to[i - 1] << 1;
	
		index_of[alpha_to[i]] = i;
	}
	
	index_of[0] = -1;
}


void CBCHEncoder::ComputeGeneratorPolynomial()
{
	/* 
	* Compute generator polynomial of BCH code of length = 31, redundancy = 10
	* (OK, this is not very efficient, but we only do it once, right? :)
	*/

	int ii, jj, ll, kaux;
	int test, aux, nocycles, root, noterms, rdncy;
	int cycle[15][6], size[15], min[11], zeros[11];
	
	// Generate cycle sets modulo 31 
	cycle[0][0] = 0; size[0] = 1;
	cycle[1][0] = 1; size[1] = 1;
	jj = 1;			// cycle set index 
	
	do 
	{
		// Generate the jj-th cycle set 
		ii = 0;
		do 
		{
			ii++;
			cycle[jj][ii] = (cycle[jj][ii - 1] * 2) % n;
			size[jj]++;
			aux = (cycle[jj][ii] * 2) % n;

		} while (aux != cycle[jj][0]);
		
		// Next cycle set representative 
		ll = 0;
		do 
		{
			ll++;
			test = 0;
			for (ii = 1; ((ii <= jj) && (!test)); ii++)	
			// Examine previous cycle sets 
			  for (kaux = 0; ((kaux < size[ii]) && (!test)); kaux++)
					if (ll == cycle[ii][kaux])
						test = 1;
		} 
		while ((test) && (ll < (n - 1)));
		
		if (!(test)) 
		{
			jj++;	// next cycle set index 
			cycle[jj][0] = ll;
			size[jj] = 1;
		}

	} while (ll < (n - 1));
	
	nocycles = jj;		// number of cycle sets modulo n 
	// Search for roots 1, 2, ..., d-1 in cycle sets 
	
	kaux = 0;
	rdncy = 0;
	
	for (ii = 1; ii <= nocycles; ii++) 
	{
		min[kaux] = 0;
		
		for (jj = 0; jj < size[ii]; jj++)
			for (root = 1; root < d; root++)
				if (root == cycle[ii][jj])
					min[kaux] = ii;
		
		if (min[kaux]) 
		{
			rdncy += size[min[kaux]];
			kaux++;
		}
	}

	noterms = kaux;
	kaux = 1;
	
	for (ii = 0; ii < noterms; ii++)
		for (jj = 0; jj < size[min[ii]]; jj++) 
		{
			zeros[kaux] = cycle[min[ii]][jj];
			kaux++;
		}
	
	//printf("This is a (%d, %d, %d) binary BCH code\n", length, k, d);
	// Compute generator polynomial 
	g[0] = alpha_to[zeros[1]];
	g[1] = 1;		// g(x) = (X + zeros[1]) initially 
	
	for (ii = 2; ii <= rdncy; ii++) 
	{
	  g[ii] = 1;
	  for (jj = ii - 1; jj > 0; jj--)
	    if (g[jj] != 0)
	      g[jj] = g[jj - 1] ^ alpha_to[(index_of[g[jj]] + zeros[ii]) % n];
	    else
	      g[jj] = g[jj - 1];
	  
		g[0] = alpha_to[(index_of[g[0]] + zeros[ii]) % n];
	}
}

void CBCHEncoder::Encode()
{
	int    h, i, j=0, start=0, end=(n-k);
	
	// reset the M(x)+r array elements
	for (i = 0; i < n; i++)
		Mr[i] = 0;
	
	// copy the contents of data into Mr and add the zeros
	// use the copy method of arrays, its better :-)
	for (h=0; h < k; ++h)
		Mr[h] = data[h];
	
	
	while (end < n)
	{
		for (i=end; i>start-2; --i)
		{
			if (Mr[start] != 0)
			{
				Mr[i]^=g[j];
				++j;
			}
			else
			{
				++start;
				j = 0;
				end = start+(n-k);
				break;
			}
		}
	}
	
	
	//printf("start: %d, end: %d\n\n",start,end);
	j = 0;
	for (i = start; i<end; ++i)
	{
		bb[j]=Mr[i];
		++j;
	}
}



void CBCHEncoder::InitializeEncoder()
{
	GenerateGf();					// Generate the Galois Field GF(2**m) 
	ComputeGeneratorPolynomial();	// Compute the generator polynomial of BCH code 
}


void CBCHEncoder::SetData(int *pData)
{
	for (int i=0; i<21; i++)
		data[i]=pData[i];
}


int* CBCHEncoder::GetEncodedDataPtr()
{
	int i;
	int iEvenParity=0;
/*

	for (i = 0; i < length - k; i++)
	{
		recd[i+1] = bb[i];	// first (length-k) bits are redundancy 
		
		if (bb[i]==1)
			iEvenParity++;
	}
	
	for (i = 0; i < k; i++)
	{
		recd[i + length - k] = data[i];	// last k bits are data 

		if (bb[i]==1)
			iEvenParity++;
	}
*/
	for (i=0; i<21; i++)
	{
		//recd[i+11]=data[i];
		recd[31-i]=data[i];

		if (data[i]==1)
			iEvenParity++;
	}

	for (i=0; i<11; i++)
	{
		recd[10-i]=bb[i];

		if (bb[i]==1)
			iEvenParity++;
	}

	if (iEvenParity%2==0)
		recd[0]=0;
	else
		recd[0]=1;

	return (int*) recd;
}

void CBCHEncoder::SetData(int iData)
{
	//we only use the 21 most significant bits
	int iTemp=iData;

//	iTemp=iTemp >> 11;
	int j=0;

	for (int i=31; i>10; i--)
	{
		int iOne=1<<i;
		if (iTemp & iOne)
			data[j++]=1; //data[i-11]=1;
		else
			data[j++]=0; //data[i-11]=0;
	}
}

int CBCHEncoder::GetEncodedData()
{
	int Codeword[32];
	int iResult=0;

	memcpy(Codeword, GetEncodedDataPtr(), sizeof(int)*32);

	for (int i=0; i<32; i++)
	{
		if (Codeword[i])
			iResult|=(1<<i);
	}

	return iResult;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产乱码久久久久久牛牛| 欧美日韩一级二级| 日本高清视频一区二区| 国产精品福利av| 91精品国产黑色紧身裤美女| 91福利国产精品| 国产日韩欧美亚洲| 高清成人免费视频| 亚洲国产综合91精品麻豆| 中文字幕在线一区免费| 免费日韩伦理电影| 91久久奴性调教| 精品国产污污免费网站入口| 亚洲无人区一区| 成人夜色视频网站在线观看| 日韩视频免费直播| 婷婷成人综合网| 欧美在线短视频| 一区二区三区免费看视频| 国产二区国产一区在线观看| 欧美成人r级一区二区三区| 亚洲综合视频在线观看| av亚洲精华国产精华精| 欧美激情一区三区| 国产在线播放一区三区四| 欧美一区二区三区四区久久| 亚洲一区在线观看免费观看电影高清 | 亚洲不卡av一区二区三区| 91视视频在线观看入口直接观看www | 欧美一二三区精品| 五月天视频一区| 欧美高清激情brazzers| 一区二区三区产品免费精品久久75| 国产69精品久久久久毛片| 久久久久88色偷偷免费| 国产精品资源在线观看| 久久久美女艺术照精彩视频福利播放| 麻豆一区二区在线| 久久在线免费观看| 国产成人精品一区二| 国产精品午夜在线观看| av在线不卡观看免费观看| 国产精品视频一二三| 91在线观看成人| 夜夜嗨av一区二区三区网页| 91久久精品网| 三级在线观看一区二区| 日韩你懂的在线观看| 国产米奇在线777精品观看| 欧美国产一区二区| 91日韩精品一区| 香蕉加勒比综合久久| 在线成人免费观看| 久久99国产精品尤物| 久久久久久久免费视频了| 国产不卡视频在线播放| 综合色天天鬼久久鬼色| 欧美日韩一区二区在线观看| 日韩成人午夜电影| 久久精品人人做人人综合| www.亚洲色图| 亚洲成人一区在线| 2020国产精品久久精品美国| 不卡视频在线看| 五月天激情综合| 国产日产精品一区| 欧美日韩免费不卡视频一区二区三区| 麻豆国产一区二区| 日韩一区欧美小说| 欧美一区二区福利在线| 国产成人av福利| 午夜欧美在线一二页| 国产午夜久久久久| 欧美日本国产一区| www.av精品| 轻轻草成人在线| 亚洲日穴在线视频| 欧美精品一区视频| 欧美影片第一页| 丁香婷婷综合网| 午夜国产不卡在线观看视频| 欧美国产综合一区二区| 欧美一区二区在线免费观看| 97久久久精品综合88久久| 奇米影视7777精品一区二区| 亚洲女人****多毛耸耸8| 亚洲精品在线网站| 欧美日韩电影一区| 99精品欧美一区二区三区综合在线| 日本视频在线一区| 亚洲一区在线观看免费观看电影高清| 亚洲精品一线二线三线无人区| 色婷婷久久一区二区三区麻豆| 极品美女销魂一区二区三区| 亚洲一区二区av在线| 日韩毛片精品高清免费| 亚洲激情成人在线| 国产蜜臀97一区二区三区| 日韩欧美三级在线| 91精品国产麻豆| 精品视频1区2区| 91网站在线播放| 国产98色在线|日韩| 美日韩一区二区| 日韩av电影免费观看高清完整版| 一区二区三区中文免费| 国产精品进线69影院| 久久久久久久久久久久久女国产乱 | 亚洲天堂2016| 亚洲人123区| 亚洲免费在线播放| 1000部国产精品成人观看| 久久久久久久久一| 欧美经典一区二区三区| 国产午夜三级一区二区三| 久久你懂得1024| 久久久99精品久久| 国产精品乱码一区二区三区软件| 欧美精品一区二区三区蜜桃| 日韩女优av电影在线观看| 欧美成人vr18sexvr| 精品第一国产综合精品aⅴ| 久久久欧美精品sm网站| 久久久久久久av麻豆果冻| 久久天天做天天爱综合色| 精品成人免费观看| 欧美韩日一区二区三区| 国产精品国产精品国产专区不片| 欧美高清一级片在线观看| 亚洲欧美日本在线| 亚洲自拍欧美精品| 国产一区二区三区黄视频| 丁香六月综合激情| av亚洲产国偷v产偷v自拍| 色综合久久久久综合| 欧美自拍偷拍一区| 91精品午夜视频| 欧美精品一区二区不卡| 欧美国产日韩一二三区| 亚洲视频资源在线| 青青草国产成人99久久| 国产精品一区二区在线播放 | 日韩一区欧美二区| 国产一区二区在线观看免费| 国产99精品在线观看| 91国产成人在线| 精品成人在线观看| 亚洲三级小视频| 免费观看在线综合色| 成人午夜av电影| 在线观看成人小视频| 欧美成人bangbros| 亚洲视频一二区| 麻豆91精品91久久久的内涵| 国产成人在线影院| 在线观看精品一区| 日韩精品一区二区三区视频播放| 国产精品久久福利| 蜜臀精品一区二区三区在线观看 | 欧美日本在线看| 久久午夜电影网| 亚洲国产成人va在线观看天堂| 久久精品国产精品亚洲综合| 91在线观看免费视频| 日韩三级视频在线看| 亚洲精品视频在线观看免费| 美日韩一区二区| 在线视频国内一区二区| 2024国产精品| 日本午夜一区二区| 色8久久人人97超碰香蕉987| 久久免费国产精品| 热久久一区二区| 欧美午夜片在线看| 中文字幕亚洲成人| 国产精品自产自拍| 欧美一区二区久久| 亚洲国产一区二区三区青草影视 | 亚洲欧洲99久久| 国产一区二区三区最好精华液| 欧美性一级生活| 亚洲欧美另类在线| 欧美三级资源在线| 亚洲精品视频在线| av男人天堂一区| 国产女主播一区| 国内成人精品2018免费看| 91精品国产入口| 日韩精品亚洲专区| 欧美日韩国产不卡| 午夜精品久久久久久久久| 在线这里只有精品| 亚洲制服欧美中文字幕中文字幕| 成人国产在线观看| 国产午夜精品久久久久久久| 久久99国产精品麻豆| 欧美一区二视频| 久久超级碰视频| 欧美成人vps| 国产精品中文字幕日韩精品|