MATLAB的基本运算及基于MATLAB的图像滤波设计精品资料.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《MATLAB的基本运算及基于MATLAB的图像滤波设计精品资料.doc》由会员分享,可在线阅读,更多相关《MATLAB的基本运算及基于MATLAB的图像滤波设计精品资料.doc(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、武汉理工大学Matlab课程设计说明书学 号: 课 程 设 计题 目MATLAB的基本运算及基于MATLAB的图像滤波设计学 院专 业班 级姓 名指导教师年月日课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 一、必做题: MATLAB的基本运算 二、选做题:基于MATLAB的图像滤波设计 初始条件:(1)Matlab应用软件的基本知识以及基本操作技能(2)高等数学、线性代数等基础数学中的运算知识要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)一、采用MATLAB选用适当的函数或矩阵进行如下计算(1)极限的计算、微分的计算、积分的计算、级
2、数的计算、求解代数方程、求解常微分方程;(2)矩阵的最大值、最小值、均值、方差、转置、逆、行列式、特征值的计算、矩阵的相乘、右除、左除、幂运算;(3)多项式加减乘除运算、多项式求导、求根和求值运算、多项式的部分分式展开、多项式的拟合、插值运算。二、(1)读入图像并分别加入高斯噪声、椒盐噪声和乘性噪声,并比较结果。(2)设计巴特沃斯低通滤波对图像进行低通滤波处理,显示结果。(3)设计高斯高通滤波器对图像进行处理,显示结果。(4)采用维纳滤波和中值滤波对图像进行处理,显示结果时间安排:指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录摘要11.前言21.1 MATLAB产生的历史
3、背景21.2 MATLAB应用领域31.3 MATLAB中数学运算的重要意义32.MATLAB基本运算的编程及运行结果32.1 基础微积分计算32.1.1极限的计算42.1.2 微分的计算42.1.3 积分的计算52.1.4 级数的计算52.1.5 求解代数方程62.1.6 求解常微分方程72.2 矩阵的基本计算82.2.1 矩阵的最大值、最小值92.2.2 矩阵的均值、方差102.2.3 矩阵的转置112.2.4 矩阵的逆、行列式112.2.5 矩阵特征值的计算122.2.6 矩阵的相乘132.2.7 矩阵右除和左除142.2.8 矩阵的幂运算152.3 多项式的基本运算162.3.1 多项
4、式的四则运算162.3.2 多项式的求导、求根、求值172.3.3 多项式的部分分式展开182.3.4 多项式的拟合202.3.5 多项式插值运算213.基于MATLAB的图像滤波设计223.1 总体设计223.2 图像的读取和保存233.2.1 图像的读取233.2.1 图像的保存243.3 图像的噪声加载243.3.1 高斯噪声243.3.2 椒盐噪声263.3.3 乘性噪声273.4 灰度处理283.5巴特沃斯低通滤波及高斯高通滤波283.5.1 巴特沃斯低通滤波283.5.2 高斯高通滤波323.6 维纳滤波及中值滤波353.6.1维纳滤波353.6.2 中值滤波364.程序调试及结果
5、分析375.心得体会386.参考文献3962摘要本课程设计首先介绍了matlab在高等数学中微机分的一些基本运算,线性代数中矩阵的一些基本计算以及多项式中的计算,采用具体举例,然后根据具体的例子建模,然后编写m文件,然后实际调试运行来得出结果的方式来整理报告。其次,本课程设计介绍了基于MATLAB的图像滤波的相关运算。MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。 MATLAB中集成了
6、功能强大的图像处理工具箱。由于MATLAB语言的语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式,而且这种语言可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以MATLAB在图像处理的应用中具有很大的优势,在图像滤波中有着重要的作用。MATLAB的基本运算及基于MATLAB的图像滤波设计1.前言1.1 MATLAB产生的历史背景MATLAB是美国MathWorks公司生产的一个为科学和工程计算专门设计的交互式大型软件,是一个可以完成各种精确计算和数据处理的、可视化的、强大的计算工具。它集图示和精确计算于一身,在应用数学、物理、化工、机电工程、医药、金融和
7、其他需要进行复杂数值计算的领域得到了广泛应用。它不仅是一个在各类工程设计中便于使用的运算工具,而且也是一个在数学、数值分析和工程计算等课程教学中的优秀的教学工具,在世界各地的高等院校中十分流行,在各类工业应用中更有不俗的表现。MATLAB可以在几乎所有的PC机和大型计算机上运行,适用于Windows、UNIX等多种系统平台。 MATLAB名称是由两个英文单词Maix和Laboratory的前二个字母组成。20世纪70年代后期,美国新墨西哥大学计算机系主任CleveMoler教授为了便于教学,减轻学生编写Fortran程序的负担,为两个矩阵运算软件包Linpack和Eispack编写了接口程序,
8、这也许就算MATLAB的第一个版本。1984年,在JackLittle(也称JohnLittle)的建议推动下,由Little、Moler、SteveBangert三人合作,成立rMathWorks公司,同时把MATLAB正式推向市场。从那时开始,MATLAB的源代码采用C语言编写,增加了数据图形的可视化功能。1993年,MathWorks公司推出了MATLAB的40版本,系统平台由DOS改为Windows,推出了功能强大的、可视化的、交互环境的用于模拟非线性动态系统的工具Simulink,为MATLAB进行实时数据分析、处理和硬件开发而推出了与外部直接进行数据交换的组件,为MATLAB能融科
9、学计算、图形可视、文字处理于一体而制作了Notebook,MathWorks使MATLAB成为国际控制界公认的标准计算软件。 MATLAB拥有了更丰富的数据类型和结构,更好的面向对象的快速精美的图形界面,更多的数学和数据分析资源,MATLAB工具也达到了25个,几乎涵盖了整个科学技术运算领域。在大部分大学里,应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教材都把MATLAB作为必不可少的内容。1.2 MATLAB应用领域MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
10、附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。MATLAB 产品族可以用来进行以下各种工作:(1)数值分析(2)数值和符号计算(3)工程与科学绘图(4)控制系统的设计与仿真(5)数字图像处理技术(6)数字信号处理技术(7)通讯系统设计与仿真(8)财务与金融工程MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。1.3 MATLAB中数学
11、运算的重要意义 通过上文我们已经知道MATLAB的应用对跟数字有关的领域几乎是无所不及,随着科技的发展尤其是计算机科学的问世,传统人工计算工作已经几乎全部交由计算机来工作了,而MATLAB最强大的地方正是在于它的计算功能,返璞归真,几乎所有的自然科学都是以数学为基础的,所以它的数学运算功能也就尤其重要了。2.MATLAB基本运算的编程及运行结果2.1 基础微积分计算 微积分的计算可以说是数学的基础,关于基础的微机分计算主要有求函数的极限,微分运算,积分运算,级数的计算,代数的求解,以及常微分方程的求解,下面分别介绍。2.1.1极限的计算MATLAB中极限函数limit格式如下:limit(F,
12、x,a) ;limit(F,a);limit(F);limit(F,x,a,right);limit(F,x,a,left)其中F表示的是函数式,x表示求极限的变量,a表示的是变量取的值,left或right表示是取左极限还是右极限。例:求;分析:这是一个典型的求极限的题目,题目中涉及了两个变量,故在程序开始应该先定义两个变量,然后直接利用函数limit编程计算。示例程序如下:syms x ylimit(limit(log(2*x+exp(y)/sqrt(2*x*x+y*y),x,2),y,0)运行结果如下:2.1.2 微分的计算MATLAB中微分函数diff格式如下:Y = diff(X);
13、Y = diff(X,n);Y = diff(X,n,dim)其中X表示待微分的变量,n表示n次微分,第三式表示沿着定维dim的n阶微分。例:求sin(3x+5)的微分;分析:微分运算能直观的显示函数值的变化快慢,在平时计算中常常反映变量的变化对函数值的影响大小这是一个简单的一阶微分式子,可以直接写定义变量然后求结果。示例程序如下:syms x y dyy=sqrt(5)/3*2*sin(3*x+5);dy=diff(y)运行结果如下:2.1.3 积分的计算MATLAB中积分常用函数为int,格式如下:int(f,x,a,b)其中f表示待积分的函数,x表示积分变量,而a,b则分别表示积分起始终
14、止点。例:求下列变上限积分分析:积分运算大量运用于求面积体积等,此处选用的是一个变上限积分,属于有些典型的积分例子,但任然是根据函数格式就可以写出程序。示例程序如下:syms k x f;y=(2+3*k)(1/2);f=int(y,k,x,x3)运行结果如下:2.1.4 级数的计算MATLAB中级数常用函数为symsum,格式如下:r = symsum(s);r = symsum(s,v);r = symsum(s,a,b);r = symsum(s,v,a,b)函数表达的意义是表达式s关于变量v从a到b求和。例: 计算级数 的值分析:对于级数我们最先接触的就是常数项无穷级数,因为技术结果一
15、般较复杂,所以用simple求解最简形式,还有Inf为无穷大。示例程序如下:syms n;simple(symsum(3/n3,1,Inf) %simple求解最简形式,Inf为无穷大运行结果如下: 2.1.5 求解代数方程代数方程分为很多种,有简单有复杂,方法也有很多。一般多项式方程的根可为实数,也可为复数,可用MATLAB符号工具箱中的solve( )函数, MATLAB中求解代数方程常用函数solve格式如下:x,=solve(eqn1,eqn2,eqnn,x,)其中eqn表示的是式子,x等表示的是变量。例:求解方程5x+2=12 分析:为了计算的简单,同时为了避免需要验证的麻烦,这里选
16、用了基础的一元一次方程,直接用语句描述即可。示例程序如下:syms xx=solve(5*x+2=12,x)运行结果如下:2.1.6 求解常微分方程未知的函数以及它的某些阶的导数连同自变量都由一已知方程联系在一起的方程称为微分方程。如果未知函数是一元函数,称为常微分方程。MATLAB中主要用dsolve求符号解析解。dsolve的基本格式是:s=dsolve(方程1, 方程2,初始条件1,初始条件2 ,自变量)例:求解微分方程求解析解。分析:求解此微分方程的解析解直接采用dsolve即可。Dsolve示例程序如下:syms y k%定义变量s=dsolve(Dy=-2*y+3*k+1,y(0)
17、=1,k);%程序主体部分simplify(s)%化简函数运行结果如下:2.2 矩阵的基本计算矩阵计算是线性代数中的核心内容,其对于整个数学系统的计算方面的意义是十分巨大的,集中它的基本运算包括最大值、最小值、均值、方差、转置、逆、行列式、特征值的计算、矩阵的相乘、右除、左除、幂运算等等,下面将具体介绍。矩阵的运算都是要以矩阵为基础的,本报告中决定选用一组矩阵来完成几乎全部可以完成的计算,那么首先就得生成矩阵了。矩阵的定义和分配可以 有多种方法。最简单的方法是有方括号包围的逐行给定元素。若定义一个标量,则方括号就不需要了。相同行中的元素是由一行或多个空格或一个逗号, 分隔,列由分号; 或回车键
18、分隔。没有结尾分号的每个命令在屏幕上显示出其结果。若结尾带分号,就执行计算,但计算结果并不显示。如定义33矩阵如下: 则在命令窗口输入:A=2 5 4;5 3 7;8 6 10屏幕显示结果为:同上依次输入:B=-8 9 -7;5 6 2;-1 5 13就可以得到B矩阵(如下)。 2.2.1 矩阵的最大值、最小值MATLAB中max函数可以表示求每一列的最大值,那么经过分析可以知道,先求出每一列的最大值然后求出这些最大值里面的最大值,下面以A矩阵为例。示例程序如下:y=max(A)x=max(y)运行结果如下:对比A中数值发现结果是正确的。MATLAB中求最小值的函数为min,求解思路与求最大值
19、思路类似,仍然以矩阵A为例。示例程序如下:y=min(A)x=min(y)运行结果如下:对比A中数值发现结果是正确的。2.2.2 矩阵的均值、方差MATLAB中求解矩阵均值的函数是mean,它的具体用法如下:mean(A,1)表示对列取平均,mean(A,2)表示对行取平均,mean(A)则默认为mean(A,1)。下面以矩阵B分别举例,程序示例如下:a=mean(B)b=mean(B,2)运行结果如下:观察可知,a,b分别显示出了矩阵行列的均值。如果想求矩阵的均值可以进行2次操作。示例程序如下:c=mean(a)运行结果如下:可以观察到c的值就是矩阵b所有值的均值。MATLAB中求解矩阵方差
20、的函数是var,它的常用格式是V = var(X),如果X是一个矩阵,var(X)返回一个包含矩阵X每一列方差的行向量。下面还是以矩阵B来示例,程序如下:d=var(var(B)运行结果如下:2.2.3 矩阵的转置矩阵的一个重要的运算是转置,如果A是一个实数矩阵,那么它被转置时,第1行变成第1列,第2行变成第2列,依此类推,一个mn矩阵变为一个nm矩阵。如果矩阵是方阵,那么这个矩阵在主对角线反映出来。MATLAB中求转置的函数是conj,以A为例,编程如下:e=conj(A)运行结果如下: 可以观察到矩阵A转置成了矩阵e。2.2.4 矩阵的逆、行列式 实际中求矩阵的逆跟行列式均要求矩阵是方阵,
21、MATLAB中求逆的函数是inv,格式为Y = inv(X), 求矩阵的函数是det,格式为Y = det(X)。下面仍以矩阵A 为例来编程示例,如下:f=inv(A)运行结果如下:编程如下:c=det(A)运行结果:2.2.5 矩阵特征值的计算矩阵的特征值的求解,就是找到方程组的解:其中是一个标量,x是一个长度为n的列向量。标量是A的特征值,x是相对应的特征向量。对于实数矩阵A来说,特征值和特征向量可能是复数。一个 nn的矩阵有n个特征值,表示为。求矩阵的特征值和特征向量可用eig函数。Eig(A)求包含矩阵A的特征值的向量。V,D =eig(A)产生一个矩阵A的特征值在对角线上的对角矩阵D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB的基本运算及基于MATLAB的图像滤波设计 精品资料 MATLAB 基本 运算 基于 图像 滤波 设计 精品 资料
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内