好好学习,天天向上,一流范文网欢迎您!
当前位置:首页 >> 最新范文 内容页

随机过程上机报告

随机过程上机报告 本文关键词:上机,随机,过程,报告

随机过程上机报告 本文简介:随机过程上机报告姓名:孙丹妮专业:电子信息工程学号:U201515363班级:电信中英1501班一.随机模拟的典型步骤:1、根据问题构建模拟系统2、仿真系统中各种分布的随机变量3、运行模拟系统,进行统计测量4、分析数据,输出结果二.主要工具基本工具:C、C++等编程模拟、matlab网络模拟:OPN

随机过程上机报告 本文内容:

随机过程上机报告

姓名:孙丹妮

专业:电子信息工程

学号:U201515363

班级:电信中英1501班

一.

随机模拟的典型步骤:

1、根据问题构建模拟系统

2、仿真系统中各种分布的随机变量

3、运行模拟系统,进行统计测量

4、分析数据,输出结果

二.主要工具

基本工具:C、C++等编程模拟、matlab

网络模拟:OPNET

Modeler、NS2:大型网络仿真

CASSAP:数字信号处理;SPW:电子系统

本次实验主要是使用了c++进行编程模拟

3.

实验原理

1,模块的功能描述

random.dsp

这个文件(项目文件)包含在项目水平和信息用于建立一个项目或子项目。

MyRand.cpp

自定义的程序,需要自己在相应的函数编写代码完成函数功能.

unsigned

int

CMyRand::MyRand(unsigned

int

seed)

采用线性同余法,根据输入的种子数产生一个伪随机数,如果种子不变,则可以重复调用该函数产生一个伪随机序列

double

CMyRand::AverageRandom

(double

min,double

max)

产生一个在min~max范围内精度为4位小数的平均分布的随机数

double

CMyRand::NormalRandom(double

miu,double

sigma,double

min,double

max)

产生均值为miu,方差为sigma的正态分布的随机数

double

CMyRand::ExpRandom(double

lambda,double

min,double

max)

产生参数为lambda的指数分布的随机数

unsigned

int

CMyRand::PoisonRandom

(double

lambda,double

min,double

max)

产生参数为lambda的产生泊松分布的随机数

double

CMyRand::Ex(void)

计算任意分布的随机过程的均值。本函数在randomDlg.cpp的OnSelf()函数中调用

double*

CMyRand::Rx(double

lambda,int

points)

计算泊松过程的自相关序列

random.h

这是主要为应用程序头文件。它包括其他项目(包括Resource.h)和声明了特定的header

CRandomApp应用程序类。

random.cpp

这是主应用程序源文件,其中包含应用程序类CRandomApp。

random.rc

这是一个清单的所有Microsoft

Windows的资源程序使用。它包括图标,位图,指针存储

在RES目录。这个文件可以直接编辑在微软Visual

c++。

random.clw

这个文件包含ClassWizard用来编辑现有的信息类或添加新类。ClassWizard也使用这个文件来存储,所需的信息来创建和编辑对话框消息映射和数据地图和创建原型成员函数。

res

/

random.ico

这是一个图标文件,用作应用程序的图标。这andom.rc图标由主要包括资源文件。

res

/

random.rc2

这个文件包含资源被微软无法编辑Visual

c++。你不应该把所有资源可编辑的资源编辑器在这个文件中。

AppWizard创建一个对话框类:

randomDlg。randomDlg

h。cpp

-对话框

这些文件包含CRandomDlg类。这个类定义您的应用程序的行为的主要对话框。对话框的

模板是随机的。

Scope.cpp和Scope.h

:画图程序,不能修改

StdAfx.h,StdAfx.cpp

这些文件是用来构建一个预编译头文件(PCH)随机命名。名叫StdAfx.obj

pch和预编译类型文件。

2,模块之间的关系

注:以函数名代函数

MyRand

MyRandInit

参数赋初值给

产生伪随机数给

AverageRandom

产生均匀分布随机变量给

NormalRandom

PoisonRandom

ExpRandom

计算泊松过程的自相关序列

计算正态分布的随机过程的均值

Rx

Ex

3,功能函数

void

CMyRand::MyRandInit(void)

函数功能:定义参数的初始量

unsigned

int

CMyRand::MyRand(unsigned

int

seed)

函数功能:采用线性同余法,根据输入的种子数产生一个伪随机数,如果种子不变,则可以重复调用该函数产生一个伪随机序列

参数:

seed作为调用函数的输入种子,同一个伪随机数序列可采用同一个seed

实现思路:利用CMyRand类中定义的全局变量:S,K,N,Y。其中K和N为算法参数,S用于保存种子数,Y为产生的随机数

start

注意事项:Y的初值的计算

N

S

!=

seed

Y

S

=

seed

Y

=

(seed

K)

%

N;

Y

=

(Y

K)

%

N;

Y

==

0

Y

end

Y

=

rand()

double

CMyRand::AverageRandom

(double

min,double

max)

函数功能:产生一个在min~max范围内精度为4位小数的平均分布的随机数

参数:min和max代表该均匀随机变量的取值范围,精确到小数点后4位。该参数在randomDlg.cpp中OnAverage

()和OnAverageStat()函数中已经设置

start

minInteger=(min*10000)

maxInteger=(max*10000)

diffInteger=maxInteger-minInteger

resultInteger=randInteger%diffInteger

+

minInteger;

AverageRandom=resultInteger/10000.0

end

double

CMyRand::NormalRandom(double

miu,double

sigma,double

min,double

max)

函数功能:产生均值为miu,方差为sigma的正态分布的随机数

参数:

miu为均值,

sigma为方差,

min和max

为均匀分布随机变量的取值范围。

所有参数在randomDlg.cpp的OnNormal()和OnNormalStat()函数中设置。

实现思路:利用中心极限定理,通过多个独立的均匀随机变量之和构成正态随机变量

START

dResult

=

0

i=0

i=

F

Y

END

p

=

lambda*p/(i+1)

F

+=

p

i

++

double

CMyRand::Ex(void)

函数功能:计算任意分布的随机过程的均值,加均值计算代码

本函数在randomDlg.cpp的OnSelf()函数中调用

START

m=0

Ex=0.0

Return

Ex/1000

N

m=

F)

{

p

=

lambda*p/(i+1);

F

+=

p;

i

++;

}

dResult

=

i;

return

dResult;

}

/*函数功能,计算任意分布的随机过程的均值*/

double

CMyRand::Ex(void)

{

int

m;

double

Ex=0.0;

//添加均值计算代码

for

(m=0;

m<1000;

m++)

{

Ex

+=

NormalRandom(0,1.2,0,1);

}

return

Ex/1000;

}

/*函数功能,计算随机过程的自相关序列/

double*

CMyRand::Rx(double

lambda,int

points)

{

int

m,I=5;

doubleRx

=

(double*)malloc((2*points+1)*sizeof(double));

//添加自相关序列产生代码

//产生的自相关序列存入Rx中,Rx可当作数组使用

//不要在本函数中释放该数组!

for

(m=-points;

m<=points;

m++)

{

Rx[(m+points)]

=

I

I

exp(-2

lambda

abs(m));

}

return

Rx;

}

四.执行截图

均匀分布

均匀统计

正态分布

正态统计

指数分布

指数统计

泊松分布

泊松统计

均值(此时取NormalRandom(0,1.2,0,1))

自相关(此时取int

m,I=5;)

六.实验心得

通过本次实验,不仅培养了我们的动手能力,重新复习了c语言的内容,提供了学科交叉学习的机会,而且通过本次实验使我对于在课堂上学习的随机过程的知识有了更深的理解,体会到在实际运用中理论运用的变化,体会的到理论提供了很精确的结果,而在实际运用中为了提高效率会提供一个不够精确但很方便的方法,这也许就是理论和实践的一个差别课程。,

TAG标签: