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

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

?? jakes.cpp

?? 本程序仿真了隨機變量的產生和多徑信道情況
?? CPP
字號:
/*
**********************************************************************************
	利用Jakes模型產生一個瑞利衰落信道

********************************************************************************
*/
/*
********************************************************************************
*			INCLUDE	FILES
********************************************************************************
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "channel.h"
#include "Jakes.h"

/*
*******************************************************************************
*			           constants and define declarations
*******************************************************************************
*/
#define PI 3.141592653589793
#define FADER_OSCI_NUM		15
#define PATH_COEF_VAR		1.0
#define MAX_MULTI_PATH_NUM	10
#define PATH_TIME_LINE_LEN	200

/*
*******************************************************************************
* 		                     local object definition
*******************************************************************************
*/
/* 存儲延時的同相分量 */
double			delay_i[PATH_TIME_LINE_LEN];
/* 存儲延時的正交分量 */
double			delay_q[PATH_TIME_LINE_LEN];
/* 延時數據的首地址 */
int				head = 0;
/* 多徑結構 */
MultiPathSt		multipath[MAX_MULTI_PATH_NUM];
/* 多徑個數 */
int				path_num = 1;
/* 隨機數種子 */
struct seed		path_seed = {1,1,1};

/*
********************************************************************************
	初始化一個Jakes模型
********************************************************************************
*/
void SetJake(JakeSt *p_jake, int osci_num, double sample_rate, double fmax, double sigma)
{
	int n;		
	double angle;//角度

	/* 初始化各個參數 */
	p_jake->osci_num = osci_num;
	p_jake->sample_rate = sample_rate;
	p_jake->fmax = fmax;
	p_jake->sigma = sigma;
	p_jake->time = 0;
	p_jake->time_step = 1.0 / sample_rate;


	/* 計算各個頻率 */
	for (n=0; n<osci_num; n++)
	{
		angle = (2*PI*n - PI + (2*random_u(&path_seed) - 1)*PI) / (4 * osci_num );
		p_jake->wd[n] = 2 * PI * fmax * cos(angle);
	}
	
	/* 隨機生成初始相位 */
	for (n=0; n<osci_num; n++)
	{
		p_jake->init_i_phase[n] = 2 * PI * random_u(&path_seed);
		p_jake->init_q_phase[n] = 2 * PI * random_u(&path_seed);
	}

}

/*
********************************************************************************
	測試一個Jakes模型
********************************************************************************
*/
void RunJake(JakeSt *p_jake, double *inph, double *quad)
{
	int n;
	double factor;
	
	/* 采樣由Jakes模型生成的衰落信號 */
	(*inph) = 0;
	(*quad) = 0;
	for (n=0; n<p_jake->osci_num; n++)
	{
		(*inph) += cos(p_jake->wd[n] * p_jake->time + p_jake->init_i_phase[n]);
		(*quad) += sin(p_jake->wd[n] * p_jake->time + p_jake->init_q_phase[n]);
	}
	factor = sqrt(2.0 / p_jake->osci_num);
	(*inph) *= factor;
	(*quad) *= factor;

	/* 累加時間到下一步 */
	p_jake->time += p_jake->time_step;
}

/*
********************************************************************************
初始化一個多徑衰落信道

********************************************************************************
*/
void SetMultiPath()
{
	double	fc;							/* 載波頻率 */
	double	velocity;					/* 移動速度 */
	double	sample_rate;				/* 采樣率 */
	double  gain[MAX_MULTI_PATH_NUM];	/* 各徑增益 */
	double  delay[MAX_MULTI_PATH_NUM];	/* 各徑延時 */
	double	fmax;						/* 多普勒最大頻偏 */
	double	time_step;					/* 采樣時間間隔 */
	double	power;						/* 多徑功率和 */
	double	delay_sum;					/* 總延時 */
	int		l;

	head = 0;

	/*從配置文件中讀取參數*/
	read_config(&fc, &velocity, &sample_rate, &path_num, gain, delay);

	/* 計算采樣間隔 */
	time_step = 1.0e6 / sample_rate;

	/* 計算每徑的增益和延遲 */
	delay_sum = 0;
	power = 0;
	for (l=0; l<path_num; l++)
	{
		delay_sum += delay[l];				

		/* 設置延遲位置 */
		multipath[l].pos = (int)(delay_sum/time_step + 0.5);

		/* 設置增益 */
		multipath[l].gain = sqrt( pow(10, gain[l]/10.0) );
		power += multipath[l].gain * multipath[l].gain;
	}

	/* 增益歸一化 */
	for (l=0; l<path_num; l++)
	{
		multipath[l].gain = multipath[l].gain * sqrt(0.5 * PATH_COEF_VAR) / sqrt(power);
	}

	/* 計算多普勒最大頻偏 */
	fmax = velocity * fc / 1.08e9;

	/* 對各個單徑用Jakes建立模型 */
	for (l=0; l<path_num; l++)
	{
		SetJake(&multipath[l].jake, FADER_OSCI_NUM, sample_rate, fmax, PATH_COEF_VAR);
	}


}

/*
********************************************************************************
	測試一個多徑衰落信道
********************************************************************************
*/
void RunMultiPath(double inph_in, double quad_in, double *inph_out, double *quad_out)
{
	int		l;
	int		delay_pos;
	double	path_coef_i;
	double	path_coef_q;
	
	/* 存儲延遲數據 */
	head = (head - 1 + PATH_TIME_LINE_LEN) % PATH_TIME_LINE_LEN;
	delay_i[head] = inph_in;
	delay_q[head] = quad_in;
	
	/* 產生輸出 */
	(*inph_out) = 0;
	(*quad_out) = 0;
	for (l=0; l<path_num; l++)
	{
		/* 對每一徑進行計算 */
		RunJake(&multipath[l].jake, &path_coef_i, &path_coef_q);
		path_coef_i *= multipath[l].gain;
		path_coef_q *= multipath[l].gain;
		
		/* calculate the delay position */
		delay_pos = multipath[l].pos;
		delay_pos = (delay_pos + head) % PATH_TIME_LINE_LEN;
		
		/* complex multiplication and accumulation */
		(*inph_out) += path_coef_i * delay_i[delay_pos] - path_coef_q * delay_q[delay_pos];
		(*quad_out) += path_coef_i * delay_q[delay_pos] + path_coef_q * delay_i[delay_pos];
	}
}

/*
********************************************************************************
	讀取多徑信道配置
********************************************************************************
*/

void read_config (double *fc, double *velocity, double *sample_rate, int *path_num,
				  double *gain, double *delay)
{
    FILE *fp_config = NULL;
	char config_note[200] = {0};

	int		i = 0;

    //打開配置文件
    if (NULL==(fp_config=fopen("config.dat","r")))
	{
		printf ("can't open config.dat\n");
		exit (0);
	}
	//讀取載波頻率
	fgets (config_note, 200, fp_config);
	fscanf (fp_config, "%lf", fc);
	fgets (config_note, 200, fp_config);

	//讀取移動速度
	fgets (config_note, 200, fp_config);
	fscanf (fp_config, "%lf", velocity);
	fgets (config_note, 200, fp_config);

	//讀取采樣率)
	fgets (config_note, 200, fp_config);
	fscanf (fp_config, "%lf", sample_rate);
	fgets (config_note, 200, fp_config);

	//多徑個數
	fgets (config_note, 200, fp_config);
	fscanf (fp_config, "%d", path_num);
	fgets (config_note, 200, fp_config);

	//讀取每徑的增益和延時
	for (i=0; i<*path_num; i++)
	{
		//讀取增益
		fgets (config_note, 200, fp_config);
		fscanf (fp_config, "%lf", &gain[i]);
		fgets (config_note, 200, fp_config);
		//讀取延時
		fgets (config_note, 200, fp_config);
		fscanf (fp_config, "%lf", &delay[i]);
		fgets (config_note, 200, fp_config);

		if (i == *path_num-1)
		{
			break;
		}
	}

	fclose (fp_config);

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美aaaaa成人免费观看视频| 欧美一区二区三区在线观看| 精品国产乱码久久久久久浪潮| 麻豆久久一区二区| 精品av久久707| 国产一区二区伦理片| 亚洲国产电影在线观看| 99在线精品一区二区三区| 夜夜嗨av一区二区三区四季av| 在线观看成人小视频| 三级在线观看一区二区| 亚洲精品在线三区| 成人免费看黄yyy456| 亚洲激情第一区| 日韩欧美在线综合网| 高清在线成人网| 亚洲国产日韩精品| 久久先锋影音av| 色综合久久中文综合久久牛| 日韩和的一区二区| 久久精品人人爽人人爽| 色噜噜偷拍精品综合在线| 免费在线观看一区二区三区| 国产欧美日韩在线| 在线视频你懂得一区二区三区| 蜜芽一区二区三区| 亚洲人吸女人奶水| 日韩美女一区二区三区| 91在线视频播放地址| 奇米色777欧美一区二区| 国产精品二区一区二区aⅴ污介绍| 在线观看日韩高清av| 国产综合色视频| 亚洲成人在线免费| 国产欧美中文在线| 欧美一区二区三区视频在线观看| av一区二区三区黑人| 美女网站视频久久| 亚洲一区二区三区在线| 国产午夜三级一区二区三| 欧美日韩的一区二区| 波多野结衣中文一区| 久久爱www久久做| 性感美女极品91精品| 中文字幕佐山爱一区二区免费| 日韩一区二区免费在线观看| 91久久香蕉国产日韩欧美9色| 国产在线精品免费av| 亚洲成国产人片在线观看| 自拍av一区二区三区| 欧美国产日韩精品免费观看| 欧美va在线播放| 欧美日韩国产bt| 欧美中文字幕一二三区视频| 懂色av一区二区三区蜜臀| 看电影不卡的网站| 日韩电影免费在线看| 亚洲男人天堂av| 亚洲欧洲成人精品av97| 亚洲国产精品二十页| 国产亚洲一本大道中文在线| 精品国产制服丝袜高跟| 日韩精品一区二区三区在线观看| 精品视频免费看| 欧美午夜精品久久久久久超碰| 91亚洲永久精品| 91小宝寻花一区二区三区| 岛国精品在线观看| 高清成人在线观看| 成人久久18免费网站麻豆 | 一本大道久久精品懂色aⅴ| 国产99一区视频免费| 国产一区久久久| 激情欧美一区二区三区在线观看| 久久国产综合精品| 看国产成人h片视频| 国产综合色视频| 国产精品亚洲成人| 国产69精品久久777的优势| 国产白丝精品91爽爽久久| 成人app软件下载大全免费| 成av人片一区二区| 日本高清成人免费播放| 欧美午夜影院一区| 欧美一区二区三区在线电影| 亚洲精品一线二线三线| 久久久午夜精品| 国产精品久久久久久久第一福利| 国产精品久久久久久久久搜平片| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 午夜国产不卡在线观看视频| 性感美女久久精品| 久88久久88久久久| 丰满白嫩尤物一区二区| 色综合久久久久综合| 精品视频1区2区| 欧美精品一区二区在线观看| 亚洲国产精品av| 一区二区三区在线视频观看| 日韩高清电影一区| 国产精一品亚洲二区在线视频| 成人激情免费电影网址| 欧美在线观看禁18| 精品国产1区2区3区| 国产精品久久三区| 三级精品在线观看| 成人免费视频一区二区| 欧美亚洲综合网| 欧美精品一区二区蜜臀亚洲| 日本一区二区三区dvd视频在线| 日韩毛片高清在线播放| 日本一不卡视频| jlzzjlzz欧美大全| 欧美一区二区三区不卡| 国产精品国产三级国产普通话蜜臀| 亚洲成人激情综合网| 国产精品一区二区久久精品爱涩 | 亚洲欧美偷拍卡通变态| 蜜桃视频在线一区| 色欧美片视频在线观看在线视频| 日韩欧美一区中文| 亚洲女子a中天字幕| 国产在线播放一区| 欧美久久婷婷综合色| 国产精品久久久久久久久久免费看| 日韩av电影免费观看高清完整版 | 亚洲免费视频中文字幕| 国内精品视频一区二区三区八戒| 色哟哟一区二区| 久久精品人人爽人人爽| 视频一区二区国产| 一本色道a无线码一区v| 久久网站热最新地址| 日韩av一区二区三区四区| 色国产精品一区在线观看| 国产精品视频免费看| 久久精品99国产精品| 欧美日韩亚洲综合一区二区三区| 欧美国产禁国产网站cc| 久久99精品网久久| 日韩一区二区三区视频在线| 亚洲高清三级视频| 99视频热这里只有精品免费| 久久精品视频在线看| 老司机精品视频在线| 欧美电影在线免费观看| 亚洲五码中文字幕| 91国内精品野花午夜精品| 欧美国产精品专区| 国产一区二区三区免费看| 91精品国产色综合久久不卡蜜臀| 亚洲人成网站在线| 一本大道av伊人久久综合| 国产精品美日韩| 国产+成+人+亚洲欧洲自线| 国产亚洲欧美日韩在线一区| 久久99这里只有精品| 日韩欧美资源站| 麻豆久久一区二区| 精品人在线二区三区| 久久se精品一区精品二区| 欧美成人艳星乳罩| 精品在线观看免费| 久久奇米777| 国产剧情一区在线| 欧美激情一区三区| 成人午夜视频网站| 亚洲欧洲日产国码二区| 99视频热这里只有精品免费| 亚洲视频一区二区免费在线观看| 一本色道亚洲精品aⅴ| 一级精品视频在线观看宜春院| 欧美在线播放高清精品| 日韩精品亚洲一区二区三区免费| 91精品久久久久久久91蜜桃| 久久国产夜色精品鲁鲁99| 精品国产青草久久久久福利| 国产精品综合网| 国产精品久久久久久福利一牛影视 | 精品一区二区在线播放| 26uuu国产电影一区二区| 成人一道本在线| 亚洲精品视频免费观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 亚洲一区精品在线| 日韩欧美自拍偷拍| 国产99久久精品| 又紧又大又爽精品一区二区| 欧美日韩一区精品| 免费成人美女在线观看.| 久久久无码精品亚洲日韩按摩| 成人av网址在线| 亚洲成人av一区| 久久久久久久久久电影| 色综合久久久久综合| 日韩影院精彩在线| 中文字幕第一区| 欧美日韩午夜在线| 精品亚洲porn| 亚洲色图一区二区三区|