随机过程上机报告

上传人:无*** 文档编号:132170997 上传时间:2022-08-08 格式:DOC 页数:22 大小:1.48MB
收藏 版权申诉 举报 下载
随机过程上机报告_第1页
第1页 / 共22页
随机过程上机报告_第2页
第2页 / 共22页
随机过程上机报告_第3页
第3页 / 共22页
资源描述:

《随机过程上机报告》由会员分享,可在线阅读,更多相关《随机过程上机报告(22页珍藏版)》请在装配图网上搜索。

1、随机过程上机报告 姓名:孙丹妮 专业:电子信息工程 学号:U201515363 班级:电信中英1501班 一. 随机模拟的典型步骤: 1、根据问题构建模拟系统 2、仿真系统中各种分布的随机变量3、运行模拟系统,进行统计测量 4、分析数据,输出结果二主要工具基本工具:C、C+等编程模拟、matlab网络模拟:OPNET Modeler、NS2:大型网络仿真CASSAP:数字信号处理;SPW:电子系统本次实验主要是使用了c+进行编程模拟三 实验原理1,模块的功能描述random.dsp这个文件(项目文件)包含在项目水平和信息用于建立一个项目或子项目。MyRand.cpp自定义的程序,需要自己在相应

2、的函数编写代码完成函数功能.unsigned int CMyRand:MyRand(unsigned int seed)采用线性同余法,根据输入的种子数产生一个伪随机数,如果种子不变,则可以重复调用该函数产生一个伪随机序列double CMyRand:AverageRandom (double min,double max)产生一个在minmax范围内精度为4位小数的平均分布的随机数double CMyRand:NormalRandom(double miu, double sigma, double min, double max)产生均值为miu,方差为sigma的正态分布的随机数doub

3、le 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)计算泊松过程的自相关序列

4、random.h这是主要为应用程序头文件。它包括其他项目(包括Resource.h)和声明了特定的headerCRandomApp应用程序类。random.cpp这是主应用程序源文件,其中包含应用程序类CRandomApp。random.rc这是一个清单的所有Microsoft Windows的资源程序使用。它包括图标,位图,指针存储在RES目录。这个文件可以直接编辑在微软Visual c+。random.clw这个文件包含ClassWizard用来编辑现有的信息类或添加新类。ClassWizard也使用这个文件来存储,所需的信息来创建和编辑对话框消息映射和数据地图和创建原型成员函数。res

5、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 p

6、ch和预编译类型文件。2,模块之间的关系注:以函数名代函数 MyRandMyRandInit参数赋初值给产生伪随机数给AverageRandom产生均匀分布随机变量给NormalRandomPoisonRandomExpRandom计算泊松过程的自相关序列计算正态分布的随机过程的均值Rx Ex3,功能函数void CMyRand:MyRandInit(void)函数功能:定义参数的初始量unsigned int CMyRand:MyRand(unsigned int seed)函数功能:采用线性同余法,根据输入的种子数产生一个伪随机数,如果种子不变,则可以重复调用该函数产生一个伪随机序列参数:

7、 seed作为调用函数的输入种子,同一个伪随机数序列可采用同一个seed实现思路:利用CMyRand类中定义的全局变量:S, K, N, Y。其中K和N为算法参数,S用于保存种子数,Y为产生的随机数 start注意事项:Y的初值的计算 NS != seed YS = seedY = (seed * K) % N; Y = (Y * K) % N;Y = 0Y endY = rand()double CMyRand:AverageRandom (double min,double max)函数功能:产生一个在minmax范围内精度为4位小数的平均分布的随机数参数:min和max代表该均匀随机变量

8、的取值范围,精确到小数点后4位。该参数在randomDlg.cpp中OnAverage ()和OnAverageStat()函数中已经设置startminInteger=(min*10000)maxInteger=(max*10000)diffInteger=maxInteger-minIntegerresultInteger=randInteger%diffInteger + minInteger;AverageRandom=resultInteger/10000.0enddouble CMyRand:NormalRandom(double miu, double sigma, double

9、 min, double max)函数功能:产生均值为miu,方差为sigma的正态分布的随机数参数: miu为均值, sigma为方差, min和max 为均匀分布随机变量的取值范围。 所有参数在randomDlg.cpp的OnNormal()和OnNormalStat()函数中设置。实现思路:利用中心极限定理,通过多个独立的均匀随机变量之和构成正态随机变量STARTdResult = 0 i=0i12ENDNYdResult+=AverageRandom(min,max)dResult = (dResult-6)/(max-min)dResult = dResult*sigma + miu

10、i+ENDdouble CMyRand:ExpRandom(double lambda, double min, double max)函数功能:产生参数为lambda的指数分布的随机数参数: lambda为指数分布的参数, min和max 为均匀分布随机变量的取值范围。所有参数在randomDlg.cpp的OnExp ()和OnExpStat ()函数中设置。实现思路:利用逆变换法STARTdResult= 0.0dResult= FYENDp = lambda*p/(i+1)F += pi +double CMyRand:Ex(void)函数功能:计算任意分布的随机过程的均值,加均值计算代

11、码本函数在randomDlg.cpp的OnSelf()函数中调用 STARTm=0 Ex=0.0Return Ex/1000Nm1000YENDEx += NormalRandom(0,1.2, 0,1)m+double* CMyRand:Rx(double lambda, int points)函数功能:计算泊松过程的自相关序列参数: lambda为泊松过程的参数, points为输入随机数序列的个数。所有参数在randomDlg.cpp的OnSelfStat () 函数中设置。返回:函数返回一个动态分配的数组头指针,产生的Rx序列保存于该数组中注意:不要在本函数中释放该数组的内存START

12、Lambda=0.25,Points=40m=-points,I=5return RxN*Rx=(double*)malloc(2*points+1)*sizeof(double)ENDm=points;YRx(m+points) =I*I*exp(-2 * lambda* abs(m)四编译代码/ MyRand.cpp: implementation of the CMyRand class./#include stdafx.h#include random.h#include MyRand.h#include math.h#ifdef _DEBUG#undef THIS_FILEstati

13、c char THIS_FILE=_FILE_;#define new DEBUG_NEW#endif/ Construction/Destruction/CMyRand:CMyRand()CMyRand:CMyRand()void CMyRand:MyRandInit(void)N = 0x7FFFFFFF; /231-1K = 16807; /75seed = 2;/*函数功能,采用线性同余法,根据输入的种子数产生一个伪随机数,如果种子不变, */unsigned int CMyRand:MyRand(unsigned int seed)if(S != seed)S = seed;Y =

14、(seed * K) % N;elseY = (Y * K) % N;if(Y = 0)Y = rand();return Y;/*函数功能,产生一个在minmax范围内精度为4位小数的平均分布的随机数*/double CMyRand:AverageRandom(double min,double max)int minInteger = (int)(min*10000);int maxInteger = (int)(max*10000);int randInteger = MyRand(seed);int diffInteger = maxInteger - minInteger;int r

15、esultInteger = randInteger % diffInteger + minInteger;return resultInteger/10000.0;/*函数功能,在min 到max 范围内产生正态分布的随机数miu,最大概率密度处的随机变量,即产生的随机数中,概率最大的那个sigma*/double CMyRand:NormalRandom(double miu, double sigma, double min, double max)double dResult;dResult = 0;for(int i=0;i12;i+)dResult += AverageRandom

16、(min,max);dResult = (dResult-6)/(max-min);dResult = dResult*sigma + miu;return dResult;/*函数功能,产生指数分布的随机数*/double CMyRand:ExpRandom(double lambda, double min, double max)double dResult = 0.0;while(dResult = F)p = lambda*p/(i+1);F += p;i +;dResult = i;return dResult;/*函数功能,计算任意分布的随机过程的均值*/double CMyRa

17、nd:Ex(void)int m;double Ex=0.0;/添加均值计算代码for (m=0; m1000; m+)Ex += NormalRandom(0,1.2, 0,1);return Ex/1000;/*函数功能,计算随机过程的自相关序列 */double* CMyRand:Rx(double lambda, int points)int m,I=5;double *Rx = (double*)malloc(2*points+1)*sizeof(double);/添加自相关序列产生代码/产生的自相关序列存入Rx中,Rx可当作数组使用/不要在本函数中释放该数组!for (m=-poi

18、nts; 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语言的内容,提供了学科交叉学习的机会,而且通过本次实验使我对于在课堂上学习的随机过程的知识有了更深的理解,体会到在实际运用中理论运用的变化,体会的到理论提供了很精确的结果,而在实际运用中为了提高效率会提供一个不够精确但很方便的方法,这也许就是理论和实践的一个差别课程。,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!