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

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

?? dcs.cpp

?? 用VC模擬數(shù)字通信系統(tǒng)
?? CPP
字號(hào):
#include "DCS.H"
using namespace std;
#define pi 3.1415926

//Global variables
int		input_symbol[16];	
int		output_symbol[16];
int		character[28];
double	real_signal[14];
double	imagine_signal[14];
long	number_of_error;

int DCS_Code(double k,int times)
{
	number_of_error=0;
	for(int count=0;count<times;count++)
	{
		Input();
		Encoder();
		Modulate(k);
		Mod_Transfer();
		Demodulate();
		Decoder();
		Statistics();
	}
	return number_of_error;
}
int DCS_Uncode(double k,int times)
{
	number_of_error=0;
	for(int count=0;count<times;count++)
	{
		Input();
		Mod_16PSK(k);
		Mod_Transfer();
		De_16PSK();
		Statistics();
	}
	return number_of_error;
}
int DCS_QPSK(double k,int times)
{
	number_of_error=0;
	for(int count=0;count<times;count++)
	{
		Input();
		Encoder();
		Mod_QPSK(k);
		Mod_Transfer();
		De_QPSK();
		Decoder();
		Statistics();
	}
	return number_of_error;
}
void Mod_Transfer()
{
	for(int i=0;i<7;i++)
	{
		real_signal[i]=real_signal[i]+AWGN();
		imagine_signal[i]=imagine_signal[i]+AWGN();
	}
}

void Input()
{
	for(int i=0;i<16;i++)
		input_symbol[i]=rand()%2;
}

void Statistics()
{
	for(int i=0;i<16;i++)
	{
		if(input_symbol[i]!=output_symbol[i])
			number_of_error++;
	}
}

void Base_Transfer(double k)
{
	double output_buffer;
	for(int i=0;i<16;i++)
	{
		if(input_symbol[i]==0)
			output_buffer=-1;	
		else
			output_buffer=1;
		output_buffer=double(output_buffer)+AWGN()/k;
		if(output_buffer>0)
			output_symbol[i]=1;
		else
			output_symbol[i]=0;
	}
}
double AWGN()
{
	double ua,u1,u2,s,g;
	do{
	ua=double(rand()%1000)/1000;
	u1=1-2*ua;
	ua=double(rand()%1000)/1000;
	u2=1-2*ua;
	s=u1*u1+u2*u2;
	}while(s>=1);
	g=u1*sqrt(-0.5*log(s)/s);
	return g;
}
/*void Encoder()
{  int i;
	for(i=0;i<4;i++)
	   {
		character[7*i]=input_symbol[4*i];
		character[7*i+1]=input_symbol[4*i+1];
		character[7*i+2]=input_symbol[4*i+2];
		character[7*i+3]=input_symbol[4*i+3];
	    character[7*i+4]=input_symbol[4*i]^input_symbol[4*i+1]^input_symbol[4*i+2];
		character[7*i+5]=input_symbol[4*i+1]^input_symbol[4*i+2]^input_symbol[4*i+3];
		character[7*i+6]=input_symbol[4*i]^input_symbol[4*i+1]^input_symbol[4*i+3];
	   }

}*/
void Encoder()
{
	for(int i=0;i<4;i++)
	{
		character[7*i]=input_symbol[4*i];	//a6
		character[7*i+1]=input_symbol[4*i+1];		//a5
		character[7*i+2]=input_symbol[4*i+2];		//a4
		character[7*i+3]=input_symbol[4*i+3];		//a3
	    character[7*i+4]=input_symbol[4*i]^input_symbol[4*i+1]^input_symbol[4*i+2];		//a2
		character[7*i+5]=input_symbol[4*i]^input_symbol[4*i+1]^input_symbol[4*i+3];		//a1
		character[7*i+6]=input_symbol[4*i]^input_symbol[4*i+2]^input_symbol[4*i+3];		//a0
	}
}
void Modulate(double k)
{	int i;
	int a;
	for(i=0;i<7;i++)
	{
	  a=8*character[4*i]+4*character[4*i+1]+2*character[4*i+2]+character[4*i+3];
	  Get_ri(i,a,k);
	}
}

void Get_ri(int i,int a,double k)
{
	switch(a)
	{
	case 0:
		real_signal[i]=0.98078528040323;
		imagine_signal[i]=0.19509032201613;
		break;
	case 1:
		real_signal[i]=0.83146961230255;
		imagine_signal[i]=0.55557023301960;
		break;
	case 3:
		real_signal[i]=0.55557023301960;
		imagine_signal[i]=0.83146961230255;
		break;
	case 2:
		real_signal[i]=0.19509032201613;
		imagine_signal[i]=0.98078528040323;
		break;
	case 6:
		real_signal[i]=-0.19509032201613;
		imagine_signal[i]=0.98078528040323;
		break;
	case 7:
		real_signal[i]=-0.55557023301960;
		imagine_signal[i]=0.83146961230255;
		break;
	case 5:
		real_signal[i]=-0.83146961230255;
		imagine_signal[i]=0.55557023301960;
		break;
	case 4:
		real_signal[i]=-0.98078528040323;
		imagine_signal[i]=0.19509032201613;
		break;
	case 12:
		real_signal[i]=-0.98078528040323;
		imagine_signal[i]=-0.19509032201613;
		break;
	case 13:
		real_signal[i]=-0.83146961230255;
		imagine_signal[i]=-0.55557023301960;
		break;
	case 15:
		real_signal[i]=-0.55557023301960;
		imagine_signal[i]=-0.83146961230255 ;
		break;
	case 14:
		real_signal[i]=-0.19509032201613;
		imagine_signal[i]=-0.98078528040323;
		break;
	case 10:
		real_signal[i]=0.19509032201613;
		imagine_signal[i]= -0.98078528040323 ;
		break;
	case 11:
		real_signal[i]=0.55557023301960;
		imagine_signal[i]=-0.83146961230255;
		break;
	case 9:
		real_signal[i]=0.83146961230255;
		imagine_signal[i]=-0.55557023301960;
		break;
	case 8:
		real_signal[i]=0.98078528040323;
		imagine_signal[i]=-0.19509032201613;
		break;
	}
	real_signal[i]=k*real_signal[i];
	imagine_signal[i]=k*imagine_signal[i];
}

void Demodulate()
{	
	
	double b;
	int i;
	for(i=0;i<7;i++)
	{
		b=imagine_signal[i]/real_signal[i];
		double sita=atan(b);
		if(real_signal[i]<=0 && imagine_signal[i]>0)
			sita=sita+pi;
		else if(real_signal[i]<0 && imagine_signal[i]<=0)
			sita=pi+sita;
		else if(real_signal[i]>0 && imagine_signal[i]<=0)
			sita=2*pi+sita;
		int temp=int(sita*8/pi);
		temp=Dec2Geray(temp);
		character[4*i+3]=temp%2;
		character[4*i+2]=temp/2%2;
		character[4*i+1]=temp/4%2;
		character[4*i]=temp/8%2;
	}
}
int	Dec2Geray(int temp)
{
	switch(temp)
	{
	case 0:
		return 0;
		break;
	case 1:
		return 1;
		break;
	case 2:
		return 3;
		break;
	case 3:
		return 2;
		break;
	case 4:
		return 6;
		break;
	case 5:
		return 7;
		break;
	case 6:
		return 5;
		break;
	case 7:
		return 4;
		break;
	case 8:
		return 12;
		break;
	case 9:
		return 13;
		break;
	case 10:
		return 15;
		break;
	case 11:
		return 14;
		break;
	case 12:
		return 10;
		break;
	case 13:
		return 11;
		break;
	case 14:
		return 9;
		break;
	default:				//case 15
		return 8;
		break;
	}
}

void Mod_16PSK(double k)
{	int i;
	int a;
	for(i=0;i<4;i++)
	{
	  a=8*input_symbol[4*i]+4*input_symbol[4*i+1]+2*input_symbol[4*i+2]+input_symbol[4*i+3];
	  Get_ri(i,a,k);
	}
}

void De_16PSK()
{	
	
	double b;
	int i;
	for(i=0;i<4;i++)
	{
		b=imagine_signal[i]/real_signal[i];
		double sita=atan(b);
		if(real_signal[i]<=0 && imagine_signal[i]>0)
			sita=sita+pi;
		else if(real_signal[i]<0 && imagine_signal[i]<=0)
			sita=pi+sita;
		else if(real_signal[i]>0 && imagine_signal[i]<=0)
			sita=2*pi+sita;
		int temp=int(sita*8/pi);
		temp=Dec2Geray(temp);
		output_symbol[4*i+3]=temp%2;
		output_symbol[4*i+2]=temp/2%2;
		output_symbol[4*i+1]=temp/4%2;
		output_symbol[4*i]=temp/8%2;
	}
}

void Decoder()
{
	int s[3];
	for(int i=0;i<4;i++)
	{
		s[0]=character[7*i]^character[7*i+2]^character[7*i+3]^character[7*i+6];//s3
		s[1]=character[7*i]^character[7*i+1]^character[7*i+3]^character[7*i+5];//s2
		s[2]=character[7*i]^character[7*i+1]^character[7*i+2]^character[7*i+4];//s1
	    output_symbol[4*i]=character[7*i];
		output_symbol[4*i+1]=character[7*i+1];
		output_symbol[4*i+2]=character[7*i+2];
		output_symbol[4*i+3]=character[7*i+3];
		if(s[2]==0&&s[1]==1&&s[0]==1)
			output_symbol[4*i+3]=1-output_symbol[4*i+3];
		else
			if(s[2]==1&&s[1]==0&&s[0]==1)
			output_symbol[4*i+2]=1-output_symbol[4*i+2];
		else
			if(s[2]==1&&s[1]==1&&s[0]==0)
			output_symbol[4*i+1]=1-output_symbol[4*i+1];
		else
			if(s[2]==1&&s[1]==1&&s[0]==1)
			output_symbol[4*i]=1-output_symbol[4*i];
	}

}
/*
void Decoder()
{
	int s[3];
	for(int i=0;i<4;i++)
	{	s[2]=character[7*i]^character[7*i+1]^character[7*i+4];
		s[1]=character[7*i+1]^character[7*i+2]^character[7*i+3]^character[7*i+5];
		s[0]=character[7*i]^character[7*i+1]^character[7*i+3]^character[7*i+6];
		
	    if(s[2]==0&&s[1]==1&&s[0]==1)
	   {character[7*i+3]=character[7*i+3]^1;
	    output_symbol[4*i]=character[7*i];
		output_symbol[4*i+1]=character[7*i+1];
		output_symbol[4*i+2]=character[7*i+2];
		output_symbol[4*i+3]=character[7*i+3];}
	   else if(s[2]==1&&s[1]==0&&s[0]==1)
		{character[7*i+2]=character[7*i+2]^1;
	    output_symbol[4*i]=character[7*i];
		output_symbol[4*i+1]=character[7*i+1];
		output_symbol[4*i+2]=character[7*i+2];
		output_symbol[4*i+3]=character[7*i+3];}
	   else if(s[2]==1&&s[1]==1&&s[0]==0)
		{character[7*i+1]=character[7*i+1]^1;
	    output_symbol[4*i]=character[7*i];
		output_symbol[4*i+1]=character[7*i+1];
		output_symbol[4*i+2]=character[7*i+2];
		output_symbol[4*i+3]=character[7*i+3];}
		else if(s[2]==1&&s[1]==1&&s[0]==1)
		{character[7*i]=character[7*i]^1;
	    output_symbol[4*i]=character[7*i];
		output_symbol[4*i+1]=character[7*i+1];
		output_symbol[4*i+2]=character[7*i+2];
		output_symbol[4*i+3]=character[7*i+3];}
		else 
		{output_symbol[4*i]=character[7*i];
		output_symbol[4*i+1]=character[7*i+1];
		output_symbol[4*i+2]=character[7*i+2];
		output_symbol[4*i+3]=character[7*i+3];}
	}
}
*/
void Mod_QPSK(double k)
{
	for(int i=0;i<14;i++)
	{
	if (character[2*i]==0 && character[2*i+1]==0)
	{real_signal[i]=1*k;imagine_signal[i]=1*k;}
	else if(character[2*i]==0 && character[2*i+1]==1)
		{real_signal[i]=(-1)*k;imagine_signal[i]=1*k;}
	else if(character[2*i]==1 && character[2*i+1]==1)
		{real_signal[i]=(-1)*k;imagine_signal[i]=(-1)*k;}
	else {real_signal[i]=1*k;imagine_signal[i]=(-1)*k;}
	}
}
void De_QPSK()
{   
	for(int i=0;i<14;i++)
    {
    if (real_signal[i]>0&&imagine_signal[i]>=0)
	{character[2*i]=0;character[2*i+1]=0;}
	else if(real_signal[i]<=0&&imagine_signal[i]>0)
		{character[2*i]=0;character[2*i+1]=1;}
	else if(real_signal[i]<0&&imagine_signal[i]<=0)
		{character[2*i]=1;character[2*i+1]=1;}
	else {character[2*i]=1;character[2*i+1]=0;}
	}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久综合狠狠综合| 色94色欧美sute亚洲线路一ni| 国产精品色一区二区三区| 欧美日韩一区二区三区在线 | 一区二区三区四区蜜桃| 久久综合色播五月| 6080yy午夜一二三区久久| 99re热这里只有精品免费视频| 免费在线观看一区| 一区二区三区日韩精品视频| 欧美国产激情一区二区三区蜜月| 日韩一区二区高清| 欧美精品久久天天躁| 日本久久一区二区| 亚洲欧美日韩中文字幕一区二区三区| 久久一日本道色综合| 欧美日韩中文精品| 成人av资源站| 成人夜色视频网站在线观看| 韩国精品主播一区二区在线观看| 日韩精品五月天| 亚洲v精品v日韩v欧美v专区| 一区二区国产盗摄色噜噜| 亚洲日本在线视频观看| 中文字幕不卡在线| 中文子幕无线码一区tr| 欧美经典一区二区三区| 久久综合久久综合九色| 精品成人在线观看| 欧美精品一区二区三| 日韩欧美一区在线| 欧美一区二区在线不卡| 日韩视频在线观看一区二区| 欧美一级在线视频| 日韩欧美高清在线| 精品国产91洋老外米糕| 精品成人在线观看| 久久久99精品久久| 国产一区二区精品久久99| 在线免费观看日韩欧美| 99久久久精品| 99久久精品99国产精品| 91亚洲大成网污www| 色综合婷婷久久| 精品电影一区二区三区| 欧美不卡视频一区| 久久精品欧美一区二区三区麻豆| 久久久久久久网| 亚洲国产精品成人综合色在线婷婷| 亚洲国产精品ⅴa在线观看| 国产精品国产三级国产有无不卡| 国产精品传媒视频| 亚洲线精品一区二区三区| 天天综合天天综合色| 美女视频黄久久| 国模冰冰炮一区二区| 成人视屏免费看| 在线亚洲免费视频| 欧美一级黄色片| 国产亚洲欧美色| 亚洲精品自拍动漫在线| 日韩精品国产精品| 国产精品亚洲专一区二区三区| 波多野结衣中文字幕一区| 久久精品国产网站| 日韩**一区毛片| 美腿丝袜亚洲色图| 国产精品一区二区黑丝| 成人的网站免费观看| 欧美色男人天堂| 精品国产精品网麻豆系列| 中文字幕乱码久久午夜不卡 | 国产亚洲欧美色| 国产精品蜜臀在线观看| 亚洲一二三四久久| 久久99热99| 色综合久久九月婷婷色综合| 日韩欧美色综合网站| 最新国产精品久久精品| 日韩激情一区二区| 欧美色图12p| 久久综合色一综合色88| 亚洲国产精品激情在线观看| 亚洲综合无码一区二区| 国内精品第一页| 欧美亚州韩日在线看免费版国语版| 精品国产乱码久久久久久老虎| 国产精品天美传媒沈樵| 日韩国产精品91| 91在线观看下载| 精品999在线播放| 一区二区三区高清在线| 国产一区二区伦理| 欧美日韩精品免费观看视频| 欧美国产综合色视频| 蜜桃视频在线观看一区| 色视频一区二区| 中文字幕免费不卡在线| 久久精品国产亚洲一区二区三区| 色美美综合视频| 中文av一区二区| 精品一区二区三区日韩| 欧美日本乱大交xxxxx| 亚洲人精品午夜| 国产aⅴ综合色| 26uuu另类欧美| 免费欧美日韩国产三级电影| 欧美性色aⅴ视频一区日韩精品| 日本一区二区三区高清不卡| 精品一区中文字幕| 欧美一二三四在线| 日韩精品午夜视频| 欧美日韩国产综合久久| 夜夜嗨av一区二区三区| a美女胸又www黄视频久久| 国产日本一区二区| 精东粉嫩av免费一区二区三区| 91麻豆精品国产91| 五月婷婷色综合| 欧美日韩久久一区二区| 亚洲精品精品亚洲| 色老汉一区二区三区| 国产精品久99| 99久久综合精品| 中文字幕日韩欧美一区二区三区| 成人自拍视频在线| 亚洲资源在线观看| 色婷婷综合中文久久一本| 亚洲免费电影在线| 91老师片黄在线观看| 亚洲精品乱码久久久久久 | 日韩精品最新网址| 美女视频免费一区| 日韩精品一区二区三区视频 | 欧美激情综合五月色丁香| 国产精品18久久久久| 久久精品一区二区三区不卡| 国产精品一区二区男女羞羞无遮挡| 久久免费午夜影院| 春色校园综合激情亚洲| 中文字幕一区免费在线观看| 色婷婷激情综合| 亚洲国产综合91精品麻豆| 欧美精品精品一区| 蜜臀av性久久久久蜜臀av麻豆| 日韩精品中文字幕在线一区| 国产精品影视天天线| 国产精品拍天天在线| 91丨九色丨国产丨porny| 亚洲永久免费av| 欧美精品精品一区| 国产精品一区二区黑丝| 日韩理论电影院| 欧美人狂配大交3d怪物一区| 麻豆精品视频在线观看免费| 国产亚洲综合色| 色菇凉天天综合网| 轻轻草成人在线| 国产精品污网站| 欧美亚洲禁片免费| 久久激情五月婷婷| 日韩一区在线播放| 欧美卡1卡2卡| 国产成人鲁色资源国产91色综| 日韩理论电影院| 日韩一区二区在线播放| 成人91在线观看| 午夜精品福利在线| 国产亚洲婷婷免费| 欧美系列日韩一区| 国产在线播放一区二区三区| 五月开心婷婷久久| 国产精品麻豆网站| 欧洲精品一区二区三区在线观看| 视频在线观看91| 国产视频一区在线播放| 在线欧美小视频| 韩日av一区二区| 亚洲一区在线观看免费 | 宅男噜噜噜66一区二区66| 国产成人综合亚洲91猫咪| 亚洲综合无码一区二区| 国产午夜精品一区二区三区视频 | 91免费观看视频| 看电影不卡的网站| 亚洲精品国产第一综合99久久| 欧美xxxxxxxx| 欧美性生活影院| 成人国产精品免费网站| 蜜臀久久久久久久| 亚洲精品欧美在线| 国产情人综合久久777777| 欧美精品v日韩精品v韩国精品v| 成人av第一页| 久久国产日韩欧美精品| 亚洲成人精品一区二区| 国产精品久久久久久久久动漫| 一区二区三区在线视频免费观看| 欧美精品少妇一区二区三区| 成人综合在线观看|