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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

信号与系统MATLAB实验.docx

1、信号与系统MATLAB实验2016-2017学年第一学期信号与系统实验报告班级:姓名:学号:成绩:指导教师:实验一 常见信号的MATLAB表示及运算一实验目的1熟悉常见信号的意义、特性及波形2学会使用MATLAB表示信号的方法并绘制信号波形3. 掌握使用MATLAB进行信号基本运算的指令4. 熟悉用MATLAB实现卷积积分的方法二实验原理信号一般是随时间而变化的某些物理量。按照自变量的取值是否连续,信号分为连续时间信号和离散时间信号,一般用和来表示。若对信号进行时域分析,就需要绘制其波形,如果信号比较复杂,则手工绘制波形就变得很困难,且难以精确。MATLAB强大的图形处理功能及符号运算功能,为

2、实现信号的可视化及其时域分析提供了强有力的工具。根据MATLAB的数值计算功能和符号运算功能,在MATLAB中,信号有两种表示方法,一种是用向量来表示,另一种则是用符号运算的方法。在采用适当的MATLAB语句表示出信号后,就可以利用MATLAB中的绘图命令绘制出直观的信号波形了。下面分别介绍连续时间信号和离散时间信号的MATLAB表示及其波形绘制方法。1.连续时间信号所谓连续时间信号,是指其自变量的取值是连续的,并且除了若干不连续的点外,对于一切自变量的取值,信号都有确定的值与之对应。从严格意义上讲,MATLAB并不能处理连续信号。在MATLAB中,是用连续信号在等时间间隔点上的样值来近似表示

3、的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。在MATLAB中连续信号可用向量或符号运算功能来表示。 向量表示法对于连续时间信号,可以用两个行向量f和t来表示,其中向量t是用形如的命令定义的时间范围向量,其中,为信号起始时间,为终止时间,p为时间间隔。向量f为连续信号在向量t所定义的时间点上的样值。说明: plot是常用的绘制连续信号波形的函数。严格说来,MATLAB不能表示连续信号,所以,在用plot( )命令绘制波形时,要对自变量t进行取值,MATLAB会分别计算对应点上的函数值,然后将各个数据点通过折线连接起来绘制图形,从而形成连续的曲线。因此,绘制的只是近似波形,

4、而且,其精度取决于t的取样间隔。t的取样间隔越小,即点与点之间的距离越小,则近似程度越好,曲线越光滑。例如:图1-1是在取样间隔为p=0.5时绘制的波形,而图1-2是在取样间隔p=0.1时绘制的波形,两相对照,可以看出图1-2要比图1-1光滑得多。在上面的f=sin(t). /t语句中,必须用点除符号,以表示是两个函数对应点上的值相除。 符号运算表示法如果一个信号或函数可以用符号表达式来表示,那么我们就可以用前面介绍的符号函数专用绘图命令ezplot()等函数来绘出信号的波形。 常见信号的MATLAB表示对于普通的信号,应用以上介绍的两种方法即可完成计算函数值或绘制波形,但是对于一些比较特殊的

5、信号,比如单位阶跃信号(t)、符号函数sgn(t)等,在MATLAB中这些信号都有专门的表示方法。单位阶跃信号单位阶跃信号的定义为:?,单位阶跃信号是信号分析的基本信号之一,在信号与系统分析中有着非常重要的作用,通常,我们用它来表示信号的定义域,简化信号的时域表示形式。例如:可以用两个不同延时的单位阶跃信号来表示一个矩形门信号,即:在MATLAB中,可通过多种方法得到单位阶跃信号,下面分别介绍。方法一: 调用Heaviside(t)函数在MATLAB的Symbolic Math Toolbox 中,有专门用于表示单位阶跃信号的函数,即Heaviside(t)函数,用它即可方便地表示出单位阶跃信

6、号以及延时的单位阶跃信号,并且可以方便地参加有关的各种运算过程。首先定义函数Heaviside(t) 的m函数文件,该文件名应与函数名同名即Heaviside.m。%定义函数文件,函数名为Heaviside,输入变量为x,输出变量为yfunction y= Heaviside(t) y=(t0); %定义函数体,即函数所执行指令%此处定义t0时y=1,t=0时y=0,注意与实际阶跃信号定义的区别。方法二:数值计算法在MATLAB中,有一个专门用于表示单位阶跃信号的函数,即stepfun( )函数,它是用数值计算法表示的单位阶跃函数。其调用格式为: stepfun(t,t0) ?其中,t是以向量

7、形式表示的变量,t0表示信号发生突变的时刻,在t0以前,函数值小于零,t0以后函数值大于零。有趣的是它同时还可以表示单位阶跃序列,这只要将自变量以及取样间隔设定为整数即可。有关单位阶跃序列的表示方法,我们后面有专门论述,下面通过一个例子来说明如何调用stepfun( )函数来表示单位阶跃函数。符号函数符号函数的定义为:在MATLAB中有专门用于表示符号函数的函数sign() ,由于单位阶跃信号? (t)和符号函数两者之间存在以下关系:,因此,利用这个函数就可以很容易地生成单位阶跃信号。下面举个例子来说明如何利用sign()函数生成单位阶跃信号,并同时绘制其波形。 2.离散时间信号离散时间信号又

8、叫离散时间序列,一般用 表示,其中变量k为整数,代表离散的采样时间点(采样次数)。三实验内容1.分别用MATLAB的向量表示法和符号运算功能,表示并绘出下列连续时间信号的波形:(2)syms t;f=sym(cos(t)*pi*t/2*heaviside(t)-heaviside(t-4); ezplot(f,-2,8);(4) syms t; f=sym(2/3*t*heaviside(t+2);ezplot(f,-4,8);2.分别用MATLAB表示并绘出下列离散时间信号的波形:(2)t=0:8; t1=-10:15; f=zeros(1,10),t,zeros(1,7); stem(t1

9、,f) axis(-10,15,0,10)(4) t=-20:10;?f=ones(1,23),zeros(1,8);stem(t,f)stem(t,f)3.已知信号f(t)的波形如下图所示,试用MATLAB绘出满足下列要求的信号波形。? (2)t=-1:0.01:4; t0=0;t1=1; t2=2;ut=2*stepfun(t,t0)-2*stepfun(t,t1)+stepfun(t,t1)-stepfun(t,t2);plot(t-2,ut)axis(-3,2,0,3)(4) t=-1:0.01:4; t0=0;t1=1; t2=2;ut=2*stepfun(t,t0)-2*stepf

10、un(t,t1)+stepfun(t,t1)-stepfun(t,t2);plot(0.5*t+1,ut)axis(-1,2,0,4)4.已知两信号,求卷积积分,并与例题比较。程序清单: t1=-1:0.01:0;t2=0:0.01:1;t3=3:0.01:5;f1=ones(size(t1);f2=ones(size(t2);g=conv(f1,f2);plot(t3,g)信号波形:5.已知两信号,?,求卷积积分。程序代码:t1=0:0.01:5;t2=-5:0.01:5;t3=-5:0.01:10;f1=t1;f2=exp(t2).*(t2=0);g=conv(f1,f2);plot(t3

11、,g);运行结果截图:6.已知,求两序列的卷积和 。程序清单:f1=1,1,1,2,0;f2=1,2,3,4,5;f=conv(f1,f2);x=0:8;stem(x,f,filled)信号波形:实验二? LTI系统的响应一、实验目的1.?熟悉连续时间系统的单位冲激响应、阶跃响应的意义及求解方法2.?熟悉连续(离散)时间系统在任意信号激励下响应的求解方法3.?熟悉应用MATLAB实现求解系统响应的方法二、实验原理1.连续时间系统对于连续的LTI系统,当系统输入为f(t),输出为y(t),则输入与输出之间满足如下的线性常系数微分方程:,当系统输入为单位冲激信号(t)时产生的零状态响应称为系统的单

12、位冲激响应,用h(t)表示。若输入为单位阶跃信号(t)时,系统产生的零状态响应则称为系统的单位阶跃响应,记为g(t),如下图所示。系统的单位冲激响应h(t)包含了系统的固有特性,它是由系统本身的结构及参数所决定的,与系统的输入无关。我们只要知道了系统的冲激响应,即可求得系统在不同激励下产生的响应。因此,求解系统的冲激响应h(t)对我们进行连续系统的分析具有非常重要的意义。在MATLAB中有专门用于求解连续系统冲激响应和阶跃响应, 并绘制其时域波形的函数impulse( ) 和step( )。如果系统输入为f(t),冲激响应为h(t),系统的零状态响应为y(t),则有:。若已知系统的输入信号及初

13、始状态,我们便可以用微分方程的经典时域求解方法,求出系统的响应。但是对于高阶系统,手工计算这一问题的过程非常困难和繁琐。在MATLAB中,应用lsim( )函数很容易就能对上述微分方程所描述的系统的响应进行仿真,求出系统在任意激励信号作用下的响应。lsim( )函数不仅能够求出连续系统在指定的任意时间范围内系统响应的数值解,而且还能同时绘制出系统响应的时域波形图。2.离散时间系统LTI离散系统中,其输入和输出的关系由差分方程描述: (前向差分方程) (后向差分方程)当系统的输入为单位序列(k)时产生的零状态响应称为系统的单位函数响应,用h(k)表示。当输入为 (k)时产生的零状态响应称为系统的

14、单位阶跃应,记为:g(k),如下图所示。如果系统输入为e(k),冲激响应为h(k),系统的零状态响应为y(k),则有:。与连续系统的单位冲激响应h(t)相类似,离散系统的单位函数响应h(k)也包含了系统的固有特性,与输入序列无关。我们只要知道了系统的单位函数响应,即可求得系统在不同激励信号作用下产生的响应。因此,求解系统的单位函数响应h(k)对我们进行离散系统的分析也同样具有非常重要的意义。MATLAB中为用户提供了专门用于求解离散系统单位函数响应, 并绘制其时域波形的函数impz( )。同样也提供了求离散系统响应的专用函数filter( ),该函数能求出由差分方程所描述的离散系统在指定时间范

15、围内的输入序列作用时,产生的响应序列的数值解。当系统初值不为零时,可以使用dlsim( )函数求出离散系统的全响应,其调用方法与前面连续系统的lsim( )函数相似。另外,求解离散系统阶跃响应可以通过如下两种方法实现:一种是直接调用专用函数dstep( ),其调用方法与求解连续系统阶跃响应的专用函数step( )的调用方法相似;另一种方法是利用求解离散系统零状态响应的专用函数filter( ),只要将其中的激励信号看成是单位阶跃信号(k)即可。三、实验内容1. 已知描述系统的微分方程和激励信号e(t) 分别如下,试用解析方法求系统的单位冲激响应h(t)和零状态响应r(t),并用MATLAB绘出

16、系统单位冲激响应和系统零状态响应的波形,验证结果是否相同。;?程序清单:a=1 4 4;b=1 3;impulse(b,a,10)p=0.01;t=0:p:10;x=exp(-1*t);y=filter(b,a,x)subplot(2,1,1),impulse(b,a,10)subplot(2,1,2),lsim(b,a,x,t);单位冲激响应程序代码:a=1 2 26;b=1;subplot(2,1,1), impulse(b,a,4)subplot(2,1,2), step(b,a,4)运行结果截图:零状态响应程序代码:a=1 2 26;b=1;p1=0.1;t1=0:p1:10;x1=t

17、1;lsim(b,a,x1,t1)运行结果截图:;a=1 4 3;b=1;p=0.01;t=0:p:10;x=exp(-2*t)y=filter(b,a,x)subplot(2,1,1),impulse(b,a,10)subplot(2,1,2),lsim(b,a,x,t)如下图所示的电路中,已知,且两电感上初始电流分别为,如果以电阻上电压作为系统输出,请求出系统在激励(v)作用下的全响应。程序清单:A=-8 4;4 -8;B=1;0;C=-4 4;D=0;x0=2;0;t=0:0.01:10;E=12.*ones(size(t);r,x=lsim(A,B,C,D,E,t,x0);plot(t

18、,r)信号波形:阶跃响应程序代码:a=1,-5/6,1/6;b=1,0,-1;k=0:20;x=heaviside(k);y=filter(b,a,x)subplot(2,1,1),stem(k,x)title(输入序列)subplot(2,1,2),stem(k,y)title(输出序列)运行结果截图:一带通滤波器可由下列差分方程描述:,其中为系统输入, 为系统输出。请求出当激励(选取适当的n值)时滤波器的稳态输出。a=1,0,81/100;b=1,0,-1;k=0:20;x=(10+10.*cos(1/2.*k)+10.*cos(k);y=filter(b,a,x)subplot(3,1,

19、1),impz(b,a,0:20),subplot(3,1,2),dstep(b,a,0:20),subplot(3,1,3),stem(k,y)实验三?连续时间信号的频域分析一、实验目的1熟悉傅里叶变换的性质2熟悉常见信号的傅里叶变换3了解傅里叶变换的MATLAB实现方法二、实验原理傅里叶变换是信号分析 的最重要的内容之一。从已知信号求出相应的频谱函数的数学表示为:的傅里叶变换存在的充分条件是在无限区间内绝对可积,即满足下式: 但上式并非傅里叶变换存在的必要条件。在引入广义函数概念之后,使一些不满足绝对可积条件的函数也能进行傅里叶变换。傅里叶反变换的定义为:。在这一部分的学习中,大家都体会到

20、了这种数学运算的麻烦。在MATLAB语言中有专门对信号进行正反傅里叶变换的语句,使得傅里叶变换很容易在MATLAB中实现。在MATLAB中实现傅里叶变换的方法有两种,一种是利用MATLAB中的Symbolic Math Toolbox提供的专用函数直接求解函数的傅里叶变换和傅里叶反变换,另一种是傅里叶变换的数值计算实现法。1.直接调用专用函数法在MATLAB中实现傅里叶变换的函数为:F=fourier( f )?对f(t)进行傅里叶变换,其结果为F(w)F=fourier(f,v)? 对f(t)进行傅里叶变换,其结果为F(v)F=fourier( f,u,v )?对f(u)进行傅里叶变换,其结

21、果为F(v)傅里叶反变换f=ifourier( F ) 对F(w)进行傅里叶反变换,其结果为f(x)f=ifourier(F,U)? 对F(w)进行傅里叶反变换,其结果为f(u) f=ifourier( F,v,u ) 对F(v)进行傅里叶反变换,其结果为f(u)由于MATLAB中函数类型非常丰富,要想了解函数的意义和用法,可以用mhelp命令。如在命令窗口键入:mhelp fourier回车,则会得到fourier的意义和用法。注意:(1)在调用函数fourier( )及ifourier( )之前,要用syms命令对所有需要用到的变量(如t,u,v,w)等进行说明,即要将这些变量说明成符号变

22、量。对fourier( )中的f及ifourier( )中的F也要用符号定义符sym将其说明为符号表达式。(2)采用fourier( )及fourier( )得到的返回函数,仍然为符号表达式。在对其作图时要用ezplot( )函数,而不能用plot()函数。(3)fourier( )及fourier( )函数的应用有很多局限性,如果在返回函数中含有()等函数,则ezplot( )函数也无法作出图来。另外,在用fourier( )函数对某些信号进行变换时,其返回函数如果包含一些不能直接表达的式子,则此时当然也就无法作图了。这是fourier( )函数的一个局限。另一个局限是在很多场合,尽管原时间

23、信号f(t)是连续的,但却不能表示成符号表达式,此时只能应用下面介绍的数值计算法来进行傅氏变换了,当然,大多数情况下,用数值计算法所求的频谱函数只是一种近似值。三、 实验内容1.编程实现求下列信号的幅度频谱(1)求出的频谱函数F1(j),请将它与上面门宽为2的门函数的频谱进行比较,观察两者的特点,说明两者的关系。f1(t)函数程序代码:syms t w;Gt=sym(Heaviside(2*t+1)-Heaviside(2*t-1);Fw=fourier(Gt,t,w);FFw=maple(convert,Fw,piecewise);FFP=abs(FFw);ezplot(FFP,-10*pi

24、 10*pi);grid;axis(-10*pi 10*pi 0 2.2);f1(t)函数图像:门函数程序代码:syms t w;Gt=sym(Heaviside(t+1)-Heaviside(t-1);Fw=fourier(Gt,t,w);FFw=maple(convert,Fw,piecewise);FFP=abs(FFw);ezplot(FFP,-10*pi 10*pi);grid;axis(-10*pi 10*pi 0 2.2);门函数图像:(2) 三角脉冲?程序清单:f2(t)函数程序代码:syms t wGt=sym(1+t)*(Heaviside(t+1)-Heaviside(t

25、)+(1-t)*(Heaviside(t)-Heaviside(t-1);Fw=fourier(Gt,t,w);FFw=maple(convert,Fw,piecewise);FFP=abs(FFw);ezplot(FFP,-10*pi 10*pi);grid;axis(-10*pi 10*pi 0 2.2);f2(t)函数图像:(3) 单边指数信号 程序清单:syms t wGt=sym(exp(-1*t)*heaviside(t); Fw=fourier(Gt,t,w); FFw=maple(convert,Fw,piecewise); FFP=abs(FFw); ezplot(FFP,-

26、7*pi 7*pi);grid;axis(-7*pi 7*pi 0 1.2)信号波形:(4) 高斯信号?程序清单:syms t w;Gt=exp(-t.2);Fw=fourier(Gt,t,w)FFP=abs(Fw)ezplot(Fw,-30 30);grid;axis(-30 30 0 2)信号波形:2.利用ifourier( ) 函数求下列频谱函数的傅氏反变换(1)程序清单:syms t wFw=sym(-j*2*w)/(16+w2);ft=ifourier (Fw)ft=ifourier(Fw,w,t);运行结果:ft=-j*exp(-4*abs(x)*sign(x)*1i(2) sym

27、s t wFw=sym(j*w)2+5*j*w-8)/(j*w)2+6*j*w+5);ft=ifourier(Fw)ft=ifourier(Fw,w,t);运行结果:ft =(2*pi*dirac(x) + (pi*exp(-(x*1i)/j)*sign(imag(1/j)*3i)/j - (pi*exp(-(x*5i)/j)*sign(imag(1/j)*2i)/j - (pi*exp(-(x*1i)/j)*sign(x)*3i)/j + (pi*exp(-(x*5i)/j)*sign(x)*2i)/j)/(2*pi)实验四? 离散信号与系统的时域分析一、实验目的1.学会用MATLAB表示常

28、用离散信号的方法;2.学会用MATLAB实现离散信号卷积的方法;3.学会用MATLAB求解离散系统的单位响应;4.学会用MATLAB求解离散系统的零状态响应;二、实验原理1.离散信号的MATLAB表示表示离散时间信号f(k)需要两个行向量,一个是表示序号k= ,一个是表示相应函数值f= ,画图命令是stem。2.离散信号的卷积和两个有限长序列f1,f2卷积可调用MATLAB函数conv,调用格式是f=conv(f1,f2), f是卷积结果,但不显示时间序号,可自编一个函数dconv给出f和k,并画图。3.离散系统的单位响应MATLAB提供画系统单位响应函数impz,调用格式是impz(b,a)

29、 式中b和a是表示离散系统的行向量;impz(b,a,n) 式中b和a是表示离散系统的行向量,时间范围是0n;impz(b,a,n1,n2) 时间范围是n1n2 ;y=impz(b,a,n1,n2) 由y给出数值序列;4.离散系统的零状态响应MATLAB提供求离散系统零状态响应数值解函数filter,调用格式为filter(b,a,x),式中b和a是表示离散系统的向量,x是输入序列非零样值点行向量,输出向量序号同x一样。三、上机实验内容1验证实验原理中程序离散信号的MATLAB表示例2-1正弦序列信号 正弦序列信号可直接调用MATLAB函数cos,例,当是整数或分数时,才是周期信号。画,波形程序是:k=0:40;subplot(2,1,1)stem(k,cos(k*pi/8),filled)title(cos(k*pi/8)subplot(2,1,2)stem(k,cos(2*k),filled)title(cos(2*k) 2已知,画单位响应波形。a=2,-2,1;b=1,3,2;impz(b,a)impz(b,a,60)impz(b,a,-10:40)3已知,输入,画输出波形,范围015。a=1 1 0.25;b=1 ;t=0:15;x=t;y=filter(b,a,x)subplot(2,1,1)stem(t,x)title(输入序列)subplot(2

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

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