信号与系统实验指导_第1页
信号与系统实验指导_第2页
信号与系统实验指导_第3页
信号与系统实验指导_第4页
信号与系统实验指导_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、实验一 连续信号及其基本运算的MATLAB实现一、实验目的1掌握各种常用的信号,理解其数学表达式和波形表示。2掌握在计算机中生成及绘制信号波形的方法。3掌握信号的相加、相乘、移位、反褶等基本运算及计算机实现与作用。4掌握线性卷积软件实现的方法。5掌握计算机的使用方法和常用系统软件及应用软件的使用。6通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。二、实验原理1连续信号的基本概念连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点以外,信号都有确定的值与之对应,这种信号就是连续信号。严格来说,MATLAB并不能处理连续信号,而是用等时间间隔点的样值来近似

2、表示连续信号。当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。2常用序列常用信号有:指数信号、正弦信号、抽样信号、矩形脉冲信号、三角波脉冲信号、正弦型序列等。3信号的基本运算序列的运算包括移位、反褶、和、积、标乘、累加、微积分分运算等。4信号的卷积运算连续信号的卷积积分定义为:,一般情况下的解析表达式不好得到,因此采用数字积分的方式来求两个信号的卷积。这里的依然是连续的,而我们要把它的波形画出来,是采用描点法来做的,因此时间也要离散。当然这里的要求趋于零,实际中取足够小就可近似了。三、主要实验仪器及材料微型计算机、Matlab7.0。四、实验内容1熟悉实验原理的实例2连续时间信号

3、的产生利用MATLAB语言编程产生和绘制下列信号:(1);(2);(3)。3信号的运算利用MATLAB语言编程完成下列两信号的运算,并绘制运算后信号的波形。(1);(2);(3)。4卷积运算利用MATLAB语言编制一个计算两个信号卷积积分的通用程序,计算上述两信号,并绘制原信号和卷积后信号的波形。(1)。5上机调试并打印或记录实验结果。6完成实验报告。五、知识扩展1、在MATLAB中,当不了解某条指令的使用格式时,可以在command窗口中利用help 指令获得帮助。例如:help plot 系统将给出英文注释,解释plot命令的使用。有些同学自认为英语水平较差,看不懂,实际上只要粗略看懂,再

4、配合看里面的例子,就可以基本掌握了。2、在MATLAB程序调试过程中,有时程序执行不出结果或虽然出结果但存在一些问题,MATLAB 都会在command窗口中给出错误说明,因而需要密切关注command窗口中给出说明,它可以告诉你出现了什么错误,不要怕英语,经常看就很容易。六、实验扩展1、 利用MATLAB的程序指令,给每副图形标出名称和坐标轴名称;使用指令为:title()、xlabel()、ylabel(),利用知识扩展1。2、 将时间间隔改为1,观察并解释阶跃信号图形。3、 randn()函数可产生随机函数,在command窗口中,通过键入help randn自学randn()函数的使用

5、,编程产生sin(2*pi*50*t)和randn()产生的随机信号的叠加信号。4、产生信号,给图形标出名称和坐标轴名称。七、实验报告要求1简述实验原理及目的。2列出计算卷积的公式,画出程序框图,并列出实验程序清单(可略)(包括必要的程序说明)。3记录调试运行情况及所遇问题的解决方法。4给出实验结果,并对结果作出分析。实验2 连续LTI系统的时域分析1 实验目的(1) 连续时间系统的单位冲激响应、单位阶跃响应在线性系统分析中的作用、地位及其MATLAB实现;(2) 握求解连续LTI系统响应的MATLAB实现方法;(3) 握连续时间信号的卷积在连续系统分析中的作用、卷积方法及其MATLAB的实现

6、;2. 实验原理(1) 设连续LTI(线性时不变)系统的激励为,响应为,则描述系统的微分方程可表示为 (2-1) 为了在MATLAB编程中调用有关函数,我们可以用向量和来表示该系统,即 (2-2a) (2-2b) 这里要注意,向量和的元素排列是按微分方程的微分阶次降幂排列,缺项要用0补齐。 (2) 系统的单位冲激响应单位冲激响应是指连续LTI系统在单位冲激信号激励下的零状态响应,因此满足线性常系数微分方程(2-1)及零起始状态,即 , (2-3)按照定义,它也可表示为 (2-4)对于连续LTI系统,若其输入信号为,冲激响应为,则其零状态响应为 (2-5)可见,能够刻画和表征系统的固有特性,与何

7、种激励无关。一旦知道了系统的冲激响应,就可求得系统对任何输入信号所产生输出响应。(3) 系统的单位阶跃响应 单位阶跃响应是指连续LTI系统在单位阶跃信号激励下的零状态响应,它可以表示为 (2-6)上式表明,连续LTI系统的单位阶跃响应是单位冲激响应的积分,系统的单位阶跃响应和系统的单位冲激响应之间有着确定的关系,因此,单位阶跃响应也能完全刻画和表征一个LTI系统。另外,对于二阶以上的高阶系统,系统的阶跃响应和冲激响应也能反映系统处于不同阻尼状态下的系统特性。(4) 连续信号的卷积积分两个连续时间信号和的卷积积分定义为 (2-7)卷积是信号与系统分析的基本方法之一,是求系统零状态响应的重要工具。

8、假设系统的输入信号为,单位冲激响应为,则系统的零状态响应为 (2-8)此结果与式(2-5)完全相同,可见,信号卷积是分析系统特性的重要方法之一。关于卷积积分的物理含义、计算过程和计算结果的有关结论请参考1和2。3. 实验编程准备(1) 系统的单位冲激响应和单位阶跃响应的MATLAB实现MATLAB提供了专门用于求连续系统冲激响应和阶跃响应的调用函数impulse()和step(),这两个函数还能绘制其时域波形。其调用格式有 冲激响应调用函数impulse() impulse(b,a) impulse(b,a,t) impulse(b,a,t1:p:t2) y=impulse(b,a.t1:p:

9、t2);不绘制系统的冲激响应波形,只计算出对应的数值解; 此处的向量b和a的意义与格式要求见式(2-2)和(2-4)(下同)。 阶跃响应调用函数step() step(b,a) step(b,a,t) step(b,a,t1:p:t2) y=step(b,a,t1:p:t2)(2) 系统的零状态响应仿真已经知道,连续LTI系统可用常系数线性微分方程(2-1)式来描述,MATLAB提供的函数lsim()能对上述微分方程描述的连续LTI系统的响应进行仿真,该函数不仅能绘制指定时间范围内的系统响应波形图,而且还能求出系统响应的数值解。其调用格式有lsim(b,a,x,t)y=lsim(b,a,x,t

10、) 其中b和a仍是式(2-2)和(2-4)所定义的向量,而x和t则表示输入信号的行向量及其时间范围向量。 由于向量t中的取样时间间隔大小直接影响着仿真效果, 所以要得到较好的仿真效果,取样时间间隔应取小一些。至于第二个调用格式只求出系统的零状态响应的数值解,而不绘制响应曲线。(3) 调用函数conv()计算卷积积分的近似向量卷积积分的运算实际上是用信号的分段求和来近似实现的。若有两个连续信号和进行卷积,首先要对这两个信号进行取样,设取样时间间隔为,则取样后得到两个离散序列和,然后构造相应的两个时间向量n1和n2(n1和n2的元素不再是整数,而是取样时间间隔的整数倍),接着调用计算离散卷积和的函

11、数conv()计算连续卷积积分的近似向量。需要说明的是,函数conv()只能计算离散卷积和的数值,为了能够在计算连续时间信号卷积积分近似值的同时,还能绘制出其时域波形,可以编制和调用实现连续信号卷积的通用函数sconv(), 见附录2-1。在调用函数sconv()时,应先设定取样间隔p,并对和的非0值区间以时间间隔p进行取样,形成离散序列f1和f2,然后构造这两个序列所对应的时间向量n1 和n2,最后再调用函数sconv(),即可求得的近似数值,并绘出其时域波形图。4. 实验内容(1) 下图所示为一RLC串联电路,已知R=5W,L=1H,C=(1/6)F,请用MATLAB绘制出该系统的单位冲激

12、响应和单位阶跃响应的波形,当输入信号时,请画出该系统的零状态响应波形图。vs(t)vc(t)RLCi(t) 图2-1图 2-1 (2) 当电阻R分别为4W、2W、0.8W、 0.4W时,观察它们的波形,并对波形的变化作出解释。(3) 已知某一连续LTI系统的单位冲激响应函数为,若系统的激励为,请用MATLAB的卷积方法,求该系统的零状态响应,并绘出的时域波形图,观察并说明不同的取样时间间隔p对波形的影响。(4) 设描述某连续时间系统的微分方程为 试用MATLAB绘制出这个系统的冲激响应和阶跃响应波形。 5. 实验报告要求(1) 认真写好实验报告,打印出实验程序和实验结果;(2) 按照实验要求,

13、认真分析和解释实验结果;(3) 欢迎写出自己的心得、体会和创建; (4) 欢迎将课外练习结果也附在实验报告上。实验3 周期信号和非周期信号的频谱分析1. 实验目的(1) 解连续周期信号和非周期信号的频谱分析及其MATLAB实现;(2) 掌握离散周期信号的快速算法及其MATLAB实现;(3) 熟悉用FFT算法分析连续周期信号的方法及其MATLAB实现;2. 实验原理周期信号包括连续时间周期信号和离散时间周期信号的频谱分析。本次实验所用到的函数文件(或称子程序)附在附录中,以便实验时调用。(1) 连续周期信号的频谱由连续周期信号的傅立叶级数可知,满足狄利赫里条件的任何连续周期信号,都可以表示成一系

14、列不同幅度和相位,而频率成谐波关系的正余弦信号或复指数信号之和,即 (3-1)其中 (3-2) 在两种表示形式中,其系数之间的关系为 (3-3)或表示成 (3-3a) (3-3b)在上面各式中,为周期信号的周期,为信号的角频率,式(3-3a)和(3-3b)分别为幅度频谱和相位频谱。因为它们都是频率的函数,所以能够用图示的方法直观地表示出周期信号的幅度频谱:和相位频谱。(2) 用FFT实现离散时间周期信号的频谱分析傅立叶级数在信号与系统的分析中得到广泛应用,它既可用于连续时间周期信号的分析,也可用于离散时间周期信号的分析,所以傅立叶级数分为连续时间傅立叶级数CTFS和离散时间傅立叶级数DTFS。

15、快速傅立叶变换(FFT)是离散傅立叶变换(DFT)的一种快速算法,借助于快速傅立叶变换能快速而有效地计算连续与离散周期信号的傅立叶级数和进行频谱分析。快速傅立叶变换(FFT )的出现给信号处理与分析带来生机,实践表明,一个好的算法如果没有快速算法支持,最终会被其它算法代替。然而,快速傅立叶变换是针对有限长序列的离散傅立叶变换的,如何将快速傅立叶变换应用到周期信号的分析,是这里要解决的问题。设是周期为的离散周期序列,是离散傅立叶级数的系数,因此,它们的DTFS变换对为 (3-4) (3-5)已经知道,周期序列虽然是无穷长序列,但只有N个样值的信息是独立的,只要知道了一个周期的内容,其余时刻的情况

16、即可全部掌握。因此,级数取和项中k是从0N-1,共N个独立谐波分量,而又决定了的取值分量为0N-1。式(3-4)和(3-5)表明,在研究离散周期信号频谱时,只要取一个周期的信息就足够了。MATLAB提供了计算式(3-4)和(3-5)的两个函数fft()和ifft(),这两个函数就是根据快速傅立叶变换及其反变换的公式(3-6)和(37)编制的程序。 (3-6) (3-7) 可以看到,式(3-4)、(3-5)和式(3-6)、93-7)是对应的,因此离散时间周期序列的傅立叶级数系数可以通过调用函数fft()编程画出频域的周期序列。相反,要将频域的周期序列综合成时域周期序列,只需要调用函数ifft()

17、编程即可画出。(3) 用FFT实现连续时间周期信号的频谱分析要利用FFT计算连续周期信号的复指数形式的傅立叶级数,首先对(3-2)式的进行离散化,然后利用FFT计算离散化的傅立叶级数系数,为了实现连续时间周期信号的频谱分析,通过编程并调用函数fft()和ifft()画出其频谱图。连续非周期信号的频域分析方法:(1) 连续时间非周期信号的傅立叶变换对定义为 (4-1) (4-2) MATLAB提供了两个函数fourier()和ifourier(), 它们可分别用来计算傅立叶正变换和反变换,这是计算傅立叶变换的第一种方法。(2) 连续时间非周期信号傅立叶变换的数值计算为了更好地利用MATLAB的数

18、值计算功能,这里简要介绍一下连续非周期信号傅立叶变换的数值计算方法。由(4-1)式可知,因为信号是连续的,傅立叶变换式对t的积分限是。现如果信号是时限的,即当(有限值)时,的值可以忽略,则可以用有限个能满足需要的取样值来代替,因而(3-1)式积分就变为求和,连续频谱就变为离散频谱,并近似表示为 (4-3) 其中N为取样点n的最大值,上式是对式(4-1)中频率取样的结果。如果取样点足够多,离散频谱就会绘制出连续频谱。在这里,通常有 (4-4) 由(4-3)式可以看出,如果能够正确生成信号的N个样本的向量f和指数函数的N个样本向量,就可以通过两个向量的内积运算实现式(4-3)的计算。这样,就把计算

19、傅立叶变换问题,变成利用MATLAB的强大矩阵运算功能直接计算两个函数向量的内积问题,从而给出了不去调用傅立叶变换函数而直接计算傅立叶变换的另一种方法。这里还需要注意,由于在MATLAB运算中,必须对连续信号进行取样,为了不丢失原信号的信息,即反变换后能不失真地恢复原来信号,取样间隔的确定必须满足取样定理的要求,即必须小于奈奎斯特频率。(3) 傅立叶变换性质及其MATLAB实现 在理论课讲授中,已经熟悉了傅立叶变换的基本性质,这些性质有对称性、线性、奇偶虚实性、尺度变换特性、时移频移特性、微分积分特性、时域频域卷积特性等。这些性质反映了信号在时域和频域对应变化关系,也就是,信号在一个域有某种变

20、化,在另一个域中必然有相应的变化。这些变化归纳起来主要有四种:平移、反褶、尺度变换、信号相乘。因此,傅立叶变换性质的MATLAB实现主要有两种方法:一是利用傅立叶变换的性质,如果知道信号在一个域的变化,在另一个域将对应信号进行相应的运算即可。上面指出的四种运算是信号的基本运算与变换,在实验1中专门研究了这些运算的方法及编程;二是将信号变化的参数直接代到相应的信号中,然后进行傅立叶变换或反变换的运算,最后即可得到另一个域中信号的变化,这种方法比较简单。3. 实验编程准备(1) 连续周期信号频谱分析的函数文件CTFSrectpsym.m的调用附录3-1的函数文件CTFSrectpsym.m是为分析

21、和绘制周期矩形脉冲信号频谱而编写的一个参考程序。调用函数文件CTFSrectpsym.m就能绘制出周期矩形脉冲信号的频谱。调用方法很简单,只需在MATLAB命令窗口键入该函数文件名,然后按回车键即可。注意在调用过程中,命令窗口提示输入一些参数,其中Nf为频谱中包含的谐波阶数,T为周期矩形脉冲的周期,M是周期与脉冲宽度之比。(2) 关于用FFT实现离散时间周期信号的频谱分析MATLAB提供的快速傅立叶变换与反变换函数fft()和ifft()只能对离散时间周期信号进行数值计算,如果要画出和分析频谱图,必须自己编写程序。在编写程序时注意,除了要调用函数fft()和ifft()对其信号进行正反变换计算

22、外,还要调用下面有关函数,这些函数及其调用格式如下:· 快速傅立叶变换函数fft(),其调用格式为 fft(x):x为离散周期序列的x(n)的向量表达式;· 逆快速傅立叶变换函数ifft(),其调用格式为ifft(X):X为频域离散序列X(k)的向量表达式;· 产生全0矩阵函数zeros(),在本次编程中,用它来产生全0的一维序列,其调用格式为 zeros(n):产生(n×n)维的全0矩阵; zeros(n,m):产生(n×m)维的全0矩阵; zeros(1,m):产生(1×m)维的全0序列;· 产生全1矩阵函数ones()

23、,在本次编程中,可以用它来产生全1的一维序列作为离散矩形脉冲,其调用格式与zeros()的相同。· 为了绘制频谱图,还要调用函数real()、imag()、abs()、angle();由于周期信号的频谱是离散的,所以在绘制频谱图时,不是用plot()命令,而是用stem()命令。当然也可以参考函数文件3-1、3-2,对其进行简单修改就可用来绘制离散周期序列的频谱图。(3) 用FFT实现连续时间周期信号频谱分析的函数文件CTFSfft.m的调用函数文件CTFSfft.m是利用fft()分析和绘制连续周期矩形脉冲信号频谱而编写的一个参考程序,该程序见附录函数文件3-2。调用函数文件CTF

24、Sfft.m就能绘制出周期为5、幅度为1的周期矩形脉冲信号的频谱。调用方法很简单,只需在MATLAB命令窗口键入该函数文件名,然后按回车键即可。注意在调用过程中,命令窗口提示的输入参数Nf,它表示频谱中包含的谐波阶数。(1) 傅立叶变换函数fourier()的调用MATLAB的Symbolic Math Toolbox 提供了能直接求解傅立叶变换与反变换的函数fourier() 及 ifourier(). 函数fourier()的调用格式如下· F=fourier(f):它是符号函数f 的傅立叶变换,默认返回函数F是关于的函数;· F=fourier(f,v):它的返回函数

25、F是关于符号对象v的函数,即;· F=fourier(f,u,v): 它是对关于u的函数f进行变换,而返回函数F是v的函数,即 (2) 傅立叶反变换函数ifourier()的调用其调用格式为· f=ifourier(F): 它是函数F 的傅立叶反变换,默认的独立变量为,默认返回是关于x的函数。如果F=F(x),则ifourier(F)返回关于t的函数· f=ifourier(F,u): 它的返回函数f是u的函数,而不是默认的x的函数。· f=ifourier(f,v,u): 它是对关于v的函数F进行变换,而返回关于u的函数f; 这里要注意的是,在调用上述

26、两个函数之前,先要用syms命令对所用到的变量(如t、u、v、w)等进行说明,也就是要将这些变量说明成符号变量。对于fourier()中的函数f或ifourier()中的F,也要用syms将f或F说明成为符号表达式。另外,在采用fourier()及ifourier()得到的返回函数,仍然是符号表达式。若需要对返回函数作图时,只能用ezplot()绘图命令,而不能用plot()命令。如果返回函数中含有d(w)等项,用ezplot()也无法作图。fourier()函数的局限性:用fourier()对某些信号求反变换时,其返回函数可能会包含一些不能直接表达的式子,甚至可能会出现一些屏幕提示为“未被定

27、义的函数或变量”的项;另外,在许多情况下,信号尽管是连续的,但却不可能表示成符号表达式;函数fourier()也不可能对离散信号进行处理。(3) 傅立叶变换的数值计算的应用上面介绍了连续信号傅立叶变换的数值计算,这种方法不需要调用傅立叶变换函数,而是利用MATLAB的强大运算功能直接对两个向量进行内积数乘即可计算出整个信号的傅立叶变换。在MATLAB编程中,这是一种常用的方法。为了理解和以后的应用,这里举例说明用傅立叶变换的数值计算方法求信号傅立叶变换的编程方法。设已知一矩形脉冲信号,当时,其余时间,现求信号的傅立叶变换,并画图表示出时域和频域信号的波形。整个例子的程序见附录4-1,分析该程序

28、时注意以下几点:¨可用两个阶跃信号之差来表示,即;¨ 取样间隔的确定:由于该矩形脉冲频谱的第一个过零点频率(即信号带宽)为,考虑到频谱的形状,将精度提高到该值的50倍,即,由此得到取样间隔为 ¨ 频谱显示宽度用表示,此处数字表示频谱宽度为。(4) 访问Maple中的函数 Maple具有强大的符号计算功能和丰富的经典应用数学函数,这些资源是以库的形式提供给MATLAB,但由于不是M文件,因而不能直接使用。MATLAB为此提供了专用的函数作为接口,通过这些函数访问Maple的内核。关于Maple的调用格式, 请在MATLAB命令窗口用help或mhelp命令查阅。4实

29、验内容(1) 连续周期矩形脉冲信号的频谱分析若有连续周期矩形脉冲信号,其脉冲宽度,脉冲幅度为1,重复周期,即在一个周期内,表示为 试用MATLAB绘制出该周期矩形脉冲信号的幅度频谱。(2) 离散周期矩形脉冲序列的频谱分析若有一离散周期矩形脉冲序列,其脉冲序列宽度,脉冲幅度为1,重复周期,即在一个周期内,表示为试用快速傅立叶变换函数fft(x)计算其傅立叶级数的系数,并画出系数的实部和虚部图。 如果有兴趣,可用傅立叶反变换函数ifft(X(k)将系数恢复成原来的时间序列。 回答问题:为什么能用快速傅立叶变换FFT实现连续周期信号的频谱分析?(3) 课外练习:用FFT实现连续时间周期信号的频谱分析

30、 用FFT实现(1)中连续周期矩形脉冲信号的频谱分析,画出幅度频谱和周期矩形脉冲信号。(1) 通过调用傅立叶变换函数fourier(),求出矩形脉冲信号的傅立叶幅度频谱,并画出信号的波形图和傅立叶幅度频谱。提示:· 矩形脉冲信号可用的符号表达式ut来表示,然后调用傅立叶变换函数,其符号表达式为Fw=fourier(ut,t,w);· 此处要调用maple函数,其符号表达式为FFw=maple(convert,Fw,piecewise),这个函数是指:在maple的访问中,将调用傅立叶变换函数fourier()的返回参数Fw变换成分段-连续处理。· 为了图形规范,绘

31、制波形图和幅度谱时,可以在命令ezplot()中加上对时间t和频率w的限制,如果还要对图形的幅度作出规范,最后加上命令axis()予以限制。(2) 设有一带开关的RC电路如图4-1所示,电容C=0.01F,电阻R=100W,开关未闭合之前,电容器上已充电到1V,试求当开关S闭合之后,电阻上电压的变化规律,并用MATLAB画出电压信号的波形及其幅度频谱。CRS+ 图41(3) 设一矩形脉冲,载波信号,试用傅立叶变换的数值解法实现调幅信号,并绘制出、及它们各自的频谱。回答问题:结合频谱图,对傅立叶变换的频移特性进行说明。(4) 课外练习设,试用MATLAB绘制出信号及其幅度频谱和相位频谱,观察并分

32、析信号时移对信号频谱的影响。5实验报告要求(1) 认真写好实验报告,打印出实验程序和实验结果;(2) 认真分析实验结果,回答实验中要求的“回答问题”;(3) 欢迎写出自己的心得、体会和创建; (4) 欢迎将课外练习结果也附在实验报告上。实验4 离散系统特性分析1. 实验目的(1) 了解离散时间系统的Z域分析方法;(2) 掌握离散系统函数的零极点分布对系统特性的影响;(3) 掌握用离散系统函数的零极点分布确定系统特性的原理、方法及其MATLAB实现。 2. 实验原理(1) 离散系统函数的零极点离散LTI系统要用下面的线性常系数差分方程来描述 (7-1) 其中为系统的输出序列,为系统的输入序列。

33、如果将上式进行z变换,经整理可得离散系统函数 (7-2)式中和分别是系统函数的分母多项式和分子多项式,若将它们进行因式分解,则有 (7-3)其中C为常数,和分别为系统函数的零点和极点。式(8-3)就是用零极点表示的离散系统的系统函数。和分析连续系统的系统特性一样,可以用离散系统的系统函数零极点来分析离散系统的系统特性。这些特性包括系统单位冲激响应的时域特性,离散系统的频率特性和离散系统的稳定性。 (2) 利用MATLAB确定系统函数的零极点及绘制零极点分布图和分析连续系统一样,为了利用系统函数的零极点分布来分析系统特性,必须知道如何求出系统函数的零极点,怎样绘制系统的零极点分布图。MATLAB

34、提供的多项式求根函数roots()同样可用来确定系统函数的零极点位置,其调用格式和调用方法参看实验6中的介绍。同样,在用上述方法获得系统函数的零极点位置之后,就可以用plot()命令在z平面上绘制出系统函数的零极点分布图。另外,MATLAB在信号处理工具箱中还提供了函数zplane(b,a)可以在z平面上画出线性系统的零极点,其中b和a为列向量时,它们分别表示系统函数的零点和极点;如果b和a是行向量时,它们分别为系统传递函数分子和分母的系数向量。当然,zplane()也是用roots()函数求出系统的根,并画出零极点图的。(3) 点分布与系统冲激响应时域特性的关系已经知道,离散系统的系统函数与

35、其冲激响应构成一对Z变换,即 (7-4)因此,冲激响应所描述的离散系统的固有特性,系统函数也同样可以描述。由式(7-3)可知,若系统函数的N个极点都是单极点,就可将分解成下面的部分分式 (7-5)由此可得逆Z变换 (7-6)由上式可以看出,离散系统冲激响应的时域特性完全由系统函数的极点所决定,的每一个极点将决定的一个时间序列。显然,的极点位置不同,则的时域特性也不同,其规律是:若,极点位于单位圆内,的幅度随n增加而减小;若,极点位于单位圆上,的幅度不随n变化;若,极点位于单位圆外,的幅度随n增加而增加。系统函数的零点位置只影响冲激响应的幅度和相位,但不影响波形。(4) 极点分布与系统频率响应的

36、关系已经讲授过,离散系统的频率响应定义为 (7-7) 其中为离散系统的幅频响应,为离散系统的相频响应。与连续系统的频率响应不同,离散系统的频率响应是周期性的,且周期为2。因此,只要在范围内研究,就可分析出离散系统的整个频率特性。MATLAB提供了两种分析频率特性的方法:一个是直接调用求离散系统频率响应函数freqz(),另一个是利用零极点求频率响应的几何矢量法。与连续系统几何矢量分析法类似,如果知道了系统的零极点分布,系统的幅频响应和相频响应分别为 (7-8) (7-9)其中就是零点到单位圆上点的矢量长度,是该矢量与水平轴的夹角¾相角。就是极点到单位圆上点的矢量长度,是该矢量的相角。

37、式(7-8)和(7-9)表明: 系统的幅频特性等于系统函数所有零点矢量之积与所有极点矢量之积的比值;系统的相频特性等于系统函数所有零点矢量的相角之和与所有极点矢量的相角之和的差值。因此,如果让矢量沿着单位圆旋转,即角频率从0变化,我们就可以求出系统的幅频响应和相频响应随的变化特性。(5) 极点分布与系统稳定性的关系稳定性是系统是系统的重要特性之一,与激励信号无关。由课堂讲授知道,一个离散系统稳定的充分必要条件是系统函数为严格真有理分式,其全部极点位于z平面的单位圆内。因此,只要知道系统函数的零极点在z平面上的分布,就可据此判断该系统的稳定性。3. 实验编程准备(1) 调用多项式求根函数root

38、s(),求系统函数的零极点。 (2) 绘制零极点图在用函数roots()求得系统函数的零极点后,就可以用plot()命令在z平面上绘制出系统函数的零极点图。附录8-1是求离散系统函数的零极点和绘制其零极点图的函数文件DTSzpm.m,其中零点的位置标以符号“o”,极点的位置标以符号“x”。(3) 调用impz()函数实现离散系统函数零极点对单位冲激响应时域特性的研究 研究离散系统函数的零极点分布与系统冲激响应时域特性时,可以通过调用impz()函数来实现,其调用格式如下: · impz(num,den):num,den分别为离散系统函数的分子系数向量和分母系数向量。· im

39、pz(num,den,N):num,den的含义同上,N为显示样本的个数。由上述格式可以看到,如果知道了离散系统的系统函数表达式,或者是知道了系统的零极点,然后转化成标准的系统函数表达式都可以直接调用函数impz()来计算并画出离散系统的冲激响应波形。(4) 根据零极点分布绘制系统频率响应曲线的两种方法 一是调用求离散系统频率响应的函数freqz(),利用该函数计算出离散系统频率响应的数值,然后再利用函数abs()、angle()及plot()命令,绘制出系统在或范围内的幅频特性曲线和相频特性曲线。freqz()的调用格式有 · H,w=freqz(B,A,N): B和A分别是离散系

40、统函数分子和分母多项式的系数向量,N为正整数,是频率的显示值,返回向量H包含了离散系统频率响应在范围内N个频率值,向量w则包含范围内的N个频率等分点。如果在调用中N缺省,则系统默认为N=512。· H,w=freqz(B,A,N,whole): 该调用格式将计算离散系统在范围内N个频率点的频率响应值。 二是利用几何矢量法,直接利用式(7-8)和(7-9),分别计算出并画出离散系统的幅频特性和相频特性。计算和绘制其幅频特性曲线和相频特性曲线的MATLAB程序可参考附录8-2DTSzpfc.m,这是一个函数文件,DTSzpfc(k,r,A,B)中包括了四个传入参量,其中k为自己定义的频率

41、样本数,其大小影响绘制曲线与实际频率响应曲线的近似程度,A和B分别为离散系统函数分子和分母多项式的系数向量,r为绘制频率特性曲线的频率范围,频率范围为。4实验内容(1) 设某离散系统的零极点位置是:无零点,两个极点是,试用MATLAB画出该系统的零极点图,分析系统的单位冲激响应的时域特性,画出其波形图。在计算与绘制图形时,假定,。 提示:在调用函数impz()时,N可试取20。(2) 有一数字滤波器,它可以用下面的差分方程来描述,试计算该滤波器在范围内的频率响应,并画出滤波器在范围内的幅频特性曲线和相频特性曲线,分析该滤波器的功能。 提示: · 将上式先进行Z变换,求得系统函数H(z

42、),然后调用函数H,w=freqz(B,A,N,whole)计算频率响应值,其中令N=400;· 调用函数abs()、angle()和plot()在范围内绘制出系统的幅频特性曲线和相频特性曲线。(3) 课外练习试绘制(2)中所描述的数字滤波器的零极点图,并求解和画出单位冲激响应的波形图,由零极点图判断滤波器的稳定性。5. 实验报告要求(1) 认真写好实验报告,打印出实验程序和实验结果;(2) 按照实验要求,认真分析和解释实验结果。(3) 欢迎写出自己的心得、体会和创建; (4) 欢迎将课外练习结果也附在实验报告上。附录:m文件1-1 unitimpfun.mfunction unit

43、impfun(t1,t2,t0)dt=0.01;t=t1:dt:t2;n=length(t); 时间样本点的向量长度x=zeros(1,n); 各样本点信号值赋为零x(1,(-t0-t1)/dt+1)=1/dt; 在时间t=-t0处,给样本点赋值为1/dtstairs(t,x);axis(t1,t2,0,1.2/dt)title('单位冲激信号d(t)')1-2 unitimpseq.mfunction unitimpseq(n1,n2,n0)n=n1:n2;n=length(n);f=zeros(1,n);f(1,-n0-n1+1)=1;stem(n,f,'fille

44、d)');axis(n1,n2,0,1.2)title('单位冲激序列d(n)')1-3 unitstepseq.mfunction unitstepseq(n1,n2,n0)n=n1:-n0-1;nn=-n0:n2;n=length(n);nn=length(nn)u=zeros(1,n); n0前信号赋值为0uu=ones(1,nn); n0后信号赋值为1stem(nn,uu,'filled)');hold onstem(n, u,'filled)');hold offaxis(n1,n2,0,1.5)title('单位阶跃序

45、列u(n)')1-4 seqadd.mfunctionf,n=seqadd(f1,f2,n1,n2)n=min(min(n1),min(n2):max(max(n1),max(n2);s1=zeros(1,length(n);s2=s1;%初始化新向量s1(find(n>=min(n1)&n<=max(n1)=1)=f1;%f1补0s2(find(n>=min(n2)&n<=max(n2)=1)=f2;%f2补0f=s1+s2;stem(n,f,'filled')axis(min(min(n1),min(n2)-1),(max(m

46、ax(n1),max(n2)+1),(min(f)-0.5),(max(f)+0.5)1-5 seqmul.mfunctionf,n=seqmul(f1,f2,n1,n2)n=min(min(n1),min(n2):max(max(n1),max(n2);s1=zeros(1,length(n);s2=s1;%初始化新向量s1(find(n>=min(n1)&n<=max(n1)=1)=f1;%f1补0s2(find(n>=min(n2)&n<=max(n2)=1)=f2;%f2补0f=s1.*s2;stem(n,f,'filled')a

47、xis(min(min(n1),min(n2)-1),(max(max(n1),max(n2)+1),(min(f)-0.5),(max(f)+0.5)1-6 seqfold.mfunctionf,n=seqfold(f1,n1)f=fliplr(f1);n=-fliplr(n1); %函数fliplr实现向量f1和f2的反褶stem(n,f,'filled')axis(min(n)-1,max(n)+1,min(f)-0.5,max(f)+0.5)1-7 seqshift.mfunctionf,n=seqshift(ff,nn,n()%ff,nn是平移前的序列及其对应序号的列

48、向量,%n0是平移量n=nn+n0;f=ff;stem(n,f,'filled')axis(min(n)-1,max(n)+1,min(f)-0.5,max(f)+0.5)2-1 sconv()function f,k=sconv(f1,f2,k1,k2,p)% 计算连续信号卷积积分f(t)=f1(t)*f2(t);% 取样时间间隔f=conv(f1,f2); %计算序列f1与f2的卷积和ff=f*p;k0=k1(1)+k2(1); %计算序列f非0样值的起始点k3=length(f1)+length(f2)-2; %计算卷积和f非0样值的宽度k=k0:p:k3*p;subpl

49、ot(2,2,1)plot(k1,f1)title('f1(t)')xlabel('t')ylabel('f1(t)')subplot(2,2,2)plot(k2,f2)title('f2(t)')xlabel('t')ylabel('f2(t)')subplot(2,2,3)plot(k,f)h=get(gca,'position');h(3)=2.5*h(3);set(gca,'position') %将第三个子图的横坐标范围扩为原来的2.5倍title('

50、;f(t)=f1(t)*f2(t)')xlabel('t')ylabel('f(t)')3-1 CTFSrectpsym.m% 本例绘制周期T=5,脉宽tao=1的矩形脉冲及频谱图function A_sym,B_sym=CTFSrectpsym(T,Nf)% 采用符号计算求0,T内时间函数的三角级数展开系数。%函数的输入输出都是数值量%A_sym第1元素是直流项,其后元素依次是1,2,3.次谐波cos项展开系数%B_sym第2,3,4,.元素依次是1,2,3.次谐波sin项展开系数% T T=m*tao, 信号周期% Nf谐波的阶数%Nn输出数据的准确

51、位数% m (m=T/tao)周期与脉冲宽度之比,如m=4,8,16,100等% tao 脉宽:tao=T/m syms t n y if nargin<3;Nf=input('please Input 所需展开的最高谐波次数:Nf=');endT=input('please Input 信号的周期T=');if nargin<5;Nn=32;endy=time_fun_s(t);A0=2*int(y,t,0,T)/T;As=int(2*y*cos(2*pi*n*t/T)/T,t,0,T);Bs=int(2*y*sin(2*pi*n*t/T)/T,t,0,T);A_sym(1)=double(vpa(A0,Nn);for k=1:Nf A_sym(k+1)=double(vpa(subs(As,n,k),Nn); B_sym(k+1)=double(vpa(subs(Bs,n,k),Nn); endif nargout=0 S1=fliplr(A_sym) %对A_sym阵左右对称交换 S1(1,k+1)=A_sym(1) %A_sym的1*k阵扩展为1*(k+1)阵 S2

温馨提示

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

评论

0/150

提交评论