MATLAB音频信号的分析与合成程序.ppt
- 文档编号:2731915
- 上传时间:2022-11-10
- 格式:PPT
- 页数:36
- 大小:224KB
MATLAB音频信号的分析与合成程序.ppt
《MATLAB音频信号的分析与合成程序.ppt》由会员分享,可在线阅读,更多相关《MATLAB音频信号的分析与合成程序.ppt(36页珍藏版)》请在冰豆网上搜索。
第二讲第二讲MATLAB的的21脚本文件和函数文件脚本文件和函数文件22函数调用和参数传递函数调用和参数传递23MATLAB的程序结构和控制流的程序结构和控制流24M文件的调试文件的调试25程序设计实例程序设计实例251音频信号的分析与合成音频信号的分析与合成252音频频谱分析仪音频频谱分析仪253幅度调制幅度调制程序设计程序设计121脚本文件和函数文件脚本文件和函数文件211M脚本文件脚本文件对于一些比较简单的问题对于一些比较简单的问题,在指令窗中直接输入指令计算,在指令窗中直接输入指令计算。
对于复杂计算,采用脚本文件(对于复杂计算,采用脚本文件(Scriptfile)最为合适最为合适。
MATLAB只是按文件所写的指令执行只是按文件所写的指令执行。
M脚本文件的特点是:
脚本文件的特点是:
脚本文件的构成比较简单,只是一串按用户意图排列而成的脚本文件的构成比较简单,只是一串按用户意图排列而成的(包括控制流向指令在内的)(包括控制流向指令在内的)MATLAB指令集合。
指令集合。
脚本文件运行后脚本文件运行后,所产生的所有变量都驻留在,所产生的所有变量都驻留在MATLAB基基本工作空间本工作空间(Baseworkspace)中中。
只要用户不使用清除指只要用户不使用清除指令(令(clear),),MATLAB指令窗不关闭,这些变量将一直保指令窗不关闭,这些变量将一直保存在存在基本工作空间基本工作空间中中。
M文件有两种形式文件有两种形式:
脚本文件(脚本文件(ScriptFile)和函数文件和函数文件(FunctionFile)。
)。
这两种文件的扩展名,均为这两种文件的扩展名,均为“.m”。
221脚本文件和函数文件(脚本文件和函数文件(续续续续11)212M函数文件函数文件与脚本文件不同与脚本文件不同,函数文件犹如一个,函数文件犹如一个“黑箱黑箱”,把一些数据,把一些数据送进并经加工处理,再把结果送出来。
送进并经加工处理,再把结果送出来。
MATLAB提供的函数指令大部分都是由函数文件定义的。
提供的函数指令大部分都是由函数文件定义的。
M函数文件的特点是:
函数文件的特点是:
从形式上看从形式上看,与脚本文件不同,与脚本文件不同,函数文件的笫一行总是以,函数文件的笫一行总是以“function”引导的引导的“函数申明行函数申明行”。
从运行上看从运行上看,与脚本文件运行不同,与脚本文件运行不同,每当函数文件运行,每当函数文件运行,MATLAB就会专门为它开辟一个临时工作空间,称为就会专门为它开辟一个临时工作空间,称为函数函数工作空间工作空间(Functionworkspace)。
当执行文件最后一条。
当执行文件最后一条指令时指令时,就结束该函数文件的运行,同时该临时函数空间,就结束该函数文件的运行,同时该临时函数空间及其所有的中间变量就立即被清除。
及其所有的中间变量就立即被清除。
MATLAB允许使用比允许使用比“标称数目标称数目”较少的输入输出宗量,较少的输入输出宗量,实现对函数的调用实现对函数的调用。
321脚本文件和函数文件(脚本文件和函数文件(续续续续22)213M文件的一般结构文件的一般结构由于从结构上看由于从结构上看,脚本文件只是比函数文件少一个,脚本文件只是比函数文件少一个“函数申函数申明行明行”,所以只须描述清楚函数文件的结构,所以只须描述清楚函数文件的结构。
典型典型M函数文件的结构如下函数文件的结构如下:
函数申明行:
位于函数文件的首行,以关键字函数申明行:
位于函数文件的首行,以关键字functio开头,开头,函数名以及函数的输入输出宗量都在这一行被定义。
函数名以及函数的输入输出宗量都在这一行被定义。
笫一注释行:
紧随函数申明行之后以笫一注释行:
紧随函数申明行之后以%开头笫一注释行。
该开头笫一注释行。
该行供行供lookfor关键词查询和关键词查询和help在线帮助使用在线帮助使用。
在线帮助文本区在线帮助文本区:
笫一注释行及其之后的连续以:
笫一注释行及其之后的连续以%开头的所开头的所有注释行构成整个在线帮助文本。
有注释行构成整个在线帮助文本。
编写和修改记录:
与在线帮助文本区相隔一个编写和修改记录:
与在线帮助文本区相隔一个“空空”行,也行,也以以%开头,标志编写及修改该开头,标志编写及修改该M文件的作者和日期等文件的作者和日期等。
函数体:
为清晰起见,它与前面的注释以函数体:
为清晰起见,它与前面的注释以“空空”行相隔。
行相隔。
例例2_2_1:
M函数文件示函数文件示例例。
422函数调用和参数传递函数调用和参数传递221局部变量和全局变量局部变量和全局变量局部(局部(Local)变量:
它存在于函数空间内部的中间变量,变量:
它存在于函数空间内部的中间变量,产生于该函数的运行过程中,其影响范围也仅限于该函数本产生于该函数的运行过程中,其影响范围也仅限于该函数本身身。
全局(全局(Global)变量:
通过变量:
通过global指令,指令,MATLAB也允许几也允许几个不同的函数空间以及基本工作空间共享同一个变量,这种被个不同的函数空间以及基本工作空间共享同一个变量,这种被共享的变量称为全局变量。
共享的变量称为全局变量。
222函数调用函数调用在在MATLAB中,调用函数的常用形式是:
中,调用函数的常用形式是:
输出参数输出参数1,输出参数输出参数2,=函数名函数名(输入参数输入参数1,输入参数输入参数2,)函数调用可以嵌套,一个函数可以调用别的函数,甚至调函数调用可以嵌套,一个函数可以调用别的函数,甚至调用它自己用它自己(递归调用)。
(递归调用)。
522函数调用和参数传递(函数调用和参数传递(续)续)续)续)223参数传递参数传递MATLAB在函数调用上有一个与众不同之处在函数调用上有一个与众不同之处:
函数所传递的:
函数所传递的参数具有可调性参数具有可调性。
传递参数数目的可调性来源于如下两个传递参数数目的可调性来源于如下两个MATLAB永久变量:
永久变量:
函数体内的函数体内的nargin给出调用该函数时的输入参数数目。
给出调用该函数时的输入参数数目。
函数体内的函数体内的nargout给出调用该函数时的输出参数数目。
给出调用该函数时的输出参数数目。
只要在函数文件中包括这两个变量,就可以知道该函数文件只要在函数文件中包括这两个变量,就可以知道该函数文件调用时的输入参数和输出参数数目。
调用时的输入参数和输出参数数目。
值得注意:
值得注意:
nargin、nargout本身都是函数本身都是函数,不是变量,所不是变量,所以用户不能赋值,也不能显示。
以用户不能赋值,也不能显示。
“变长度变长度”输入输出宗量:
输入输出宗量:
varargin、varrgout。
具有接受具有接受“任意多输入任意多输入”、返回、返回“任意多输出任意多输出”的能力的能力。
跨空间变量传递:
跨空间变量传递:
evalin。
(参考(参考:
circle.m,am1.m)623MATLAB的程序结构和控制流的程序结构和控制流231程序结构程序结构循环结构:
循环结构:
MATLAB提供两种循环方式。
提供两种循环方式。
顺序结构顺序结构分支结构:
分支结构:
ifelseend。
forend循环和循环和while-end循环。
循环。
232程序流控制程序流控制常用指令:
常用指令:
return,echo,input,pause,keyboard,break。
switch-case结构。
结构。
try-catch结构。
结构。
警示指令:
警示指令:
error,warning。
723MATLAB的程序结构和控制流(的程序结构和控制流(续)续)续)续)233图形用户界面(图形用户界面(GUI)编程编程现代的主流应用程序已经从命令行的交互方式转变为以图现代的主流应用程序已经从命令行的交互方式转变为以图形界面为主的交互方式,这主要是由于它给用户带来了操作形界面为主的交互方式,这主要是由于它给用户带来了操作和控制的方便与灵活性。
和控制的方便与灵活性。
(面向对象编程)(面向对象编程)MATLAB能够以比较简单的方式实现一系列的图形界面功能够以比较简单的方式实现一系列的图形界面功能。
通过对控件、菜单属性的设置和能。
通过对控件、菜单属性的设置和Callback的编写,就能的编写,就能够满足大多数用户的需求。
够满足大多数用户的需求。
控件的控件的Callback属性属性:
Callback属性的取值是字符串,可属性的取值是字符串,可以是某个以是某个M文件名或一小段文件名或一小段MATLAB语句语句。
当用户激活控件当用户激活控件对象(对象(例例如如:
在控件对象图标上单击鼠标左键:
在控件对象图标上单击鼠标左键)时,应用程)时,应用程序就运行序就运行Callback属性定义的子程序。
属性定义的子程序。
菜单的菜单的Callback属性属性:
Callback属性的取值是字符串,可属性的取值是字符串,可以是某个以是某个M文件名或一小段文件名或一小段MATLAB语句语句。
当用户激活菜单当用户激活菜单对象时,若没有子菜单就运行对象时,若没有子菜单就运行Callback属性定义的子程序。
属性定义的子程序。
若有,先运行若有,先运行Callback属性定义的子程序,再显示子菜单。
属性定义的子程序,再显示子菜单。
824M文件的调试文件的调试编写编写M文件时,错误(文件时,错误(Bug)在所难免。
错误有两种:
语法在所难免。
错误有两种:
语法(Syntax)错误和运行(错误和运行(Run-time)错误。
错误。
语法错误是指变量名、函数名的误写,标点符号的缺、漏等。
语法错误是指变量名、函数名的误写,标点符号的缺、漏等。
对于这类错误,通常能在运行时发现,终止执行,并给出相应对于这类错误,通常能在运行时发现,终止执行,并给出相应的错误原因以及所在行号。
的错误原因以及所在行号。
运行错误是算法本身引起的,发生在运行过程中。
相对语法运行错误是算法本身引起的,发生在运行过程中。
相对语法错误而言,运行错误较难处理错误而言,运行错误较难处理。
尤其是。
尤其是M函数文件,它一旦运函数文件,它一旦运行停止,其中间变量被删除一空,错误很难查找。
行停止,其中间变量被删除一空,错误很难查找。
有两种调试方法:
直接调试法和工具调试法。
有两种调试方法:
直接调试法和工具调试法。
924M文件的调试(文件的调试(续续续续11)直接调试法:
可以用下面方法发现某些运行错误。
直接调试法:
可以用下面方法发现某些运行错误。
在在M文件中,将某些语句后面的分号去掉,文件中,将某些语句后面的分号去掉,迫使迫使M文件输文件输出一些中间计算结果,以便发现可能的错误。
出一些中间计算结果,以便发现可能的错误。
在适当的位置,添加显示某些关键变量值的语句(包括使在适当的位置,添加显示某些关键变量值的语句(包括使用用disp在内)。
在内)。
利用利用echo指令,使运行时在屏幕上逐行显示文件内容。
指令,使运行时在屏幕上逐行显示文件内容。
echoon能显示能显示M脚本文件;脚本文件;echoFunNsmeon能显示名为能显示名为FunNsme的的M函数文件。
函数文件。
在原在原M脚本或函数文件的适当位置,增添指令脚本或函数文件的适当位置,增添指令keyboard。
keyboard语句可以设置程序的断点语句可以设置程序的断点。
通过将原通过将原M函数文件的函数申明行注释掉,可使一个中间函数文件的函数申明行注释掉,可使一个中间变量难于观察的变量难于观察的M函数文件变为一个所有变量都保留在基函数文件变为一个所有变量都保留在基本工作空间中的本工作空间中的M脚本文件。
脚本文件。
1024M文件的调试(文件的调试(续续续续22)GUI界面调试法:
界面调试法:
MATLAB5.x版提供了一个基于版提供了一个基于GUI界面的调试。
使用它,界面的调试。
使用它,可以对函数进行调试。
可以对函数进行调试。
Debug菜单的使用:
菜单的使用:
Continue:
恢复程序运行至结束或另一个断点恢复程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 音频 信号 分析 合成 程序