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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? miscellaneous.cpp

?? 這個(gè)是數(shù)據(jù)打孔重傳程序的源代碼
?? CPP
字號(hào):
/**********************************************/
/* This file consists of many miscellaneous functions
/**********************************************/

#include "parameter_sets.h"

///////////////////////////////////////////////////////////////////////////////
// Miscellaneous Functions
///////////////////////////////////////////////////////////////////////////////

//Calculate the z
//int CalcZfactorF(int K, int N) 
//{
//	
//	int mb = 16;
//	int kb = 16;
//	double r = ((double) K)/N;
//	int z;
//	if (r <= 0.5) {
//		// lower rate
//		z = ((N-K)%mb) ? ((N-K)/mb+1) : ((N-K)/mb);
//	} else {
//		// higher rate
//		z = (K%kb) ? (K/kb+1) : (K/kb);
//	}
//	return z;
//}
//
const double const16QAM[2][2][2] = {
// MSB = 0
	1.0/3.16227766016838, 3.0/3.16227766016838,
// MSB = 1
	-1.0/3.16227766016838, -3.0/3.16227766016838,
// LSB = 0
	-1.0/3.16227766016838, 1.0/3.16227766016838,
// LSB = 1
	-3.0/3.16227766016838, 3.0/3.16227766016838
};

const double const64QAM[3][2][4] = {
// MSB = 0
	1.0/6.48074069840786, 3.0/6.48074069840786, 5.0/6.48074069840786, 7.0/6.48074069840786, 
// MSB = 1
	-1.0/6.48074069840786, -3.0/6.48074069840786, -5.0/6.48074069840786, -7.0/6.48074069840786,
// CSB = 0
	-3.0/6.48074069840786, -1.0/6.48074069840786, 1.0/6.48074069840786, 3.0/6.48074069840786,
// CSB = 1
	-7.0/6.48074069840786, -5.0/6.48074069840786, 5.0/6.48074069840786, 7.0/6.48074069840786,
// LSB = 0
	-5.0/6.48074069840786, -3.0/6.48074069840786, 3.0/6.48074069840786, 5.0/6.48074069840786,
// LSB = 1
	-7.0/6.48074069840786, -1.0/6.48074069840786, 1.0/6.48074069840786, 7.0/6.48074069840786
};

//const int PuncPos2[15] = {17, 19, 21, 23, 25, 27, 31, 29, 18, 24, 22, 28, 30, 20, 26};

const double MAX = 10000.0;
double logcothsemi(double x) {
	return -1*log(tanh(x/2));
}

int MaxLogDeMap(int start, int length, double symbol, double * llr) {

	int i, j, k;
	double temp, mindis[2];

	if (length == 2) {
		// Demap the inphase or quadrature part of 16QAM
		for (i=0; i<2; i++) {
			// each bit
			mindis[0] = MAX;
			mindis[1] = MAX;
			for (j=0; j<2; j++) {
				// 0 or 1
				for (k=0; k<2; k++) {
					// find the minimum distance
					temp = pow((symbol-const16QAM[i][j][k]), 2);
					if (temp < mindis[j])
						mindis[j] = temp;
				}
			}
			*(llr+start+i) = mindis[1]-mindis[0];
		}
	} else if (length == 3) {
		// Demap the inphase or quadrature part of 64QAM
		for (i=0; i<3; i++) {
			// each bit
			mindis[0] = MAX;
			mindis[1] = MAX;
			for (j=0; j<2; j++) {
				// 0 or 1
				for (k=0; k<4; k++) {
					// find the minimum distance
					temp = pow((symbol-const64QAM[i][j][k]), 2);
					if (temp < mindis[j])
						mindis[j] = temp;
				}
			}
			*(llr+start+i) = mindis[1]-mindis[0];
		}
	} else {
		// Unsupported modulation types
		return 1;
	}
	return 0;
}

//int ResumeBitsF(struct BasicParaS * ctrl, double * input, double * output)
//{
//	//Declaration
//	int diff_sys = (ctrl->numInBits-ctrl->codeK);
//	int diff_par = ctrl->numChk - ctrl->codeM;
//	int i, j, k, m;
//
//	//Resume the system bits
//	if (ctrl->typeDecode == 0)	//SPA
//	{
//		for (i=0; i<diff_sys; i++)
//		{
//			* (output+i) = 0;	// the punctured systematic bits were all zeros
//		}
//		for (i=0; i<ctrl->codeK; i++)
//		{
//			*(output+i+diff_sys) = *(input+i);
//		}
//	}
//	else		// LSPA and SMA
//	{
//		for (i=0; i<diff_sys; i++)
//		{
//			* (output+i) = 10000.0;	// the punctured systematic bits were all zeros
//		}
//		for (i=0; i<ctrl->codeK; i++)
//		{
//			*(output+i+diff_sys) = *(input+i);
//		}
//	}
//	
//	//Resume the parity bits
//	if (ctrl->codeM>=ctrl->codeK)	// r<=1/2
//	{
//		for (i=0; i<ctrl->codeM; i++)
//		{
//			*(output+ctrl->numInBits+i) = *(input+ctrl->codeK+i);
//		}
//		if (ctrl->typeDecode==0)	//SPA
//		{
//			for (i=0; i<diff_par; i++)
//			{
//				*(output+ctrl->numInBits+ctrl->codeM+i)= 0.5;
//			}
//		}
//		else		// LSPA and SMA
//		{
//			for (i=0; i<diff_par; i++)
//			{
//				*(output+ctrl->numInBits+ctrl->codeM+i) = 0;
//			}
//		}
//	}
//	else		//r>1/2
//	{
//			k = diff_par/ctrl->zfactor;
//			m = diff_par%ctrl->zfactor;
//			// set all the parity as -1
//			for (i=0; i<ctrl->numChk; i++) {
//				*(output+ctrl->numInBits+i) = -1;
//			}
//			// label the bits should be punctured
//			if (ctrl->typeDecode == 0) { // SPA
//				for (i=0; i<k; i++) {
//					for (j=0; j<ctrl->zfactor; j++) {
//						*(output+PuncPos2[i]*ctrl->zfactor+j) = 0.5;
//					}
//				}
//				for (i=0; i<m; i++) {
//					*(output+PuncPos2[k]*ctrl->zfactor+i) = 0.5;
//				}
//			} else { // LSPA and MSA
//				for (i=0; i<k; i++) {
//					for (j=0; j<ctrl->zfactor; j++) {
//						*(output+PuncPos2[i]*ctrl->zfactor+j) = 0;
//					}
//				}
//				for (i=0; i<m; i++) {
//					*(output+PuncPos2[k]*ctrl->zfactor+i) = 0;
//				}
//			}
//			// set the living parity bits
//			j = 0;
//			for (i=0; i<ctrl->numChk; i++) {
//				if ((*(output+ctrl->numInBits+i)) == -1) { // only the unlabeled bits would be covered
//					*(output+ctrl->numInBits+i) = *(input+ctrl->codeK+j);
//					j++;
//				}
//			}
//		}	
//
//	return 0;
//}
//
	///////////////////////////////////////////////////////////////////////////////
	//  random number functions

	// uniform random number generator
	//generate a random number between 0 and 1
	double random()
	{
		long z,k;
		static long s1=12345L;
		static long s2=12345473464L;

		k= s1 / 53668L;
		s1 = 40014L * (s1 -  k*53668L) - k*12211L;
		if (s1<0)
		  s1 = s1 + 2147483563L;
		k = s2 / 52774;
		s2 = 40692L * (s2 - k*52774L) - k*3791L;
		if (s2<0)
	      s2 = s2 + 2147483399L;
		z=s1 - s2;
		if (z<1)
		  z = z + 2147483562L;
		return (double) z / (double) 2147483563.0;
	}

	// generate a number between -1 and 1 
	double generate_random_source()
	{
	
		double sign;		// sign of the number 
		if(random()>=0.5) 
			sign=-1.0;
		else
		  sign=1.0;
	
		return sign*random();
	}

	// binary source generator 
	//generate a sequence of uniformely distributed bits

	short generate_binary_source()
	{
		if(random()<.5) return 0;
		else return 1;
	}


	// Noise generator
	//parameters : sigma2 = variance (global variable)
	//generate a gaussian distributed sequence with zero mean

	double AWGN(double sigma2)
	{
		static int iset=0;
		static double gset;
		double fac,r,v1,v2;

		/* perform Box Muller transformation */
	//	if (iset==0)
		{	
		  do
		  {
		    v1=2.0*random()-1.0;
		    v2=2.0*random()-1.0;
		    r=v1*v1+v2*v2;
		  }
	   	while (r>=1.0 || r == 0.0);
				fac=sqrt(-2.0*sigma2*log(r)/r);
			 gset = v1 * fac;
		 iset = 1;
		return (double)( v2*fac);
		}
	/*
		else
		{
		  iset = 0;
		  return (float)(gset);
		}
	*/
	}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
水野朝阳av一区二区三区| 欧美精品一区二区三区视频| 欧美日韩免费观看一区二区三区| 欧美日本在线播放| 久久―日本道色综合久久| 自拍视频在线观看一区二区| 亚洲高清不卡在线观看| 韩国三级在线一区| 一本一道久久a久久精品综合蜜臀| 欧美精品久久久久久久久老牛影院| 久久先锋影音av鲁色资源| 日韩美女视频一区二区| 麻豆精品在线视频| 99精品欧美一区二区三区综合在线| 欧美日韩亚州综合| 欧美激情在线一区二区| 天堂一区二区在线| 波波电影院一区二区三区| 日韩一区二区精品| √…a在线天堂一区| 久热成人在线视频| 91国产免费看| 国产欧美在线观看一区| 日精品一区二区| 91在线视频观看| 精品99久久久久久| 丝袜国产日韩另类美女| 97久久超碰国产精品电影| 精品毛片乱码1区2区3区| 亚洲精品成人a在线观看| 精品无人码麻豆乱码1区2区 | 欧美一级高清大全免费观看| 国产精品少妇自拍| 麻豆精品精品国产自在97香蕉| 91影视在线播放| 久久色.com| 日韩精品视频网站| 91无套直看片红桃| 久久久久久9999| 亚洲一区二区三区三| av高清久久久| 337p日本欧洲亚洲大胆色噜噜| 一区二区三区**美女毛片| 成人高清视频免费观看| 久久综合五月天婷婷伊人| 视频在线观看一区二区三区| 99re热这里只有精品免费视频| 久久久精品影视| 久久99精品久久久久婷婷| 欧美一区二区在线不卡| 亚洲综合免费观看高清完整版 | 亚洲国产精品传媒在线观看| 精品一区二区在线播放| 欧美福利视频导航| 五月激情综合网| 精品视频一区二区不卡| 亚洲国产精品久久人人爱蜜臀| 91色porny蝌蚪| 国产精品国产馆在线真实露脸| 国产精品99久久久久久久女警 | 欧美日韩午夜精品| 亚洲激情图片一区| 日本丶国产丶欧美色综合| 国产精品久久久久久久午夜片| 丁香六月综合激情| 欧美国产成人在线| 成人av在线一区二区三区| 国产精品三级av在线播放| 成人sese在线| 国产精品欧美精品| 97精品国产露脸对白| 日韩理论片中文av| 色中色一区二区| 亚洲自拍偷拍麻豆| 欧美精品在线观看播放| 日韩影院精彩在线| 精品国产一区二区三区不卡 | 国产午夜精品福利| 岛国精品在线观看| 亚洲视频一区二区在线观看| 99国产精品一区| 亚洲一区在线观看网站| 欧美人体做爰大胆视频| 日韩高清一区二区| 久久蜜臀精品av| 99视频有精品| 亚洲综合一区在线| 制服丝袜在线91| 美女免费视频一区二区| 国产亚洲精品久| 不卡大黄网站免费看| 亚洲精品视频观看| 91精品综合久久久久久| 国产乱码精品一区二区三区五月婷| 国产欧美日韩不卡免费| 色欧美日韩亚洲| 日本中文一区二区三区| 国产午夜精品一区二区三区嫩草 | 亚洲综合成人网| 337p亚洲精品色噜噜狠狠| 国产一区三区三区| 国产精品久久久久久妇女6080 | 从欧美一区二区三区| 中文字幕综合网| 欧美放荡的少妇| 国内精品久久久久影院薰衣草| 成人免费在线观看入口| 6080午夜不卡| 国产成人精品免费| 一区二区三区自拍| 日韩免费高清电影| 99久久精品情趣| 日韩国产精品大片| 欧美激情在线看| 欧美喷潮久久久xxxxx| 国产美女久久久久| 夜夜揉揉日日人人青青一国产精品| 日韩你懂的在线观看| 97精品超碰一区二区三区| 蜜臀久久99精品久久久画质超高清| 亚洲国产精品二十页| 7777精品伊人久久久大香线蕉的| 国产精品18久久久久久vr| 亚洲一区二区综合| 久久久久国产一区二区三区四区| 色老汉一区二区三区| 国产一区视频导航| 亚洲r级在线视频| 国产精品视频你懂的| 7777精品伊人久久久大香线蕉完整版 | 国产.欧美.日韩| 日产精品久久久久久久性色| 亚洲欧洲国产日本综合| 精品噜噜噜噜久久久久久久久试看| 91视频国产观看| 国产风韵犹存在线视精品| 午夜视频一区在线观看| 成人欧美一区二区三区在线播放| 日韩亚洲欧美高清| 欧美手机在线视频| 99riav久久精品riav| 国产福利一区二区三区| 奇米亚洲午夜久久精品| 伊人性伊人情综合网| 国产蜜臀av在线一区二区三区| 56国语精品自产拍在线观看| 色悠悠亚洲一区二区| 国产精品亚洲成人| 久久国产精品无码网站| 水蜜桃久久夜色精品一区的特点 | 欧美在线一区二区| 99久久99久久精品国产片果冻| 激情综合网激情| 日本欧美在线看| 亚洲成a人v欧美综合天堂下载| 中文字幕一区二区三区在线观看 | 国产成人午夜精品影院观看视频| 蜜桃精品在线观看| 天天综合天天做天天综合| 亚洲欧美国产毛片在线| 国产精品欧美精品| 欧美激情一区二区三区在线| 欧美精品一区二区三区蜜桃视频 | 国产一区日韩二区欧美三区| 奇米精品一区二区三区在线观看| 亚洲国产人成综合网站| 一区二区三区国产精品| 亚洲青青青在线视频| **性色生活片久久毛片| 中文字幕av资源一区| 国产欧美日韩另类一区| 国产亚洲精久久久久久| 久久久久国产精品厨房| 久久久综合网站| 久久精子c满五个校花| 视频一区欧美精品| 天堂资源在线中文精品| 亚洲大片一区二区三区| 香港成人在线视频| 婷婷夜色潮精品综合在线| 午夜伦欧美伦电影理论片| 午夜精品爽啪视频| 日日嗨av一区二区三区四区| 日韩在线观看一区二区| 裸体歌舞表演一区二区| 国产在线不卡视频| 国产成a人亚洲| av在线免费不卡| 日本韩国欧美在线| 欧美男同性恋视频网站| 91精品国产91久久久久久一区二区| 制服丝袜激情欧洲亚洲| 精品国产乱码久久久久久图片| 精品国产伦理网| 亚洲国产高清在线| 自拍偷拍国产精品| 亚洲123区在线观看| 麻豆精品一区二区av白丝在线| 国产精品主播直播| 99国产精品国产精品毛片|