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

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

?? 3.cpp

?? 本程序用c++語言實現了wcdma系統當中的信道預測算法
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
                      //////////////////////

//#define CRTDBG_MAP_ALLOC

#include <stdlib.h>

//#include <crtdbg.h>
#include <afxtempl.h>
/////////////////////
#include "math.h"
#include "time.h"
#include "conio.h"
//#include "stdlib.h"
#include "afxtempl.h"////
//#include "stdafx.h"/////////

#include "include.h"
#include "fstream.h"
#include "extreal.h"
#include "boolean.h"
#include "newran.h"
#include "myexcept.h"

#define targetFER 0.14
#define downstep 0.01
#define downstep_small 0.01
#define Threshold1 -14
#define Threshold2 	-9
#define Threshold3 -6
#define Threshold4 -3
#define TTILENGTH 30000
#define SIMTTILENGTH  30000
#define fGeometrydB -3
#define EctoIorindB   0	//100%功率
#define InitTTI 10000		//初始化時間為6000幀
#define IntervalNum 20
#define MaxTranNum 1
#define ISPREDICT true //表示當前是否采用預測算法
#define mu     0.02
#define orders 50
#define prestep 2		//意義上等同于時延,延時以幀為單位

double receivedCtoI[4][50],FER[4][50];
double fastfading[SIMTTILENGTH];
double predictfading[SIMTTILENGTH];

int MCS;
double T[4][SIMTTILENGTH];

double xUniform(double down,double up)
{
  Uniform y;
  double rn,fact;
  fact=up-down;
  rn=y.Next()*fact-down;
  return rn;
}

void Initialization()
{
//讀取C/I和FER的值	
	CStdioFile f1;		//定義一個I/O文件對象

	double x;
	int i, j;
	char *q;

	/* 打開數據文件準備讀*/
	if( !f1.Open( "snr-per-3km.txt",
		CFile::modeRead ) )
	{
	#ifdef _DEBUG
		afxDump<<"Unable to open file"<<"\n";	//異常處理
	#endif
	}

	char buf[100];	//定義一個數據緩沖區,用于存放一行字符串
   
	for(i=0;i<4;i++)
		for( j=0; j<45; j++)
		{		
		   	f1.ReadString( buf, 100 );
		   	x = strtod( buf, &q );	//C/I 有待和地理因子的換算
		   	receivedCtoI[i][j] = (float)x;

		    strcpy( buf, q );
		   	x=strtod( buf, &q );	//FER
		   	FER[i][j] = (float)x;		
		}	
	f1.Close();
//讀取快衰值
	double temp[12];
	double *tempfading = new double[TTILENGTH];
	ifstream infile("3KM.txt");
	if(!infile)
	{
		cerr<<"unable"<<endl;
	}
	for(i=0;i<TTILENGTH;i++)
	{
		for(int k=0;k<12;k++)
		{
			temp[j]=0;
			infile>>temp[k];
			tempfading[i]+=temp[k];
		}
		tempfading[i]/=12;
//		//by cmy 鏈路級衰落要歸一化
//		tempfading[i]/=sqrt(2);
	}

	for (i=0;i<SIMTTILENGTH;i++)
	{
		int iIndex = i%TTILENGTH;
		fastfading[i] = tempfading[iIndex ];
	}

	delete [] tempfading;
}

double GetFER( double fCurMeanC2I, int iCurMCSMode)
{
	int i,j;

	double dC2I1,dC2I2;
	double dTempFER1,dTempFER2;

	for( i=0; i < 4; i++)
		if( i == iCurMCSMode-1)
		{
			for ( j=0; j < 45; j++)
			{
				dTempFER2=FER[i][j];
				dC2I2 = receivedCtoI[i][j];
				if( receivedCtoI[i][j] > fCurMeanC2I )
					break;
				dC2I1 = receivedCtoI[i][j];
				dTempFER1=FER[i][j];
			}
			if( j == 0 )
				dTempFER1 = dTempFER2;
		}
	
	double x, y, x1, y1, x2, y2;
	x = fCurMeanC2I;
	x1 = dC2I1;
	y1 = dTempFER1;
	x2 = dC2I2;
	y2 = dTempFER2;

	if (y1<1e-4)
		y1=-4;
	else
		y1=(float)log10(y1);

	if (y2<1e-4)
		y2=-4;
	else
		y2=(float)log10(y2);

	if( x1 == x2 )
		y = (y1 + y2) / 2;
	else
		y = ( (x2-x)*y1 + (x-x1)*y2 ) / (x2-x1);

	y = (float)pow(10,y);

	return y;
}

int AMC(int framenumber,double receivedCtoI,int Ack,int lastMCS,bool bIsAdjust)
{
	//by cmy 這里加入了最低速率的下門限
	int i;
	int presenti=0;
	double up,upstep_small;
	bool inrange;

// 	inrange = false;		//設置為FALSE表示當前不進行門限調整
 	inrange = (receivedCtoI >= T[0][framenumber-1]);  
	up=downstep*((1-targetFER)/targetFER);
	upstep_small = downstep_small*((1-targetFER)/targetFER);
			
	//先根據上一幀的對錯調整門限
	if(framenumber!=0 )
	{
		if(inrange && bIsAdjust )
		{
			if(Ack==1)
			{
				if(lastMCS==1)
				{
					//MCS取值為1、2、3、4,數組下標從0開始
					T[0][framenumber]=T[0][framenumber-1]-downstep;
					T[1][framenumber]=T[1][framenumber-1];
					T[2][framenumber]=T[2][framenumber-1];
					T[3][framenumber]=T[3][framenumber-1];
				}
				else if(lastMCS==2)
				{
					T[0][framenumber]=T[0][framenumber-1];
					T[1][framenumber]=T[1][framenumber-1]-downstep;
					T[2][framenumber]=T[2][framenumber-1];
					T[3][framenumber]=T[3][framenumber-1];
				}
				else if(lastMCS==3)
				{
					T[0][framenumber]=T[0][framenumber-1];
					T[1][framenumber]=T[1][framenumber-1];
					T[2][framenumber]=T[2][framenumber-1]-downstep;
					T[3][framenumber]=T[3][framenumber-1];
				}
				else if(lastMCS == 4)
				{
					T[0][framenumber]=T[0][framenumber-1];
					T[1][framenumber]=T[1][framenumber-1];
					T[2][framenumber]=T[2][framenumber-1];
					T[3][framenumber]=T[3][framenumber-1]-downstep_small;
				}
				else
				{
					T[0][framenumber]=T[0][framenumber-1];
					T[1][framenumber]=T[1][framenumber-1];
					T[2][framenumber]=T[2][framenumber-1];
					T[3][framenumber]=T[3][framenumber-1];
				}
			}
			else
			{
				if(lastMCS==1)
				{
					T[0][framenumber]=T[0][framenumber-1]+up;
					T[1][framenumber]=T[1][framenumber-1];
					T[2][framenumber]=T[2][framenumber-1];
					T[3][framenumber]=T[3][framenumber-1];
				}
				else if(lastMCS==2)
				{
					T[0][framenumber]=T[0][framenumber-1];
					T[1][framenumber]=T[1][framenumber-1]+up;
					T[2][framenumber]=T[2][framenumber-1];
					T[3][framenumber]=T[3][framenumber-1];
				}
				else if(lastMCS==3)
				{
					T[0][framenumber]=T[0][framenumber-1];
					T[1][framenumber]=T[1][framenumber-1];
					T[2][framenumber]=T[2][framenumber-1]+up;
					T[3][framenumber]=T[3][framenumber-1];
				}
				else if(lastMCS==4)
				{
					T[0][framenumber]=T[0][framenumber-1];
					T[1][framenumber]=T[1][framenumber-1];
					T[2][framenumber]=T[2][framenumber-1];
					T[3][framenumber]=T[3][framenumber-1]+upstep_small;
				}
				else
				{
					T[0][framenumber]=T[0][framenumber-1];
					T[1][framenumber]=T[1][framenumber-1];
					T[2][framenumber]=T[2][framenumber-1];
					T[3][framenumber]=T[3][framenumber-1];
				}

			}
		}
		else
		{
			T[0][framenumber]=T[0][framenumber-1];
			T[1][framenumber]=T[1][framenumber-1];
			T[2][framenumber]=T[2][framenumber-1];
			T[3][framenumber]=T[3][framenumber-1];

		}
	}

	for(i=3;i>=0;i--)
	{
		if(receivedCtoI>T[i][framenumber])
		{
			return i+1;
		}
	}

	return 0;	//在當前門限低于最低門限時,不進行傳輸

}

void predict(int order,int predictstep,double updatestep,double *input,int inputlength)
{
	double weight[orders];
	double *outputtemp,*inputtemp;
	double error,expect,predict;
	double a=0.00000001;
	double temp;
	outputtemp=new double [prestep];
	inputtemp=new double [orders];
	int i,j;

	for(i=0;i<order;i++)
	{
		weight[i]= (double)2*i/(order*(order-1));
	}

	//初始化數據
//	output_AR(1:order+fbdelay,1) = C2I_values(1:order+fbdelay,1);

//	for i = order + fbdelay+1: order+2*fbdelay+1 
//		input = C2I_values(i-order-fbdelay+1:i-fbdelay);
//		output(1,1) = weight*input;      
//		output_AR(i) = output(1,1);
    

	for(i=0;i<order+predictstep;i++)	//i表示時刻,也表示為預測數組的下標值
	{
		predictfading[i]=*(input+i);
	}

	for(i = order + predictstep;i<order+2*predictstep+1;i++)
	{
		for(j=0;j<order;j++)
			inputtemp[j] = *(input + i - order - predictstep + 1 + j); 

		temp = 0;
		for( j = 0;j<order;j++)
			temp += inputtemp[j]*weight[j];

		predictfading[i] = temp;
	}

//	for i = order+2*fbdelay+2:num      
//		input_old = C2I_values(i-2*fbdelay-order+1:i-2*fbdelay);
//		expect = C2I_values(i-fbdelay);
//		predict = output_AR(i-fbdelay,1);
//		error = expect - predict;
//		weight = weight + stepsize/(a + input_old'*input_old)*input_old'*error;
//
//		input = C2I_values(i-order-fbdelay+1:i-fbdelay);
//		output(1,1) = weight*input;      
//		output_AR(i ) = output(1,1);
   
	for(i= order + 2*predictstep+1;i<inputlength;i++)
	{
		//指定輸入和預測量
		for(j=0;j<order;j++)
			inputtemp[j] = *(input + i -2*predictstep -order+ 1 +j);

    	expect = *(input + i - predictstep );
		predict = predictfading[i-predictstep];
		error = expect - predict;
		
		//更新權重向量
		temp = 0;
		for(j=0;j<order;j++)
			temp += inputtemp[j]*inputtemp[j];

		for(j=0;j<order;j++)
		{
			weight[j] += updatestep/(a + temp)*inputtemp[j]*error;
		}

		
		//估計當前時刻的衰落值
 		for(j= 0; j<order; j++)
 			inputtemp[j] = *(input + i - order -predictstep +1 + j);

		temp = 0;	
		for(j=0;j<order;j++)
			temp += inputtemp[j]*weight[j];
		predictfading[i] = temp;
	}
	

	delete [] outputtemp;
	delete [] inputtemp;
}
	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区在线观看| 亚洲人成亚洲人成在线观看图片 | 亚洲日本护士毛茸茸| 亚洲一级二级三级在线免费观看| 麻豆成人久久精品二区三区红| 成人高清视频在线观看| 69成人精品免费视频| 国产精品热久久久久夜色精品三区| 午夜精品久久久久久久| 国产 日韩 欧美大片| 欧美精品一二三| 国产精品久久久久影院色老大 | 免费国产亚洲视频| av网站一区二区三区| 欧美一级在线观看| 亚洲激情第一区| 国产98色在线|日韩| 欧美肥胖老妇做爰| 一区二区三区欧美视频| 国产经典欧美精品| 日韩欧美一二三四区| 亚洲成人动漫一区| 91麻豆国产在线观看| 日本一区二区三区四区在线视频| 免费成人美女在线观看.| 色先锋资源久久综合| 中文一区二区在线观看| 极品美女销魂一区二区三区| 欧美日本国产视频| 亚洲一区二区三区中文字幕| 不卡的av在线| 亚洲国产经典视频| 国产成人在线视频网站| 久久免费美女视频| 精品亚洲aⅴ乱码一区二区三区| 这里只有精品视频在线观看| 亚洲一区二区三区免费视频| 欧洲av在线精品| 亚洲精品国产无套在线观| 99久久国产综合色|国产精品| 欧美激情综合在线| 丁香一区二区三区| 国产精品免费av| 成人黄色大片在线观看| 欧美国产禁国产网站cc| 国产成人av资源| 国产欧美日韩在线| 成人av网址在线| 亚洲视频一区二区免费在线观看| 99re这里都是精品| 亚洲精品国产成人久久av盗摄| 日本精品视频一区二区三区| 一区二区三区电影在线播| 一本久久a久久免费精品不卡| 亚洲黄色性网站| 欧美系列在线观看| 日本成人在线一区| 精品国精品国产| 国产风韵犹存在线视精品| 国产亚洲精品福利| 97久久精品人人澡人人爽| 亚洲一二三四区| 91麻豆精品国产自产在线观看一区 | 日韩精品欧美精品| 欧美成人精品福利| 99精品视频在线播放观看| 亚洲国产中文字幕| 欧美精品一区二区蜜臀亚洲| 国产精品亚洲人在线观看| 亚洲欧洲av一区二区三区久久| 在线一区二区三区四区| 日韩精品一区第一页| 国产亚洲欧美色| 色婷婷亚洲婷婷| 成人欧美一区二区三区| 91视频在线看| 美女一区二区视频| 亚洲精品在线免费观看视频| 国产一区二区三区免费看| 国产欧美一区二区精品仙草咪| 丁香婷婷综合激情五月色| 亚洲欧美偷拍卡通变态| 欧美三级资源在线| 亚洲成人av一区二区三区| 久久美女高清视频| 99re热这里只有精品视频| 亚洲一区二区三区在线| 精品国产一区二区三区四区四| 国产suv精品一区二区6| 一区二区三区在线观看欧美| 欧美夫妻性生活| 国产电影一区二区三区| 亚洲免费毛片网站| 久久久久亚洲综合| 91久久精品日日躁夜夜躁欧美| 蜜臀va亚洲va欧美va天堂| 国产欧美日韩精品一区| 在线观看91视频| 国产精品综合网| 亚洲一线二线三线视频| 2020国产精品久久精品美国| 99re热视频精品| 国产高清成人在线| 亚洲宅男天堂在线观看无病毒| 精品久久久久久最新网址| 97精品久久久久中文字幕| 蜜臀av一级做a爰片久久| 亚洲欧美日韩系列| 91精品国产黑色紧身裤美女| 在线视频欧美区| 国产成人午夜视频| 日韩精品视频网站| 亚洲欧美另类综合偷拍| 久久婷婷成人综合色| 色综合久久久网| 国产精品一区一区| 男人的j进女人的j一区| 亚洲免费电影在线| 国产日韩欧美不卡| 日韩欧美一区二区久久婷婷| 91官网在线观看| 国产成人av网站| 国产aⅴ综合色| 精品在线播放午夜| 日韩激情视频在线观看| 亚洲欧美日韩国产综合在线| 久久亚洲精品小早川怜子| 7777精品伊人久久久大香线蕉的| 色嗨嗨av一区二区三区| 国产91精品一区二区麻豆亚洲| 国产精品亚洲午夜一区二区三区 | 精品久久五月天| 91精品婷婷国产综合久久性色| 色综合久久久久久久久久久| 国产宾馆实践打屁股91| 国产一区免费电影| 91丨porny丨国产入口| 成人av网站在线| 91麻豆文化传媒在线观看| 不卡视频免费播放| 成人免费视频一区| 国产精品综合一区二区三区| 国产一区二区在线看| 国内精品不卡在线| 国产中文字幕一区| 五月天中文字幕一区二区| 亚洲免费在线电影| 一区二区三区在线视频免费观看| 亚洲免费在线看| 亚洲一区二区三区三| 天天影视网天天综合色在线播放| 亚洲v日本v欧美v久久精品| 香蕉加勒比综合久久| 日韩精品高清不卡| 国产一区二区成人久久免费影院| 国产成人午夜视频| 99在线精品免费| 欧美亚洲国产bt| 日韩欧美亚洲一区二区| 久久夜色精品一区| 国产精品麻豆网站| 亚洲视频一区在线| 夜夜精品视频一区二区| 视频一区二区中文字幕| 黑人精品欧美一区二区蜜桃 | 日韩欧美成人一区二区| 久久一区二区三区国产精品| 久久久久国产精品麻豆ai换脸| 一区二区三区中文在线观看| 亚洲午夜久久久久久久久电影院| 日韩成人一级片| 国产91清纯白嫩初高中在线观看| 91亚洲精品久久久蜜桃网站| 在线播放国产精品二区一二区四区| 日韩精品一区在线观看| 亚洲三级电影全部在线观看高清| 性久久久久久久| 国产成人一区二区精品非洲| 欧洲国内综合视频| 亚洲精品一区二区三区99| 一色桃子久久精品亚洲| 日韩一区精品字幕| 色婷婷亚洲婷婷| 精品88久久久久88久久久| 亚洲裸体在线观看| 激情综合色播五月| 在线视频亚洲一区| 久久久综合视频| 亚洲成人动漫精品| 在线免费精品视频| 国产欧美一区二区三区在线看蜜臀 | 国产日本一区二区| 午夜精品免费在线| 91在线视频在线| 久久久99精品免费观看| 日本一不卡视频| 色综合欧美在线| 欧美激情中文字幕| 国产在线精品一区在线观看麻豆| 欧美伊人久久大香线蕉综合69|