电子科技大学通信与信息工程学院标准实验报告实验名称:随机数的产生及统计特性分析电子科技大学教务处制表2电子科技大学实验报告学生姓名:吴子文学号:2902111011指导教师:周宁实验室名称:通信系统实验室实验项目名称:随机数的产生及统计特性分析实验学时:6(课外)【实验目的】随机数的产生与测量:分别产生正态分布、均匀分布、二项分布和泊松分布或感兴趣分布的随机数,测量它们的均值、方差、相关函数,分析其直方图、概率密度函数及分布函数。通过本实验进一步理解随机信号的一、二阶矩特性及概率特性。编写MATLAB程序,产生服从N(m,sigma2)的正态分布随机数,完成以下工作:(1)、测量该序列的均值,方差,并与理论值进行比较,测量其误差大小,改变序列长度观察结果变化;(2)、分析其直方图、概率密度函数及分布函数;(3)、计算其相关函数,检验是否满足Rx(0)=mu^2+sigma2,观察均值mu为0和不为0时的图形变化;(4)、用变换法产生正态分布随机数,重新观察图形变化,与matlab函数产生的正态分布随机数的结果进行比较。【实验原理】1、产生服从N(m,sigma2)的正态分布随机数,在本实验中用matlab中的函数normrnd()产生服从正态分布的随机数。(1)R=normrnd(mu,sigma)产生服从均值为mu,标准差为sigma的随机数,mu和sigma可以为向量、矩阵、或多维数组。(2)R=normrnd(mu,sigma,v)产生服从均值为mu标准差为sigma的随机数,v是一个行向量。如果v是一个1×2的向量,则R为一个1行2列的矩阵。3如果v是1×n的,那么R是一个n维数组。(3)R=normrnd(mu,sigma,m,n)产生服从均值为mu标准差为sigma的随机数,标量m和n是R的行数和列数。2、测量该序列的均值、方差,并与理论值进行比较,测量其误差大小,改变序列长度观察结果变化。(1)用mean()函数测量序列的均值:M=mean(A)如果A是一个向量,则返回A的均值。如果A是一个矩阵,则把A的每一列看成一个矩阵,返回一个均值(每一列的均值)行矩阵。(2)用函数var()求序列的方差:V=var(X)返回X的每一列的方差,即返回一个行向量。3、分析其直方图、概率密度函数及分布函数。(1)用hist()函数画出M、V的直方图:n=hist(Y)将向量Y中的元素分成10个等长的区间,再返回每区间中元素个数,是个行向量;n=hist(Y,x)画以x元素为中心的柱状图;n=hist(Y,nbins)画以nbins为宽度的柱状图。(2)用normpdf()求正态分布概率密度函数值:Y=normpdf(X,mu,sigma)对每一个X中的值返回参数为mu,sigma的正态分布概率密度函数值。(3)normcdf()求正态分布概率密度函数值:Y=normpdf(X,mu,sigma)对每一个X中的值返回参数为mu,sigma的累计分布函数值。4、计算其相关函数,检验是否满足Rx(0)=mu^2+sigma^2,观察均值mu为0和不为0时的图形变化。(1)用xcorr()计算互相关。用[cor2lag2]=xcorr(x2,'unbiased')计算R的自相关。5、用变换法产生正态分布随机数,重新观察图形变化,与matlab函数产生的正态分布随机数的结果进行比较。在本实验中采用Box-Muller变换法:变换法是通过一个变换将一个分布的随机数变换成一个不同分布的随机数。高斯分布的密度函数22()21,2xfxe通过Box-Muller变换,它可以产生精确的正态分布的随机变量。其变换式如下:12lnsin(2)yuv(3-6)22lncos(2)yuv(3-7)式中u,v是在区间[0,1]上服从均匀分布,且相互独立的随机变量,所以得到的随机变量1y,2y也应该是相互独立的,且服从N~(0,1)的标准正态分布。【实验记录】41、产生随机数,并测量该序列的均值、方差,与理论值进行比较,测量其误差大小,改变序列长度观察结果变化。代码如下:mu=input('请输入均值=');sigma=input('请输入标准差=');m=input('输入产生的序列的长度=');%m为序列的长度n=input('输入产生的序列个数=');%n为序列的个数R=normrnd(mu,sigma,m,n);%产生服从均值为mu,标准差为sigma的随机数,序列个数为n,序列长度为m。figure;hist(R);title('正态分布');M=mean(R);%计算均值A=var(R);%计算方差%均值、方差与理论值的比较dm=M-mu;%均值的差值向量dA=A-sigma;%方差的差值向量figure;subplot(2,1,1);plot(dm);title('均值的差值');subplot(2,1,2);plot(dA);title('方差的差值');运行结果:当输入为:均值=0;标准差=1;序列的长度=40;序列个数=40。结果为5当改变序列的长度而其他值没有改变时:令均值=0;标准差=1;序列的长度=200;序列个数=40时。结果为6对照前后两次的结果可以看出,当序列的长度变大时,实验得到的数据与理论值相差变少。2、分析其直方图、概率密度函数及分布函数;代码如下:mu=input('请输入均值=');sigma=input('请输入标准差=');m=input('输入产生的序列的长度=');%m为序列的长度n=input('输入产生的序列个数=');%n为序列的个数R=normrnd(mu,sigma,m,n);%产生服从均值为mu,标准差为sigma的随机数,序列个数为n,序列长度为m。figure;subplot(2,2,1);hist(R);title('正态分布');M=mean(R);%计算均值subplot(2,2,2);hist(M);title('均值');A=var(R);%计算方差subplot(2,2,3);hist(A);title('方差');x=-5:0.1:5;y=normpdf(x,mu,sigma);%正态分布概率密度函数figure;7subplot(2,1,1);plot(x,y);title('均值为mu、标准差为sigma的正态随机变量的概率分布曲线');P=normcdf(x,mu,sigma);%正态分布的累计分布函数subplot(2,1,2);plot(x,P);title('均值为mu、标准差为sigma的正态随机变量的分布函数曲线');当输入为:均值=0;标准差=1;序列的长度=40;序列个数=40。结果为83、计算其相关函数,检验是否满足Rx(0)=mu^2+sigma^2,观察均值mu为0和不为0时的图形变化。代码如下:mu=input('请输入均值=');sigma=input('请输入标准差=');m=input('输入产生的序列的长度=');%m为序列的长度x2=normrnd(mu,sigma,1,m);[cor2lag2]=xcorr(x2,'unbiased');plot(lag2,cor2),title('(mu,sigma)正态分布的自相关函数');从上图中可以看出,R(0)=1=mu^2+sigma^2。5、用Box-Muller变换法产生正态分布随机数,重新观察图形变化,与matlab函数产生的正态分布随机数的结果进行比较。代码如下:n=input('请输入产生的均匀分布数的个数=');v=rand(n,n);u=rand(n,n);a=cos(2*pi*v);b=(-2*log(u)).^(1/2);y1=a*b;subplot(2,1,1);hist(y1);title('用变换法产生的直方图');mu=0;9sigma=1;R=normrnd(mu,sigma,n,n);subplot(2,1,2);hist(R);title('用normrnd函数产生的直方图');当输入n=40时,得到的结果如下:【实验分析】(1)、在实验中成功产生了均值为mu,方差为sigma(实验中输入的是mu=0,sigma=1),计算出了所得序列的均值和方差,并与理论值进行比较,测量其误差大小。当改变序列的长度时,误差会减小,因为序列越长,数据越接近真实的正态分布,这样得到的误差越小。(2)、在画其直方图时,由于序列的个数没有统一,图形的坐标没有归一化,在一定程度上影响了结果的比较,只能从图形的起伏来看正态分布的特征。用normpdf函数和normcdf函数来得到概率密度函数及分布函数,与直接用函数得到的一样。(3)、在本次实验中,用函数xcorr()计算其相关函数,从得到的图形中可以看出,当x=0时,图形的取值为1,满足Rx(0)=mu^2+sigma2=0^2+1^2=1。还可以验证其他取值时的情况,这里不一一举例。(4)、用Box-Muller变换法产生正态分布随机数,得到的直方图的结果与matlab函数产生的正态分布随机数的结果很相似。10【思考题】1、为什么当均值mu不为0时,()XR的图形是三角形?2、实验中的样本数都设定为1000,试简述样本数对于结果的影响?答:当设定样本数为1000时,在计算自相关时数据量太大,超出了内存的存储范围,在运行程序时会报错。【总结及心得体会】在用matlab对正态分布的特性进行研究时,一定要对matlab函数的使用有清楚的认识,不然很容易出错。例如:在使用函数xcorr()算正态分布的自相关函数时,我开始就直接使用y=xcorr(R)进行计算,得到了一个错误的结果,后来通过反复的查资料才得到函数xcorr()在计算正确用法。在本次实验中matlab的算法不是很复杂,但内容比较多,需要做大量的工作。做这些工作一定要仔细认真,不然很容易就犯下简单的错误。【对本实验过程及方法、手段的改进建议】对本实验的过程及方法、手段没有改进的建议。