数字信号处理课件(第9章-MATELAB的实现).ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数字信号处理课件(第9章-MATELAB的实现).ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 课件 MATELAB 实现
- 资源描述:
-
1、第8章 MATLAB程序设计语言在信号处理中的应用 第8章 MATLAB程序设计语言 在信号处理中的应用 8.1 概述概述 8.2 基本数值运算基本数值运算 8.3 基本语句基本语句 8.4 MATLAB函数函数 8.5 MATLAB在信号处理中的应用举例在信号处理中的应用举例 第8章 MATLAB程序设计语言在信号处理中的应用 8.1 概概 述述 8.1.1 MATLAB程序设计语言简介程序设计语言简介 MATLAB,Matrix Laboratory的缩写,是由Mathworks公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。 与大家常用的Fortran和C等高级
2、语言相比,MATLAB的语法规则更简单,更贴近人的思维方式,被称之为“草稿纸式的语言”。截至目前,MATLAB已经发展到12.1版, 适用于所有32位的Windows操作系统, 按NTFS(NT文件系统)格式下完全安装约需 850 MB。MATLAB软件主要由主包、仿真系统和工具箱三大部分组成。 第8章 MATLAB程序设计语言在信号处理中的应用 8.1.2 MATLAB应用入门应用入门 1. MATLAB的安装与卸载的安装与卸载MATLAB软件在用户接口设计上具有较强的亲和力,其安装过程比较典型, 直接运行光盘中的安装向导支撑程序SETUP.exe, 按其提示一步步选择即可。MATLAB自身
3、带有卸载程序,在其安装目录下有uninstall子目录,运行该目录下的uninstall.exe即可; 也可以通过Windows系统的安装卸载程序进行卸载。 第8章 MATLAB程序设计语言在信号处理中的应用 2. MATLAB的启动与退出的启动与退出 MATLAB安装完成后,会自动在Windows桌面上生成一个快捷方式, 它是指向安装目录下binwin32matlab.exe的链接, 双击它即可来到MATLAB集成环境的基本窗口,通常称之为命令窗口。 MATLAB的退出与普通WIN32的程序一样, 值得一提的是它有一个自身专有的快捷键Ctrl+Q。 第8章 MATLAB程序设计语言在信号处理
4、中的应用 3. MATLAB界面简介界面简介 图 8-1 MATLAB基本界面命令窗口 标题栏菜单栏工具栏命令行区状态栏垂直和水平滚动条第8章 MATLAB程序设计语言在信号处理中的应用 1) 菜单栏 菜单栏中包括File、Edit、View、Web、Window和Help六个菜单项。这里着重介绍File项。 File项是数据输入/输出的接口, 包括10个子项, 这里重点介绍其中的5个子项: New: 新建文件项。 有四个选择: MFile(.M,文本格式的MATLAB程序文件, 可以直接通过文件名的方式在MATLAB环境下解释运行); Figure(图形); Model(仿真模型文件)和GU
5、I(可视化界面文件)。 第8章 MATLAB程序设计语言在信号处理中的应用 Open: 打开所有MATLAB支持的文件格式,系统将自动识别并采用相应的程序对文件进行处理。例如, 打开一个.m文件, 系统将自动打开M文件编辑器对它进行编辑。 Import Data.: 导入用于MATLAB处理的数据函数,包括各种图像文件、声音文件和.mat文件。 Save Workspace As.: 将工作空间的变量以.mat(二进制)或ASCII文本的形式存入文件。 Set Path.: 设置工作路径。可以打开路径设置(Set Path)对话框(图8-2),将用户自己建立的目录加入MATLAB的目录系统中,
6、 以便所编制的文件能够在MATLAB环境中直接调用。 第8章 MATLAB程序设计语言在信号处理中的应用 图图 8-2 路径设置对话框路径设置对话框 第8章 MATLAB程序设计语言在信号处理中的应用 单击Add Folder. 按钮可以将你的一个文件夹加入到系统路径中; Add with Subfolders. 允许把一个文件夹包括其所有的子文件夹加入到系统路径中。这两种操作均可以直观地在右侧的路径栏内看到结果。 选中一个加入的文件夹, 你可以利用Move to Top(移至所有路径的最前面), Move Up(上移一个), Move Down(下移一个), Move to Bottom(移
7、至所有路径的最后面)等四个按钮将改变文件在系统路径中的排列位置以利于对文件的搜索使用, 也可以利用Remove按钮将其删除。对路径操作完毕后,按Save按钮予以保存; 按Close按钮关闭本对话框; 按Revert按钮取消所有未保存的改动; 按Default按钮将还原到MATLAB安装时的路径设置; 按Help按钮则启动帮助系统解答疑难。 第8章 MATLAB程序设计语言在信号处理中的应用 2) 命令行区对输入命令的解释MATLAB按以下顺序进行: 检查它是否是工作空间中的变量, 是则显示变量内容。 检查它是否是嵌入函数, 是则运行之。 检查它是否是子函数。 检查它是否是私有函数。 检查它是否
8、是位于MATLAB搜索路径范围内的函数文件或脚本文件。 请注意,如果有两个以上的方案与输入的命令相匹配, MATLAB将只执行第一个匹配。 第8章 MATLAB程序设计语言在信号处理中的应用 4. MATLAB常用命令常用命令 表表8-1 MATLAB常用命令常用命令 第8章 MATLAB程序设计语言在信号处理中的应用 第8章 MATLAB程序设计语言在信号处理中的应用 8.2 基本数值运算基本数值运算 8.2.1 MATLAB内部特殊变量和常数内部特殊变量和常数 MATLAB内部有很多变量和常数, 用以表达特殊含义。常用的有: (1) 变量ans: 指示当前未定义变量名的答案。 (2) 常数
9、eps:表示浮点相对精度, 其值是从1.0到下一个最大浮点数之间的差值。该变量值作为一些MATLAB函数计算的相对浮点精度,按IEEE标准, eps=2-52,近似为2.2204e-016。 第8章 MATLAB程序设计语言在信号处理中的应用 (3) 常数Inf: 表示无穷大。 当输入或计算中有除以0时产生Inf。 (4) 虚数单位i,j: 表示复数虚部单位, 相当于 。 (5) NaN: 表示不定型值, 是由 0/0 运算产生的。 (6) 常数pi: 表示圆周率, 其值为3.141 592 653 589 7。 1第8章 MATLAB程序设计语言在信号处理中的应用 8.2.2 变量类型变量类
10、型 1 变量命名规则变量命名规则 MATLAB中对变量的命名应遵循以下规则: (1) 变量名可以由字母、数字和下划线混合组成, 但必须以字母开头。 (2) 字符长度不能大于31。 (3) 变量命名区分大小写。 第8章 MATLAB程序设计语言在信号处理中的应用 2 局部变量和全局变量局部变量和全局变量 局部变量是指那些每个函数体内自己定义的,不能从其他函数和MATLAB工作空间访问的变量。 全局变量是指用关键字“global”声明的变量。 全局变量名应尽量大写,并能反映它本身的含义。如果需要在工作空间和几个函数中都能访问一个全局变量,必须在工作空间和这几个函数中都声明该变量是全局的。 第8章
11、MATLAB程序设计语言在信号处理中的应用 8.2.3 矩阵及其运算矩阵及其运算 MATLAB具有强大的矩阵运算和数据处理功能, 对矩阵的处理必须遵从代数规则。 1 矩阵生成矩阵生成 1) 一般矩阵的生成一般矩阵的生成 对于一般的矩阵MATLAB的生成方法有多种。 最简单的方法是从键盘直接输入矩阵元素。直接输入矩阵元素时应注意: 各元素之间用空格或逗号隔开,用分号或回车结束矩阵行,用中括号把矩阵所有元素括起来。 第8章 MATLAB程序设计语言在信号处理中的应用 例例8-1 在工作空间产生一个33矩阵A可用MATLAB语言描述如下: A=1 2 3; 4 5 6; 7 8 9或 A=1 2 3
12、4 5 67 8 9运行结果: A= 1 2 3 4 5 6 7 8 9 第8章 MATLAB程序设计语言在信号处理中的应用 2) 特殊矩阵的生成 对于特殊的矩阵可直接调用MATLAB的函数生成。 用函数zeros生成全0矩阵:格式 B=zeros(m,n)生成mn的全0阵。 用函数ones生成全1矩阵:格式 B=ones(m,n)生成mn的全1阵。 用函数eye生成单位阵:格式 B=eye(m,n)生成mn矩阵, 其中对角线元素全为1,其他元素为0。 第8章 MATLAB程序设计语言在信号处理中的应用 2 矩阵的运算矩阵的运算 矩阵的运算有基本运算和函数运算两种类型。基本运算包括矩阵的加、减
13、、乘、除、乘方、求转置、求逆等,其主要特点是通过MATLAB提供的基本运算符、*、/()、等即可完成。函数运算主要是通过调用MATLAB系统内置的运算函数来求取矩阵的行列式(det(A)), 求秩(rank(A)), 求特征值和特征向量(V, Deig(A)), 求Jordan标准形(jordan(A))和矩阵分解等。需要用时可以参阅联机帮助和相关参考书。 第8章 MATLAB程序设计语言在信号处理中的应用 例例 8-2 矩阵的基本运算。A=1, 2, 3; 4, 5, 6;B =6, 5, 4; 3, 2, 1;C =A+B %计算两个矩阵的和D =B %计算矩阵B的转置E=A*D %做矩阵
14、乘法,必须要满足矩阵乘法的基本要求 %E应该是2阶方阵 F=det(E) %求E的行列式值 G=E(-1) %求E的逆 第8章 MATLAB程序设计语言在信号处理中的应用 输出结果: C= 7 7 7 7 7 7D= 6 35 24 1E= 28 1073 28F=54G= 0.5185 -0.1852 -1.3519 0.5185 第8章 MATLAB程序设计语言在信号处理中的应用 8.3 基本语句基本语句 8.3.1 程序控制语句程序控制语句 1.循环语句循环语句 MATLAB的循环语句包括for循环和while循环两种类型。 1) for循环 语法格式: for 循环变量 = 起始值:
15、步长: 终止值 循环体 end第8章 MATLAB程序设计语言在信号处理中的应用 起始值和终止值为一整形数,步长可以为整数或小数,省略步长时,默认步长为1。执行for循环时,判定循环变量的值是否大于(步长为负时则判定是否小于)终止值,不大于(步长为负时则小于)则执行循环体, 执行完毕后加上步长, 大于(步长为负时则小于)终止值后退出循环。 第8章 MATLAB程序设计语言在信号处理中的应用 例例 8-3 给矩阵A、B赋值。 MATLAB 语句及运行结果如下: k=5; a=zeros(k, k) %矩阵赋零初值 for m=1 k for n=1 k a(m,n)=1/(m+n-1); end
16、endfor i=m -1 1 b(i)=i; end 第8章 MATLAB程序设计语言在信号处理中的应用 运行结果: a= 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429 0.1250 0.1111b= 1 2 3 4 5 第8章 MATLAB程序设计语言在信号处理中的应用 2) while循环 语法格式: while 表
17、达式 循环体 end 其执行方式为:若表达式为真(运算值非0),则执行循环体; 若表达式为假(运算结果为0),则退出循环体,执行end后的语句。 第8章 MATLAB程序设计语言在信号处理中的应用 例例 8-4 a=3; while a a=a-1 end输出: a=2 a=1 a=0第8章 MATLAB程序设计语言在信号处理中的应用 2. 条件转移语句条件转移语句 条件转移语句有if和switch两种。 1) if语句 MATLAB中if语句的用法与其他高级语言相类似, 其基本语法格式有以下几种: 格式一: if 逻辑表达式 执行语句 end 第8章 MATLAB程序设计语言在信号处理中的应
18、用 格式二: if 逻辑表达式 执行语句1 else 执行语句2 end格式三: if 逻辑表达式1 执行语句1 else if 逻辑表达式2 执行语句2 end 第8章 MATLAB程序设计语言在信号处理中的应用 2) switch语句switch语句的用法与其他高级语言相类似, 其基本语法格式为: switch表达式(标量或字符串) case 值1 语句1 case 值2 语句2 otherwise 语句n end 第8章 MATLAB程序设计语言在信号处理中的应用 8.3.2 绘图语句绘图语句 常用的MATLAB绘图语句有figure、plot、subplot、stem等, 图形修饰语句
19、有title、axis、text等。 1 figure figure有两种用法,只用一句figure命令,会创建一个新的图形窗口,并返回一个整数型的窗口编号。figure(n)表示将第n号图形窗口作为当前的图形窗口, 并将其显示在所有窗口的最前面; 如果该图形窗口不存在, 则新建一个窗口,并赋以编号n。 第8章 MATLAB程序设计语言在信号处理中的应用 2 plot 线型绘图函数。用法为plot(x,y,s)。参数x为横轴变量,y为纵轴变量,s用以控制图形的基本特征如颜色、粗细等,通常可以省略,常用方法如表8-2所示。 表表8-2 常用绘图参数的含义常用绘图参数的含义 第8章 MATLAB程
20、序设计语言在信号处理中的应用 3 Stem 绘制离散序列图,常用格式stem(y)和stem(x,y)分别和相应的plot函数的绘图规则相同,只是用stem命令绘制的是离散序列图。 4 subplot subplot(m,n,i) 图形显示时分割窗口命令,把一个图形窗口分为m行,n列,mn个小窗口,并指定第i个小窗口为当前窗口。 第8章 MATLAB程序设计语言在信号处理中的应用 5 绘图修饰命令绘图修饰命令 在绘制图形时,我们通常需要为图形添加各种注记以增加可读性。 在plot语句后使用title(标题)可以在图形上方添加标题, 使用xlabel(标记)或ylabel(标记)为X轴或Y轴添加
21、说明,使用text(X值、Y值、想加的标示)可以在图形中任意位置添加标示。 第8章 MATLAB程序设计语言在信号处理中的应用 例例 8-5 画图基本语句如图 8 - 3 所示。 图 8-3 例8-5中绘制的几种正弦波形 正弦线10105101010510注记05101015010101sin(x)第8章 MATLAB程序设计语言在信号处理中的应用 MATLAB 语句及运行结果如下: x=0:0.1*pi:2*pi; %定义x向量figure(1); %创建一个新的图形窗口, 编号为1subplot(2,2,1); %将窗口划分为2行, 2列, 在第1个窗口中作图plot(x,sin(x);
22、%画图title(正弦线); %给图形加标题subplot(2,2,2); %在第2个窗口中作图plot(x,sin(x),r); %画一正弦波, 红色xlabel(X); %给x轴加说明第8章 MATLAB程序设计语言在信号处理中的应用 ylabel(SIN(X); %给y轴加说明subplot(2,2,3); %在第2个窗口中作图plot(x,sin(x),-); %画一正弦波, 破折线subplot(2,2,4); %在第2个窗口中作图plot(x,sin(x),r+); %画一正弦波, 红色破折线text(4,0,注记); 第8章 MATLAB程序设计语言在信号处理中的应用 8.4 M
23、ATLAB函数函数8.4.1 函数及其调用方法函数及其调用方法 在MATLAB语言中,M文件有两种形式:脚本和函数。 脚本没有输入/输出参数,只是一些函数和命令的组合。它可以在MATLAB环境下直接执行,也可以访问存在于整个工作空间内的数据。 由脚本建立的变量在脚本执行完后仍将保留在工作空间中可以继续对其进行操作,直到使用clear命令对其清除为止。 函数是MATLAB语言的重要组成部分。MATLAB提供的各种工具箱中的M文件几乎都是以函数的形式给出的。函数接收输入参数,返回输出参数,且只能访问该函数本身工作空间中的变量,从命令窗或其他函数中不能对其工作空间的变量进行访问。 第8章 MATLA
24、B程序设计语言在信号处理中的应用 1 函数结构函数结构 MATLAB语言中提供的函数通常由以下五个部分组成: (1) 函数定义行;(2) H1行;(3) 函数帮助文件;(4) 函数体;(5) 注释。 第8章 MATLAB程序设计语言在信号处理中的应用 这五个部分中最重要的是函数定义行和函数体。 函数定义行:MATLAB语言在M文件的第一行用关键字“function”把M文件定义为一个函数,并指定它的名字(必须和文件名相同),同时也定义了函数的输入和输出参数。 函数定义行是一个MATLAB函数所必需的,其他各部分的内容可以没有, 这种函数称为空函数。 例如: 求最大值函数“max”的定义行可描述
25、为 function Y,I=max(x) 第8章 MATLAB程序设计语言在信号处理中的应用 其中, “max”为函数名, 输入参数为“x”, 输出参数为“Y”和“I”。 函数体:函数体是函数的主体部分,它包括进行运算和赋值的所有MATLAB程序代码。函数体中可以包括流程控制、输入/输出、计算、赋值、注释以及函数调用和脚本文件调用等。 在函数体中完成对输出参数的计算。 第8章 MATLAB程序设计语言在信号处理中的应用 2 函数调用函数调用 函数调用的过程实际上就是参数传递的过程。例如,在一个脚本文件里调用函数“max”可采用如下方式: n=1:20; a=sin(2*pi*n/20); Y
展开阅读全文