信号与系统指导书.doc_第1页
信号与系统指导书.doc_第2页
信号与系统指导书.doc_第3页
信号与系统指导书.doc_第4页
信号与系统指导书.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信号与系统实践指导书周昌雄苏州市职业大学电子信息工程系20075目 录项目一 MATLAB软件的熟悉项目二 信号的时域分析项目三 信号的频域分析项目四 连续系统拉普拉斯变换分析项目五 离散系统Z变换分析项目一 MATLAB软件的熟悉 一、 任务目标1 熟悉MATLAB主界面,学会简单的操作2 学会M文件的建立及运行3 熟悉矩阵的基本运算4 掌握编写简单的MATLAB程5 熟悉常见信号的意义、特性及波形6 学会使用MATLAB表示信号的方法二、所需设备计算机、MATLAB软件三、 实验原理MATLAB是以矩阵作为基本编程单元的一种程序设计语言,矩阵运算在MATLAB中十分简单,它往往只需几句语句,即可完成相应的运算,无需像其它软件中编制繁琐而容易出错的循环程序。MATLAB有较强的绘图功能,可以用简单的语句便可完成二维和三维图形的绘制。在开始使用MATLAB时,可以在屏幕上键入DEMO命令,它将启动MATLAB的演示程序,用户可在此演示过程中领略MATLAB所提供的强大运算和绘图功能。信号一般是随时间而变化的某些物理量。按照自变量的取值是否连续,信号分为连续时间信号和离散时间信号,一般用和来表示。若对信号进行时域分析,就需要绘制其波形,如果信号比较复杂,则手工绘制波形就变得很困难,且难以精确。MATLAB强大的图形处理功能及符号运算功能,为我们实现信号的可视化及其时域分析提供了强有力的工具。1 矩阵的表示和输入在命令窗口中直接输入矩阵在命令窗口中矩阵的输入用下列方法:A = 1 1 1; -1 2 3;1 4 9 或者用逗号代替空格A = 1,1,1; -1,2,3;1,4,9 输入完,按回车键,屏幕上显示:A = 1 1 1-1 -2 -31 4 9 上形式为我们平时所习惯的矩阵表示。在M文件中输入矩阵 选择菜单中file new M-file 输入:A = 1,2,3; 4,5,6;7,8,9 B = 9,8,7; 6,5,4;3,2,1 保存名为W1的M的文件,退出编辑环境,此时在命令窗口中键入W1命令就可调出A和B矩阵。结果为:A = 1 2 34 5 67 8 9B = 9 8 76 5 43 2 12 矩阵的基本运算例:已知 A = 1,2,3; 4,5,6;7,8,9 B = 9,8,7; 6,5,4;3,2,1 求矩阵之和C=A+B 法一 直接在命令窗口中计算 输入 :A = 1,2,3; 4,5,6;7,8,9 ;回车 B = 9,8,7; 6,5,4;3,2,1 ;回车 C =A+B 回车结果: C=10 10 1010 10 1010 10 10法二在M文件中键入下列语句 A = 1,2,3; 4,5,6;7,8,9 ;B = 9,8,7; 6,5,4;3,2,1 ; C =A+B; 保存为W2文件,并退出编辑环境,在命令窗口中键入W2命令,屏幕上会出现A.B.C矩阵。仿照上例计算D=A-B, E=A.*B, F=A*B, G=A. /B, H=A/B, U=AB, W=A.B。比较E和F以及G和H及U的不同,并分别解释它们的物理意义。3、连续时间信号所谓连续时间信号,是指其自变量的取值是连续的,并且除了若干不连续的点外,对于一切自变量的取值,信号都有确定的值与之对应。从严格意义上讲,MATLAB并不能处理连续信号。在MATLAB中,是用连续信号在等时间间隔点上的样值来近似表示的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。在MATLAB中连续信号可用向量或符号运算功能来表示。向量表示法对于连续时间信号,可以用两个行向量f和t来表示,其中向量t是用形如的命令定义的时间范围向量,其中,为信号起始时间,为终止时间,p为时间间隔。向量f为连续信号在向量t所定义的时间点上的样值。例如:对于连续信号 ,我们可以将它表示成行向量形式,同时用绘图命令plot()函数绘制其波形。其程序如下:t1=-10:0.5:10; %定义时间t的取值范围及取样间隔(p=0.5),则t1是一个%维数为41的行向量 f1=sin(t1). /t1; %定义信号表达式,求出对应采样点上的样值, %同时生成与向量t1维数相同的行向量f1 figure(1) %打开图形窗口1plot(t1,f1) %以t1为横坐标,f1为纵坐标绘制f1的波形t2=-10:0.1:10; %定义时间t的取值范围及取样间隔(p=0.1),则t2是一个%维数为201的行向量f2=sin(t2). /t2; %定义信号表达式,求出对应采样点上的样值 %同时生成与向量t2维数相同的行向量f2figure(2) %打开图形窗口2plot(t2,f2) %以t2为横坐标,f2为纵坐标绘制f2的波形运行结果如下:图1-1图1-2说明:l plot是常用的绘制连续信号波形的函数。l 严格说来,MATLAB不能表示连续信号,所以,在用plot()命令绘制波形时,要对自变量t进行取值,MATLAB会分别计算对应点上的函数值,然后将各个数据点通过折线连接起来绘制图形,从而形成连续的曲线。因此,绘制的只是近似波形,而且,其精度取决于t的取样间隔。t的取样间隔越小,即点与点之间的距离越小,则近似程度越好,曲线越光滑。例如:图1-1是在取样间隔为p=0.5时绘制的波形,而图1-2是在取样间隔p=0.1时绘制的波形,两相对照,可以看出图1-2要比图1-1光滑得多。l 在上面的f=sin(t). /t语句中,必须用点除符号,以表示是两个函数对应点上的值相除。 符号运算表示法如果一个信号或函数可以用符号表达式来表示,那么我们就可以用前面介绍的符号函数专用绘图命令ezplot()等函数来绘出信号的波形(ezplot()等函数的调用格式祥见第一部分第四章第三节)。例如:对于连续信号,我们也可以用符号表达式来表示它,同时用ezplot()命令绘出其波形。其MATLAB程序如下:syms t %符号变量说明f=sin(t)/t ; %定义函数表达式ezplot(f,-10,10) %绘制波形,并且设置坐标轴显示范围运行结果如下: 图1-3. 常见信号的MATLAB表示对于普通的信号,应用以上介绍的两种方法即可完成计算函数值或绘制波形,但是对于一些比较特殊的信号,比如单位阶跃信号e(t)、符号函数sgn(t)等,在MATLAB中这些信号都有专门的表示方法。l 单位阶跃信号单位阶跃信号的定义为: 单位阶跃信号是信号分析的基本信号之一,在信号与系统分析中有着非常重要的作用,通常,我们用它来表示信号的定义域,简化信号的时域表示形式。例如:可以用两个不同延时的单位阶跃信号来表示一个矩形门信号,即:在MATLAB中,可通过多种方法得到单位阶跃信号,下面分别介绍之。方法: 调用Heaviside(t)函数在MATLAB的Symbolic Math Toolbox 中,有专门用于表示单位阶跃信号的函数,即Heaviside(t)函数,用它即可方便地表示出单位阶跃信号以及延时的单位阶跃信号,并且可以方便地参加有关的各种运算过程。例用MATLAB画出单位阶跃信号的波形,其程序如下:ut=sym(Heaviside(t); %定义单位阶跃信号(要用符号函数定义法)ezplot(ut,-2,10) %绘制单位阶跃信号在范围之间的波形运行结果如下:例用MATLAB画出信号的波形其程序如下:f=sym(Heaviside(t+2)-3*Heaviside(t-5); %定义函数表达式ezplot(f,-4,20) %绘制函数在范围之间的波形运行结果如下: l 符号函数符号函数的定义为: 在MATLAB中有专门用于表示符号函数的函数sign() ,由于单位阶跃信号e (t)和符号函数两者之间存在以下关系:,因此,利用这个函数就可以很容易地生成单位阶跃信号。下面举个例子来说明如何利用sign()函数生成单位阶跃信号,并同时绘制其波形。举例:利用sign()函数生成单位阶跃信号,并分别绘出两者的波形 MATLAB程序如下: t=-5:0.01:5; %定义自变量取值范围及间隔,生成行向量tf=sign(t); %定义符号信号表达式,生成行向量ffigure(1); %打开图形窗口1plot(t,f), %绘制符号函数的波形axis(-5,5,-1.5,1.5) %定义坐标轴显示范围s=1/2+1/2*f; %生成单位阶跃信号figure(2); %打开图形窗口2plot(t,s), axis(-5,5,-0.5,1.5) %定义坐标轴显示范围 运行结果如下:4、离散时间信号 离散时间信号又叫离散时间序列,一般用f(k) 表示,其中变量k为整数,代表离散的采样时间点(采样次数)。在MATLAB中,离散信号的表示方法与连续信号不同,它无法用符号运算法来表示,而只能采用数值计算法表示,由于MATLAB中元素的个数是有限的,因此,MATLAB无法表示无限序列;另外,在绘制离散信号时必须使用专门绘制离散数据的命令,即stem()函数,而不能用plot()函数。下面通过一些常用离散信号来说明如何用MATLAB来实现离散信号的表示,以及可视化。l 单位序列d (k)单位序列d (k)的定义为 下面是用MATLAB绘制单位序列d (k) 的MATLAB程序:k1=-5;k2=5; %定义自变量的取值范围k=k1:k2; %定义自变量的取值范围及取样间隔(默认为1),并生成行向量n=length(k); %取向量的维数f=zeros(1,n); %生成与向量k的维数相同的零矩阵,给函数赋值f(1,6)=1; %在k=0时刻,信号赋值为1stem(k,f,filled) %绘制波形axis(k1,k2,0,1.5) %定义坐标轴显示范围运行结果如下:如果要绘制移位的单位序列d (k+k0)的波形,只要将以上程序略加修改即可,例如要绘制信号d (k+2)的图形,可将以上程序改为:k1=-5;k2=5; %定义自变量的取值范围k0=3; %定义平移量k=k1:k2; %定义自变量的取值范围及取样间隔(默认为1),并生成行向量n=length(k); %取向量的维数f=zeros(1,n); %生成与向量k的维数相同的零矩阵,给函数赋值f(1, -k0-k1+1)=1; %在k=k0时刻,信号赋值为1stem(k,f,filled) %绘制波形axis(k1,k2,0,1.5) %定义坐标轴显示范围l 单位阶跃序列e (k)单位阶跃序列e(k)的定义为 下面是绘制单位阶跃序列e(k+k0) 的MATLAB程序:k1=-3;k2=10; k0=0;k=k1:-k0-1; kk=-k0:k2; n=length(k); %取k=k0点以前向量的维数nn=length(kk); %取k=k0点以后(含k=k0点)向量的维数u=zeros(1,n); %在k=k0以前,信号赋值为零uu=ones(1,nn); %在k=k0以后,信号赋值为一stem(k,u,filled) %绘制k=k0以前信号的波形hold on %保持图形窗口,以便绘制多个图形stem(kk,uu,filled) %绘制k=k0以后(含k=k0点)信号的波形hold off %图形窗口解冻axis(k1,k2,0,1.5) %设置坐标轴显示范围运行结果如下:注意:l 以上介绍了几个常用的绘图命令:plot,ezplot,stairs,stem,其中,绘制连续信号得到光滑的曲线时用plot命令;显示连续信号中的不连续点时用stairs命令较好;绘制离散信号波形用stem命令;当绘制用MATLAB符号表达式表达的信号时要用ezplot命令。四、 项目内容1、 分别用MATLAB的向量表示法和符号运算功能,表示并绘出下列连续时间信号的波形: 2、 分别用MATLAB表示并绘出下列离散时间信号的波形: 五、 预习要求 1、 熟悉常见信号的意义、特性及用MATLAB软件表示的方法2、 熟悉用MATLAB软件绘制信号波形的方法3、 编写MATLAB程序六、 项目报告要求1、 简述项目目的及项目原理2、 记录信号波形3、 写出程序清单4、 收获与建议项目二 信号的时域分析一、 项目目的1 熟悉卷积积分的定义和性质2 了解卷积积分在系统分析中的应用3 熟悉用MATLAB实现卷积的方法二、 实验原理信号的卷积是数学上的一种积分运算,两个信号的卷积定义为:信号的卷积运算在系统分析中主要用于求解系统的零状态响应。一般情况,卷积积分的运算比较困难,但在MATLAB中则变得十分简单,MATLAB中是利用conv函数来实现卷积的。conv功能:实现二个函数 和 的卷积。格式: 说明: 表示二个函数, 表示两个函数的卷积结果。例题:已知两信号 求卷积 MATLAB程序如下:t1=1:0.01:2;f1=ones(size(t1); %高度为一的门函数,时间从t=1到t=2t2=2:0.01:3;f2=ones(size(t2); %高度为一的门函数,时间从t=2到t=3g=conv(f1,f2); %对f1和f2进行卷积t3=3:0.01:5;subplot(3,1,1);plot(t1,f1);grid; %画f1的波形subplot(3,1,2),plot(t2,f2);grid %画f2的波形subplot(3,1,3),plot(t3,g);grid %画g的波形三、 项目内容1.已知输入信号和冲激响应如图2-1所示,利用,求零状态响应。图2-1 输入信号和冲激响应的波形图2.设有微分方程利用,试求时的冲激响应。3.设有一力学系统,其系统的微分方程若外力,利用,试求物体的位移。4.利用,求差分方程的单位序列响应。5.利用重做教材2-23,并与理论结果比较。四、 项目报告要求1 简述项目目的和原理。2 理论上计算信号的卷积积分。3 记录实验结果。4 收获与建议。项目三 信号的频域分析一、 项目目的1 熟悉傅里叶变换的性质2 熟悉常见信号的傅里叶变换3 了解傅里叶变换的MATLAB实现方法二、项目原理傅里叶变换是信号分析的最重要的内容之一。从已知信号f (t)求出相应的频谱函数F(j)的数学表示为:f (t)的傅里叶变换存在的充分条件是f (t)在无限区间内绝对可积,即f (t)满足下式: 但上式并非傅里叶变换存在的必要条件。在引入广义函数概念之后,使一些不满足绝对可积条件的函数也能进行傅里叶变换。 傅里叶反变换的定义为: 在这一部分的学习中,大家都体会到了这种数学运算的麻烦。在MATLAB语言中有专门对信号进行正反傅里叶变换的语句,使得傅里叶变换很容易在MATLAB中实现。在MATLAB中实现傅里叶变换的方法有两种,一种是利用MATLAB中的Symbolic Math Toolbox提供的专用函数直接求解函数的傅里叶变换和傅里叶反变换,另一种是傅里叶变换的数值计算实现法。下面分别介绍这两种实现方法的原理。1、直接调用专用函数法 在MATLAB中实现傅里叶变换的函数为:l F=fourier( f ) 对f(t)进行傅里叶变换,其结果为F(w)l F=fourier(f,v) 对f(t)进行傅里叶变换,其结果为F(v)l F=fourier( f,u,v ) 对f(u)进行傅里叶变换,其结果为F(v)傅里叶反变换l f=ifourier( F ) 对F(w)进行傅里叶反变换,其结果为f(x)l f=ifourier(F,U) 对F(w)进行傅里叶反变换,其结果为f(u)l f=ifourier( F,v,u ) 对F(v)进行傅里叶反变换,其结果为f(u) 由于MATLAB中函数类型非常丰富,要想了解函数的意义和用法,可以用mhelp命令。如在命令窗口键入:mhelp fourier回车,则会得到fourier的意义和用法。注意:在调用函数fourier( )及ifourier( )之前,要用syms命令对所有需要用到的变量(如t,u,v,w)等进行说明,即要将这些变量说明成符号变量。对fourier( )中的f及ifourier( )中的F也要用符号定义符sym将其说明为符号表达式。具体方法参见第一部分第四章第三节采用fourier( )及fourier( )得到的返回函数,仍然为符号表达式。在对其作图时要用ezplot( )函数,而不能用plot()函数。fourier( )及fourier( )函数的应用有很多局限性,如果在返回函数中含有()等函数,则ezplot( )函数也无法作出图来。另外,在用fourier( )函数对某些信号进行变换时,其返回函数如果包含一些不能直接表达的式子,则此时当然也就无法作图了。这是fourier( )函数的一个局限。另一个局限是在很多场合,尽管原时间信号f(t)是连续的,但却不能表示成符号表达式,此时只能应用下面介绍的数值计算法来进行傅氏变换了,当然,大多数情况下,用数值计算法所求的频谱函数只是一种近似值。例:求门函数f(t)=(t+1)-(t-1)的傅里叶变换,并画出幅度频谱图MATLAB程序如下:syms t w %定义两个符号变量t,wGt=sym(Heaviside(t+1)-Heaviside(t-1); %产生门宽为2的门函数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) %限定坐标轴范围运行结果:例:求函数的傅里叶反变换f(t) MATLAB程序如下:syms t w %定义两个符号变量t,wFw=sym(1/(1+w2); %定义频谱函数ft=ifourier(Fw,w,t); %对频谱函数进行傅氏反变换运行结果:ft = 1/2*exp(-t)*Heaviside(t)+1/2*exp(t)*Heaviside(-t)三、 实验内容1. 求单边指数信号的傅里叶变换,并画出对应的频谱图。2. 求的频率特性。四、 预习要求1、熟悉常见信号的频谱2、了解MATLAB语言中的函数:fourier , ifourier , abs ,syms , ezplot。五、项目报告1、 傅里叶变换的原理及其数值计算实现法的理论依据2、 记录实验的波形图,写出程序清单3、 收获与建议项目四 连续系统拉普拉斯变换分析一、项目目的1、熟悉拉普拉斯变换的原理及性质2、熟悉常见信号的拉氏变换3、了解正/反拉氏变换的MATLAB实现方法4、了解利用MATLAB绘制三维曲面图的方法5、了解信号的零极点分布对信号拉氏变换曲面图的影响6、了解连续信号的拉氏变换与傅氏变换的关系二、项目原理拉普拉斯变换是分析连续时间信号的重要手段。对于当t时信号的幅值不衰减的时间信号,即在f(t)不满足绝对可积的条件时,其傅里叶变换可能不存在,但此时可以用拉氏变换法来分析它们。连续时间信号f(t)的单边拉普拉斯变换F(s)的定义为:拉氏反变换的定义为: 显然,上式中F(s)是复变量s的复变函数,为了便于理解和分析F(s)随s的变化规律,我们将F(s)写成模及相位的形式:其中, 为复信号F(s)的模,而 为F(s)的相位。由于复变量s=+j,如果以为横坐标(实轴),j为纵坐标(虚轴),这样,复变量s就成为一个复平面,我们称之为s平面。从三维几何空间的角度来看, 和 分别对应着复平面上的两个曲面,如果绘出它们的三维曲面图,则就可以直观地分析连续信号的拉氏变换F(s)随复变量s的变化情况,在MATLAB语言中有专门对信号进行正反拉氏变换的函数,并且利用 MATLAB的三维绘图功能很容易画出漂亮的三维曲面图。 在MATLAB中实现拉氏变换的函数为:l F=laplace( f ) 对f(t)进行拉氏变换,其结果为F(s)l F=laplace (f,v) 对f(t)进行拉氏变换,其结果为F(v)l F=laplace ( f,u,v) 对f(u)进行拉氏变换,其结果为F(v)拉氏反变换l f=ilaplace ( F ) 对F(s)进行拉氏反变换,其结果为f(t)l f=ilaplace(F,u) 对F(w)进行拉氏反变换,其结果为f(u)l f=ilaplace(F,v,u ) 对F(v)进行拉氏反变换,其结果为f(u)注意: 在调用函数laplace( )及ilaplace( )之前,要用syms命令对所有需要用到的变量(如t,u,v,w)等进行说明,即要将这些变量说明成符号变量。对laplace( )中的f及ilaplace( )中的F也要用符号定义符sym将其说明为符号表达式。例:求出连续时间信号 的拉氏变换式,并画出图形求函数拉氏变换程序如下:syms t s %定义符号变量ft=sym(sin(t)*Heaviside(t); %定义时间函数f(t)的表达式Fs=laplace(ft) %求f(t)的拉氏变换式F(s)运行结果:Fs = 1/(s2+1)绘制拉氏变换三维曲面图的方法有2种:方法一syms x y ss=x+i*y; %产生复变量sFFs=1/(s2+1); %将F(s)表示成复变函数形式FFss=abs(FFs); %求出F(s)的模ezmesh(FFss); %画出拉氏变换的网格曲面图ezsurf(FFss); %画出带阴影效果的三维曲面图colormap(hsv); %设置图形中多条曲线的颜色顺序 方法二figure(2) %打开另一个图形窗口x1=-5: 0.1:5; %设置s平面的横坐标范围y1=-5: 0.1: 5; %设置s平面的纵坐标范围x,y=meshgrid(x1,y1); %产生矩阵s=x+i*y; %产生矩阵s来表示所绘制曲面图的复平面区域,%其中矩阵s包含了复平面-66,-6j6范围内%以间隔0.01取样的所有样点fs=1./(s.*s+1); %计算拉氏变换在复平面上的样点值ffs=abs(fs); %求幅值mesh(x,y,ffs); %绘制拉氏变换的三维网格曲面图surf(x,y,ffs); %绘制带阴影效果的三维曲面图axis(-5,5,-5,5,0,8); %设置坐标显示范围colormap(hsv); %设置图形中多条曲线的颜色顺序说明:从拉普拉斯变换的三维曲面图中可以看出,曲面图上有象山峰一样突出的尖峰,这些峰值点在s平面的对应点就是信号拉氏变换的极点位置。而曲面图上的谷点则对应着拉氏变换的零点位置。因此,信号拉氏变换的零极点位置决定了其曲面图上峰点和谷点位置。例:求出函数 的拉氏反变换式 MATLAB程序如下: syms t s %定义符号变量Fs =sym(1/(1+s2); %定义F(s)的表达式ft=ilaplace(Fs) %求F(s)的拉氏反变换式f(t)运行结果: ft= sin(t)注意: 在MATLAB中,求拉氏反变换的函数ilaplace(),在默认情况下是指拉氏右变换,其运行结果是单边函数。如例中的运行结果为ft= sin(t),实际上是指ft= sin(t)e(t)三、 实验内容1、重求教材式4-9的余弦信号的拉普拉斯变换。我们假设,则。2. 试求 的原函数。四、 预习要求1、 熟悉信号的拉氏变换2、 了解MATLAB中的有关函数的调用方法五、 实验报告1、 写出拉氏正反变换的原理2、 理论上计算出信号的拉氏正/反变换表达式,并写出解题过程3、 写出相关的程序清单4、 记录实验波形5、收获与建议项目五离散系统Z变换

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论