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

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

?? demodulating.cpp

?? 這個是數據打孔重傳程序的源代碼
?? CPP
字號:
/**********************************************/
/* De-modulator
/* double * DemodulatingF (struct BasicParaS * ctrl, struct Complex * input, double Eb_No_dB)
/*      Written by: Ouyang Ziyue,
/*            Date: Dec 21st, 2007,
/*        Function: It de-modulates the input complex symbols, outputs the LLR of bits
/* Input parameter:
/*        The modulation type is included in the ctrl,
/*        The input includes all the input complex symbols with AWGN,
/*        The Eb_No_dB is used to define the SNR or Eb/No.
/* Output parameter:
/*        An DOUBLE set which consists all the LLR of bits is outputed
/* Note:
/*        ctrl should be built before this function is called,
/**********************************************/

#include "parameter_sets.h"

const double sqrt2 = 1.414213562373095;

double * DemodulatingF (struct BasicParaS * ctrl, struct Complex * input, double Eb_No_dB)
{
	//////////////////////////////////////////////////////////////////////////
	//Declaration
	double * output;
	double inv_sigma2;
	double currentI, currentQ;
	int i,j;
	double temp[6];
	
	//////////////////////////////////////////////////////////////////////////
	//Allocating
	i = ctrl->numModuOut*ctrl->bitsPerSym;
	output = new double[i];

	//////////////////////////////////////////////////////////////////////////
	// Set the parameter about the noise
	if (ctrl->noiseMode == 0)
	{
			if(ctrl->typeModu == 0){
			inv_sigma2 = 2*pow(10.0,(Eb_No_dB/10))/ctrl->r;
		}	else if(ctrl->typeModu == 1){
			inv_sigma2 = 2*pow(10.0,(Eb_No_dB/10))*2/ctrl->r;
		}	else if(ctrl->typeModu == 2){
			inv_sigma2 = 2*pow(10.0,(Eb_No_dB/10))*4/ctrl->r;
		}	else if(ctrl->typeModu == 3){
			inv_sigma2 = 2*pow(10.0,(Eb_No_dB/10))*6/ctrl->r;
		}
	}
	else
	{
			inv_sigma2 = 2*pow(10.0,(Eb_No_dB/10));
	}

	
	//////////////////////////////////////////////////////////////////////////
	//Soft Demodulating
	switch(ctrl->typeDecode)
	{
	case 0: // SPA
		switch (ctrl->typeModu) {
		case 0: // BPSK
			for (i=0; i<ctrl->numModuOut; i++) {
				currentI = (*(input+i)).real;
				currentQ = (*(input+i)).imag;
				// calculate the soft output
				*(output+i) = 1/(1+exp(2*inv_sigma2*currentI)); // the probability of 1
			}
			break;
		case 1: // QPSK
			for (i=0; i<ctrl->numModuOut; i++) {
				currentI = (*(input+i)).real;
				currentQ = (*(input+i)).imag;
				// calculate the soft output
				*(output+2*i) = 1/(1+exp(sqrt2*inv_sigma2*currentI));
				*(output+2*i+1) = 1/(1+exp(sqrt2*inv_sigma2*currentQ));
			}
			break;
		case 2: // 16QAM
			printf("SPA is not supported in 16QAM!\n");
			exit(EXIT_FAILURE);
			break;
		case 3: // 64QAM
			printf("SPA is not supported in 64QAM!\n");
			exit(EXIT_FAILURE);
			break;
		default: // unsupported modulation types
			exit(EXIT_FAILURE);
		}
		break;
	case 1: // LSPA
		switch (ctrl->typeModu) {
		case 0: // BPSK
			for (i=0; i<ctrl->numModuOut; i++) {
				currentI = (*(input+i)).real;
				currentQ = (*(input+i)).imag;
				// calculate the soft output
				*(output+i) = 2*currentI*inv_sigma2; // the logarithm of probability of 0/1
			}
			break;
		case 1: // QPSK
			for (i=0; i<ctrl->numModuOut; i++) {
				currentI = (*(input+i)).real;
				currentQ = (*(input+i)).imag;
				// calculate the soft output
				*(output+2*i) = sqrt2*currentI*inv_sigma2;
				*(output+2*i+1) = sqrt2*currentQ*inv_sigma2;
			}
			break;
		case 2: // 16QAM
			for (i=0; i<ctrl->numModuOut; i++) {
				currentI = (*(input+i)).real;
				currentQ = (*(input+i)).imag;
				if (MaxLogDeMap(0, 2, currentI, temp) != 0)
					exit(EXIT_FAILURE);
				if (MaxLogDeMap(2, 2, currentQ, temp) != 0)
					exit(EXIT_FAILURE);
				for (j=0; j<ctrl->bitsPerSym; j++) {
					*(output+ctrl->bitsPerSym*i+j) = *(temp+j);
				}
			}
			break;
		case 3: // 64QAM
			for (i=0; i<ctrl->numModuOut; i++) {
				currentI = (*(input+i)).real;
				currentQ = (*(input+i)).imag;
				if (MaxLogDeMap(0, 3, currentI, temp) != 0)
					exit(EXIT_FAILURE);
				if (MaxLogDeMap(2, 3, currentQ, temp) != 0)
					exit(EXIT_FAILURE);
				for (j=0; j<ctrl->bitsPerSym; j++) {
					*(output+ctrl->bitsPerSym*i+j) = *(temp+j);
				}
			}
			break;
		default: // unsupported modulation types
			exit(EXIT_FAILURE);
		}
		break;
	case 2: // MSA
		switch (ctrl->typeModu) {
		case 0 : // BPSK
			for (i=0; i<ctrl->numModuOut; i++) {
				currentI = (*(input+i)).real;
				currentQ = (*(input+i)).imag;
				// calculate the soft output
				*(output+i) = 2*currentI*inv_sigma2;
			}
			break;
		case 1: // QPSK
			for (i=0; i<ctrl->numModuOut; i++) {
				currentI = (*(input+i)).real;
				currentQ = (*(input+i)).imag;
				// calculate the soft output
				*(output+2*i) = sqrt2*currentI*inv_sigma2;
				*(output+2*i+1) = sqrt2*currentQ*inv_sigma2;
			}
			break;
		case 2: // 16QAM
			for (i=0; i<ctrl->numModuOut; i++) {
				currentI = (*(input+i)).real;
				currentQ = (*(input+i)).imag;
				if (MaxLogDeMap(0, 2, currentI, temp) != 0)
					exit(EXIT_FAILURE);
				if (MaxLogDeMap(2, 2, currentQ, temp) != 0)
					exit(EXIT_FAILURE);
				for (j=0; j<ctrl->bitsPerSym; j++) {
					*(output+ctrl->bitsPerSym*i+j) = *(temp+j);
				}
			}
			break;
		case 3: // 64QAM
			for (i=0; i<ctrl->numModuOut; i++) {
				currentI = (*(input+i)).real;
				currentQ = (*(input+i)).imag;
				if (MaxLogDeMap(0, 3, currentI, temp) != 0)
					exit(EXIT_FAILURE);
				if (MaxLogDeMap(2, 3, currentQ, temp) != 0)
					exit(EXIT_FAILURE);
				for (j=0; j<ctrl->bitsPerSym; j++) {
					*(output+ctrl->bitsPerSym*i+j) = *(temp+j);
				}
			}
			break;
		default: // unsupported modulation types
			exit(EXIT_FAILURE);
		}
		break;
	default: // unsupported decoding algorithms
		exit(EXIT_FAILURE);		
	}


	//////////////////////////////////////////////////////////////////////////
	//DEBUG
#ifdef DEBUG
	printf("The output of soft demodulation is...\n");
	int h;
	h=0;
	for (i=0; i<ctrl->codeN; i++)
	{
		printf(" %2f", *(output+i));
		h++;
		if (h==8)
		{
			printf("\n");
			h=0;

		}
	}
#endif

	return output;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文子幕无线码一区tr| 最新不卡av在线| 亚洲国产精品一区二区www在线| 日韩精品免费视频人成| 欧美剧情片在线观看| 国产日韩视频一区二区三区| 免费的成人av| 欧美一级国产精品| 国产精品一区二区不卡| 久久婷婷综合激情| 日韩中文字幕区一区有砖一区 | 色综合久久久久综合体桃花网| 欧美成人精品二区三区99精品| 亚洲精品日韩一| 欧美日韩aaaaa| 美脚の诱脚舐め脚责91| 精品国产乱码久久久久久闺蜜| 美女视频免费一区| 国产欧美日韩综合| 欧美亚洲精品一区| 欧美aaa在线| 久久久久久久久99精品| 免费成人结看片| 国产精品人人做人人爽人人添 | 欧美日韩激情在线| 国产在线不卡一区| 一区二区三区精品久久久| 日韩欧美综合一区| 91丨九色丨尤物| 日韩精品三区四区| 久久久久久久网| 欧美人xxxx| 色综合天天狠狠| 国产一区不卡精品| 免费成人在线观看视频| 亚洲欧美激情视频在线观看一区二区三区| 欧美日韩三级一区二区| 成人app下载| 极品销魂美女一区二区三区| 亚洲精品v日韩精品| 国产欧美日韩精品一区| www国产精品av| 欧美大片在线观看一区| 风间由美一区二区三区在线观看 | 韩国v欧美v亚洲v日本v| 亚洲午夜一区二区三区| 日韩三级高清在线| 亚洲欧洲av一区二区三区久久| 欧美体内she精视频| 91偷拍与自偷拍精品| 国产成人亚洲精品青草天美| 亚洲一区二区三区爽爽爽爽爽 | 亚洲欧美一区二区久久| 国产精品久久久久一区二区三区| 精品国产3级a| 国产精品美女久久久久久| 国产精品日韩精品欧美在线| 国产无一区二区| 亚洲人成小说网站色在线 | 国产成人av影院| 99re亚洲国产精品| 911精品国产一区二区在线| 99久久免费精品| 91精品欧美综合在线观看最新| 精品对白一区国产伦| 欧美电视剧免费观看| 久久久久久久久久电影| 亚洲精品成人精品456| 久久 天天综合| 成人精品视频一区二区三区尤物| 欧美中文字幕不卡| 久久综合五月天婷婷伊人| 亚洲国产精品国自产拍av| 亚欧色一区w666天堂| 波多野结衣一区二区三区 | 亚洲成人免费视频| 国产99久久久国产精品| 99这里只有久久精品视频| 日韩视频在线观看一区二区| 中文字幕制服丝袜一区二区三区 | 欧美一区二区三区婷婷月色| 久久精品亚洲精品国产欧美kt∨| 久久99精品国产麻豆婷婷| 911精品国产一区二区在线| 亚洲成av人片在www色猫咪| 欧美美女直播网站| 日本不卡不码高清免费观看| 日韩欧美在线123| 国精产品一区一区三区mba桃花 | 色综合久久综合中文综合网| 国产精品久久久久久久久图文区 | 在线观看区一区二| 蜜臀精品久久久久久蜜臀| 欧美一区二区福利视频| 国产在线精品一区在线观看麻豆| 26uuu亚洲综合色欧美| aaa欧美大片| 青青草精品视频| 亚洲欧美在线视频| 欧美高清视频一二三区 | 久久99最新地址| 色综合久久99| 另类小说视频一区二区| 亚洲欧洲色图综合| 欧美剧情片在线观看| 国产盗摄视频一区二区三区| 亚洲精品写真福利| 久久久久国产精品人| 7777精品伊人久久久大香线蕉超级流畅 | 欧美精品一区二区三区蜜桃| 色婷婷国产精品| 大桥未久av一区二区三区中文| 婷婷国产v国产偷v亚洲高清| 亚洲天天做日日做天天谢日日欢 | 亚洲精品国产a| 国产精品视频yy9299一区| 精品国产sm最大网站| 麻豆国产一区二区| 欧美私模裸体表演在线观看| 日韩一区二区三区在线| 成人性生交大片免费| 亚洲国产精品久久久久婷婷884| 欧美一区二区视频观看视频| 首页亚洲欧美制服丝腿| 亚洲精品一区二区精华| 欧美日韩视频在线第一区| 九一久久久久久| 视频一区二区三区入口| 亚洲国产精品成人久久综合一区| 在线观看日韩一区| 成人18精品视频| 国产精品综合视频| 久久电影网电视剧免费观看| 亚洲第一成年网| 精品国产一区久久| 国产激情一区二区三区桃花岛亚洲| 中文字幕av一区 二区| 久久只精品国产| 欧美夫妻性生活| 69p69国产精品| 色94色欧美sute亚洲线路二| 精品中文av资源站在线观看| 午夜欧美2019年伦理| 樱花影视一区二区| 亚洲国产sm捆绑调教视频 | 成人av电影免费在线播放| 蜜臀91精品一区二区三区| ...xxx性欧美| 日韩高清在线观看| 国产精品国产三级国产专播品爱网| 久久久久99精品一区| 国产偷v国产偷v亚洲高清| 国产精品午夜在线观看| 久久影院午夜片一区| 国产精品福利一区二区三区| 国产精品免费网站在线观看| 亚洲制服丝袜一区| 久久草av在线| 偷拍日韩校园综合在线| 久久成人免费电影| 91一区二区三区在线播放| 欧美丝袜自拍制服另类| 欧美va在线播放| 一区二区三区波多野结衣在线观看| 日韩成人午夜精品| 波多野结衣在线一区| 欧美一级专区免费大片| 亚洲欧洲无码一区二区三区| 一级女性全黄久久生活片免费| 免费观看一级特黄欧美大片| 国产69精品久久99不卡| 一本大道久久a久久综合婷婷| 精品国产一区二区三区忘忧草| 成人免费小视频| 国产999精品久久久久久绿帽| 久久新电视剧免费观看| 国产欧美日韩卡一| 国产在线播放一区三区四| 精品一区二区三区日韩| 欧美日韩精品免费| 一区二区三区中文在线| 99re亚洲国产精品| 97aⅴ精品视频一二三区| 欧美国产精品v| 国产精品综合网| 亚洲国产精华液网站w | 一本色道a无线码一区v| 国产亚洲一区二区三区四区| 国产美女精品人人做人人爽| 国产精品69久久久久水密桃| 欧美精品一区男女天堂| 狠狠色丁香婷婷综合久久片| 日韩美女在线视频 | 亚洲一卡二卡三卡四卡| 久久www免费人成看片高清| 日韩美女主播在线视频一区二区三区| 亚洲一区二区三区爽爽爽爽爽| 日本电影欧美片| 日本亚洲一区二区| 久久综合九色综合欧美就去吻|