⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 blueghost2.cpp

📁 信道基本特性的仿真程序
💻 CPP
字号:
//   Fading Simulator for 实验D
//   Copyright by Adachi Lab., SAO Tomoki, KOBAYASHI Kazurari

/* 初始定義 */
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
#include <fstream.h>
#define PI 3.1415926535			 //PI=3.1415926535的定義

/* 随机函数 rand_ra() 的定義  */
/* rand_ra() : 返回从1到30000的随机数 */
int rand_ra()	
{
	int r,i=0;	//定义发生1~30000的随机数計算中如使用随机数,就调用这函数.
	while(i == 0)
	{
		r = rand() - 2767;
		if (r >= 0) break; 
	}
	return r;
}

/* 主程序 */
void main()
{
/*  变量的定義  */
	double fading,fading_I,fading_Q;
	double THETA[17],PHI[17];
	double ramda;
	long double PSI;
	int N,x_max,y_max,X,Y;
	double NORM;
	double rnd1,rnd2;

/* 随机数表的初始化 */
	srand((unsigned)time(NULL));
	ofstream outFile("output");
	if(!outFile)
	{
		cerr<<"Can't open file for output!";
	}
/* 仿真参数输入 */			
	printf("#x=\n");
	scanf("%d",&x_max);  
	printf("#y=\n");
	scanf("%d",&y_max);  

	/* 衰落初始条件的设定  */				
	ramda=0.375;	
	NORM=sqrt(1./16.);		//ramda:是载波的波長.
	//adding code
	rnd1=rand_ra();
	THETA[1]=(double)(rnd1/30000*2*PI/16);
	for(N=2;N<=16;N++)
	{
		THETA[N]=2*PI/16 +THETA[N-1];
	}
	for(N=1;N<=16;N++)
	{
		rnd2=(double)rand_ra()/30000;
		PHI[N]=(double)(2*PI*rnd2);
	}
	
	/* 衰落的生成 */				//程序流图(3)的部分
	for (X=0;X<x_max;X++)
	{								//循环<1> 从x=0(cm)以1cm的步长到x_max为止
		for (Y=0;Y<y_max;Y++)
		{							//	循环<2>从 y=0(cm)以1cm的步长到y_max
			fading_I=0;	fading_Q=0;

			//(这里是需要添加的程序部分.详细的请参照程序添加部分说明)
	
			for(N=1;N<=16;N++)
			{
				PSI=(Y/100.*cos(THETA[N])-X/100.*sin(THETA[N]))*2*PI/ramda;
				fading_I=cos(PSI+PHI[N])+fading_I;
				fading_Q=sin(PSI+PHI[N])+fading_Q;
			}
			/* 归一化*/
			fading_I=fading_I*NORM;		
			fading_Q=fading_Q*NORM;
			/* 衰落振幅的計算 */				//程序流图(4)的部分
			fading=sqrt(pow(fading_I,2)+pow(fading_Q,2));	
			//fading:衰落的振幅
			/* 衰落振幅输出 */
			printf("%d\t%d\t%f\n",X,Y,fading);
			outFile<<X<<"	"<<Y<<"		"<<fading<<endl;

		} 
		printf("\n");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -