ImageVerifierCode 换一换
格式:DOCX , 页数:53 ,大小:280.20KB ,
资源ID:25701846      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25701846.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(信号与系统实验讲义DOC.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

信号与系统实验讲义DOC.docx

1、信号与系统实验讲义DOC目 录实验一 MATLAB基础知识 3实验二 连续信号的时域描述 11实验三 连续信号的基本运算 14实验四 离散信号的时域描述与运算 17实验五 利用MATLAB进行系统的时域分析 20实验六 连续信号的频域分析 24实验七 连续信号与系统的S域分析 27实验八 离散LSI系统的时域及复频域分析 32实验一 MATLAB基础知识一、实验目的初步了解Matlab的基本语法规则;掌握Matlab矩阵运算和数组运算的基本规则,以及基本绘图方法。二、实验环境计算机,Matlab软件三、实验原理1、MATLAB基本语句1)循环语句 MATLAB的循环语句包括for循环和whil

2、e循环两种类型。(1) for循环语法格式:for 循环变量 = 起始值:步长:终止值循环体end起始值和终止值为一整型数,步长可以为整数或小数,省略步长时,默认步长为1。执行for循环时,判定循环变量的值是否大于(步长为负时则判定是否小于)终止值,不大于(步长为负时则小于)则执行循环体,执行完毕后加上步长, 大于(步长为负时则小于)终止值后退出循环。例1 给矩阵A、B赋值。MATLAB 语句及运行结果如下:k=5;a=zeros(k, k) %矩阵赋零初值for m=1 : kfor n=1: ka(m,n)=1/(m+n-1); endendfor i=m : -1 : 1b(i)=i;

3、end(2) while循环语法格式: while 表达式循环体end 其执行方式为:若表达式为真(运算值非0),则执行循环体; 若表达式为假(运算结果为0),则退出循环体,执行end后的语句。例2a=3;while aa=a-1end输出:a=2a=1a=02)条件转移语句条件转移语句有if和switch两种。(1) if语句 MATLAB中if语句的用法与其他高级语言相类似, 其基本语法格式有以下几种:格式一:if 逻辑表达式执行语句end格式二:if 逻辑表达式执行语句1Else执行语句2end格式三:if 逻辑表达式1 执行语句1 else? if 逻辑表达式2 执行语句2 end(2

4、) switch语句 switch语句的用法与其他高级语言相类似,其基本语法格式为:switch表达式(标量或字符串)case 值1语句1case 值2语句2 Otherwise语句nend2、 绘图语句常用的MATLAB绘图语句有figure、plot、subplot、stem等, 图形修饰语句有title、axis、text等。1)figure figure有两种用法,只用一句figure命令,会创建一个新的图形窗口,并返回一个整数型的窗口编号。figure(n)表示将第n号图形窗口作为当前的图形窗口, 并将其显示在所有窗口的最前面; 如果该图形窗口不存在, 则新建一个窗口,并赋以编号n。

5、 2)plot线型绘图函数。用法为plot(x,y,s)。参数x为横轴变量,y为纵轴变量,s用以控制图形的基本特征如颜色、粗细等,通常可以省略,常用方法如表1所示。3)Stem绘制离散序列图,常用格式stem(y)和stem(x,y)分别和相应的plot函数的绘图规则相同,只是用stem命令绘制的是离散序列图。表14)Subplotsubplot(m,n,i)图形显示时分割窗口命令,把一个图形窗口分为m行,n列,mn个小窗口,并指定第i个小窗口为当前窗口。5)绘图修饰命令在绘制图形时,我们通常需要为图形添加各种注记以增加可读性。 在plot语句后使用title(标题)可以在图形上方添加标题,

6、使用xlabel(标记)或ylabel(标记)为X轴或Y轴添加说明,使用text(X值、Y值、想加的标示)可以在图形中任意位置添加标示。例3 画图基本语句如图2-1所示。MATLAB 语句及运行结果如下:x=0:0.1*pi:2*pi; %定义x向量figure(1); %创建一个新的图形窗口,编号为1subplot(2,2,1); %将窗口划分为2行,2列,在第1个窗口中作图plot(x,sin(x); %画图title(正弦线); %给图形加标题subplot(2,2,2); %在第2个窗口中作图plot(x,sin(x),r); %画一正弦波,红色xlabel(X); %给x轴加说明yl

7、abel(SIN(X); %给y轴加说明subplot(2,2,3); %在第3个窗口中作图 plot(x,sin(x),-); %画一正弦波,破折线subplot(2,2,4); %在第4个窗口中作图plot(x,sin(x),r+); %画一正弦波,红色+线text(4,0,注记);3、MATLAB内部特殊变量和常数1) MATLAB内部特殊变量和常数MATLAB内部有很多变量和常数,用以表达特殊含义。常用的有: 变量ans: 指示当前未定义变量名的答案; 常数eps:表示浮点相对精度,其值是从1.0到下一个最大浮点数之间的差值。该变量值作为一些MATLAB函数计算的相对浮点精度,按IEE

8、E标准,如:,近似为2.2204e-016; 常数Inf:表示无穷大。当输入或计算中有除以0时产生Inf; 虚数单位i,j:表示复数虚部单位,相当于; NaN:表示不定型值,是由0/0运算产生的。 常数pi:表示圆周率,其值为3.1415926535897; MATLAB中可表示的数字的近似范围从, 有效数字表示的典型例子如下:1234.56789,123456.789E-2,1.23456789e3(format指令可以控制显示格式) 复数形式:3.5+4*j, -2.1-7.4*j(i 也可以)取绝对值:abs()语法格式:abs(x)。当x为实数时计算x的绝对值;x为复数时得到的是复数的

9、模值;x为字符串时得到各字符的ASCII码。取相角:angle()语法格式:angle(z)。求复矢量或复矩阵的相角,结果为一个以弧度为单位介于-和+之间的值。 2)变量1变量命名规则MATLAB中对变量的命名应遵循以下规则:(1)变量名可以由字母、数字和下划线混合组成,但必须以字母开头;(2)字符长度不能大于31;(3)变量命名区分大小写。2局部变量和全局变量 局部变量是指那些每个函数体内自己定义的,不能从其他函数和MATLAB工作空间访问的变量。全局变量是指用关键字“global”声明的变量。全局变量名应尽量大写,并能反映它本身的含义。如果需要在工作空间和几个函数中都能访问一个全局变量,必

10、须在工作空间和这几个函数中都声明该变量是全局的。 3)矩阵及其运算MATLAB具有强大的矩阵运算和数据处理功能, 对矩阵的处理必须遵从代数规则。矩阵生成 (1)一般矩阵的生成对于一般的矩阵MATLAB的生成方法有多种。最简单的方法是从键盘直接输入矩阵元素。直接输入矩阵元素时应注意:各元素之间用空格或逗号隔开,用分号或回车结束矩阵行,用中括号把矩阵所有元素括起来。例1 在工作空间产生一个33矩阵A可用MATLAB语言描述如下:A=1 2 3; 4 5 6; 7 8 9或A=1 2 34 5 67 8 9运行结果:A=1 2 34 5 67 8 9Size(A)得到矩阵的大小,ans =3 3(2

11、)特殊矩阵的生成对于特殊的矩阵可直接调用MATLAB的函数生成。用函数zeros生成全0矩阵:格式 B=zeros(m,n)生成mn的全0阵。用函数ones生成全1矩阵:格式 B=ones(m,n)生成mn的全1阵。用函数eye生成单位阵:格式 B=eye(m,n)生成mn矩阵, 其中对角线元素全为1,其他元素为0。矩阵的运算 矩阵的运算有基本运算和函数运算两种类型。基本运算包括矩阵的加、减、乘、除、乘方、求转置、求逆等,其主要特点是通过MATLAB提供的基本运算符、*、/()、等即可完成。函数运算主要是通过调用MATLAB系统内置的运算函数来求取矩阵的行列式(det(A)),求秩(rank(

12、A)),求逆(inv(A),求特征值和特征向量(V, Deig(A)), 求Jordan标准形(jordan(A))和矩阵分解等。需要用时可以参阅联机帮助和相关参考书。(.*,.,表示逐个元素的乘积和相除;矩阵X/Y 相当于X*inv(Y), XY相当于inv(Y)*X)例2 矩阵的基本运算。 A=1, 2, 3; 4, 5, 6;B =6, 5, 4; 3, 2, 1;C =A+B %计算两个矩阵的和D =B %计算矩阵B的转置E=A*D %做矩阵乘法,必须要满足矩阵乘法的基本要求E应该是2阶方阵F=det(E) %求E的行列式值G=E(-1) %求E的逆 输出结果:4、MATLAB函数、及

13、其调用方法在MATLAB语言中,M文件有两种形式:脚本和函数。脚本没有输入/输出参数,只是一些函数和命令的组合。它可以在MATLAB环境下直接执行,也可以访问存在于整个工作空间内的数据。由脚本建立的变量在脚本执行完后仍将保留在工作空间中可以继续对其进行操作,直到使用clear命令对其清除为止。函数是MATLAB语言的重要组成部分。MATLAB提供的各种工具箱中的M文件几乎都是以函数的形式给出的。函数接收输入参数,返回输出参数,且只能访问该函数本身工作空间中的变量,从命令窗或其他函数中不能对其工作空间的变量进行访问。1函数结构MATLAB语言中提供的函数通常由以下五个部分组成:(1)函数定义行:

14、 以function开头,函数名(必须与文件名相同)及函数输入输出参数在此定义;(2)H1行:第一注释行,供lookfor和help在线帮助使用; (3)函数帮助文件;通常包括函数输入输出参数的含义,调用格式说明;(4)函数体:它包括进行运算和赋值的所有MATLAB程序代码。函数体中可以包括流程控制、输入/输出、计算、赋值、注释以及函数调用和脚本文件调用等。 在函数体中完成对输出参数的计算;(5) 注释。这五个部分中最重要的是函数定义行和函数体。函数定义行是一个MATLAB函数所必需的,其他各部分的内容可以没有,这种函数称为空函数。例1function sa=circle(r,s)% Circ

15、le plot a circle of radii r in the line specified by s% r raddi% s line color% sa area of the circle% circle(r) use blue line to draw a circle of radii r% circle(r,s) use s to draw circle% sa=circle(r) compute the area of the circle and draw it in blue% sa=circle(r,s) compute the area of the circle

16、and draw it in color sif nargin2 error(to many input );endclf; t=0:pi/100:2*pi;x=r*exp(i*t);if nargout=0plot(x,s);elsesa=pi*r*r;fill(real(x),imag(x),s)endaxis(square); %makes the current axis box square in size.例2function y = imp_fun(n,n0)% IMP_FUN Unit impulse function.% IMP_FUN(N,N0), where N is a

17、 vector of sequential integers,% returns a vector the same length as N with zeros everywhere except % N = N0.m1,n1 = size(n);if (m1 = 1 | n1 = 1)error(The sample vector must be one-dimensional.);endy = zeros(m1,n1);i = find(n = n0);if isempty(i)returnendy(i(1) = 1; % where n = n0, set output to 12函数

18、调用函数调用的过程实际上就是参数传递的过程。例如,在一个脚本文件里调用函数“max”可采用如下方式:n=1:20; a=sin(2*pi*n/20); Y,I=max(a);该调用过程把变量“a”传给了函数中的输入参数“x”,然后把函数运算的返回值传给输出参数“Y”和“I”。其中,Y是a序列的最大值,I是最大值Y对应的坐标值。例3构造:yn = n-3:调用函数: n = 0:6;y = imp_fun(n,3);stem(n,y)例4构造:yn = 5n - n-2:调用函数: y=5*imp_fun(n,0) - imp_fun(n,2);stem(n,y);四、实验内容1、上机前,认真阅

19、读实验原理,并对原理中的程序进行验证。2、通过MATLAB语言,产生一个矩阵,并给矩阵赋值。3、产生3类基本矩阵,基本矩阵的显示方式:ones,zeros,eye。4、在同一张图上绘出:y=3sin(x+pi/3),y=cos(3x+pi/6),并用不同的线型和点型区分。5、 绘制以下图形:y=cos(2x),y=sin(3x),y=cos2(x)+sin(x),y=sin(x)*cos(x);要求:用subplot()将画面分成四个,并且绘制的形式不同。6、利用plot3()画空间曲线:x=sin(t),y=cos(t),z=cos(2t)。五、思考题1、判断以下变量名是否合法?1)x2 2

20、)3col 3)_row 4)for2、求以下变量的值,并在MATLAB中验证。1)a = 1 : 2 : 5 2)b = a a a 3)c = a + b ( 2 , : ) 六、实验报告要求1、简述实验目的及实验原理。2、编程实现实验内容,并记录各输出波形,要求附上源程序,并记录波形。3、回答思考题。实验二 连续信号的时域描述一、实验目的绘制典型信号的波形;了解这些信号的基本特征。二、实验环境计算机,Matlab软件三、实验原理信号一般是随时间而变化的某些物理量。按照自变量的取值是否连续,信号分为连续时间信号和离散时间信号,一般用表示。若对信号进行时域分析,就需要绘制其波形,如果信号比较

21、复杂,则手工绘制波形就变得很困难,且难以精确。MATLAB强大的图形处理功能及符号运算功能,为实现信号的可视化及其时域分析提供了强有力的工具。根据MATLAB的数值计算功能和符号运算功能,在采用适当的MATLAB语句表示出信号后,就可以利用MATLAB中的绘图命令绘制出直观的信号波形了。下面分别介绍连续时间信号的MATLAB表示及其波形绘制方法。1、基于MATLAB的信号描述方法向量表示法:对于连续时间信号f(t),可以定义两个行向量f、t来表示,其中向量是t是形如t=t1:t:t2的MATLAB命令定义的时间范围向量,t1为信号起始时间,t2为终止时间,t为信号时间间隔;向量f为连续时间信号

22、f(t)在向量t所定义的时间点上的采样值。t=0:0.01:10;ft=2*exp(0.4*t);plot(t,ft);符号运算表示法:如果信号可以用一个符号表达式来表示,则可用绘制出信号的波形。f=sym(2*exp(0.4*t);ezplot(f,0 10);2、常用连续信号的MATLAB表示(1)指数信号指数信号在MATLAB中可用exp函数表示,其调用形式为: y=A*exp(a*t)取A=1,a=-0.4。该指数信号的MATLAB程序表示如下:A=1;a=-0.4;t=0:0.01:10;ft=A*exp(a*t);plot(t,ft);(2)正弦信号正弦信号Acos(*t+)和As

23、in(+)分别用MATLAB的内部函数cos和sin表示,其调用形式为:A*cos(*t+phi)和 A*sin(*t+phi)正弦信号的MATLAB源程序如下(取A=1, =2, =/6):A=1;w0=2*pi; phi=pi/6;t=0:0.001:8;ft=A*sin(w0*t+phi);plot(t,ft);(3)抽样函数 Sa(t)在MATLAB中用sinc函数表示,其定义为:Sinc(t)=sin(t)/( t)其调用形式为: Y=sinc(t)其MATLAB源程序如下:%program1-3Sample functiont=-3*pi:pi/100:3*pi;ft=sinc(t

24、/pi);plot(t,ft);(4)矩形函数矩形脉冲信号在MATLAB中用rectpuls函数来表示,其调用形式为: y=rectpuls(t,width)用以产生一个幅值为1、宽度为width、相对于t=0点左右对称的矩形波信号。该函数的横坐标范围由向量t决定,是以t=0为中心向左右各展开width/2的范围。Width的默认值为1。t=2T(即t-2T=0)为对称中心的矩形脉冲信号的MATLAB源程序如下(取T=1):%program1-4Rectangular pulse signalt=0:0.001:4;T=1;ft=rectpuls(t-2*T,2*T);plot(t,ft);(

25、5)三角波脉冲信号三角波脉冲信号在MATLAB中用tripuls函数来表示,其调用形式为: y=tripuls(t,width,skew) 其中skew取值范围在-1+1之间用以产生一个最大幅度为1、宽度为 width、斜度为 skew的三角波信号。该函数的横坐标范围由向量t决定,是以t=0为中心向左右各展开width/2的范围。斜度skew是一个介于-1和1之间的值,它表示最大幅度1出现在t=(width/2)skew的横坐标位置。三角波信号的MATLAB源程序如下:%program1-6Triangular pulse signalt=-3:0.001:3;ft=5*tripuls(t,4

26、,0.5);plot(t,ft);(6)阶跃信号:单位阶跃信号u(t)用“t=0”产生,调用格式为 y=(t=0)t=-2:0.01:5;ft=(t=0);plot(t,ft)或者 MATTLAB符号数学函数Heaviside表示阶跃信号,但要画图需在工作目录创建Heaviside的M文件 function f=Heaviside(t)f=(t0); 保存,文件名是Heaviside ,调用该函数即可画图 t=-2:0.01:5y=heaviside(t)plot(t,y);axis(-3 6 0 2)或者 y=sym(Heaviside(t); ezplot(y,-1,5);grid on

27、其他信号的调用方式:复指数信号:K*exp(a+i*b)*t)周期矩形脉冲信号:square(t,DUTY),其中DUTY参数表示信号的占空比DUTY%,即在一个周期脉冲宽度(正值部分)与脉冲周期的比值。占空比默认为0.5。周期三角波信号:sawtooth(t, width)四、实验内容1、上机前,认真阅读实验原理,掌握信号表示和信号运算的方法,并对原理中的程序进行验证。2、利用MATLAB命令画出下列连续信号的波形图。1) 2)3) 4)5) 6)3、试用Matlab绘制出如下连续时间信号的时域波形,并观察信号是否为周期信号。若是周期信号,周期是多少?(a) (b) (c) 五、思考题两个周

28、期信号经过相加、相减或相乘后,所得到的信号是否仍为周期性信号?举例说明各种情况。六、实验报告要求1、简述实验目的及实验原理。2、编程实现实验内容,并记录各输出波形,要求附上源程序,并记录波形。3、回答思考题。实验三 连续信号的基本运算一、实验目的通过绘制信号运算结果的波形,了解这些信号运算对信号所起的作用。二、实验环境计算机,Matlab软件三、实验原理1、信号的相加与相乘 信号的相加和相乘是信号在同一时刻取值的相加和相乘。因此Matlab对于时间信号的相加和相乘都是基于向量的点运算。 相加:可用算术运算符“+”实现。 相乘:可用数组运算符“.*”实现。 注意:要保证加法与乘法运算正确进行,两

29、信号的长度必须相同。t=0:0.001:8;A=1;a=-0.4;w0=2*pi;xt=A*exp(a*t).*sin(w0*t);plot(t,xt)2、信号的微分与积分1) 连续时间信号的微分运算(1)可使用diff命令函数来完成,其语句格式为:diff(function, variable,n)其中,function表示需要进行求导运算的函数,或者被赋值的符号表达式;variable为求导运算的独立变量;n为求导阶数,默认值为一阶导数。clear;syms a x y1 y2; %定义符号变量a,x,y1,y2y1=sin(a*x2); %符号函数 y2=x*sin(x)*log(x);

30、%符号函数dy1=diff(y1,x) %无分号直接显示结果d2=diff(y2) %无分号直接显示结果(2)h=0.001;x=0:h:pi;y=diff(sinx(x.2)/h;2) 连续时间信号积分运算可以使用quad命令函数来完成,其语句格式为:quad(function_name, a, b)其中,function_name表示被积函数,或者被赋值的符号表达式;a为积分下限,b为积分上限,a和b默认时则求不定积分。求三角波的积分和微分为了便于利用quad函数计算信号的积分,将三解波写成MATLAB函数,且函数命名为x2_2,程序如下:function yt=x2_2(t);yt=tripuls(t,4,0.5);利用diff和quad函数,并调用x2_2可实现三解波的微

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1