欢迎来到天天文库
浏览记录
ID:49305597
大小:224.00 KB
页数:36页
时间:2020-02-04
《MATLAB音频信号的分析与合成程序.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第二讲MATLAB的2.1脚本文件和函数文件2.2函数调用和参数传递2.3MATLAB的程序结构和控制流2.4M文件的调试2.5程序设计实例2.5.1音频信号的分析与合成2.5.2音频频谱分析仪2.5.3幅度调制程序设计12.1脚本文件和函数文件2.1.1M脚本文件对于一些比较简单的问题,在指令窗中直接输入指令计算。对于复杂计算,采用脚本文件(Scriptfile)最为合适。MATLAB只是按文件所写的指令执行。M脚本文件的特点是:脚本文件的构成比较简单,只是一串按用户意图排列而成的(包括控制流向指令在内的)MATLAB指令集合。脚本文件运行后,所产
2、生的所有变量都驻留在MATLAB基本工作空间(Baseworkspace)中。只要用户不使用清除指令(clear),MATLAB指令窗不关闭,这些变量将一直保存在基本工作空间中。M文件有两种形式:脚本文件(ScriptFile)和函数文件(FunctionFile)。这两种文件的扩展名,均为“.m”。22.1脚本文件和函数文件(续1)2.1.2M函数文件与脚本文件不同,函数文件犹如一个“黑箱”,把一些数据送进并经加工处理,再把结果送出来。MATLAB提供的函数指令大部分都是由函数文件定义的。M函数文件的特点是:从形式上看,与脚本文件不同,函数文件的笫
3、一行总是以“function”引导的“函数申明行”。从运行上看,与脚本文件运行不同,每当函数文件运行,MATLAB就会专门为它开辟一个临时工作空间,称为函数工作空间(Functionworkspace)。当执行文件最后一条指令时,就结束该函数文件的运行,同时该临时函数空间及其所有的中间变量就立即被清除。MATLAB允许使用比“标称数目”较少的输入输出宗量,实现对函数的调用。32.1脚本文件和函数文件(续2)2.1.3M文件的一般结构由于从结构上看,脚本文件只是比函数文件少一个“函数申明行”,所以只须描述清楚函数文件的结构。典型M函数文件的结构如下:函
4、数申明行:位于函数文件的首行,以关键字functio开头,函数名以及函数的输入输出宗量都在这一行被定义。笫一注释行:紧随函数申明行之后以%开头笫一注释行。该行供lookfor关键词查询和help在线帮助使用。在线帮助文本区:笫一注释行及其之后的连续以%开头的所有注释行构成整个在线帮助文本。编写和修改记录:与在线帮助文本区相隔一个“空”行,也以%开头,标志编写及修改该M文件的作者和日期等。函数体:为清晰起见,它与前面的注释以“空”行相隔。例2_2_1:M函数文件示例。42.2函数调用和参数传递2.2.1局部变量和全局变量局部(Local)变量:它存在于
5、函数空间内部的中间变量,产生于该函数的运行过程中,其影响范围也仅限于该函数本身。全局(Global)变量:通过global指令,MATLAB也允许几个不同的函数空间以及基本工作空间共享同一个变量,这种被共享的变量称为全局变量。2.2.2函数调用在MATLAB中,调用函数的常用形式是:[输出参数1,输出参数2,…]=函数名(输入参数1,输入参数2,…)函数调用可以嵌套,一个函数可以调用别的函数,甚至调用它自己(递归调用)。52.2函数调用和参数传递(续)2.2.3参数传递MATLAB在函数调用上有一个与众不同之处:函数所传递的参数具有可调性。传递参数数
6、目的可调性来源于如下两个MATLAB永久变量:函数体内的nargin给出调用该函数时的输入参数数目。函数体内的nargout给出调用该函数时的输出参数数目。只要在函数文件中包括这两个变量,就可以知道该函数文件调用时的输入参数和输出参数数目。值得注意:nargin、nargout本身都是函数,不是变量,所以用户不能赋值,也不能显示。“变长度”输入输出宗量:varargin、varrgout。具有接受“任意多输入”、返回“任意多输出”的能力。跨空间变量传递:evalin。(参考:circle.m,am1.m)62.3MATLAB的程序结构和控制流2.3.
7、1程序结构循环结构:MATLAB提供两种循环方式。顺序结构分支结构:if—else—end。for—end循环和while---end循环。2.3.2程序流控制常用指令:return,echo,input,pause,keyboard,break。switch---case结构。try---catch结构。警示指令:error,warning。72.3MATLAB的程序结构和控制流(续)2.3.3图形用户界面(GUI)编程现代的主流应用程序已经从命令行的交互方式转变为以图形界面为主的交互方式,这主要是由于它给用户带来了操作和控制的方便与灵活性。(面向
8、对象编程)MATLAB能够以比较简单的方式实现一系列的图形界面功能。通过对控件、菜单属性的设置和Callba
此文档下载收益归作者所有