随机数的产生及统计特性分析实验报告Word文件下载.docx
- 文档编号:18206072
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:10
- 大小:98.25KB
随机数的产生及统计特性分析实验报告Word文件下载.docx
《随机数的产生及统计特性分析实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《随机数的产生及统计特性分析实验报告Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
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()计算互相关。
用[cor2lag2]=xcorr(x2,'
unbiased'
)计算R的自相关。
5、用变换法产生正态分布随机数,重新观察图形变化,与matlab函数产生的正态分布随机数的结果进行比较。
在本实验中采用Box-Muller变换法:
变换法是通过一个变换将一个分布的随机数变换成一个不同分布的随机数。
高斯分布的密度函数
通过Box-Muller变换,它可以产生精确的正态分布的随机变量。
其变换式如下:
(3-6)
(3-7)
式中u,v是在区间[0,1]上服从均匀分布,且相互独立的随机变量,所以得到的随机变量
,
也应该是相互独立的,且服从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;
%方差的差值向量
subplot(2,1,1);
plot(dm);
均值的差值'
subplot(2,1,2);
plot(dA);
方差的差值'
运行结果:
当输入为:
均值=0;
标准差=1;
序列的长度=40;
序列个数=40。
结果为
当改变序列的长度而其他值没有改变时:
令均值=0;
序列的长度=200;
序列个数=40时。
对照前后两次的结果可以看出,当序列的长度变大时,实验得到的数据与理论值相差变少。
2、分析其直方图、概率密度函数及分布函数;
subplot(2,2,1);
subplot(2,2,2);
hist(M);
均值'
subplot(2,2,3);
hist(A);
方差'
x=-5:
0.1:
5;
y=normpdf(x,mu,sigma);
%正态分布概率密度函数
plot(x,y);
均值为mu、标准差为sigma的正态随机变量的概率分布曲线'
P=normcdf(x,mu,sigma);
%正态分布的累计分布函数
plot(x,P);
均值为mu、标准差为sigma的正态随机变量的分布函数曲线'
3、计算其相关函数,检验是否满足Rx(0)=mu^2+sigma^2,观察均值mu为0和不为0时的图形变化。
x2=normrnd(mu,sigma,1,m);
[cor2lag2]=xcorr(x2,'
plot(lag2,cor2),title('
(mu,sigma)正态分布的自相关函数'
从上图中可以看出,R(0)=1=mu^2+sigma^2。
5、用Box-Muller变换法产生正态分布随机数,重新观察图形变化,与matlab函数产生的正态分布随机数的结果进行比较。
请输入产生的均匀分布数的个数='
v=rand(n,n);
u=rand(n,n);
a=cos(2*pi*v);
b=(-2*log(u)).^(1/2);
y1=a*b;
hist(y1);
用变换法产生的直方图'
mu=0;
sigma=1;
R=normrnd(mu,sigma,n,n);
用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函数产生的正态分布随机数的结果很相似。
【思考题】
1、为什么当均值mu不为0时,
的图形是三角形?
2、实验中的样本数都设定为1000,试简述样本数对于结果的影响?
答:
当设定样本数为1000时,在计算自相关时数据量太大,超出了内存的存储范围,在运行程序时会报错。
【总结及心得体会】
在用matlab对正态分布的特性进行研究时,一定要对matlab函数的使用有清楚的认识,不然很容易出错。
例如:
在使用函数xcorr()算正态分布的自相关函数时,我开始就直接使用y=xcorr(R)进行计算,得到了一个错误的结果,后来通过反复的查资料才得到函数xcorr()在计算正确用法。
在本次实验中matlab的算法不是很复杂,但内容比较多,需要做大量的工作。
做这些工作一定要仔细认真,不然很容易就犯下简单的错误。
【对本实验过程及方法、手段的改进建议】
对本实验的过程及方法、手段没有改进的建议。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 随机数 产生 统计 特性 分析 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)