汕 头 大 学 实 验 报 告
学院:工 系: 电子系 专业: 电子信息工程 年级: 2009 成绩:
姓名: 何晓龙 学号: 09141005 组 实验时间: 2011.11.15 指导教师签字: _______________________________________________________________________________
实验一 随机序列的产生与统计分析
一、实验内容和目标
利用计算机产生常见随机序列,并对不同分布的随机序列进行统计分析,目的是了解随机信号的产生与主要统计分析方法。
1) 利用计算机产生常见随机序列;
2) 随机序列的统计特性分析与特征估计; 3) 数字图像直方图的均衡;
二、实验任务
1) 利用计算机产生正态分布、均匀分布和指数分布的随机数,分别画出200点和2000
点的波形;
(1)正态分布:其概率密度为f(x)(xm)2exp,m0,1 22211(2)均匀分布的:0-1分布,其概率密度为f(x)0f(x)(3)指数分布:
(1)MATLAB程序如下:
x=normrnd(0,1,[1,200]); subplot(2, 1, 1); plot(x);
xlabel(‘n’) ; ylabel(‘x(n)’) ;
title('200点时的正态分布'); x=normrnd(0,1,[1,2000]); subplot(2, 1, 2); plot(x);
xlabel(‘n’) ; ylabel(‘x(n)’) ;
title('2000点时的正态分布');
0x1其他
1xexp(),2
运行结果如果图1所示
图 1
(2) MATLAB程序如下:
x=rand(200,1); subplot(2,1,1); plot(x);
xlabel(‘n’); ylabel(‘x(n)’);
title(’200点时的均匀分布图’); x=rand(2000,1); subplot(2,1,2); plot(x);
xlabel(‘n’); ylabel(‘x(n)’);
title(’2000点时的均匀分布图’);
运行结果如果图2所示
图2
(3) MATLAB程序如下:
x=exprnd(2,200,1); subplot(2,1,1); plot(x);
xlabel(‘n’); ylabel(‘x(n)’);
title(‘200点时的指数分布图’); x=exprnd(2,2000,1); subplot(2,1,2); plot(x);
xlabel(‘n’); ylabel(‘x(n)’);
title(‘2000点时的指数分布图’);
运行结果如果图3所示
图3
2)计算上面三种分布的均值与方差的理论值,并画出理论的概率密度(图);利用计算机分析画出这3种随机序列分别在100、5000和10000点的概率密度、均值与方差,比较分析不同长度下的统计结果;
(1)上面三种分布的均值与方差的理论值 1、正态分布 E(x)m0,D(x)21
ab(ba)20.5,D(x)0.083 2、均匀分布 E(x)223、指数分布 E(x)2,D(x)4
(2)上面三种分布的理论概率密度图
1、正态分布
MATLAB程序如下:
x=-8:0.01:8;
y=normpdf(x,0,1); subplot(2,1,1); plot(x,y); axis square; xlabel(‘x’) ; ylabel(‘f(x)’) ;
title(‘正态分布的概率密度函数’);
运行结果如图4所示
2
图4
2、均匀分布
MATLAB程序如下:
x=-10 :0.01 :10 ; y=unifpdf(x,0,1) ; subplot(1,2,1) ; plot(x,y) ; xlabel(‘x’) ; ylabel(‘f(x)’) ;
title(‘均匀分布的概率密度函数’);
运行结果如图5所示
图5
3、指数分布
MATLAB程序如下:
x=0 :0.01 :40 ; y=exppdf(x,2) ; subplot(1,2,1) ; plot(x,y) ; xlabel(‘x’) ; ylabel(‘f(x)’) ;
title(‘指数分布的概率密度函数’);
运行结果如图6所示
图6
(3)上面三种随机序列在100、5000、10000点的概率密度、均值和方差 1、概率密度
正态分布MATLAB程序如下:
x=-6:0.01:10;
y=normrnd(0,1,[1,100]); subplot(3,1,1); hist(y,x);
title(‘100点的正态分布概率密度函数’); m1=mean(y) sigma1=var(y) x=-6:0.01:10;
y=normrnd(0,1,[1,5000]); subplot(3,1,2);
hist(y,x);
title(‘5000点的正态分布概率密度函数’); m2=mean(y) sigma2=var(y) x=-6:0.01:10;
y=normrnd(0,1,[1,10000]); subplot(3,1,3); hist(y,x);
title(‘10000点的正态分布概率密度函数’); m3=mean(y); sigma3=var(y);
运行结果如图7
图7 均匀分布的MATLAB程序如下: x=0:0.01:1; y=rand(100,1); subplot(3,1,1); hist(y,x);
title(‘100点的均匀概率密度函数’); m1=mean(y) sigma1=var(y) y=rand(5000,1); subplot(3,1,2); hist(y,x);
title(‘5000点的均匀概率密度函数’); m2=mean(y) sigma2=var(y) y=rand(10000,1); subplot(3,1,3); hist(y,x);
title(‘10000点的均匀概率密度函数’); m3=mean(y);
sigma3=var(y); 运行结果如图8
图8 指数分布的MATLAB程序如下:
x=-1 :0.01 :10 ; y=exprnd(2,100,1) ; subplot(3,1,1) ; hist(y,x) ;
title(‘100点的指数概率密度函数’); m1=mean(y) sigma1=var(y)
y=exprnd(2,5000,1) ; subplot(3,1,2) ; hist(y,x) ;
title(‘5000点的指数概率密度函数’); m2=mean(y)
sigma2=var(y)
y=exprnd(2,10000,1) ; subplot(3,1,3) ; hist(y,x) ;
title(‘10000点的指数概率密度函数’); m3=mean(y) sigma3=var(y) 运行结果如图9
图9
2、均值与方差
(1)正态分布 均值 方差 均值 方差 均值 方差
理论值 0 1 (2)均匀分布 理论值 0.5 0.083 (3)指数分布
理论值 2 4 100点 0.1128 1.4659 100点 0.5487 0.0827 100点 1.9384 4.6752 5000点 0.0110 0.9989 5000点 0.5016 0.0823 5000点 2.0069 4.0088 10000点 -0.0064 0.9973 10000点 0.4982 0.0827 10000点 1.9917 3.9828
分析结果:从运行结果可以看出,当所取点数越多,各序列的概率密度函数图
与理论概率密度函数图越接近,而且其均值与方差也越接近理论值的均值与方差。即所取随机变量越多,随机序列的统计特性也越接近于序列的理论统计特性。 3) 画出2种指定参数下的二维正态概率密度曲线,其联合概率密度为:
fX1X2(x1,x2)12X1X2(x1mX1)21exp{[2222(1r)X1r1(x2mX2)22r(x1mX1)(x2mX2)XX122X2]}
(1)
mX1mX20,X1X21,r0 (2)
其(1)的MATLAB程序如下:
r=0; mx1=0; mx2=0; sigma1=1; sigma2=1;
[x1,x2]=meshgrid(-5:0.2:10); r2=1-r.^2;
sigma3=sigma1.*sigma2;
k1=1./(2.*pi.*sigma3.*sqrt(r2)); k2=-0.5./r2;
q1=(x1-mx1).^2./(sigma1.^2);
q2=2.*r.*(x1-mx1).*(x2-mx2)./sigma3; q3=(x2-mx2).^2/(sigma2.^2); fx1_x2=k1.*exp(k2.*(q1-q2+q3)); mesh(x1,x2,fx1_x2);
title(‘二维正态概率密度’);
运行结果如下图
mX12,mX24,X11,X22,r0.5
其(1)的MATLAB程序如下:
r=0.5; mx1=2; mx2=4; sigma1=1; sigma2=2;
[x1,x2]=meshgrid(-5:0.2:10); r2=1-r.^2;
sigma3=sigma1.*sigma2;
k1=1./(2.*pi.*sigma3.*sqrt(r2)); k2=-0.5./r2;
q1=(x1-mx1).^2./(sigma1.^2);
q2=2.*r.*(x1-mx1).*(x2-mx2)./sigma3; q3=(x2-mx2).^2/(sigma2.^2); fx1_x2=k1.*exp(k2.*(q1-q2+q3)); mesh(x1,x2,fx1_x2);
title(‘二维正态概率密度’);
运行结果如下图
4) 实现一个信号处理的应用实例:处理所给图片素材(Lena.jpg),进行图像直方图的均衡,画出原始图像和经过均衡处理后的图像以及它们的直方图,并做比较分析。 MATLAB程序如下:
pic=imread(‘D:\\lena.jpg’); [m,n,o]=size(pic); imshow(pic); gp=zeros(1,256); for i=1:256
gp(i)=length(find(pic==(i-1)))/(m*n); end
figure,bar(0:255,gp);
title(‘均衡前的直方图’); xlabel(“灰度值’); ylabel(‘出现的概率’); newgp=zeros(1,256); s1=zeros(1,256); s2=zeros(1,256); tmp=0;
for i=1:256 tmp=tmp+gp(i); s1(i)=tmp;
s2(i)=round(s1(i)*256); end
for i=1:256
newgp(i)=sum(gp(find(s2==i))); end
figure,bar(0:255,newgp); title(‘均衡后的直方图’); xlabel(‘灰度值’); ylabel(‘出现的概率’); newgraypic=pic; for i=1:256
newgraypic(find(pic==(i-1)))=s2(i); end
figure,imshow(newgraypic); 运行后的结果如下图
原图片 处理后的图片
分析结果:原来的图片其灰度值比较集中在一段灰度级上,经过均衡后的图片其灰度值在0-250之间均存在,即其灰度级别更加均匀了,所以处理后的图片对比度相对较高。 三、实验体会和收获
此次实验让我第一次接触了图像处理,感觉非常有意思,虽然没系统地学习过MATLAB这个软件,但通过本次实验也对这个软件有了进一步的了解,同时也对随机信号的各方面特性有了更进一步的理解。
因篇幅问题不能全部显示,请点此查看更多更全内容