- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章-MATLAB编程与接口
第3章 MATLAB编程与接口 本章主要内容如下: 3.1 脚本与函数(Scripts and Functions) 3.2 流程控制(Flow control) 3.3 数据接口 3.4 文件I/O操作 3.1 脚本与函数 M -文件分为两种: 脚本文件(scripts):也称命令文件,是由用户为解决特定的问题而编制的; 函数文件(functions):也可由用户编写,但它必须由其他M-文件来调用 3.1.1 脚本(Scripts) 脚本是最简单的M-文件,它没有入口和出口参数变量。可以自动执行一系列MATLAB 命令,诸如重复命令等。 脚本(Scripts)是对工作空间(workspace)中的现有数据操作,或创建一个新数据,而且脚本所创建的任一变量在脚本运行完都保留在工作空间中以便进一步使用。 脚本可以直接在命令窗口用文件名直接调用。 例3-1 一个最简单的脚本 例3-1: 已知一模拟信号 ,现以采样率20Hz进行采样,得到一个数字序列: , 用MATLAB对上述操作编程并绘出 序列。其中RN(n)为矩形窗,其中N=20。 ex3_1.m : % An M-file script to produce % plot x(n)RN(n) 取N=20 N = 20; n=0:N-1;L=200;n1=0:L-1 xn=exp(-0.05*n);xn1=[xn,zeros(1,L-N)]; stem(n1,xn1);title(‘x(n)RN(n),N=20’) 脚本M文件格式特征 一般用clear、close all等语句开始,可清除掉工作空间中原有的变量和图形,以避免其他已执行的残留数据对本程序的影响。 M文件是MATLAB程序的主体。如果文件中有全局变量,即在子程序中与主程序共用的变量,应在程序的起始部分注明。其语句是: global 变量名1 变量名2 …… 3.1.2 函数(Functions) 函数(Functions)是接受入口参数返回出口参数的 M-文件,程序在自己的工作空间中操作变量,与工作空间分开,无法访问。 函数文件编写与脚本文件编写不同。函数文件编写时,必须由function起头,后跟的函数名必须与文件名相同。函数文件具有输入输出变元(变量),可进行变量传递。 例3-2 一个简单的MATLAB函数 例3-2:编写一个对序列 x(n)作N点离散傅里叶变换(DFT)的MATLAB函数。 分析:有限长序列x(n),长度为n=0,1,…N-1,对其作N点离散傅里叶变换,即得: 式中 称为旋转因子,k=0,1,…,N-1。为此在程序中设置一个 含n和k值的N×N维矩阵: ,则DFT矩阵为WNnk=WN.^nk ,因此输入序列和DFT矩阵的向量点乘就包含了此序列的N点离散时间傅里叶变换定义式中的逐项相乘后的连加演算。 例3-2(续) 函数dft.m function [Xk] = dft(xn,N) % dft求序列x(n)的N点DFT n=[0:1:N-1]; % n的行向量 k=[0:1:N-1]; % k的行向量 WN=exp(-j*2*pi/N); % 旋转因子 nk=n′*k; % 产生一个含nk值的N×N维矩阵 WNnk=WN.^nk; % DFT矩阵,旋转因子矩阵 Xk=xn*WNnk; % DFT系数的行向量,计算N点DFT 例3-3 函数idft.m function [xn] = idft(Xk,N) % idft求序列X(k)的N点IDFT % n=[0:1:N-1]; % n的行向量 k=[0:1:N-1]; % k的行向量 WN=exp(-j*2*pi/N); % 旋转因子 nk=n’*k; % 产生一个含nk值的N×N维矩阵 WNnk=WN.^(-nk); % IDFT矩阵 xn =(Xk *WNnk)/N; % IDFT系数的行向量 函数的基本结构 从上述例子可见,函数文件的第一条语句定义了函数名、输入变元以及输出变元。没有这条语句,该文件就成为脚本文件而不再是函数文件。函数文件中,输入变元和输出变元都可以有若干个,但必须在第一条语句中明确列出。 程序中的最前几条带%的字符行是对函数的注解说明行,以作为对函数文件的说明。这种注释方
文档评论(0)