《预测分析法》实验报告

《预测分析法》实验报告
《预测分析法》实验报告

《编译原理》课程实验报告实验名称:预测分析法

姓名:LZ

学号:110

地点:实验楼

教师:老师

院系:计算机

专业:计算机

时间:

一.实验目的

1.构造文法的语法分析程序,要求采用预测分析法对输入的字符串进行语法分析。

2.加深对预测分析LL(1)分析法的理解和掌握。

二.实验内容

#include

#include

#include

char str[100]; //存储待分析的句子

const char T[ ] = "a^(),#"; //终结符,分析表的列符

const char NT[ ] = "STW"; //非终结符,分析表的行符

/*指向产生式右部符号串*/

const char *p[] = {

/*0. S→a */ "a",

/*1. S→^ */ "^",

/*2. S→(T) */ "(T)",

/*3. T→SW */ "SW",

/*4. W→,SW */ ",SW",

/*5. W→ε; */ ""

};

//设M[i][j]=x,通过p[M[i][j]]=p[x]获取右部符号串。

const int M[][6] = {

/* a ^ ( ) , # */

/*S*/ { 0, 1, 2, -1, -1, -1 },

/*T*/ { 3, 3, 3, -1, -1, -1 },

/*W*/ { -1, -1,-1, 5, 4, -1 }

};

void init()//输入待分析的句子

{

printf(" 请输入待分析的句子(以$结束):\n");

scanf("%s",str);

}

int lin(char c);//非终结符转换为行号

int col(char c);//终结转换为列号

bool isNT(char c);//isNT判断是否是非终结符

bool isT(char c);//isT判断是否是终结符。

void main(void)

{

int i,j=0;

int flag=1,flag2=0;

char A; //设置指示句子的当前字符

char stack[20]= {'#','S'}; //栈赋初值

int top = 1 ; //设置栈顶指针

char X = ' ' ; //存储栈顶字符

init();

A=str[0];

printf("\t步数\t分析栈\t输入串\t所用规则\n"); //在屏幕上输出列表标题while ( 1 )

{

printf("\n\t(%d)\t",++j); //输出当前执行步数

for ( i = 0 ; i <= top ; i++ ) //输出当前栈的内容(出栈前)

{

printf("%c",stack[i]);

}

printf("\t");

for ( i = flag-1 ; str[i]!='$' ; i++ )

{

printf("%c",str[i]);

}

if(flag2==1)

{

printf("\t%d",M[ lin(X) ][col(A)]);

flag2=0;

}

//出栈

X = stack[top--] ;

if (X=='#')//是结束符

{

if (X==A)//是结束符

{

printf("\tAcc\n");

}

else printf("\tERROR\n");

break;

}

else if (isT(X))//是终结符

{

A=str[flag++];

}

else if (isNT(X))//是否是非终结符

{

flag2=1;

//逆序入栈

for( i = strlen( p[ M[ lin(X) ][col(A)] ] ) - 1; i >= 0; i--)

{

stack[++top] = *(p[M[lin(X)][col(A)]] + i ) ;

}

}

else

{

printf("Error in main()>%c\n",X);

exit(0);

}

}

}

int lin(char c)

{

for(int i = 0; i < (int)strlen(NT); i ++ )

{

if (c == NT[i])

{

return i ;

}

}

printf("Error in lin()>%c\n",c);

exit(0) ;

}

int col(char c)

{

for (int i=0; i<(int)strlen(T); i ++ )

{

if (c == T[i]) return i;

}

printf("Error in col()>%c\n",c);

exit(0);

}

bool isNT(char c) //是否是非终结符

{

for (int i = 0; i < (int)strlen(NT); i ++ )

{

if (c==NT[i])

return true;

}

return false;

}

bool isT(char c) //是否是终结符(不包括'#'){

for (int i = 0; i < (int)strlen(T) - 1; i ++ )

{

if (c == T[i])

{

return true;

}

}

return false;

}

三.实验步骤

四.总结与回顾

通过该实验的操作,我了解了预测分析器的内部工作原理,这次的预测分析程序实验同样要求文法必须是LL(1)文法,相对来说比上次的递归下降分析程序难些。在实验当中,由于用到了类似栈的处理,出现了不少的错误。不过经过不断的调试和对其基本原理的理解,总算基本解决了,并且使输出显示的比较详细,显示了对输入块的分析过程。在实验最后的调试中让我对该实验有了更全面的知识掌握,从中进步了不少。

数字信号处理实验报告

一、实验名称:基本信号的产生 二、实验目的:I 利用MATLAB 产生连续信号并作图 II 利用MATLAB 产生离散序列并作图 III 利用MATLAB 进行噪声处理 三、 实验内容: I 利用MATLAB 产生下列连续信号并作图 ①X(t)=-2u(t-1),-1=0); plot(t,x); 图形如右: ② X(t)=-(e^-0.1t)*sin(2/3*t),0

-1.5-1 -0.5 0.5 1 1.5 2 II 利用MATLAB 产生下列离散序列并作图 ① X(t)=1,-5<=t<=5 else 0,-15<=t<=15 MATLAB 程序如下: k= -15: 15; x=[zeros(1,10),ones(1,11),zeros(1,10)]; stem(k,x) 图形如下: ② X(t)=0.9^k*(cos(0.25*pi*k)+sin(0.25*pi*p),-20

模式识别第二次上机实验报告

北京科技大学计算机与通信工程学院 模式分类第二次上机实验报告 姓名:XXXXXX 学号:00000000 班级:电信11 时间:2014-04-16

一、实验目的 1.掌握支持向量机(SVM)的原理、核函数类型选择以及核参数选择原则等; 二、实验内容 2.准备好数据,首先要把数据转换成Libsvm软件包要求的数据格式为: label index1:value1 index2:value2 ... 其中对于分类来说label为类标识,指定数据的种类;对于回归来说label为目标值。(我主要要用到回归) Index是从1开始的自然数,value是每一维的特征值。 该过程可以自己使用excel或者编写程序来完成,也可以使用网络上的FormatDataLibsvm.xls来完成。FormatDataLibsvm.xls使用说明: 先将数据按照下列格式存放(注意label放最后面): value1 value2 label value1 value2 label 然后将以上数据粘贴到FormatDataLibsvm.xls中的最左上角单元格,接着工具->宏执行行FormatDataToLibsvm宏。就可以得到libsvm要求的数据格式。将该数据存放到文本文件中进行下一步的处理。 3.对数据进行归一化。 该过程要用到libsvm软件包中的svm-scale.exe Svm-scale用法: 用法:svmscale [-l lower] [-u upper] [-y y_lower y_upper] [-s save_filename] [-r restore_filename] filename (缺省值:lower = -1,upper = 1,没有对y进行缩放)其中,-l:数据下限标记;lower:缩放后数据下限;-u:数据上限标记;upper:缩放后数据上限;-y:是否对目标值同时进行缩放;y_lower为下限值,y_upper为上限值;(回归需要对目标进行缩放,因此该参数可以设定为–y -1 1 )-s save_filename:表示将缩放的规则保存为文件save_filename;-r restore_filename:表示将缩放规则文件restore_filename载入后按此缩放;filename:待缩放的数据文件(要求满足前面所述的格式)。缩放规则文件可以用文本浏览器打开,看到其格式为: y lower upper min max x lower upper index1 min1 max1 index2 min2 max2 其中的lower 与upper 与使用时所设置的lower 与upper 含义相同;index 表示特征序号;min 转换前该特征的最小值;max 转换前该特征的最大值。数据集的缩放结果在此情况下通过DOS窗口输出,当然也可以通过DOS的文件重定向符号“>”将结果另存为指定的文件。该文件中的参数可用于最后面对目标值的反归一化。反归一化的公式为: (Value-lower)*(max-min)/(upper - lower)+lower 其中value为归一化后的值,其他参数与前面介绍的相同。 建议将训练数据集与测试数据集放在同一个文本文件中一起归一化,然后再将归一化结果分成训练集和测试集。 4.训练数据,生成模型。 用法:svmtrain [options] training_set_file [model_file] 其中,options(操作参数):可用的选项即表示的涵义如下所示-s svm类型:设置SVM 类型,默

【精品实验报告】软件体系结构设计模式实验报告

【精品实验报告】软件体系结构设计模式实验报告软件体系结构 设计模式实验报告 学生姓名: 所在学院: 学生学号: 学生班级: 指导老师: 完成日期: 一、实验目的 熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括组合模式、外观模式、代理模式、观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。 二、实验内容 使用PowerDesigner和任意一种面向对象编程语言实现组合模式、外观模式、代理模式、观察者模式和策略模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。 (1) 组合模式 使用组合模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件ImageFile、视频文件VideoFile。绘制类图并编程模拟实现。 (2) 组合模式 某教育机构组织结构如下图所示: 北京总部 教务办公室湖南分校行政办公室 教务办公室长沙教学点湘潭教学点行政办公室

教务办公室行政办公室教务办公室行政办公室 在该教育机构的OA系统中可以给各级办公室下发公文,现采用 组合模式设计该机构的组织结构,绘制相应的类图并编程模拟实现,在客户端代码中模拟下发公文。(注:可以定义一个办公室类为抽象叶子构件类,再将教务办公室和行政办公室作为其子类;可以定义一个教学机构类为抽象容器构件类,将总部、分校和教学点作为其子类。) (3) 外观模式 某系统需要提供一个文件加密模块,加密流程包括三个操作,分别是读取源文件、加密、保存加密之后的文件。读取文件和保存文件使用流来实现,这三个操作相对独立,其业务代码封装在三个不同的类中。现在需要提供一个统一的加密外观类,用户可以直接使用该加密外观类完成文件的读取、加密和保存三个操作,而不需要与每一个类进行交互,使用外观模式设计该加密模块,要求编程模拟实现。参考类图如下: reader = new FileReader();EncryptFacadecipher = new CipherMachine();writer = new FileWriter();-reader: FileReader-cipher: CipherMachine-writer: FileWriter +EncryptFacade () +fileEncrypt (String fileNameSrc,: voidString plainStr=reader.read(fileNameSrc); String fileNameDes)String

数字图像处理实验报告

数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰

度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

信号处理实验报告、

第一题 如何用计算机模拟一个随机事件,并估计随机事件发生的概率以计算圆周率π。 解: (一)蒙特卡洛方法可用于近似计算圆周率:让计算机每次随机生成两个0到1之间的数,看以这两个实数为横纵坐标的点是否在单位圆内。生成一系列随机点,统计单位圆内的点数与总点数,(圆面积和外切正方形面积之比为π:4),当随机点取得越多时,其结果越接近于圆周率。 代码: N=100000000; x=rand(N,1); y=rand(N,1); count=0; for i=1:N if (x(i)^2+y(i)^2<=1) count=count+1; end end PI=vpa(4*count/N,10) PI = 3.1420384

蒙特卡洛法实验结果与试验次数相关,试验次数增加,结果更接近理论值 (二)18世纪,法国数学家布丰和勒可莱尔提出的“投针问题”,记载于布丰1777年出版的著作中:“在平面上画有一组间距为d的平行线,将一根长度为l (l

模式识别实验报告

模式识别实验报告

————————————————————————————————作者:————————————————————————————————日期:

实验报告 实验课程名称:模式识别 姓名:王宇班级: 20110813 学号: 2011081325 实验名称规范程度原理叙述实验过程实验结果实验成绩 图像的贝叶斯分类 K均值聚类算法 神经网络模式识别 平均成绩 折合成绩 注:1、每个实验中各项成绩按照5分制评定,实验成绩为各项总和 2、平均成绩取各项实验平均成绩 3、折合成绩按照教学大纲要求的百分比进行折合 2014年 6月

实验一、 图像的贝叶斯分类 一、实验目的 将模式识别方法与图像处理技术相结合,掌握利用最小错分概率贝叶斯分类器进行图像分类的基本方法,通过实验加深对基本概念的理解。 二、实验仪器设备及软件 HP D538、MATLAB 三、实验原理 概念: 阈值化分割算法是计算机视觉中的常用算法,对灰度图象的阈值分割就是先确定一个处于图像灰度取值范围内的灰度阈值,然后将图像中每个像素的灰度值与这个阈值相比较。并根据比较的结果将对应的像素划分为两类,灰度值大于阈值的像素划分为一类,小于阈值的划分为另一类,等于阈值的可任意划分到两类中的任何一类。 最常用的模型可描述如下:假设图像由具有单峰灰度分布的目标和背景组成,处于目标和背景内部相邻像素间的灰度值是高度相关的,但处于目标和背景交界处两边的像素灰度值有较大差别,此时,图像的灰度直方图基本上可看作是由分别对应于目标和背景的两个单峰直方图混合构成。而且这两个分布应大小接近,且均值足够远,方差足够小,这种情况下直方图呈现较明显的双峰。类似地,如果图像中包含多个单峰灰度目标,则直方图可能呈现较明显的多峰。 上述图像模型只是理想情况,有时图像中目标和背景的灰度值有部分交错。这时如用全局阈值进行分割必然会产生一定的误差。分割误差包括将目标分为背景和将背景分为目标两大类。实际应用中应尽量减小错误分割的概率,常用的一种方法为选取最优阈值。这里所谓的最优阈值,就是指能使误分割概率最小的分割阈值。图像的直方图可以看成是对灰度值概率分布密度函数的一种近似。如一幅图像中只包含目标和背景两类灰度区域,那么直方图所代表的灰度值概率密度函数可以表示为目标和背景两类灰度值概率密度函数的加权和。如果概率密度函数形式已知,就有可能计算出使目标和背景两类误分割概率最小的最优阈值。 假设目标与背景两类像素值均服从正态分布且混有加性高斯噪声,上述分类问题可以使用模式识别中的最小错分概率贝叶斯分类器来解决。以1p 与2p 分别表示目标与背景的灰度分布概率密度函数,1P 与2P 分别表示两类的先验概率,则图像的混合概率密度函数可用下式表示为

设计模式实验报告

实验一单例模式的应用 1 实验目的 1) 掌握单例模式(Singleton)的特点 2) 分析具体问题,使用单例模式进行设计。 2 实验内容和要求 很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的参数数据。 通常客户端使用这个类是通过new一个AppConfig的实例来得到一个操作配置文件内容的对象。如果在系统运行中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源。 事实上,对于AppConfig类,在运行期间,只需要一个对象实例就够了。那么应该怎么实现呢?用C#控制台应用程序实现该单例模式。绘制该模式的UML 图。 3 实验代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AppConfig { publicclass Singleton { privatestatic Singleton instance; private Singleton() {

} publicstatic Singleton GetInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } class Program { staticvoid Main(string[] args) { Singleton singletonOne = Singleton.GetInstance(); Singleton singletonTwo = Singleton.GetInstance(); if (singletonOne.Equals(singletonTwo)) { Console.WriteLine("singletonOne 和 singletonTwo 代表的是同一个实例"); } else { Console.WriteLine("singletonOne 和 singletonTwo 代表的是不同实例"); } Console.ReadKey(); } } } 4 实验结果

图像处理实验报告

重庆交通大学 学生实验报告 实验课程名称数字图像处理 开课实验室数学实验室 学院理学院年级信息与计算科学专业 2 班学生姓名李伟凯学号631122020203 开课时间2014 至2015 学年第 1 学期

实验(一)图像处理基础 ?实验目的 学习Matlab软件的图像处理工具箱,掌握常用的一些图像处理命令;通过编程实现几种简单的图像增强算法,加强对图像增强的理解。 ?实验内容 题目A.打开Matlab软件帮助,学习了解Matlab中图像处理工具箱的基本功能;题目B.掌握以下常见图像处理函数的使用: imread( ) imageinfo( ) imwrite( ) imopen( ) imclose( ) imshow( ) impixel( ) imresize( ) imadjust( ) imnoise( ) imrotate( ) im2bw( ) rgb2gray( ) 题目C.编程实现对图像的线性灰度拉伸y = ax + b,函数形式为:imstrech(I, a, b); 题目D.编程实现对图像进行直方图均衡化处理,并将实验结果与Matab中imhist 命令结果比较。 三、实验结果 1).基本图像处理函数的使用: I=imread('rice.png'); se = strel('disk',1); I_opened = imopen(I,se); %对边缘进行平滑 subplot(1,2,1), imshow(I), title('原始图像') subplot(1,2,2), imshow(I_opened), title('平滑图像') 原始图像平滑图像

哈尔滨工程大学 语音信号处理实验报告

实 验 报 告 实验课程名称: 语音信号处理实验 姓名: 班级: 20120811 学号: 指导教师 张磊 实验教室 21B#293 实验时间 2015年4月12日 实验成绩 实验序号 实验名称 实验过程 实验结果 实验成绩 实验一 语音信号的端点检测 实验二 语音信号的特征提取 实验三 语音信号的基频提取

实验一 语音信号的端点检测 一、实验目的 1、掌握短时能量的求解方法 2、掌握短时平均过零率的求解方法 3、掌握利用短时平均过零率和短时能量等特征,对输入的语音信号进行端点检测。 二、实验设备 HP 计算机、Matlab 软件 三、实验原理 1、短时能量 语音信号的短时能量分析给出了反应这些幅度变化的一个合适的描述方法。对于信号)}({n x ,短时能量的定义如下: ∑ ∑∞ -∞ =∞ -∞ =*=-= -= m m n n h n x m n h m x m n w m x E )()()()()]()([222 2、短时平均过零率 短时平均过零率是指每帧内信号通过零值的次数。对于连续语音信号,可以 考察其时域波形通过时间轴的情况。对于离散信号,实质上就是信号采样点符号变化的次数。过零率在一定程度上可以反映出频率的信息。短时平均过零率的公式为: ∑∑-+=∞ -∞=--= ---=1)] 1(sgn[)](sgn[2 1 ) ()]1(sgn[)](sgn[21N n n m w w m n m x m x m n w m x m x Z 其中,sgn[.]是符号函数,即 ? ? ?<-≥=0)(10)(1 )](sgn[n x n x n x

matlab图像处理实验报告

图像处理实验报告 姓名:陈琼暖 班级:07计科一班 学号:20070810104

目录: 实验一:灰度图像处理 (3) 实验二:灰度图像增强 (5) 实验三:二值图像处理 (8) 实验四:图像变换 (13) 大实验:车牌检测 (15)

实验一:灰度图像处理题目:直方图与灰度均衡 基本要求: (1) BMP灰度图像读取、显示、保存; (2)编程实现得出灰度图像的直方图; (3)实现灰度均衡算法. 实验过程: 1、BMP灰度图像读取、显示、保存; ?图像的读写与显示操作:用imread( )读取图像。 ?图像显示于屏幕:imshow( ) 。 ?

2、编程实现得出灰度图像的直方图; 3、实现灰度均衡算法; ?直方图均衡化可用histeq( )函数实现。 ?imhist(I) 显示直方图。直方图中bin的数目有图像的类型决定。如果I是个灰度图像,imhist将 使用默认值256个bins。如果I是一个二值图像,imhist使用两bins。 实验总结: Matlab 语言是一种简洁,可读性较强的高效率编程软件,通过运用图像处理工具箱中的有关函数,就可以对原图像进行简单的处理。 通过比较灰度原图和经均衡化后的图形可见图像变得清晰,均衡化后的直方图形状比原直方图的形状更理想。

实验二:灰度图像增强 题目:图像平滑与锐化 基本要求: (1)使用邻域平均法实现平滑运算; (2)使用中值滤波实现平滑运算; (3)使用拉普拉斯算子实现锐化运算. 实验过程: 1、 使用邻域平均法实现平滑运算; 步骤:对图像添加噪声,对带噪声的图像数据进行平滑处理; ? 对图像添加噪声 J = imnoise(I,type,parameters)

工程信号处理实验报告

( 2011-2012 学年 第二学期) 重庆理工大学研究生课程论文 课程论文题目: 《工程信号处理实验报告》 课程名称 工程信号处理实验 课程类别 □学位课 非学位课 任课教师 谢明 所在学院 汽车学院 学科专业 机械设计及理念 姓名 李文中 学 号 50110802313 提交日期 2012年4月12日

工程信号处理实验报告 姓名:李文中学号:50110802313 实验报告一 实验名称:数据信号采集及采样参数选定 1实验目的 1.1了解信号采集系统的组成,初步掌握信号采集系统的使用。 1.2加深对采样定理的理解,掌握采样参数的选择方法 1.3了解信号采集在工程信号处理中的实际应用,及注意事项。 2 实验原理 2.1 模数转换及其控制 对模拟信号进行采集,就是将模拟信号转换为数字信号,即模/数(A/D)转换,然后送入计算机或专用设备进行处理。模数转换包括三个步骤:(1)采样,(2)量化,(3)编码。采样,是对已知的模拟信号按一定的间隔抽出一个样本数据。若间隔为一定时间 T,则称这种采样为等时间间隔采样。除特别注明外,一般都采用等时间间隔采样;量化,是一种用有限字长的数字量逼近模拟量的过程。编码,是将已经量化的数字量变为二进制数码,因为数字处理器只能接受有限长的二进制数。模拟信号经过这三步转换后,变成了时间上离散、幅值上量化的数字信号。A/D转换器是完成这三个步骤的主要器件。 在信号采集系统中,A/D 转换器与计算机联合使用完成模数转换。用计算机的时钟或用软件产生等间隔采样脉冲控制 A/D 转换器采样。A/D 转换器通过内部电路进行量化与编码,输出有限长的二进制代码。信号采集系统中,通常由以 A/D转换器为核心的接口电路及控制软件,进行信号采集控制。 *注这部分是由本实验所用的信号采集器自动完成的,以上也是实验器材-信号采集器的部分工作原理。以后实验中就不再赘述。 2.2 信号采集的参数选择

软件设计模式与软件体系结构实验报告

《软件体系结构》大作业(1) 学院:软件学院 课程名称:软件体系结构 专业班级: 学生姓名:学号: 学生姓名:学号: 指导教师: 完成时间:年月日 评分表 1、叙述各小组成员完成本题目的分工协作情况。 小组中的每个成员都先理解题目要求及涉及的设计模式,并一起完成代码编写。另外,组长负责文档制作。 2、评分表 序号姓名评分是否组长 1 2 作业正文需要包括以下内容: 1、作业题目内容的详细描述。 2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的 软件体系结构名称及画出相应的体系结构图。

3、画出完成本题目所设计程序的设计类图;如还有其他图,也一并画出。 4、完成本题目所设计的程序代码。 5、程序运行的典型界面截图

1、作业题目内容的详细描述。 【作业2.1-1】例2.3为使用工厂方法模式设计的汽车保险管理应用程序实例。现在需要 扩展例2.3的设计图,添加一个名为LuxuryCarInsurance的类,并且需要编写此类和其他需要添加的类的代码,详细要求参见光盘的相应作业部分。 【作业2.1-1】在例2.4中,设计并且实现了豪华(Super)和中等(Medium)别墅(House)与公寓(Condo)的查询。要求在该设计的基础上,增加一个新的类SemiDetacher(半独立式楼宇),并且编写代码,实现相应的查询功能,详细要求参见光盘的相应作业部分。 2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的软件体系结构名称及画出相应的体系结构图。 【作业2.1-1】采用的是工厂方法模式 【作业2.1-2】采用的是抽象方法模式

数字图像处理实验报告92184

数字图像处理试验报告 实验二:数字图像的空间滤波和频域滤波 姓名:XX学号:2XXXXXXX 实验日期:2017 年4 月26 日1.实验目的 1. 掌握图像滤波的基本定义及目的。 2. 理解空间域滤波的基本原理及方法。 3. 掌握进行图像的空域滤波的方法。 4. 掌握傅立叶变换及逆变换的基本原理方法。 5. 理解频域滤波的基本原理及方法。 6. 掌握进行图像的频域滤波的方法。 2.实验内容与要求 1. 平滑空间滤波: 1) 读出一幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图显示在同 一图像窗口中。 2) 对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果, 要求在同一窗口中显示。 3) 使用函数 imfilter 时,分别采用不同的填充方法(或边界选项,如零填 充、’replicate’、’symmetric’、’circular’)进行低通滤波,显示处理后 的图像。 4) 运用for 循环,将加有椒盐噪声的图像进行10 次,20 次均值滤波,查看其特点, 显示均值处理后的图像(提示:利用fspecial 函数的’average’类型生成均值滤 波器)。 5) 对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理, 要求在同一窗口中显示结果。 6) 自己设计平滑空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。 2. 锐化空间滤波 1) 读出一幅图像,采用3×3 的拉普拉斯算子 w = [ 1, 1, 1; 1 – 8 1; 1, 1, 1] 对其进行滤波。 2) 编写函数w = genlaplacian(n),自动产生任一奇数尺寸n 的拉普拉斯算子,如5 ×5的拉普拉斯算子 w = [ 1 1 1 1 1 1 1 1 1 1 1 1 -24 1 1 1 1 1 1 1 1 1 1 1 1] 3) 分别采用5×5,9×9,15×15和25×25大小的拉普拉斯算子对blurry_moon.tif

信号处理实验报告

数字信号处理 第四次实验报告 一、 实验目的 1.了解离散系统的零极点与系统因果性能和稳定性的关系 2.观察离散系统零极点对系统冲激响应的影响 3.熟悉MATLAB 中进行离散系统零极点分析的常用子函数 4.加深对离散系统的频率响应特性基本概念的理解 5.了解离散系统的零极点与频响特性之间的关系 6.熟悉MATLAB 中进行离散系统分析频响特性的常用子函数,掌握离散系统幅频响应和相频响应的求解方法。 二、实验过程 9.2已知离散时间系统函数分别为 ) 7.05.0)(7.05.0(3 .0)(1j z j z z z H ++-+-= )1)(1(3 .0)() 8.06.0)(8.06.0(3 .0)(32j z j z z z H j z j z z z H ++-+-= ++-+-= 求这些系统的零极点分布图以及系统的冲击响应,并判断系统因果稳定性。 %---------第一式-----------------------------------------------------------------------------% z1=[0.3,0]';p1=[-0.5+0.7j,-0.5-0.7j]';k=1; %z1零点向量矩阵,p1极点向量矩阵,k 系统增益系数---------------------------% [bl,al]=zp2tf(z1,p1,k); %将零极点增益函数转换为系统传递函数 subplot(3,2,1),zplane(bl,al); %zplane 显示离散系统的零极点分布图 ylabel('极点在单位圆内'); subplot(3,2,2),impz(bl,al,20); %impz 绘制系统的冲激响应图 %---------第二式-----------------------------------------------------------------------------% z2=[0,3,0]';p2=[-0.6+0.8j,-0.6-0.8j]'; %z2零点向量矩阵,p2极点向量矩阵---------------------------------------------------% [b2,a2]=zp2tf(z2,p2,k); %将零极点增益函数转换为系统传递函数 subplot(3,2,3),zplane(b2,a2); %zplane 显示离散系统的零极点分布图 ylabel('极点在单位圆上'); subplot(3,2,4),impz(b2,a2,20); %impz 绘制系统的冲激响应图 %---------第三式-----------------------------------------------------------------------------%

设计模式实验报告

计算机科学与技术学院 实验报告 课程名称:软件设计模式 专业:计算机科学与技术班级:班 学号: 姓名:

实验一单例模式的应用 1 实验目的 1) 掌握单例模式(Singleton)的特点 2) 分析具体问题,使用单例模式进行设计。 2 实验内容和要求 很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的参数数据。 通常客户端使用这个类是通过new一个AppConfig的实例来得到一个操作配置文件内容的对象。如果在系统运行中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源。 事实上,对于AppConfig类,在运行期间,只需要一个对象实例就够了。那么应该怎么实现呢?用C#控制台应用程序实现该单例模式。绘制该模式的UML图。 [代码截图]: namespace实验一_单例模式_ { class Program { static void Main(string[] args) { AppConfig appc1 = AppConfig.GetAppConfig(); AppConfig appc2 = AppConfig.GetAppConfig(); appc1.SetParameterA("hello"); appc2.SetParameterA("hi"); if (appc1.Equals(appc2)){ Console.WriteLine("appc1 和 appc2 代表的是同一个实例"); } else{ Console.WriteLine("appc1 和 appc2 代表的是不同实例"); } Console.WriteLine(appc1.GetParameterA()); Console.WriteLine(appc2.GetParameterA()); Console.ReadKey();

数字图像处理实验报告实验三

中南大学 数字图像处理实验报告实验三数学形态学及其应用

实验三 数学形态学及其应用 一.实验目的 1.了解二值形态学的基本运算 2.掌握基本形态学运算的实现 3.了解形态操作的应用 二.实验基本原理 腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。 膨胀就是把连接成分的边界扩大一层的处理。而收缩则是把连接成分的边界点去掉从而缩小一层的处理。 二值形态学 I(x,y), T(i,j)为 0/1图像Θ 腐蚀:[]),(&),(),)((),(0,j i T j y i x I AND y x T I y x E m j i ++=Θ== 膨胀:[]),(&),(),)((),(0 ,j i T j y i x I OR y x T I y x D m j i ++=⊕== 灰度形态学T(i,j)可取10以外的值 腐蚀: []),(),(min ),)((),(1 ,0j i T j y i x I y x T I y x E m j i -++=Θ=-≤≤ 膨胀: []),(),(max ),)((),(1 ,0j i T j y i x I y x T I y x D m j i +++=⊕=-≤≤ 1.腐蚀Erosion: {}x B x B X x ?=Θ: 1B 删两边 2B 删右上 图5-1 剥去一层(皮) 2.膨胀Dilation: {}X B x B X x ↑⊕:= 1B 补两边 2B 补左下 图5-2 添上一层(漆) 3.开运算open :

B B X ⊕Θ=)(X B 4.闭close :∨ Θ⊕=B B X X B )( 5.HMT(Hit-Miss Transform:击中——击不中变换) 条件严格的模板匹配 ),(21T T T =模板由两部分组成。1T :物体,2T :背景。 {} C x x i X T X T X T X ??=?21, 图5-3 击不中变换示意图 性质: (1)φ=2T 时,1T X T X Θ=? (2))()()(21T X T X T X C Θ?Θ=? C T X T X )()(21Θ?Θ= )/()(21T X T X ΘΘ= 6.细化/粗化 (1)细化(Thin ) C T X X T X XoT )(/??=?= 去掉满足匹配条件的点。 图5-4 细化示意图 系统细化{}n B oB XoB T Xo ))(((21=, i B 是1-i B 旋转的结果(90?,180?,270?)共8种情况 适于细化的结构元素 1111000d d I = d d d L 10110 0= (2)粗化(Thick ) )(T X X T X ??=? 用(){}0,01=T (){}0,12=T 时,X X X T X =?=? X 21 1 1 2 3 T ? XoT X ? X X ?T X ΘT T ⊕

数字信号处理实验报告(同名22433)

《数字信号处理》 实验报告 课程名称:《数字信号处理》 学院:信息科学与工程学院 专业班级:通信1502班 学生姓名:侯子强 学号:0905140322 指导教师:李宏 2017年5月28日

实验一 离散时间信号和系统响应 一. 实验目的 1. 熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解 2. 掌握时域离散系统的时域特性 3. 利用卷积方法观察分析系统的时域特性 4. 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号及系统响应进行频域分析 二、实验原理 1. 采样是连续信号数字化处理的第一个关键环节。对采样过程的研究不仅可以了解采样前后信号时域和频域特性的变化以及信号信息不丢失的条件,而且可以加深对离散傅里叶变换、Z 变换和序列傅里叶变换之间关系式的理解。 对连续信号()a x t 以T 为采样间隔进行时域等间隔理想采样,形成采样信号: ?()()()a a x t x t p t = 式中()p t 为周期冲激脉冲,$()a x t 为()a x t 的理想采样。 ()a x t 的傅里叶变换为μ ()a X j Ω: 上式表明将连续信号()a x t 采样后其频谱将变为周期的,周期为Ωs=2π/T 。也即采样信 号的频谱μ()a X j Ω是原连续信号xa(t)的频谱Xa(jΩ)在频率轴上以Ωs 为周期,周期延拓而成 的。因此,若对连续信号()a x t 进行采样,要保证采样频率fs ≥2fm ,fm 为信号的最高频率,才可能由采样信号无失真地恢复出原模拟信号 计算机实现时,利用计算机计算上式并不方便,因此我们利用采样序列的傅里叶变换来实现,即 ()() n P t t nT δ∞ =-∞ = -∑μ1()()*() 21 ()n a a a s X j X j P j X j jn T π∞ =-∞ Ω=ΩΩ= Ω-Ω∑μ()()|j a T X j X e ωω=ΩΩ=

模式识别实验报告(一二)

信息与通信工程学院 模式识别实验报告 班级: 姓名: 学号: 日期:2011年12月

实验一、Bayes 分类器设计 一、实验目的: 1.对模式识别有一个初步的理解 2.能够根据自己的设计对贝叶斯决策理论算法有一个深刻地认识 3.理解二类分类器的设计原理 二、实验条件: matlab 软件 三、实验原理: 最小风险贝叶斯决策可按下列步骤进行: 1)在已知 ) (i P ω, ) (i X P ω,i=1,…,c 及给出待识别的X 的情况下,根据贝叶斯公式计 算出后验概率: ∑== c j i i i i i P X P P X P X P 1 ) ()() ()()(ωωωωω j=1,…,x 2)利用计算出的后验概率及决策表,按下面的公式计算出采取i a ,i=1,…,a 的条件风险 ∑== c j j j i i X P a X a R 1 )(),()(ωω λ,i=1,2,…,a 3)对(2)中得到的a 个条件风险值) (X a R i ,i=1,…,a 进行比较,找出使其条件风险最小的 决策k a ,即()() 1,min k i i a R a x R a x == 则 k a 就是最小风险贝叶斯决策。 四、实验内容 假定某个局部区域细胞识别中正常(1ω)和非正常(2ω)两类先验概率分别为 正常状态:P (1ω)=; 异常状态:P (2ω)=。 现有一系列待观察的细胞,其观察值为x : 已知先验概率是的曲线如下图:

)|(1ωx p )|(2ωx p 类条件概率分布正态分布分别为(-2,)(2,4)试对观察的结果 进行分类。 五、实验步骤: 1.用matlab 完成分类器的设计,说明文字程序相应语句,子程序有调用过程。 2.根据例子画出后验概率的分布曲线以及分类的结果示意图。 3.最小风险贝叶斯决策,决策表如下: 结果,并比较两个结果。 六、实验代码 1.最小错误率贝叶斯决策 x=[ ] pw1=; pw2=; e1=-2; a1=; e2=2;a2=2; m=numel(x); %得到待测细胞个数 pw1_x=zeros(1,m); %存放对w1的后验概率矩阵 pw2_x=zeros(1,m); %存放对w2的后验概率矩阵

设计模式实验报告-建造者模式

建造者模式 建造者 建造者设计模式定义了处理其他对象的复杂构建的对象设计。 问题:创建复杂对象时候,构造函数的创建会涉及通用体系结构判定。某些编程人员认为任何构造函数都应当执行适当的逻辑以创建整个对象。另外一些编程人员则认识到将某些逻辑分解入其他方法才是有意义的。采用后一种样式设计的构造函数基本上是一系列请求实例化的方法。上述两种解决方案都不是特别灵活。事实上,它们根本就是错误的解决方案。 解决方案:我们可以基于一组业务逻辑的结果来构造对象。在示例中,对象只有特定的部分必须被创建。如果完全定义对象的所有部分,那么可能导致完全预见不能的结果。 多个方法调用的复杂性问题在使用之处似乎并非太严重,但该复杂性却是缓慢增长的。如果需要经常调用这些方法,那么就应当创建一个Builder对象。 UML MyObject MyObjectBuilder -MyObject:MyObect +complexFunctionA() +createInstanceOfMyObject() +complexFunctionB() +buideMyObject(configurationOptions) +getBuiltMyObject() *MyObject类具有能够完全实现对象构造的两个方法。为了具有完整的Myobject对象,需要执行complexFunctionA()和complexFunctionB()方法。 * MyObjectBuilder类包含一个名为createInstanceOfMyObject()的方法。这个类负责创建Myobject类的一个简单实例。需要注意没有用于进一步构造的配置选项。这个类还存储MyObjectBuilder类创建的实例中的私有实例。 *buildMyObject()方法接受参数configurationOption。这个方法用于调用在MyObjectBuilder 对象中存储的MyObject对象的complexFunctionA()和complexFunctionB()方法。 *getBuildObject()方法返回MyObjectBuilder对象内部Myobject对象的私有实例,该实例既是完整的,也是正常构建的。 示例代码演示: _type=$type; } public function setSize($size) {

相关文档
最新文档