实验二 MATLAB文件编程

上传人:豆浆 文档编号:757799 上传时间:2017-05-13 格式:DOC 页数:14 大小:111.50KB
返回 下载 相关 举报
实验二  MATLAB文件编程_第1页
第1页 / 共14页
实验二  MATLAB文件编程_第2页
第2页 / 共14页
实验二  MATLAB文件编程_第3页
第3页 / 共14页
实验二  MATLAB文件编程_第4页
第4页 / 共14页
实验二  MATLAB文件编程_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《实验二 MATLAB文件编程》由会员分享,可在线阅读,更多相关《实验二 MATLAB文件编程(14页珍藏版)》请在金锄头文库上搜索。

1、实验二 MATLAB文件编程一、实验目的1.掌握建立和执行M文件的方法。2.掌握利用if语句实现选择结构的方法。3.掌握利用switch语句实现多分支选择结构的方法。4.掌握利用for语句和while语句实现循环结构的方法。5.理解函数文件的概念并掌握定义和调用MATLAB函数的方法。二、预备知识1 .M文件介绍M文件分为:独立的M文件即命令文件和可调用M文件即函数文件。命令文件 命令文件实际上是将多个可执行的系统命令,用文本编辑器编辑后并存放在后缀为 .m 的文件中,若在MATLAB命令窗口中输入该M文件的文件名(不跟后缀.m!),即可依次执行该文件中的多个命令。这个后缀为.m的文件,也称为

2、MATLAB的脚本文件(Script File)。它与在命令窗口逐行执行文件中的所有指令,其结果是一样的。没有输入输出参数。命令式文件就是命令行的简单叠加,MATLAB会自动按顺序执行文件中的命令。这样就解决了用户在命令窗中运行许多命令的麻烦,还可以避免用户做许多重复性的工作。文件运行后,所产生的所有变量都驻留在MATLAB基本工作空间(Base workspace)中。只要不使用clear指令加以清除,且MATLAB指令窗不关闭,这些变量将一直保存在基本工作空间中。基本工作空间随MATLAB的启动而产生;只有关闭MATLAB时,该基本空间才被删除。注意:文件存放路径必须在MATLAB能搜索的

3、范围内。例 一个简单的M文件t=-10:0.1:10;wc=10;ft=1/2*sin(t);ft1=ft.*cos(wc*t);d=0:length(ft)-1;plot(d,ft1);2. 程序结构部分1)顺序结构MATLAB的顺序结构实际上就是复合表达式构成的语句。复合表达式由分号或逗号分隔的几个表达式构成。当表达式后面接分号时,表达式的计算结果不显示,但中间结果仍保留在内存中。若程序是命令文件,则程序运行完后,中间变量都予以保留,若程序是函数文件,则运行完程序后,中间变量将被全部删除。2)控制语句(1)循环语句a)for循环for循环语句的一般格式如下: for 循环控制变量=表达式1

4、 : 达式2 : 表达式3循环体end说明:表达式1为循环初值,表达式2为步长,表达式3为循环终值;当表达式2省略时则默认步长为1;for语句允许嵌套。for语句一定要有end作为结束标志,否则下面的输入都被认为是for循环之内的内容;循环语句中的分号“;”可防止中间结果的输出;循环语句书写成锯齿形将增加可读性。例 设计一个九九乘法表clearfor i=1:9;for j=1:9; a(i,j)=i*j;endendab)while循环语句while循环语句的格式如下:while循环判断语句循环体end说明:在此循环语句中,只要表达式中的所有元素值都不为零,执行语句就将一直执行下去,这里表达

5、式几乎都是关系表达式,因此非零应为true;当表达式不是标量时,可以用any函数和all函数产生;为了避免因逻辑上的失误,而陷入死循环,建议在循环语句的适当位置加break语句,以便程序能正常执行。例 求1-100偶数的和clearx=0;sum=0;while xa)elsefprintf(ab)end3)分支结构若需要对不同的情形执行不同的操作,可用switch 分支语句:switch 表达式(标量或字符串)case 值1语句体1case 值2语句体2 otherwise语句体nend说明:a.switch后面的表达式可以是任何类型,如数字,字符串等b.当表达式的值与case后面常量表达式

6、的值相等时,就执行这个case后面的语句组,如果所有的常量表达式的值都与这个表达式的值不相等时,就执行otherwise后的语句组。c.表达式的值可以重复,在语法上并不错误,但是在执行时,后面符合条件的case语句将被忽略。d.各个case和otherwise语句的顺序可以互换例 输入一个数,判断它能否被5整除 n=input(输入n值);switch mod(n,5)case 0fprintf(%d是5的倍数,n) otherwisefprintf(%d不是5的倍数,n)end运行之后,命令窗口显示:输入n值我们在窗口中输入12,得到如下运行结果12不是5的倍数3. 程序的流程控制语句1)c

7、ontinue语句continue语句通常用于for或while循环体中,其作用就是终止一趟循环的执行。它跳过本趟循环中未被执行的语句,去执行下一轮的循环。例 给定程序,体会continue语句用法echo onpause,a=3;pause, b=6;pause, for i=1:3pause,b=b+1pause, if i2pause, breakpause, endpause, a=a+2endecho off3)return命令return命令使它所在的函数结束运行,并返回到调用该函数的函数4.人机交换语句1)用户输入提示命令input input命令用来提示用户从键盘输入数据,字符

8、串或表达式,并接收输入值。 例 R=input(How many apples)运行此命令后,将给出文字提示,并等待键盘输入How many apples3R =32)keyboardkeyboard语句与input语句类似,但其功能更强,它可等待输入多行命令,并将键盘输入的内容作为一个底稿文件来处理。在程序遇到keyboard命令时,MATLAB将会暂停程序的运行,并且调用机器的键盘命令进行处理。处理完自己的工作之后,输入,然后按下enter键程序将继续运行 3)pause命令pause命令使程序运行暂停,等待用户按任意键继续。pause命令在程序调试以及需要看中间结果时特别有用。pause

9、的用法有两种,pause表示暂停执行程序;pause()表示在继续执行前,暂停秒 4)输出语句(1)自由格式 (disp) 函数disp允许不打印它的变量名而显示一个字符串。例 disp(he is a student)he is a student(2)格式化输出 (fprintf)fprintf把格式化的文本写到文件中或显示屏上例 fprintf(The area is %8.5fn, area) % 注意输出格式前须有%符号,%跳行符号须有符号 The area is 12.56637 % 输出值为8位数含5位小数 输出格式:%d 以带符号的十进制整型显示%f 以小数形式显示单精度,双精

10、度实数%s 输出字符串5 )echo命令M文件执行时,文件中的命令不会显示在命令窗口中,echo命令可以使文件在执行时可见,这对程序的调试和演示很有用 。echoon 打开命令式文件的回应文件;echooff 关闭回应文件三、实验内容1、运行预备知识中出现的程序,熟悉各个命令的用法。2、求分段函数的值 其 它0212)(xxf,用if语句实现,分别输出时的 的值。syms x;3,x()fx=-3,20.5,inf;fx=(x*(x=0&x=1&x100|x=90&x=80&x=70&x=60&x70disp(C);elsedisp(E);end:70.9C4、根据 ,求 的近似值。当n分别取

11、100,1000,1002221163 0时,结果是多少?clear要求:分别用循环结构和向量运算(使用sum函数)来实现。ClearN=input(n=);Hezhi=0;For ii=1:nHwzhi=hezhi+(1/ii.2);EndPv=sqrt(6*hezhi)5、根据 ,求:11352yn1) 时的最大n值。3y2)与1)的n值对应的y值。clearm=1;y=0;while(y3)y=y+1./m;m=m+2;endn=(m-2)+1)./2y=y-1./(m-2)四、实验报告要求编写出上述程序,并保存运行结果。实验七 IIR 数字滤波器的设计一、实验目的熟悉典型的模拟滤波器重

12、点掌握巴特沃思模拟滤波器的设计方法掌握利用脉冲响应不变法和双线性变换法设计IIR滤波器的方法并掌握利用MATLAB实现其功能的方法二 预备知识N阶IIR数字滤波器的系统函数为: 1(1)001()Mj MjN NNiibzbzzbzHzaa IIR数字滤波器的设计主要通过成熟的模拟滤波器设计方法来实现:将数字滤波器设计指标转换为模拟滤波器设计指标,设计出相应的模拟滤波器H (s),再经过脉冲响应不变法或双线性变换法得到所需的IIR数字滤波器H(z)。IIR数字滤波器设计的重要环节是模拟原型低通滤波器的设计,主要包括Butterworth、Chebyshev和椭圆等滤波器。MATLAB 信号处理

13、工具箱中提供了IIR滤波器设计的函数。IIR 滤波器阶数选择buttord:巴特沃斯(Butterworth)滤波器阶数选择。cheb1ord:切比雪夫 (Chebyshev)I 型滤波器阶数选择。cheb2ord:切比雪夫 (Chebyshev)II 型滤波器阶数选择。ellipord:椭圆 (Elliptic)滤波器阶数选择。IIR 滤波器设计butter:巴特沃斯(Butterworth)滤波器设计cheby1:切比雪夫(Chebyshev)I 型滤波器设计cheby2:切比雪夫(Chebyshev)II 型滤波器设计ellip:椭圆(Elliptic) 滤波器设计maxflat:通用的

14、巴特沃斯(Butterworth) 低通滤波器设计 yulewalk:Yule-Walker 滤波器设计(直接数字滤波器设计法)butterworth滤波器设计butterworth滤波器是通带、阻带都单调衰减的滤波器。(1)调用buttord 函数确定巴特沃斯滤波器的阶数,格式为N,Wc = buttord(Wp,Ws,Ap,As)输入参数:Ap,As为通带最大衰减和阻带最小衰减,以dB为单位。Wp,Ws为归一化通带截频和阻带截频, 0Wp,Ws1 。输出参数:N为滤波器的阶数;Wc为截频,0 Wc 1。(2)调用butter函数设计出巴特沃斯滤波器,格式为b,a = butter(N,Wc

15、,options)输入参数:N和Wc是buttord函数返回的参数,含义见上。 Options=low, high, bandpass, stop, 分别对应低通、高通、带通、带阻,默认情况下为低通或带通。输出参数:b和a为设计出的 IIR数字滤波器 的分子多项式和分母多项式的系数矩阵 。()Hz脉冲响应不变法函数bz,az=impinvar(b,a)输入参数:b和a分别是模拟滤波器传递函数的分子和分母多项式系数矢量。输出参数:bz和az分别是数字滤波器系统函数的分子和分母多项式系数矢量。功能:利用脉冲响应不变法把模拟滤波器转化为数字滤波器。双线性变换函数bz,az=bilinear(b,a,

16、Fs)输入参数:b和a分别是模拟滤波器传递函数的分子和分母多项式系数矢量。Fs是采样频率。输出参数:bz和az分别是数字滤波器系统函数的分子和分母多项式系数矢量。功能:利用双线性变换法把模拟滤波器转换为数字滤波器。Zd,Pd,Kd=bilinear(Z,P,K,Fs)输入参数:Z,P,K分别表示模拟滤波器传递函数零极点增益模型的零点矢量,极点矢量和增益,Fs是采样频率。输出参数:Zd,Pd,Kd分别表示数字滤波器系统函数零极点增益模型的零点矢量,极点矢量和增益。功能:把模拟滤波器的零极点模型转换为数字滤波器的零极点模型。三、实验内容1 画出系统函数 的级联型结构。3125.0.2)(zzH2 用脉

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号