《信号与系统实验指导书.doc》由会员分享,可在线阅读,更多相关《信号与系统实验指导书.doc(16页珍藏版)》请在金锄头文库上搜索。
1、信号与系统实验手册信号与系统实验指导书合肥工业大学电物学院电子科学与技术系MATLAB简介MATLAB是MATHWORKS公司推出的一套高性能的数值计算与可视化软件,它集数值分析,矩阵运算,信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境。其强大的扩展功能为各个领域的应用提供了基础。由各个领域的专家学者相继推出了MATLAB工具箱,其中主要有信号处理(signal processing),控制系统(control system),神经网络(neural network),图像处理(image processing),鲁棒辨识(system identification),最优化(
2、optimisation),分析与综合( analysis and synthesis),模糊逻辑(fuzzy logic),小波(wavelet),样条(spline)等工具箱。可以毫不夸张的说,如果您以后想在信号处理、控制、信息学方面有所发展,那么您就必须应该首先接触MATLAB这一“巨人肩上的工具”。在此,请同学们认真学习以下内容。1、 基本操作简介单击桌面上的MATLAB快捷方式即可打开如下的操作界面。左下角的是Commang History窗口,记录了曾经输入的命令,可以方便的查询或复制曾经输入的命令。右边的是Command Window,用于命令输入和运行,我们运行程序和观察结果都
3、在此窗口中。1.1简单的数学运算使用MATLAB进行简单的数学运算如同在计算器上的操作一样。如:要计算:4+3;只要在MATLAB命令窗口内输入4+3(回车),便会得到答案:ans=71.2变量定义:MATLAB中变量的命名规则如下:变量名必须以字母开头,之后可以是任意字母、数字或下划线;变量名是大小写敏感的,变量A和a是不一样的;变量名不能超过19个字符,第19个字符以后的字符将被忽略。举例,输入a=4(回车),就定义了一个变量a,并赋以初值4。MATLAB中还包括一些特殊的变量:如ans(MATLAB中默认变量)、pi(圆周率)、inf(无穷大)、i或j(复数中的虚数单位)1.3注释和标点
4、%后的语句为注释语句。 “;”放在语句之后,表示不出现运行结果。如:输入a=4+3;(回车),系统命令窗口不会出现结果。如果去掉“;”系统会给出答案:a=7。1.4复数的定义:举例a=1+2*i1.5数学函数MATLAB所支持的部分常用函数在下面列出,其中的大部分可以数学方式书写。举例:输入x=sqrt(2)/2(回车)系统给出结果x=0.7071此命令得到的值,注意:MATLAB只对弧度操作。本实验中可能用到的MATLAB的基本信号函数:sin正弦Cot余切acot反余切log自然对数csc余割Asin反正弦expE为底的指数log22为底的对数cos余弦acos反余弦log1010为底的对
5、数sqrt平方根tan正切atan反正切pow22的幂abs绝对值1.6取整函数:在运算中经常要遇到将浮点数或分数截断变成整数的问题。MATLAB提供了几种不同的函数,实现这种截断问题,要注意其区分。fix(x):是取浮点数的整数部分;floor(x);是向下截断,取比x小的最近整数;ceil(x):是向上截断,取比x大的最近整数;round(x);是取最近的整数,如小数部分为0.5则取离0远的最近的整数;frac(x):则是取分数的真分数部分(不能用于浮点数)。例如:xsym(-5/2)则fix(x)floor(x)round(x)ceil(x)frac(x)分别为23321/22数组的定义
6、和运算数组运算主要是针对多个数执行同样的计算而运用的。在MATLAB中,以一种非常直观的方式来处理数组。2.1数组的定义:(1)直接定义:例如n=1 2 3 4 5n=12345(2)利用first:increment:last来创建数组。表示创建一个从first开始,每个元素间隔incerment,直到last的数组。例如 t1=-0.5;dt=0.001;t2=7;t=t1:dt:t2;定义了一个变量t数组。在我们的实验中,自变量都是这样的方式来定义的。当increment缺省时,默认为1。例如n=1:5定义了数组1 2 3 4 5。(3)利用linespace创建数组格式:linespa
7、ce(first_value, last_value, number)创建一个以first_value开始,以last_value结束,包含有number个数据元素的数组。(4)利用logspace创建一个对数分割的数组格式:logspace(first_value, last_value, number)创建一个以10first_value开始,以10last_value结束,包含有number个数据元素的数组。2.2数组与标量的四则运算:数组与标量的四则运算格式与标量间运算类似,它是将数组中的每个元素与标量进行加、减、乘、除运算,但除法运算时标量只能作除数。例如 rectRC=rectRC
8、+sin(2*k+1)*t-atan(2*k+1)*RC)/(2*k+1)*sqrt(1+(2*k+1)*RC)2);表示:,其中。上面的运算中,t是一个数组,其它都是标量。2.3数组间的四则运算:数组间进行四则运算时,要求参与运算的数组必须具有相同的维数。加、减、乘、是按元素与元素的方式进行的。加减运算与标量运算相同,但乘除运算的符号则是“.*”和“./”或“.”(两种除号的关系是a./b=b.a)。例如a=1 3 4;b=2 3 1;c=a.*bc=294例如 x=0.02*(1+0.4*cos(60*pi*t)./(0.0001+t.2);表示因为分子分母都是数组,所以使用“./”。2.
9、4数组的幂运算:数组的幂运算符号为“.”,表示每个元素分别进行幂运算。例如a=1 3 4;c=a.2c=19162.5数组的函数运算:数组的函数运算也是对每个元素分别进行函数运算。对标量适用的函数对数组也同样适用。2.6向量运算:当数组作为向量进行运算时,有点乘、叉乘和混合积运算。点乘使用函数dot(A, B)来实现,叉乘使用函数cross(A, B)来实现,混合积则通过组合点乘和叉乘来实现。3、矩阵运算MATLAB名字由MATrix和 LABoratory 两词的前三个字母组合而成。这是因为MATLAB是以矩阵运算为基础的一种语言,其所有的运算都是基于矩阵的。前面说的数组也就是一个1n的矩阵
10、。例如a=1 3 5;size(a)ans=1 3size(a, 2)ans=33.1 矩阵的定义:矩阵的定义方法与数组相同,只不过不同行之间需要用分号或回车隔开。举个例子:矩阵,它的MATLAB定义方法为a=1 2 3;4 5 6;7 8 9(回车),您就可以看到这个矩阵了。(也可使用a=1:1:3;4:1:6;7:1:9或者a=1:3;4:6;7:9)矩阵的另一个生成方法是使用Matrix Editor工具,主要用于生成大型矩阵。3.2 矩阵与标量的四则运算与数组相同。3.3 矩阵间的四则运算矩阵间的加减与数组相同。矩阵间的乘除分为两种:一是与数组运算相同,采用按元素运算的方法。此时要求两
11、个矩阵的大小完全相同,运算符采用“.*”和“.”以及“./”或“.”。二是按线性代数的方法运算。此时要求进行相乘的两矩阵要有相同的公共维。矩阵乘法符号是“*”。矩阵的除法符号是“/”或“”,用于寻找使Ax=b的解。举例:a.又例如 3.4 本实验需用到的矩阵相关函数:(1)zeros(n):产生一个nn的零矩阵;zeros(1, n):产生一个长度为n的零数组;zeros(size(X)(X为一数组):产生一与X等长的零数组。(2)sum(A):若A为数组,则对数组中所有元素求和;若A为矩阵,则对矩阵按列求和,返回比A维数低1的矩阵。(3)size(X):返回矩阵的维数。数组被看作1n矩阵。所
12、以要将数组X的长度赋给整数N时应使用size(X, 2)。例: x=1 2 3;4 5 6; y=1 3 5 7 9; size(x) ans = 2 3 asize(y)a = 1 5 b=size(y,2)b = 5(4)X Ymeshgrid(x, y):用x和y数组构造矩阵X和Y。X的每行都是数组x,列数与数组y的大小相同。Y的每行都是数组y,列数与数组x的大小相同。4、信号的MATLAB表示众所周知,计算机只能处理数字信号,时域连续信号也是数字信号模拟的结果。因此,我们先从离散信号(数字)信号说起。4.1离散信号与系统在此之前,要先介绍一下逻辑运算符和关系运算符。逻辑运算符见表二:表
13、二逻辑运算符说明&|与或非&是逻辑“与”操作。意思是&符号两边的集合取交集。如:“(x0)&(x4)”意思是取范围在0x4)&(x4和x0范围的x。“”是逻辑“非”操作。意思是对表达式做“非”运算。如:“1”取值为0,“0”取值为1。关系运算符见表三:表三关系操作符说明 = = =小于小于或等于大于大于或等于等于不等于在数字信号处理中,所有的信号都是离散(时间)信号,因此首先应解决在MATLAB中如何表示离散信号。设一个序列信号x(n)=,x(-1),x(0),x(1),。由于MATLAB对下标的约定为从1开始递增,因此要表示x(n),一般应采用两个矢量,如:n=-3 -2 -1 0 1 2
14、3 4 5 x=1 -1 3 2 0 4 5 2 1这表示了一个含9个采样点的矢量:x(n)=x(-3),x(-2),x(-1),x(0),x(1),x(2), x(5)=1,-1,3,2,0,4,5,2,1。通常情况下,序列值从x(0)开始,因此一个N-1点序列x(n)=x(0),x(1),x(N-1)可简单的表示为:x(n)=x(0),x(1),x(N-1)。函数的表示:单位取样序列:n=1:Nx=n= =1“= =”是关系运算符,表示如果符号两边的表达式相等,总的表达式为1,如果不相等表达式值为0。上式表达的意思是:时间域自变量n定义为从1到N,X为自变量n上的函数,它只在n=1的时候取值为1,其它为0。单位阶跃序列:n=n1:n2x=(n-n0)=0注意:“=”与“=”和“= =”一样都是