随机数的产生及统计特性分析-实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学通信与信息工程学院
标准实验报告
实验名称:随机数的产生及统计特性分析
电子科技大学教务处制表
电子科技大学
实验报告
学生姓名:吴子文学号: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列的矩阵。
如果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()计算互相关。用[cor2 lag2] = xcorr(x2,'unbiased')计算R 的自相关。
5、用变换法产生正态分布随机数,重新观察图形变化,与matlab 函数产生的正态分布随机数的结果进行比较。在本实验中采用Box-Muller 变换法:
变换法是通过一个变换将一个分布的随机数变换成一个不同分布的随机数。
高斯分布的密度函数()22()2,
x f x μσ-=通过Box-Muller 变换,它可以产生精确的正态分布的随机变量。其变换式如下:
1)y v π= (3-6)
2)y v π= (3-7)
式中u ,v 是在区间[0,1]上服从均匀分布,且相互独立的随机变量,所以得到的随机变量1y ,2y 也应该是相互独立的,且服从N ~(0,1)的标准正态分布。
【实验记录】
1、产生随机数,并测量该序列的均值、方差,与理论值进行比较,测量其误差大小,改变序列长度观察结果变化。
代码如下:
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。结果为