Matlab实验(2009)

合集下载

电力电子课程设计matlab仿真实验

电力电子课程设计matlab仿真实验

一.课程设计目的(1)通过matlab的simulink工具箱,掌握DC-DC、DC-AC、AC-DC电路的仿真。

通过设置元器件不同的参数,观察输出波形并进行比较,进一步理解电路的工作原理;(2)掌握焊接的技能,对照原理图,了解工作原理;(3)加深理解和掌握《电力电子技术》课程的基础知识,提高学生综合运用所学知识的能力;二.课程设计内容第一部分:simulink电力电子仿真/版本matlab7.0(1)DC-DC电路仿真(升降压(Buck-Boost)变换器)仿真电路参数:直流电压20V、开关管为MOSFET(内阻为0.001欧)、开关频率20KHz、电感L为133uH、电容为1.67mF、负载为电阻负载(20欧)、二极管导通压降0.7V(内阻为0.001欧)、占空比40%。

仿真时间0.3s,仿真算法为ode23tb。

图1-1占空比为40%的,降压后为12.12V。

触发脉冲、电感电流、开关管电流、二极管电流、负载电流、输出电压的波形。

图1-2占空比为60%的,升压后为28.25V。

触发脉冲、电感电流、开关管电流、二极管电流、负载电流、输出电压的波形。

图1-3•图1-4升降压变换电路(又称Buck-boost电路)的输出电压平均值可以大于或小于输入直流电压,输出电压与输入电压极性相反,其电路原理图如图1-4(a)所示。

它主要用于要求输出与输入电压反相,其值可大于或小于输入电压的直流稳压电源工作原理:①T导通,ton期间,二极管D反偏而关断,电感L储能,滤波电容C向负载提供能量。

②T关断,toff期间,当感应电动势大小超过输出电压U0时,二极管D导通,电感L经D向C和RL反向放电,使输出电压的极性与输入电压在ton期间电感电流的增加量等于toff期间的减少量,得:由的关系,求出输出电压的平均值为:上式中,D为占空比,负号表示输出与输入电压反相;当D=0.5时,U0=Ud;当0.5<D<1时,U0>Ud,为升压变换;当0≤D<0.5时,U0<Ud,为降压变换。

Matlab(R2009a版)-第8讲 计算方法的MATLAB实现

Matlab(R2009a版)-第8讲 计算方法的MATLAB实现
MATLAB2009 从入门到精通
2019/2/16 1
课程主要内容
• • • • • • • • • • 第1章 MATLAB简介 第2章 数值运算 第3章 单元数组和结构 计 第8章 计算方法的MATLAB实现 第9章 优化设计 第10章 SIMULINK仿真初探
16
2019/2/16
• 对角变换
• U=diag(x)返回矩阵x主对角线上的元素,返回结 果是一列向量形式; • U=diag(x,k)返回第k条对角线上的元素值。 • 当x为向量时生成矩阵。
2019/2/16
17
程序实例
• >> a=[12 -3 3;-18 3 -1;1 1 1]; • >> diag(a) • ans = • • • 12 3 1
12x1 3x2 3x3 15 18x1 3x2 x3 15 x x x 6 1 2 3
2019/2/16
9
程序实例
• • • • • • • • • • • • >> a=[12 -3 3;-18 3 -1;1 1 1]; >> b=[15;-15;6]; >> x1=a\b x1 = 1.0000 2.0000 3.0000 >> x2=inv(a)*b x2 = 1 2 3
2019/2/16
14
程序实例
• >> a=[12 -3 3;-18 3 -1;1 1 1]; • >> tril(a) • ans = • • • 12 0 0 -18 3 0 1 1 1
2019/2/16
15
程序实例
• • • • • • • • • • >> tril(a,1) ans = 12 -3 0 -18 3 -1 1 1 1 >> tril(a,-1) ans = 0 0 0 -18 0 0 1 1 0

Matlab(R2009a版)_MATLAB简述

Matlab(R2009a版)_MATLAB简述

结束迭代;否则,转(5);
(5)若k=n则令:X(0)X(k1),转(2)开始新的一轮迭代,
否则转(6), (6)构造新的迭代方向:
k
f ( X ) (k1) 2 f (X (转k) )(23)
并令k=k+1,
S (.k 1 ) f( X (k 1 ))kS (k )
4-4 共轭梯度法
例题:用MATLAB使用共轭梯度法求解无约束优化问题,已知:
(2)产生中间插入点并计算其函数值
x1a0.38(b2a),f1f(x1) x2a0.61(b8a),f2f(x2) (3)比较函数值 f1和 f 2,确定区间的取舍:
若 f1 f2 ,则新区间 a,ba,x2
令 bx2,x2x 1,f2f1 记 N0 0
若 f1 f2 ,则新区间 a,bx1,b
➢编辑已有的M文件:
从MATLAB命令窗口的Flie菜单中选择
Open M-file命令。
21
函数文件
函数文件是另一种形式的M文件,每一个函数文 件都定义一个函数。Matlab提供的标准函数大部分 是由函数文件定义的。
函数文件的基本结构 函数文件由function语句引导,其基本结构为: function 输出形参表 = 函数名(输入形参表) 注释说明部分 函数体语句 其中,以function开头的一行为引导行,表示该M 文件是一个函数文件。 当输出形参多于一个时,应该用方括号括起来。
>> syms x; >> f=sin(x)+3*x^2; >> g=diff(f,x)
13
符号表达式的替换
用给定的数据替换符号表达式中的指定的符号变量
subs(f,x,a) 用 a 替换字符函数 f 中的字符变量 x a 是可以是 数/数值变量/表达式 或 字符变量/表达式

MATLAB语言上机实习报告

MATLAB语言上机实习报告

MATLAB语⾔上机实习报告课程名称:测绘程序设计课程性质:必修测绘程序设计实习报告学院:测绘⼯程学院班级:1220501实习地点:核⼯楼410班级组号:学⽣姓名:赵建新学⽣学号:201220050163指导教师:王建强⽇期:年⽉⽇⽬录实验1 matlab软件练习 (2)实验2 matlab解算⽅程 (5)实验3 matlab绘图 (8)实验4 ⾓度弧度互换 (12)实验5 坐标正反算 (15)实验6 ⽔准⽹计算 (17)实验7 导线⽹计算 (20)实验8 坐标转换 (23)实验⼼得 (26)实验1 matlab软件练习[实验项⽬]:MATLAB软件练习。

[实验⽬的]:熟悉对MATLAB的操作。

[实验仪器设备]:计算机及MATLAB R2009a程序设计语⾔。

[实验原理]:Matlab主要应⽤于数学计算、系统建模与仿真、数学分析与可视化、科学与⼯程制图和⽤户界⾯设计等。

Matlab是⼀个交互式开发系统,其基本数据要素是矩阵。

它的语法规则简单,⽤解释⽅式⼯作,编写程序和运⾏同步,键⼊程序⽴即得出结果,⼈机交互更加简洁和智能化。

[实验内容]:打开matlab,将⿏标放⾄菜单栏和⼯具栏图标上,了解其功能特点以及单击某个图标,熟悉它的界⾯、操作。

例如:(1)命令窗⼝:是进⾏matlab操作最主要的窗⼝,可以把命令窗⼝看成“草稿本”。

在命令窗⼝输⼊matlab的命令和数据后按回车键,⽴即执⾏运算并现实结果。

语句形式为:>>变量=表达式。

(2)历史命令窗⼝:位于界⾯的左下侧,⽤来记录并显⽰已经运⾏过的命令、函数及表达式。

在默认设置下,该窗⼝会显⽰⾃安装⼀来所有使⽤过的命令的历史记录,并标明每次启动软件的时间。

(3)当前⽬录浏览窗⼝:界⾯的左上侧,⽤来设置当前⽬录,并显⽰当前⽬录下的M-⽂件、Mat⽂件、Mdl⽂件等⽂件信息,窗⼝中包括⽂件类型、⽂件⼤⼩、最后修改时间和⽂件的说明信息等。

[实验数据记录及处理]:(1)运⾏matlab,界⾯是⼀个⾼度集成的⼯作界⾯,主要由菜单栏、⼯具栏、当前⼯作⽬录窗⼝、⼯作空间管理窗⼝、历史命令窗⼝和命令窗⼝等组成,如下图所⽰:(2)建⽴“M-⽂件”(“M-⽂件编辑/调试窗⼝集合了代码编辑和程序调试的功能,兵可以分析程序的运⾏效率)[实验结论]:Matlab是⼀款很好的应⽤于数学计算、系统建模与仿真、数学分析与可视化、科学与⼯程制图和⽤户界⾯设计等软件。

Matlab2009安装图解教程

Matlab2009安装图解教程

Matlab2009a(7.8)安装图解教程及下载与时俱进,前段时间将那个Matlab7.6给卸载了,重新安装上Matlab7.8了,哈哈,中国人嘛都追求时髦,更何况免费的!一、Matlab2009a下载地址和说明:/thread-2081-1-1.html二、License文件和破解方法:crack.rar (5.45 KB)(免费下载)复制内容到剪贴板代码:we offer you two ways to license matlab r2009a:standalone1) choose "install manually without using the internet"2) enter the "file installation key"11111-11111-02011-442703) use "license_standalone.dat" when asked for license filenetwork1) choose "install manually without using the internet"2) enter the "file installation key"11111-11111-02011-067173) if neccessary install "license manager"4) use "license_server.dat" when asked for license fileenjoy !三、Matlab2008a/b安装图解教程和常见问题解答:/thread-472-1-2.html四、Matlab2009a安装过程图解,我们分解为13步step1插入DVD 安装盘或者双击下载的安装程序。

安装开始,跳出欢迎对话框,选择 Install manually withoutusing the Internet 并点击 Next 。

matlab实验内容

matlab实验内容

2017年-matlab实验内容2017年文化素质课 MATLAB实验实验一、MATLAB基本操与运算基础【实验目的】(1)熟悉MATLAB基本环境,掌握MATLAB变量的使用(2)掌握MATLAB数组的创建(3)掌握MATLAB数组和矩阵的运算【实验内容及步骤】熟悉建立数组的方法:逐个元素输入法、冒号法、特殊方法(使用函数linspace建立)1、有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b?(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*B?(3)设a=10,b=20;求i=a/b=?与j=a\b= ?(4)设a=[1 -2 3;4 5 -4;5 -6 7](5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?(6)请写出完成下列计算的指令:a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) %转化为列向量(8)写出下列指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B2、设有矩阵A和B,A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 2223 24 25],B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]1)求它们的乘积C2)将矩阵C的右下角3x2子矩阵赋给D3、完成下列操作1)求[100,999]之间能被61整除的数及其个数(提示:先利用冒号表达式,再利用find和length 函数。

matlab与通信仿真实验指导书(上)

《Matlab与通信仿真》实验指导书(上) 刘毓杨辉徐健和煦黄庆东吉利萍编著通信与信息工程学院2009-12目录第一章 MALTAB基础知识 (1)1.1MATLAB基础知识 (1)1.2MATLAB基本运算 (2)1.3MATLAB程序设计 (7)第二章 MATLAB计算结果可视化和确知信号分析 (13)2.1计算结果可视化 (13)2.2确知信号分析 (17)第三章随机信号与数字基带仿真 (24)3.1基本原理和实现示例 (24)3.2蒙特卡罗算法 (31)第四章模拟调制MATLAB实现 (35)4.1模拟调制 (35)4.2AM调制解调的MATLAB实现 (36)第五章模拟信号的数字传输 (45)5.1脉冲编码调制 (45)5.2低通抽样定理 (45)5.3均匀量化原理 (46)5.4非均匀量化 (48)第六章数字频带传输系统 (52)6.1数字频带传输原理 (52)6.2信道加性高斯白噪声功率的讨论 (53)6.3仿真分析 (54)第七章通信系统仿真综合实验 (68)7.1基本原理 (68)7.2实验内容 (68)第一章 MALTAB基础知识本章目标●了解MATLAB 程序设计语言的基本特点,熟悉MATLAB软件运行环境●掌握创建、保存、打开m文件及函数的方法●掌握变量等有关概念,具备初步的将一般数学问题转化为对应的计算机模型并进行处理的能力1.1 MATLAB基础知识1.1.1 MATLAB程序设计语言简介MATLAB,Matrix Laboratory的缩写,是由MathWorks公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。

与大家常用的Fortran和C等高级语言相比,MATLAB的语法规则更简单,更贴近人的思维方方式,被称为“草稿纸式的语言”。

MATLAB软件主要由主包、仿真系统(simulink)和工具箱(toolbox)三大部分组成。

1.1.2 MATLAB界面及帮助MATLAB基本界面如图1-1所示,命令窗口包含标题栏、菜单栏、工具栏、命令行区、状态栏、垂直和水平波动条等区域。

MATLAB_2009b安装教程

MATLAB2009b安装教程首先,用压缩软件解压(winmount或winrar)安装包,解压到一个容易找的地方。

双击matlab.exe,就得到以下画面。

选择第二个选项:Install without using the Internet,然后单击Next>。

出现协议确认的界面,直接选择Yes,点击Next>。

接下来要输入一个Key,选择第一个,然后把你解压后的文件夹中的crack文件夹打开,打开里面的install.txt文件,复制standalone下的那一串数字,再粘贴到安装界面的框里面,再单击Next>。

选择第一选项typical在单击NEXT输入你准备安装MATLAB的地址(地址中只能是字母和数字),单击Next>,如果你输入的这个文件夹不存在,会询问是否创建,选择Yes,创建就可以了。

到此,就会显示你安装MATLAB的所有设置,检查没问题的话点击Install>,如果发现和你计划的不一样,想要修改的话,点击<Back退回去继续前面的过程。

接下来你就等待安装了,装过程中最好不要运行其他的大软件,只需要十多分钟,否则就很慢了。

安装完成之后,直接点Next>。

选择Activate MATLAB,点击Next>。

选择第二个选项,Activate manually without the Internet,点Next>。

出现离线激活界面,选择第一个选项,然后点击Browse…,找到你解压的文件夹中的crack文件夹,打开,选择lic_standalone.dat,再点击Select,就返回到离线激活界面,那个输入框中已经有了lic_standalone.dat的地址,点击Next>。

至此,安装完毕,Activation is complete。

点击Finish。

这样,MATLAB就安装并激活了,软件本身没创建桌面快捷方式,在安装目录下bin文件夹里找到matlab.exe发送到桌面快捷方式就行了。

MATLAB实验及程序

实验一a=[1,2,3;4,5,6;7,8,9] b= repmat(a,2,2)B(24)=9实验二1、使用matlab命令统计randn(5)生成的矩阵里,有多少个元素小于0,将小于0元素个数存变量c中并将这些小于零元素存变量d中。

(实验报告要求:写出命令)a=randn(5)b=find(a<0);c=length(find(a<0))d=a(b)2、建立一个字符数组,内容如下所示:(实验报告要求:写出命令)A B C DE F G Ha b c da=['A B C D''E F G H''a b c d']3、已知有一个矩阵A(假如不知道其具体信息),请计算其元素个数(请先用实际矩阵来验证计算方法是否正确)。

(实验报告要求:写出正确计算方法的命令)A=randn(3,4)B=numel(A)4、已知有一个元胞数组B=[{ones(2,3,2)},{'Hello, Matlab'};{[4 5 6]},{1:100}],想获取字符串'Matlab',应输入什么命令?(实验报告要求:写出命令)f=B{1,2}(7:end)5、要从上题所建元胞数组B中获取列向量[4;5;6],可以有哪几种方法?(实验报告要求:写出命令及结果)方法1: i=B{2,1}(:)方法2: j=reshape(B{2,1},3,1)6、已知有两个学生的信息如下,请在matlab中创建结构对其进行存储,并算=['姓名''张三''李四']student.shuxue=[8778]student.yuwen=[7581 ]student.yingyu=[5560]实验三实验四:二维绘图(1)在同一个窗体(figure1)中画出正弦函数和余弦函数的图象。

要求如下:◆正弦图象用蓝色实线,时标用方格;◆余弦图象用黄色虚线,时标选向下三角形;◆为整个图像加中文标题;◆为x和y轴加轴标题;◆改x轴的单位为pi/2的倍数;◆增加图例;◆在图中合适的位置增加“正弦曲线”和“余弦曲线”两处文本信息。

Matlab(R2009a版)_MATLAB简述课件

(t + y)/(b + y) + (b^2*t - 4*a*c)^(1/2)
学习交流PPT
16
>> f2=subs(f1,b,y) f2 =
(t + y)/(2*y) + (t*y^2 - 4*a*c)^(1/2) >> f3=subs(f2,t,2) f3 =
(y + 2)/(2*y) + (2*y^2 - 4*a*c)^(1/2) >> f4=subs(f3,y,3) f4 =
学习交流PPT
14
符号表达式的替换
subs函数调用格式为:
➢R=subs(s) 使用工作空间中的变量来替换符号表达式s中的
所有符号变量,如果没有指定某符号变量的值,该符
号变量不会被替换。
➢R=subs(s,new) 使用新的符号变量new来替换原来符号表达式s中
的默认变量。
➢R=subs(s,old,new) 使用新的符号变量new来替换原来符号表达式s
➢建立新的M文件: 从MATLAB命令窗口的File菜单中选择New菜
单项,再选择M-file命令。
➢编辑已有的M文件: 从MATLAB命令窗口的Flie菜单中选择Open
M-file命令。
学习交流PPT
21
函数文件
函数文件是另一种形式的M文件,每一个函数文 件都定义一个函数。Matlab提供的标准函数大部分是 由函数文件定义的。
若 N0 0 ,则取 x 1 a 0 .3( b 8 a )2 f1 , f( x 1 ) 若 N0 1 ,则取 x 2 a 0 .6( b 1 a )f 8 2 , f( x 2 )
转(3)进行新的区间缩小。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab 7.6简单入门Matlab是Mathworks公司推出的科技应用软件.●启动点击Matlab/bin/matlab.exe, 打开Matlab的工作窗(或指令窗)●Matlab的使用方式①指令行操作之直接交互工作方式;②使用matlab编程语言之程序设计方式.●交互方式的使用:在Matlab工作窗中一般输入以下三种指令行:①命令②表达式③赋值语句:变量=表达式●Matlab的程序工作方式step 1. File→New→M-file %打开Matlab程序工作窗Editor/Debugger;step 2.编写Matlab程序;Tools→Run●基本命令:quit %退出Matlabclc %清除指令窗口clear %从内存中清除变量和函数clf %清除当前图pack %合并工作内存中的碎块dir %列出文件cd %改变或显示当前工作目录disp %显示矩阵和文字内容size %确定矩阵的维数demo %演示程序help %在线帮助delete %删除文件whos %列出工作内存中的变量细节xpiamge %图像处理性能的演示imagedemo %同上●基本函数figure %创建图形窗口image %创建图形窗口imshow %显示图像colormap %设置配色图rgb2hsv %将rgb图像转换成hsv图像hsv2rgb %将hsv图像转换成rgb图像rgb2ycbcr %将rgb图像转换成ycbcr图像ycbcr2rgb %将ycbcr图像转换成rgb图像abs %幅值fft2 %二维快速Fourier变换ifft2 %二维快速Fourier反变换log %自然对数dct2 %二维快速余弦变换idct2 %二维快速余弦反变换image %与imshow相似imfinfo %显示图像参数●数据类型及运算1.Matlab的基本数据类型为矩阵(实数等皆看成1*1的矩阵),矩阵的基本运算同线性代数:A+B %矩阵相加A-B%矩阵相减A*B %矩阵相乘A.*B %矩阵对应元素相乘2.标量与矩阵进行运算的规定:S+B=sE+Bs-B=sE-BB-s=B-sEs*B=sE*B3.其他运算:inv(B)=B-1A^n=A n, A.^n=(a ij^n)exp(A)=(exp(a ij))log(A)=(log(a ij))f(A)=(f(a ij))A’=A/●矩阵的输入直接输入A=[1 2 3;4 5 6;7 8 9]矩阵编辑器edit A●指令行结果的输出(有如下三个要点)指令行后有分号, 不输出结果指令行后无分号, 输出运算结果表达式后按回车, 则ans=之后, 给出结果●冒号运算符设A是m*n矩阵B=A(:,r) %由第r列元素组成的矩阵B=A(s,:) %由第s行元素组成的矩阵B=A(s1:s2,r1:r2) %取A的子矩阵B=A([1 3 5],:) %由A的1,3,5行组成的矩阵●给矩阵作标志L=X<=0.5; %标志矩阵X中其值小于0.5的元素的位置(小于0.5的元素替换为1, 其余为零,作成一个新矩阵)●Laplacian算子del2( )%五点离散拉普拉斯算子●Matlab程序控制流1.注释%号为串首元素的一行字符串2.循环结构实验1 Matlab基本运算习题1 四则运算.习题2 矩阵运算.实验2 认识数字图像imfinfo('test.jpg') %显示图像文件1.jpg的属性习题1 读一幅图像(灰度值图像或彩色图像), 研究其图像参数.A=imread ('test.jpg'); %读图像1.jpg,并将像素值阵列赋给矩阵Aimshow(A); %显示图像AA ↙%显示图像A的像素值(若图像过大,显示时间就会过长,按ctrl+C终止)whos↙%显示内存中各变量的类型,包括A显示图像A的一个局部:B=A(1:100,1:100,:);C= A(101:200, 101:200,:);imshow(B);imshow(C);subplot(1,3,1),imshow(A);subplot(1,3,2),imshow(B);subplot(1,3,3),imshow(C);习题2 读一幅彩色图像,以灰度值图像的形式显示其RGB各分量,并比较之.B=imread('test.jpg'); %读彩色图像test.jpg,并将像素值阵列赋给矩阵Bimshow(B); %显示图像BB ↙%显示图像B的像素值whosBR=B(:,:,1); %B的红色分量BG=B(:,:,2); %B的绿色分量BB=B(:,:,3); %B的蓝色分量imshow(BR);imshow(BG);imshow(BB);whos%将三幅图像放在一起进行比较:subplot(1,3,1),imshow(BR);subplot(1,3,2),imshow(BG);subplot(1,3,3),imshow(BB);习题4读一幅彩色图像,以彩色图像的形式显示其RGB各分量,并比较其异同.BRR=B;BRR(:,:,2)=0; %去掉B的绿色分量BRR(:,:,3)=0; %去掉B的蓝色分量imshow(BRR);BGG=B;BGG(:,:,1)=0;BGG(:,:,3)=0; %去掉B的红、蓝色分量imshow(BGG);BBB=B;BBB(:,:,1)=0;BBB(:,:,2)=0; %去掉B的红、绿色分量imshow(BBB);%将三幅图像放在一起进行比较:subplot(1,3,1),imshow(BRR);subplot(1,3,2),imshow(BGG);subplot(1,3,3),imshow(BBB);习题5读一幅彩色图像,进行颜色模式转换,以灰度值图像的形式显示其HSI各分量,并比较其异同.C=rgb2hsv(B); %将彩色图像进行模式转换H=C(:,:,1);S=C(:,:,2);I=C(:,:,3);imshow(H); %显示B的色度分量imshow(S); %显示B的饱和度分量imshow(I); %显示B的亮度分量习题6 研究imwrite,将一个矩阵里的数据写进一个jpg图像文件里.习题7 第二章讲义第11页程序(傅立叶变换与滤波)total_time_t=10; %总时间dalta_t=0.01; %采样间隔frequency=1/ dalta_t;dalta_u=frequency /N;N= total_time_t / dalta_t; %采样点数t=0: dalta_t: total_time_t;y=sin(2*pi*t)+sin(4*2*pi*t)+sin(8*2*pi*t);subplot(4,1,1);plot(t,y);%显示10秒原始信号ffty=fft(y); %y 的傅立叶变换u=N/2+1; %取y 的傅立叶变换数据用于显示half_ffty= ffty (1:u);i=0: frequency /N: frequency /2; % frequency/N 为频率域空间采样频率 subplot(4,1,2);plot(i,abs(half_ffty));%显示信号的傅立叶变换h=5;w=4;%清除频率为4的信号,清除宽度为hffty (N-w/dalta_u-h:N-w/dalta_u+h)=0;ffty (w/dalta_u-h:w/dalta_u+h)=0;w=8; %清除频率为8的信号,清除宽度为hffty (N-w/dalta_u-h:N-w/dalta_u+h)=0;ffty (w/dalta_u-h:w/dalta_u+h)=0;half_ffty = ffty (1:u);subplot(4,1,3);plot(i,abs(half_ffty));%显示滤波以后的信号的频谱z=ifft(ffty);subplot(4,1,4);plot(t,real(z)); %显示滤波以后的信号012345678910-5505101520253035404550050010000510152025303540455005001000012345678910-202习题8 第二章讲义第25页,对图象进行压扩变换%clear all;I=imread('A.jpg');imshow(I);pause;tt=255;maxmax=log(1+tt*tt)/log(1+tt);y=(255/maxmax)*log(1+double(I)*tt)/log(1+tt);yy=uint8(y);imshow(yy);习题9 第二章讲义第42页,对图象进行像素复制整数倍放大. clear all;I=imread('AA.jpg');II=size(I);t=2;X=II(1)*t;Y=II(2)*t;B=zeros(X,Y);for i=1:X/tfor j=1:Y/tB(i*t-1,j*t-1)=I(i,j);B(i*t-1,j*t)=I(i,j);B(i*t,j*t-1)=I(i,j);B(i*t,j*t)=I(i,j);endendimwrite(uint8(B),'b.bmp','bmp');习题10 第二章讲义第74页备注中程序,对bmp图象文件进行操作实验3 图像变换习题1对数字图像作图像变换,观察其振幅谱clear all;I=imread('fig6.jpg');subplot(2,2,1);imshow(I);F=FFT2(I);subplot(2,2,2);imshow(log(1+abs(F)),[0 10],'notruesize');C=dct2(I);subplot(2,2,3);imshow(log(1+abs(C)),[0 10],'notruesize');H = double(hadamard(512));HH=H*double(I)*H';subplot(2,2,4);imshow(log(1+abs(HH)),[0 10],'notruesize');习题2 对数字图像作图像变换,观察其振幅谱,并做反变换clear all;I=imread('fig6.jpg');subplot(2,3,1);imshow(I);C=dct2(I);subplot(2,3,2);imshow(log(1+abs(C)),[0 10],'notruesize');CC=idct2(C);subplot(2,3,3);imagesc(abs(CC));H = double(hadamard(512));HH=H*double(I)*H';subplot(2,3,5);imshow(log(1+abs(HH)),[-10 10],'notruesize'); HHH=H*HH*H'*512*512;subplot(2,3,6);imagesc(abs(HHH));习题3 对图像作图像变换,去其高频分量,再反变换clear all;a=imread('fig5.jpg');f=fft2(a);ff=f;h=0.99;xy=imfinfo('fig5.jpg');y=xy.Width/2;x=xy.Height/2;hx=x*h;hy=y*h;%(x,y)为图象的中心%ff(x-hx:x+hx,y-hy:y+hy)=0;for i=1:xy.Widthfor j=1:xy.Heightif (i-x)^2+(j-y)^2 < hx^2ff(i,j)=0;endendendfff=ifft2(ff);subplot(2,3,1);imshow(a);xlabel('A:原始图像');subplot(2,3,2);imshow(log(1+abs(f)),[0 10],'notruesize');xlabel('Fourier变换'); subplot(2,3,3);imshow(log(1+abs(ff)),[0 10],'notruesize');xlabel('Fourier变换的高频置0');subplot(2,3,4);imshow(abs(fff),[0,255]);xlabel('B:高频置0后再反变换');fz=fff-double(a);n=5;s=5*1/(exp(n*log(h)));subplot(2,3,6);imshow(abs(s*fz),[0,255]);xlabel('A-B:原图象减去“高频置后再反变换”图象');A:原始图像Fourier变换Fourier变换的高频置0B:高频置0后再反变换A-B:原图象减去“高频置后再反变换”图象习题 4傅立叶变换的逆变换,可以通过求其正变换而得到colormap(gray);a=imread('abc.jpg');%b=uint8(a(:,:,1));subplot(2,2,1);imshow(a);xlabel('原始图像');f=fft2(double(a));subplot(2,2,2);imshow(log(1+abs(f)),[0 10],'notruesize');xlabel('傅立叶变换');ff=fft2(double(conj(f)));subplot(2,2,3);cc=abs(ff);imagesc(cc);xlabel('傅立叶变换的共轭的傅立叶变换');fff=ifft2(f);subplot(2,2,4);cc=abs(fff);imagesc(cc);xlabel('傅立叶反变换');习题5 傅立叶变换的周期性clear all;a=imread('fig5.jpg');f=fft2(a);ij=size(a);i1=ij(1);j1=ij(2);n=2;ff=ones(n*i1,n*j1);for i=1:nfor j=1:nff((i-1)*i1+1:i*i1,(j-1)*j1+1:j*j1)=f(:,:);endendfff=ifft2(ff);subplot(2,2,1);imshow(a);xlabel('A:原始图像');subplot(2,2,2);imshow(log(1+abs(f)),[0 10],'notruesize');xlabel('Fourier变换'); subplot(2,2,3);imshow(log(1+abs(ff)),[0 10],'notruesize');xlabel('倍Fourier变换'); subplot(2,2,4);imshow(abs(fff),[0,255]);xlabel('倍反变换');A:原始图像Fourier变换倍Fourier变换倍反变换习题6 图像重建a=imread('fig6.jpg');dt=180;r=radon(a,0:dt); %从0度开始,对b进行180个角度扫描,步长为1度ir=iradon(r,0:dt); %对投影数据r进行重建subplot(1,3,1);imshow(a);subplot(1,3,2);imagesc(r);subplot(1,3,3);imagesc(ir);5010015010020030040050060070010020030040050050100150200250300350400450500实验4 图像增强直接灰度变换 习题1 图象反转 习题2对数变换习题3幂次变换AA=imread('A.jpg');CC=double(AA(:,:,1))+double(AA(:,:,2))+double(AA(:,:,3)); BB=CC; WH=size(CC); W=WH(1); H=WH(2); for i=1:W for j=1:HBB(i,j)=CC(i,j)+255*(1/(CC(i,j)+1))*CC(i,j); %BB(i,j)=255-CC(i,j);%BB(i,j)=255/log(155)*log(1+CC(i,j)); end endcolormap(gray);subplot(1,2,1),imagesc(AA); subplot(1,2,2),imagesc(BB);习题4 位面图切割 colormap(gray); bb=imread('head.jpg'); for k=1:8cc=rem(double(bb),2^k);ee=fix(cc/2^(k-1));ff=ee*250;subplot(2,4,k),imagesc(ff); title(k-1);end;50100150200250300150100150200250300250100150200250300350100150200250300450100150200250300550100150200250300650100150200250300750100150200250300●数据隐藏b=imread('a.bmp');%c=b(:,:,1);bb=imread('b.bmp');%请用图画做一个水印图象b.bmp与a.bmp规格要相同cc=rem(double(bb),2);for k=1:8d=double(c)+2^(k-1)*double(cc);%subplot(2,4,k),imshow(uint8(d));subplot(2,4,k),imagesc(d);%subplot(2,4,k),image(d);title(k-1);end;●图像的灰度直方图a=imread('a.jpg');b=a(:,:,1);imshow(b);figure, imhist(b,64); %作b的灰度直方图,64 可改为128, 256等●直方图均衡化a=imread('a.jpg');b=a(:,:,1);imshow(b);c=histeq(b); %对b进行直方图均衡化imshow(c) ;figure, imhist(b,64); %作b的灰度直方图,64 可改为128, 256等●领域平均法平滑滤波a=imread('a.jpg');b=a(:,:,1);c=[0.1 0.1 0.10.1 0.2 0.10.1 0.1 0.1];d=conv2(b,c);imagesc(d);●中值滤波a=imread('a.jpg');b=a(:,:,1);d=medfilt2(b,[ m n]); %[m,n]为滤波模板的规格imagesc(d);●拉普拉斯锐化a=imread('1.jpg');b=a(:,:,1);c=[0 1 01 -4 10 1 0 ]d=conv2(b,c);imagesc(d);●低通理想滤波a=imread('a.jpg');b=a(:,:,1);f=fft2(b);ff=f;h=10;xy=iminfo('a.jpg');x=xy.Width/2;y=xy.Height/2; %(x,y)为图像的中心ff[x:y,x+h:y+h]=0;fff=ifft2(ff);高通滤波a=imread('a.jpg');b=a(:,:,1);f=fft2(b);ff=f;fff=fftshift(ff);fff[x:y,x+h:y+h]=0;fff=fftshift(fff);ffff=ifft2(fff,b);习题5 Butterworth滤波器b=imread('tu05-15.gif');%b=(a(:,:,1)+a(:,:,2)+a(:,:,3))/3;colormap(gray);imagesc(b);c=size(b);x=c(1);y=c(2);for i=1:xfor j=1:yd(i,j)=double(b(i,j));end;end;e=fft2(d);f=e;n=-4;d00=x/5;d0=d00*d00;for i=1:xfor j=1:yf(i,j)=1/(1+(((i-x/2)^2+(j-y/2)^2)/d0)^n); end;end;g=f.*e;h=ifft2(g);imagesc(abs(h),[0,50]);xlabel('n=-4, d0=100');n=-4, d0=1005010015020025030035040045050050100150200250300350400450500习题6 中值滤波a=imread('fig6.jpg'); imshow(a); pause;d=medfilt2(a,[3 5]); imshow(d);与图象滤波相关的几个Matlab函数(1)imnoise参见imnoise_test.mI = imread('Fig45.jpg');J = imnoise(I,'salt & pepper',0.02);subplot(1,2,1), imshow(I);subplot(1,2,2),imshow(J);(2)fspecial(3)filter2参见filter2_test.mI = imread('cameraman.tif');subplot(2,2,1);imshow(I); title('Original Image');H = fspecial('motion',20,45);MotionBlur = imfilter(I,H,'replicate');subplot(2,2,2);imshow(MotionBlur);title('Motion Blurred Image');H = fspecial('disk',10);blurred = imfilter(I,H,'replicate');subplot(2,2,3);imshow(blurred); title('Blurred Image');H = fspecial('unsharp');sharpened = imfilter(I,H,'replicate');subplot(2,2,4);imshow(sharpened); title('Sharpened Image');(4)medfilter2(5)fftshift参见fftshift_test.m实验六 彩色图象处理习题1 直方图的一个应用(真假币鉴别,仅供教学实验参考)a=imread('rmb.jpg');subplot(2,2,1);imagesc(a);xlabel(‘真币'); b=rgb2hsv(a); b1=b(:,:,1);subplot(2,2,2);imhist(b1,64);xlabel(‘色调'); b2=b(:,:,2);subplot(2,2,3);imhist(b2,64);xlabel(‘饱和度'); b3=b(:,:,3);subplot(2,2,4);imhist(b3,64); xlabel(‘亮度');假币501001502002500色调0饱和度0亮度习题2 运用调色板设计技术将灰度图像彩色化。

相关文档
最新文档