一、实验目的
综合运用matlab语言中数组、循环语句、函数、m文件、绘图指令以及GUI设计界面等知识,进行编程计算,并实现图形化显示。 二、实验内容 (1)、时间序列的产生:
利用用matlab内部函数产生具有不同特性的序列,如具有均匀分布和正态分布和标
准分布的随机数序列。 (2)、概率密度函数的计算和绘图:
利用m文件编程实现具有不同特性的时间序列概率密度函数的计算,并进行二维图形绘制。 (3)、GUI界面的制作:
在(1)、(2)步骤的基础上,制作GUI界面,实现图形化显示。 三、实验要求及具体功能指标 具体功能指标要求如下:
1. 创建一个图形用户界面,界面上包括按钮(Push Button)、编辑框(Edit Box)、静态文本(Static Text)等组件,以实现显示两种随机序列概率密度函数的概率密度函数。
2. 利用matlab内部函数uniform_PDF和Guassian_PDF函数产生服从0-1之间均匀分
布的时间序列和满足标准正态分布的时间序列。 3、 编写uniform_PDF和Guassian_PDF的回调函数。
4、 实现GUI界面的图形化显示,并根据运行图形,进行结果分析比较 四、软件制作流程图:
开始
界面控件布局,制作界面
编写两种随机序列的回调函数
调节输入参数,两种随机序列的概率密度函数 运行界面,实现图形化显示 结束
五、回调函数程序及注释: 在uniform中添加如下代码:
%读入产生0-1之间均匀分布随机数的序列长度参数
h2=findobj('tag','n_max');
n=eval(get(h2,'string')); %产生n个0-1之间均匀分布随机数 x=rand(1,n); %为了统计的方便,将随机数放大 rescalex=round(100.0*x+500.0); for i=1:1000 prob(i)=0.0; end for i=1:n
prob(rescalex(i))=prob(rescalex(i))+1.0; end
prob=prob/n;
%清除原有图形
bar(0:0.01:1,prob(500:600)) %数据采样并放大
cla;
axis([0,1,0,0.05])
xlabel('Uniformly Distributed Random Numbers') ylabel('Probability Distribution Function')
Guassian_PDF的函数代码如下:
%读入产生0-1之间均匀分布随机数的序列长度参数
h2=findobj('tag','n_max');
n=eval(get(h2,'string')); %产生n个0-1之间均匀分布随机数 x=randn(1,n); %为了统计的方便,将随机数放大 rescalex=round(100.0*x+500.0); for i=1:2000 prob(i)=0.0; end for i=1:n
prob(rescalex(i))=prob(rescalex(i))+1.0; end
prob=prob/n;
%清除原有图形
bar(-4:0.01:4,prob(100:900)) %数据采样并放大
cla;
axis([-4,4,0,0.01])
xlabel('Uniformly Distributed Random Numbers') ylabel('Probability Distribution Function')
六、结果分析
1. GUI界面:
2.0-1之间均匀分布随机数序列的概率密度函数运行图:
3.标准正态分布随机数序列的概率密度函数运行图:
4、结果分析:从图中可以看出,0-1之间均匀分布的随机数序列概率分布在0-1之间呈现均匀分布,而满足标准正态分布的随机数序列的概率分布则呈现正态分布特性。
七、小结
综合运用matlab语言中数组,循环语句,函数m文件,绘图指令以及GUI界面设计等知识,计算0-1之间均匀分布随机数序列的概率密度函数和标准正态分布随机数序列的概率密度函数,并实现图形化显示。通过该实验的练习,能提高对所学知识的及时巩固和运用于实际中,并且加深对知识的理解能力,而且也能提高利用m文件编程实现不同特性的时间序列概率密度函数的计算,并进行二维图形绘制能力。
因篇幅问题不能全部显示,请点此查看更多更全内容