📄 blueghost2.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 + -