随机信号实验报告_第1页
随机信号实验报告_第2页
随机信号实验报告_第3页
随机信号实验报告_第4页
随机信号实验报告_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、随机过程实验报告通信1206班 U201213696 马建强一、实验内容1、了解随机模拟的基本方法,掌握随机数的概念及其产生方法;2、掌握伪随机数的产生算法以及伪随机数发生器的特点;3、掌握一般随机数的产生方法;4、掌握平稳随机过程的数字特征的求解方法。二、实验步骤1、利用线性同余法产生在(min,max)上精度为4位小数的平均分布的随机数;2、编程实现在min 到max 范围内产生服从正态分布的随机数;3、编程产生服从指数分布的随机数;4、编程产生服从泊松分布的随机数;5、计算任意给定分布的随机过程的均值;6、计算泊松过程的自相关序列。三、实验代码与结果1、均匀分布/*函数功能,采用线性同余

2、法,根据输入的种子数产生一个伪随机数.如果种子不变,则将可以重复调用产生一个伪随机序列。利用CMyRand类中定义的全局变量:S, K, N, Y。其中K和N为算法参数,S用于保存种子数,Y为产生的随机数*/unsigned int CMyRand:MyRand(unsigned int seed)/添加伪随机数产生代码if(S != seed)S = seed;Y = (seed * K) % N;elseY = (Y * K) % N;if(Y = 0)Y = rand();return Y;/*函数功能,产生一个在minmax范围内精度为4位小数的平均分布的随机数*/double CMy

3、Rand:AverageRandom(double min,double max)int minInteger = (int)(min*10000);int maxInteger = (int)(max*10000);int randInteger = MyRand(seed);int diffInteger = maxInteger - minInteger;int resultInteger = randInteger % diffInteger + minInteger;return resultInteger/10000.0;图一、均匀分布图二、均匀统计2、正态分布/*函数功能,在mi

4、n 到max 范围内产生正态分布的随机数miu,最大概率密度处的随机变量,即产生的随机数中,概率最大的那个sigma*/double CMyRand:NormalRandom(double miu, double sigma, double min, double max)double dResult;dResult = 0;/添加正态分布随机变量产生代码for(int i=0;i<12;i+)dResult += AverageRandom(min,max);dResult = (dResult-6)/(max-min);dResult = dResult*sigma + miu;re

5、turn dResult;图三、正态分布图四、正态统计3、指数分布/*函数功能,产生指数分布的随机数*/double CMyRand:ExpRandom(double lambda, double min, double max)double dResult = 0.0;/添加指数分布随机变量产生代码while(dResult < 0.01)dResult = AverageRandom(min,max);dResult = -1.0*log(dResult) / lambda;return dResult;图五、指数分布图六、指数统计4、泊松分布/*函数功能,产生泊松分布的随机数*/u

6、nsigned int CMyRand:PoisonRandom(double lambda, double min, double max)unsigned int dResult = 0;/添加泊松分布随机变量产生代码double u = AverageRandom(min,max);int i = 0;double p = exp(-1*lambda);double F = p;while(u >= F)p = lambda*p/(i+1);F += p;i +;dResult = i;return dResult;图七、泊松分布图八、泊松统计5、均值/*函数功能,计算任意分布的随

7、机过程的均值*/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;/return Ex;图九、均值6、自相关序列/*函数功能,计算随机过程的自相关序列*/double* CMyRand:Rx(double lambda, int points)int m,I=5;double *Rx = (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); for (m=-points; m<=points; m+)Rx(m+points) = I * I * exp(-2 * lambda * abs(m);return Rx;图十、自相关序列四、实验小结1、通过本实验复习了C+的编程操作,锻炼了编程能力。将C+编程与实际随机信号分析结合起来,丰富了动手实践经验。2、对均匀分布有了更进一

温馨提示

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

评论

0/150

提交评论