欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    信号与系统实验教程(MATLAB)(59页).doc

    • 资源ID:37188247       资源大小:898.50KB        全文页数:58页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    信号与系统实验教程(MATLAB)(59页).doc

    -信号与系统实验教程(MATLAB)-第 58 页信 号 与 系 统实 验 教 程目 录实验一:连续时间信号与系统的时域分析-6一、实验目的及要求-6二、实验原理-61、信号的时域表示方法-62、用MATLAB仿真连续时间信号和离散时间信号-73、LTI系统的时域描述-11三、实验步骤及内容-15四、实验报告要求-26实验二:连续时间信号的频域分析-27一、实验目的及要求-27二、实验原理-271、连续时间周期信号的傅里叶级数CTFS-272、连续时间信号的傅里叶变换CTFT-283、离散时间信号的傅里叶变换DTFT -284、连续时间周期信号的傅里叶级数CTFS的MATLAB实现-295、用MATLAB实现CTFT及其逆变换的计算-33三、实验步骤及内容-34四、实验报告要求-48实验三:连续时间LTI系统的频域分析-49一、实验目的及要求-49二、实验原理-491、连续时间LTI系统的频率响应-492、LTI系统的群延时-503、用MATLAB计算系统的频率响应-50三、实验步骤及内容-51四、实验报告要求-58实验四:调制与解调以及抽样与重建-59一、实验目的及要求-59二、实验原理-591、信号的抽样及抽样定理-592、信号抽样过程中的频谱混叠-623、信号重建- -624、调制与解调-645、通信系统中的调制与解调仿真-66三、实验步骤及内容-66四、实验报告要求-75实验五:连续时间LTI系统的复频域分析-76一、实验目的及要求-76二、实验原理-761、连续时间LTI系统的复频域描述-762、系统函数的零极点分布图-773、拉普拉斯变换与傅里叶变换之间的关系-784、系统函数的零极点分布与系统稳定性和因果性之间的关系-795、系统函数的零极点分布与系统的滤波特性-806、拉普拉斯逆变换的计算-81三、实验步骤及内容-82四、实验报告要求-87附录:授课方式和考核办法-88实验一 信号与系统的时域分析一、实验目的1、熟悉和掌握常用的用于信号与系统时域仿真分析的MATLAB函数;2、掌握连续时间和离散时间信号的MATLAB产生,掌握用周期延拓的方法将一个非周期信号进行周期信号延拓形成一个周期信号的MATLAB编程;3、牢固掌握系统的单位冲激响应的概念,掌握LTI系统的卷积表达式及其物理意义,掌握卷积的计算方法、卷积的基本性质;4、掌握利用MATLAB计算卷积的编程方法,并利用所编写的MATLAB程序验证卷积的常用基本性质;掌握MATLAB描述LTI系统的常用方法及有关函数,并学会利用MATLAB求解LTI系统响应,绘制相应曲线。基本要求:掌握用MATLAB描述连续时间信号和离散时间信号的方法,能够编写MATLAB程序,实现各种信号的时域变换和运算,并且以图形的方式再现各种信号的波形。掌握线性时不变连续系统的时域数学模型用MATLAB描述的方法,掌握卷积运算、线性常系数微分方程的求解编程。二、实验原理信号(Signal)一般都是随某一个或某几个独立变量的变化而变化的,例如,温度、压力、声音,还有股票市场的日收盘指数等,这些信号都是随时间的变化而变化的,还有一些信号,例如在研究地球结构时,地下某处的密度就是随着海拔高度的变化而变化的。一幅图片中的每一个象素点的位置取决于两个坐标轴,即横轴和纵轴,因此,图像信号具有两个或两个以上的独立变量。 在信号与系统课程中,我们只关注这种只有一个独立变量(Independent variable)的信号,并且把这个独立变量统称为时间变量(Time variable),不管这个独立变量是否是时间变量。 在自然界中,大多数信号的时间变量都是连续变化的,因此这种信号被称为连续时间信号(Continuous-Time Signals)或模拟信号(Analog Signals),例如前面提到的温度、压力和声音信号就是连续时间信号的例子。但是,还有一些信号的独立时间变量是离散变化的,这种信号称为离散时间信号。前面提到的股票市场的日收盘指数,由于相邻两个交易日的日收盘指数相隔24小时,这意味着日收盘指数的时间变量是不连续的,因此日收盘指数是离散时间信号。 而系统则用于对信号进行运算或处理,或者从信号中提取有用的信息,或者滤出信号中某些无用的成分,如滤波,从而产生人们所希望的新的信号。系统通常是由若干部件或单元组成的一个整体(Entity)。系统可分为很多不同的类型,例如,根据系统所处理的信号的不同,系统可分为连续时间系统(Continuous-time system)和离散时间系统(Discrete-time system),根据系统所具有的不同性质,系统又可分为因果系统(Causal system)和非因果系统(Noncausal system)、稳定系统(Stable system)和不稳定系统(Unstable system)、线性系统(Linear system)和非线性系统(Nonlinear system)、时变系统(Time-variant system)和时不变系统(Time-invariant system)等等。 然而,在信号与系统和数字信号处理中,我们所分析的系统只是所谓的线性时不变系统,这种系统同时满足两个重要的基本性质,那就是线性性和时不变性,通常称为线性时不变(LTI)系统。1. 信号的时域表示方法1.1将信号表示成独立时间变量的函数例如 x(t)=sin(t) 和 xn=n(0.5)nun分别表示一个连续时间信号和一个离散时间信号。在MATLAB中有许多内部函数,可以直接完成信号的这种表达,例如:sin():正弦信号cos():余弦信号exp():指数信号1.2用信号的波形图来描述信号用函数曲线表示一个信号,图1.1就是一个连续时间信号和一个离散时间信号的波形图。图1.1 连续时间信号与离散时间信号的波形图1.3将信号用一个数据序列来表示对于离散时间信号,还可以表示成一个数的序列,例如: xn=., 0.1, 1.1, -1.2, 0, 1.3, . n=0 在信号与系统和数字信号处理课程中,上述三种信号的描述方法是经常要使用的。2 用MATLAB仿真连续时间信号和离散时间信号 在MATLAB中,无论是连续时间信号还是离散时间信号,MATLAB都是用一个数字序列来表示信号,这个数字序列在MATLAB中叫做向量(vector)。通常的情况下,需要与时间变量相对应。 如前所述,MATLAB有很多内部数学函数可以用来产生这样的数字序列,例如sin()、cos()、exp()等函数可以直接产生一个按照正弦、余弦或指数规律变化的数字序列。2.1连续时间信号的仿真程序Program1_1是用MATLAB对一个正弦信号进行仿真的程序,请仔细阅读该程序,并在计算机上运行,观察所得图形。% Program1_1% This program is used to generate a sinusoidal signal and draw its plotclear, % Clear all variablesclose all, % Close all figure windowsdt = 0.01; % Specify the step of time variablet = -2:dt:0.2; % Specify the interval of timex = sin(2*pi*t); % Generate the signalplot(t,x) % Open a figure window and draw the plot of x(t)title('Sinusoidal signal x(t)')xlabel('Time t (sec)')常用的图形控制函数axis(xmin,xmax,ymin,ymax):图型显示区域控制函数,其中xmin为横轴的显示起点,xmax为横轴的显示终点,ymin为纵轴的显示起点,ymax为纵轴的显示终点。有时,为了使图形具有可读性,需要在所绘制的图形中,加上一些网格线来反映信号的幅度大小。MATLAB中的grid on/grid off可以实现在你的图形中加网格线。grid on:在图形中加网格线。grid off:取消图形中的网格线。x = input(Type in signal x(t) in closed form:)在信号与系统课程中,单位阶跃信号u(t) 和单位冲激信号(t) 是二个非常有用的信号。它们的定义如下 1.1(a) 1.1(b)这里分别给出相应的简单的产生单位冲激信号和单位阶跃信号的扩展函数。产生单位冲激信号的扩展函数为:function y = delta(t)dt = 0.01;y = (u(t)-u(t-dt)/dt;产生单位阶跃信号的扩展函数为:% Unit step functionfunction y = u(t)y = (t>=0); % y = 1 for t > 0, else y = 0 请将这二个MATLAB函数分别以delta 和u为文件名保存在work文件夹中,以后,就可以像教材中的方法使用单位冲激信号(t) 和单位阶跃信号u(t)。2.2离散时间信号的仿真程序Program1_2用来产生离散时间信号xn=sin(0.2n)。% Program1_2% This program is used to generate a discrete-time sinusoidal signal and draw its plotclear, % Clear all variablesclose all, % Close all figure windowsn = -10:10; % Specify the interval of timex = sin(0.2*pi*n); % Generate the signalstem (n,x) % Open a figure window and draw the plot of xntitle ('Sinusoidal signal xn')xlabel ('Time index n') 请仔细阅读该程序,比较程序Program1_1和Program1_2中的不同之处,以便自己编程时能够正确使用这种方法方针连续时间信号和离散时间信号。 程序Program1_3用来仿真下面形式的离散时间信号: xn=., 0.1, 1.1, -1.2, 0, 1.3, . n=0% Program1_3% This program is used to generate a discrete-time sequence% and draw its plotclear, % Clear all variablesclose all, % Close all figure windowsn = -5:5; % Specify the interval of time, the number of points of n is 11.x = 0, 0, 0, 0, 0.1, 1.1, -1.2, 0, 1.3, 0, 0; % Generate the signalstem(n,x,'.') % Open a figure window and draw the plot of xngrid on,title ('A discrete-time sequence xn')xlabel ('Time index n') 由于在程序的stem(n,x,'.') 语句中加有'.'选项,因此绘制的图形中每根棒条线的顶端是一个实心点。 如果需要在序列的前后补较多的零的话,可以利用函数zeros(),其语法为: zeros(1, N):圆括号中的1和N表示该函数将产生一个一行N列的矩阵,矩阵中的所有元素均为零。利用这个矩阵与序列xn进行组合,从而得到一个长度与n相等的向量。 例如,当 xn= 0.1, 1.1, -1.2, 0, 1.3 时,为了得到程序Program1_3中的序列, n=0可以用这个MATLAB语句x = zeros(1,4) x zeros(1, 2) 来实现。用这种方法编写的程序如下:% Program1_4% This program is used to generate a discrete-time sinusoidal signal% and draw its plotclear, % Clear all variablesclose all, % Close all figure windowsn = -5:5; % Specify the interval of timex = zeros(1,4), 0.1, 1.1, -1.2, 0, 1.3, zeros(1,2); % Generate the sequencestem (n,x,'.') % Open a figure window and draw the plot of xngrid on,title ('A discrete-time sequence xn')xlabel ('Time index n') 离散时间单位阶跃信号un定义为 1.2离散时间单位阶跃信号un除了也可以直接用前面给出的扩展函数来产生,还可以利用MATLAB内部函数ones(1,N) 来实现。这个函数类似于zeros(1,N),所不同的是它产生的矩阵的所有元素都为1。 值得注意的是,利用ones(1,N) 来实现的单位阶跃序列并不是真正的单位阶跃序列,而是一个长度为N单位门(Gate)序列,也就是un-un-N。但是在一个有限的图形窗口中,我们看到的还是一个单位阶跃序列。 在绘制信号的波形图时,有时我们需要将若干个图形绘制在图一个图形窗口中,这就需要使用MATLAB的图形分割函数subplot(),其用法是在绘图函数stem或plot之前,使用图形分割函数subplot(n1,n2,n3),其中的参数n1,n2和n3的含义是,该函数将把一个图形窗口分割成n1xn2个子图,即将绘制的图形将绘制在第n3个子图中。2.3信号的时域变换2.3.1 信号的时移 信号的时移可用下面的数学表达式来描述: 设一个连续时间信号为x(t),它的时移y(t) 表示为: y(t) = x(t - t0) 1.3其中,t0为位移量。若t0为正数,则y(t)等于将x(t)右移t0秒之后的结果。反之,若t0为负数,则y(t)等于将x(t)左移t0秒之后的结果。 在MATLAB中,时移运算与数学上习惯表达方法完全相同。 程序Program1_5对给定一个连续时间信号x(t) = e-0.5tu(t),对它分别左移2秒钟和右移2秒钟得到信号x1(t) = e-0.5(t+2)u(t+2)和x2(t) = e-0.5(t-2)u(t-2)。% Program1_5% This program is used to implement the time-shift operation% on a continuous-time signal and to obtain its time-shifted versions% and to draw their plots.clear,close all,t = -5:0.01:5;x = exp(-0.5*t).*u(t); % Generate the original signal x(t)x1 = exp(-0.5*(t+2).*u(t+2); % Shift x(t) to the left by 2 second to get x1(t)x2 = exp(-0.5*(t-2).*u(t-2); % Shift x(t) to the right by 2 second to get x2(t)subplot(311)plot(t,x) % Plot x(t)grid on,title ('Original signal x(t)')subplot (312)plot (t,x1) % Plot x1(t)grid on,title ('Left shifted version of x(t)')subplot (313)plot (t,x2) % Plot x2(t)grid on,title ('Right shifted version of x(t)')xlabel ('Time t (sec)')2.3.2 信号的时域反褶 对一个信号xn的反褶运算在数学上表示为 yn = x-n 1.4 这种反褶运算,用MATLAB实现起来也是非常简单的。有多种方法可以实现信号的反褶运算。方法一,修改绘图函数plot(t,x)和stem(n,x)中的时间变量t和n,即用-t和-n替代原来的t和n,这样绘制出来的图形,看起来就是原信号经时域反褶后的版本。方法二,直接利用原信号与其反褶信号的数学关系式来实现。这种方法最符合信号反褶运算的实际意义。方法三,使用MATLAB内部函数fliplr()来实现信号的反褶运算。其用法如下: y = fliplr(x):其中x为原信号x(t)或xn,而y则为x的时域反褶。需要说明的是,函数fliplr()对信号作时域反褶,仅仅将信号中各个元素的次序作了一个反转,这种反转处理是独立于时间变量t和n的。因此,如果信号与其时间变量能够用一个数学函数来表达的话,那么建议将时间变量t和n的范围指定在一个正负对称的时间区间即可。2.3.3 信号的时域尺度变换 信号x(t)的时域尺度变换在数学描述为y(t) = x(at), 1.5其中a为任意常数。根据a的不同取值,这种时域尺度变换对信号x(t)具有非常不同的影响。 当a = 1时,y(t) = x(t); 当a = -1时,y(t) = x(-t),即y(t)可以通过将x(t)反褶运算而得到; 当a > 1时,y(t) = x(at),y(t)是将x(t)在时间轴上的压缩而得到; 当0 < a < 1时,y(t) = x(at),y(t)是将x(t)在时间轴上的扩展而得到; 当 -1 < a < 0时,y(t) = x(at),y(t)是将x(t)在时间轴上的扩展同时翻转而得到; 当 a < -1时,y(t) = x(at),y(t)是将x(t)在时间轴上的压缩同时翻转而得到; 由此可见,信号的时域尺度变换,除了对信号进行时域压缩或扩展外,还可能包括对信号的时域反褶运算。实际上,MATLAB完成式1.5的运算,并不需要特殊的处理,按照数学上的常规方法即能完成。2.3.4周期信号 在信号与系统课程中,周期信号是一类非常重要的信号。给定一个信号x(t)或xn,如果满足 x(t) = x(t+kT) 1.6 xn = xn+kN 1.7则该信号叫做周期信号。其中,k为任意整数,T和N为常数,通常称为信号的基本周期或最小周期。 周期信号可以看作是一个时限的非周期信号经过周期延拓之后形成的。在数字信号处理中,周期延拓这一信号处理方法非常重要。下面的程序段,就是将一个非周期信号x1(t) = e-2tu(t)-u(t-2)经过周期延拓之后而得到一个周期信号:clear, close all;t = -4:0.001:4;T = 2; x = 0;for k = -2:2; x = x+exp(-2*(t-k*T).*(u(t-k*T)-u(t-(k+1)*T);end仔细阅读该程序,可以发现其算法就是: 1.8 由于k无法计算到无穷,而是以有限值加以替代,反映到有限宽度图形窗口中得到的效果完全符合要求。3 LTI系统的时域描述3.1线性时不变系统 在分析LTI系统时,有关LTI系统的两个重要的性质是必须首先掌握和理解的。这就是线性性(Linearity)和时不变性(Time-invariance)。所谓线性性就是指系统同时满足齐次性和叠加性。这可以用下面的方法来描述。 假设系统在输入信号x1(t)作用时的响应信号为y1(t),在输入信号x2(t)作用时的响应信号为y2(t),给定两个常数a和b,如果当输入信号为x(t)时系统的响应信号为y(t),且满足 x(t) = x1(t) + x2(t) 1.9(a) y(t) = y1(t) + y2(t) 1.9(b)则该系统具有叠加性(Additivity)。如果满足 x(t) = ax1(t) 1.10(a) y(t) = ay1(t) 1.10(b)则该系统具有齐次性(Homogeneity)。一个系统如果是线性系统的话,那么这个系统必须同时具有叠加性和齐次性。 又假设系统在输入信号x(t)作用时的响应信号为y(t),对一个给定时间常数t0,如果当输入信号为x(t-t0)时,系统的响应信号为y(t-t0)的话,则该系统具有时不变性。 同时具有线性性和时不变性的系统,叫做线性时不变系统,简称LTI系统。LTI系统有连续时间LTI系统和离散时间LTI系统之分。连续时间系统的输入和输出信号都必须是连续时间信号,而离散时间系统的输入和输出信号都必须是离散时间信号。3.2 LTI系统的单位冲激响应和卷积模型 给定一个连续时间LTI系统,在系统的初始条件为零时,用单位冲激信号(t)作用于系统,此时系统的响应信号称为系统的单位冲激响应(Unit impulse response),一般用h(t)来表示。需要强调的是,系统的单位冲激响应是在激励信号为(t)时的零状态响应(Zero-state response)。 离散时间LTI系统的单位冲激响应的定义与连续时间LTI系统的单位冲激响应相同,只是离散时间单位冲激函数n的定义有所不同。 系统的单位冲激响应是一个非常重要的概念,对于一个系统,如果我们知道了该系统的单位冲激响应,那么,该系统对任意输入信号的响应信号都可以求得。也就是说,系统的输入信号x(t)、xn和输出信号y(t)、yn之间的关系可以用一个数学表达式来描述,这个数学表达式为 1.11(a) 1.11(b)这个表达式就是LTI系统的卷积模型,它是根据系统的线性性和时不变性以及信号可以分解成单位冲激函数经推理得到的。这个表达式实际上告诉了我们一个重要的结论,那就是,任意LTI系统可以完全由它的单位冲激响应h(t)/hn来确定。由于系统的单位冲激响应是零状态响应,故按照式1.11求得的系统响应也是零状态响应。式1.11中的积分运算叫做卷积积分,求和运算叫做卷积和,是描述连续时间系统输入输出关系的一个重要表达式。3.3卷积的计算 卷积的计算通常可按下面的五个步骤进行(以卷积积分为例):1. 该换两个信号波形图中的横坐标,由t改为,变成函数的自变量;2. 把其中一个信号反褶,如把h()变成h(-);3. 把反褶后的信号做移位,移位量是t,这样t是一个参变量。在坐标系中,t > 0时图形右移, t < 0时图形左移。4. 计算两个信号重叠部分的乘积x()h(t-);5. 完成相乘后图形的积分。对于两个时限信号(Time-limited signal),按照上述的五个步骤,作卷积积分运算时,关键是正确确定不同情况下的积分限。只要正确地确定了积分限都能得到正确定积分结果。尽管如此,在时域中计算卷积积分,总体上来说是一项比较困难的工作。程序convlution_demo用来演示上述作卷积积分运算的五个步骤。本程序较为复杂,不建议读者读懂该程序,只需执行这个程序,观看程序执行过程中有关卷积积分的运算过程,以便于理解这五个步骤。借助MATLAB的内部函数conv()可以很容易地完成两个信号的卷积积分运算。其语法为:y = conv(x,h)。其中x和h分别是两个作卷积运算的信号,y为卷积结果。为了正确地运用这个函数计算卷积,这里有必要对conv(x,h)做一个详细说明。conv(x,h)函数实际上是完成两个多项式的乘法运算。例如,两个多项式p1和p2分别为: 和 这两个多项式在MATLAB中是用它们的系数构成一个行向量来表示的,如果用x来表示多项式p1,h表示多项式p2,则x和h分别为 x = 1 2 3 4 h = 4 3 2 1在MATLAB命令窗口依次键入>> x = 1 2 3 4;>> h = 4 3

    注意事项

    本文(信号与系统实验教程(MATLAB)(59页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开