信号与系统-课程设计报告--matlab_第1页
信号与系统-课程设计报告--matlab_第2页
信号与系统-课程设计报告--matlab_第3页
信号与系统-课程设计报告--matlab_第4页
信号与系统-课程设计报告--matlab_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

.信号与系统 课程设计报告报告题目: MATLAB在信号与系统中的使用所在系部: 理学院 所在专业: 应用物理 所在班级: 物理092 作者姓名: 郑xxx 作者学号: 20090012xxxx 指导教师: xxxxx 完成时间: 2011.6 目录内容摘要 3MATLAB简介 3第一章 MATLAB应用功能简介1.1 基本概念 51.2 基本运算 61.3 可视化功能1.3.1 绘制二维图形 71.3.2 绘制三维图形 81.4 实例简介1.4.1 应用基础 91.4.2 绘制二维图形 111.4.3 绘制三维图形 12第二章 信号与系统分析及MATLAB实现2.1 信号的时域分析2.1.1 信号的表示及可视化 132.1.2 信号的时域运算、时域变换及MATLAB实现132.1.3 用MATLAB分析常用的时间信号特性142.2 连续系统的是与分析及MATLAB实现2.2.1 离散时间序列卷积及MATLAB实现152.2.2 连续时间信号卷积及MATLAB实现152.3 实例简介2.3.1 信号与系统分析及MATLAB实现162.3.2 连续系统的是与分析及MATLAB实现21第三章 课程设计总结3.1课程设计体会 263.2评语及成绩 27参考文献 28内容摘要通过本次课程设计,我首先学习了matlab7.0的应用基础。在此基础之上又练习使用了运用matlab7.0来分析信号与系统。我学习并掌握了使用matlab 7.0的基本功能,包括数值计算,符号运算,图形控制及运算方法。信号与系统课程中学到的那些常用函数,加上对他们性质和变换的理解,为运用matlab 7.0进行信号与系统分析打下了基础。以matlab 7.0为工具,对信号与系统在时域,频域及Z 域进行了系统分析与计算机模拟。通过大量应用实例介绍运用matlab 7.0进行信号与系统分析的具体方法。关键词: matlab 7.0、信号与系统MATLAB简介MATLAB是matrix和laboratory前三个字母的缩写,意思是:“矩阵实验室”,是Mathwork公司推出的数学类科技应用软件。用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。具有以下基本功能:(1)数值计算功能;(2)符号计算功能;(3)可视化建模及动态仿真功能。MATLAB部分常用函数:eps:浮点相对精度 exp:自然对数的底数e i 或 j:基本虚数单位 inf 或 Inf:无限大, 例如1/0 nan或NaN:非数值(Not a number),例如0/0 pi:圆周率 p(= 3.1415926.) realmax:系统所能表示的最大数值 realmin:系统所能表示的最小数值 nargin: 函数的输入引数个数 nargout: 函数的输出引数个数 lasterr:存放最新的错误信息 lastwarn:存放最新的警告信息 sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 sign(x):符号函数 (Signum function)。 rem(x,y):求x除以y的余数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x) :自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数或 log2(x):以2为底的对数 log10(x):以10为底的对数 sin(x):正弦函数 cos(x):余弦函数 tan(x):正切函数 asin(x):反正弦函数 acos(x):反余弦函数 atan(x):反正切函数 min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 MATLAB基本绘图函数: plot: x轴和y轴均为线性刻度(Linear scale) loglog: x轴和y轴均为对数刻度(Logarithmic scale) fplot 较精确的函数图形 stem 针状图 fill 实心图 第一章 MATLAB应用功能简介1、MATLAB 的数值计算功能 1.1 基本概念 变量 和其它高级语言一样,MATLAB 也是使用变量来保存信息。变量由变量名表示,变量 的命名应遵循如下规则:()变量名必须以字母开头;()变量名可以由字母、数字和下划线混合组成;()变量名区分字母大小写;()变量名的字符长度不应超过 31 个。函数 ()表达式()变量=表达式 表达式由变量名、常数、函数和运算符构成。语句结尾若不加“;”,则表示在语句执行后,在将计算结果存入内存的 同时,还将运算结果显示出来矩阵 ()直接输入法;()利用 MATLAB 内部函数创建;()从外部数据文件(*.mat)装载并创建矩阵。向量(1)利用冒号 “ :” 运算生成向量 (2)利用函数 linspace ()生 成向量 linspace(m,n) linspace(m,n,s)命令Clear 清除当前工作空间全部变量Clear a b c 清除当前工作空间变量a、b、cwho 或 whos 了解已赋值变量的有关信息clc 擦除工作窗中所显示的全部内容clf 擦除当前工作窗中的图像1.2 基本运算矩阵加减与数组加减()若参与运算的两矩阵(数组)的维数相同,则加减运算的结果是将两矩阵的对应元 素进行加减 ()若参与运算的两矩阵的之一为标量(11 的矩阵),则加减运算的结果是将矩阵(数 组)的每一元素与该标量逐一相加减矩阵乘与数组乘矩阵乘与数组乘有着较大差别,运算结果也完全不同。矩阵乘的运算符为“*”,运算是按矩阵的乘法规则进行的,即参与乘运算的两矩阵的内维必须相同。设 A、 B 为参与乘 运算的两矩阵,C 为 A 和 B 矩阵乘的结果,则它们必须满足关系 Cmn=Amk Bkn。因此,参与运算的两矩阵的顺序不能任意调换,因为 A*B 和 B*A 计算结果很可能是完全不一样 的。数组乘的运算符为“.*”,运算符中的点号千万不能遗漏,也不能随意加空格符。参与 数组乘运算的两数组的大小必须相等(即为同维数组)。数组乘的结果是将两同维数组(矩 阵)的对应元素逐一相乘,因此,A.*B 和 B.*A 计算结果是完全相同的.由于,矩阵运算和数组运算的差异,能进行数组乘运算的两矩阵,不一定能进行矩阵乘运算。矩阵除与数组除矩阵除与数组除也有着较大差别,运算结果也完全不同。 矩阵除分为矩阵右除和矩阵左除两种情况。矩阵右除的运算符为“/”,设 A、B 为两矩阵,则“A/B”是指方程 X * B = A 的解矩阵 X。显然,矩阵右除运算对参与运算的两矩阵的维数是有一定要求的,即矩阵 A 和 B 的列数必须相等。矩阵右除允许参与右除运算的矩阵 B 为标量,这时矩阵右除运算的结果是将矩阵 A 的,每一元素逐一与该标量进行除法运算矩阵左除的运算符为“”,设 A、B 为两矩阵,则“ A B”是指方程 B * X = A 的解矩阵 X。显然,矩阵左除运算对参与运算的两矩阵的维数是也有一定的要求,即矩阵 A 和 B的行数必须相等。数组右除的运算符为“. /”,左除的运算符为“. ”。数组右除和左除的运算结果是完全 等效的。设 A、B 为两同维矩阵 ,则“A. /B”的运算结果是将矩阵 A 的每一个元素与矩阵 B 的对应元素相除。需要就意的是,参与数组运算的两矩阵(数组)的大小必须相等。1.3可视化功能1.3.1 绘制二维图形1、绘制简单的二维曲线MATLAB 中最常用的绘图函数为 plot。根据 plot 函数参数的不同,可以在平面上绘制 不同的曲线。plot 函数是将各个数据点通过连折线的方式来绘制二维图形的,若对曲线细 分的话,曲线可以看成是由直线连接而成的。plot 命令的格式有以下几种:(1) plot(y) 当 y 为一向量时,以 y 的序号作为 X 轴,按向量 y 的值绘制曲线。(2) plot(x,y) x,y 均为向量时,以 x 向量作为 X 轴,向量 y 作为 Y 轴绘制曲线。(3) plot(x,y1,option,x,y2,option,)(4) plot(x1,y1,option,x2,y2,option,)2、离散序列图的绘制(1)stem(y)(2)stem(x,y,option)(3)stem(x,y,filled)3、标识坐标轴名称通过 xlable(string)和 ylable(string)命令给 X 轴和 Y 轴加上标注。title(string)命令给图形加上标题。使用 grid on 或 grid off 命令在所画出的图形中添加或去掉网络线。使用坐标轴确定文字位置的 text 命令;使用鼠标确定文字位置的 gtext命令。(1) text(x,y,string,option)(2) gtext(string)4、调整坐标轴状态axis(string)这个命令将坐标轴的状态调整为字符串string的指定的状态。1.3.2 绘制三维图形MATLAB 提供了许多实现三维数据可视化的函数,可以在三维空间中绘制曲线或曲面。1、三维折线及曲线的基本绘图命令(1)plot3(x1,y1,z1,option1,x2,y2,z2,option2,)(2)axis(xmin xmax ymin ymax zmin zmax)2、绘制三维网格曲面(1) mesh(X,Y,Z)命令绘制网格曲面参数 X,Y,Z 都是矩阵,X 矩阵的行向量相同,Y 矩阵的列向量相同。(2) mesh(x,y,Z)命令绘制网格曲面参数 x 和 y 分别是长度为 n 和 m 的向量,Z 是 m*n 矩阵。(3) mesh(Z) 命令绘制网格曲面若 Z 是 m*n 矩阵,则栅格数据点的取法是:x=1:n,y=1:m3、图形绘制中的视角定义view(2) 设定 AZ , EL=0 , 90, 即观测 x-y 平面的显示效果。 view(3) 设定AZ ,EL=-37.5,30,即缺省视点位置。1.3.3 图形的控制和设置1、创建或打开图形窗口(1)figure 命令 每调用一次就打开一个新的图形窗口。(2)figure(n)命令2、图形重叠hold on 命令:保留当前窗口的图形;hold off 命令:解除 hold on 命令。利用图形窗口分割函数 subplot(),也可以在同一个图形窗口中绘制多幅图形。当我们调用 plot 命令绘制二维曲线时,MATLAB 的执行过程大致如下:(1) 使用 figure 命令,在屏幕(root)对象上生成一个图形窗口(Figure 对象);(2)使用 axis 命令,在图形窗口内生成一个绘图区域(Axes 对象);(3)最后用 line 命令在 Axes 指定的区域内绘制线条(Line 对象)3、属性(1)获取属性PropertyValue=get(handle,ProperName)(2)属性的设置set(handle,ProtertyName1,ProtertyValue1,PropertyName2,PropertyValue2,)通过 set()函数设置坐标轴对象和字符对象的属性1.4 实例简介1.4.1 应用基础变量a=happy new year b=365函数a=rand(4)b=rand(2,5)运行结果为:a =0.9501 0.89130.82140.92180.2311 0.76210.44470.73820.6068 0.45650.61540.17630.4860 0.01850.79190.4057 b=0.3028 0.15090.3784 0.8537 0.49660.5417 0.69790.8600 0.5936 0.8998矩阵a=1 2 3 ;4 5 6;7 8 9运行结果为a=1 2 3 4 5 67 8 9向量a=1:10运行结果为a =1 2 3 4 5 6 7 8 9 10矩阵加减与数组加减A=1 1 12 2 23 3 3; B=A;A+Bans =2 2 23 4 46 6 6A-Bans =0 0 00 0 00 0 0矩阵乘与数组乘a=1 1 1;2 2 2;3 3 3;b=a; a*b ans =6 6 612 12 1218 18 18f=ones(1,3); g=ones(3,1);f*gans =g*fans = 31 1 11 1 11 1 1矩阵除与数组除A=2 2 3 3 4 41 1 2 2 3 34 4 5 5 6 6; B=1 1 3 3 2 21 1 1 1 1 12 2 5 5 3 3; A./Bans =2 2 1 1 2 2 1 1 2 2 3 3 2 2 1 1 2 2B./Aans =0.5000 0.5000 1.0000 1.0000 0.5000 0.5000 1.0000 1.0000 0.5000 0.5000 0.3333 0.33330.5000 0.5000 1.0000 1.0000 0.5000 0.50001.4.2 绘制二维图形1、连续序列图的绘制function f=aa(t)f=sym(sin(pi/4*t)ezplot(f,-16,16)图形如下:n=0:15;2、离散序列图的绘制% steam plotx=0:0.1:4; y=sin(x.2).*exp(-x); stem(x,y)图形如右:1.4.3绘制三维图形1、x=-8:0.5:8; y=x; X,Y=meshgrid(x,y); R=sqrt(X.2+Y.2)+eps; Z=sin(R)./R; mesh(X,Y,Z) grid on axis(-10 10 -10 10 -1 1)2、视角变换X,Y = meshgrid(-2:.25:2); Z = X.*exp(-X.2 -Y.2);surf(X,Y,Z); view(0 0); view(180 0); 第二章 信号与系统分析及MATLAB实现2.1 信号的时域分析2.1.1 信号的表式及可视化 (1)连续时间信号向量表示法:对于连续时间信号 f (t) , 我们可以用两个行向量 f 和 t 来表示 , 其中向量 t 是形如 t=t1:p : t2 的 MATLAB 命令定义的时间范围向量, t1 为信号起始时间, t 2 为终止时间,p 为时间间隔。向量 f 为连续信号 f (t) 在向量 t 所定义的时间点上的样值。例如对于连续信号 f (t)=Sa (t)=sin( t)/t符号运算表示法:用ezplot()命令绘制出信号波形(2)离散时间信号一般说来,离散时间信号用 f (k ) 表示,其中变量 k 为整数,代表离散的采样时间点。f (k ) 可表示为:f (k )= f (2 ), f (1), f (0), f (1), f (2) 在用MATLAB表示离散序列并将其可视化时,注意:第一, 与连续时间信号不同,离散时间信号无法用符号运算来表示;第二,由于在MATLAB中,矩阵的元素个数是有限的,因此,MATLAB无法表示无序列;第三,在绘制离散信号波形时,要使用专门绘制离散数据的stem命令,而不是plot命令。2.1.2 信号的时域运算、时域变换及MATLAB实现(1)连续信号的时域运算、时域变换1 相加连续信号的相加,是指两信号的对应时刻值相加,即f (t )=f1 (t)+f 2 (t ) 2. 相乘 连续信号的相乘,是指两信号的对应时刻值相乘,即f (t)=f1 (t )*f2 (t)3. 移位连续信号的移位也称平移。对于连续信号 f (t) ,若有常数 t00 ,延时信号 f (t-t0 )是将原信号沿正 t 轴方向平移时间 t0 ,而 f (t+t0 ) 是将原信号沿负 t 轴方向移动时间 t0 。4. 反折连续信号的反折,是指将信号以纵坐标为轴反折,即将信号 f (t) 中的自变量 t 换为-t 。5. 尺度变换连续信号的尺度变换,是指将信号的横坐标进行展宽或压缩变换,即将信号f (t) 中的自变量 t 换为 at ,当 a1 时,信号f (at ) 以原点为基准,沿横轴压缩到原来的 1/ a ;当0a1 时,信号 f (at) 将沿横轴展宽至原来的 1/ a 倍。6倒相连续信号的倒相,是指将信号 f (t)以横轴为对称轴对折得到f (t)(2)离散信号的时域运算、时域变换对于离散序列来说,序列相加、相乘是将两序列对应时间序号的值逐项相加或相乘, 平移、反折、及倒相变换与连续信号的定义完全相同,这里就不再累述。但需要注意,与 连续信号不同的是,在MATLAB中,离散序列的时域运算和变换不能用符号运算来实现,而 必须用向量表示的方法,即在MATLAB中离散序列的相加、相乘需表示成两个向量的相加、 相乘,因而参加运算的两序列向量必须具有相同的维数。2.1.3 用MATLAB分析常用的时间信号特性1、连续时间信号正弦信号定义为:f (t )=A cos(wt+ )实指数信号: f (t)=Ce(at) ,其中 c 和 a 为实常数虚指数信号:f (t )=Ae(jwt), A 为 常数, w 为虚指数信号的角频率。复指数信号:f (t )=Ae(st) ,其中 s=+jw 为复常数。2、离散时间信号 离散时间正弦序列的表达式为:f (k )= A cos(kw+j ) :式中 k 为无量纲的整数, w 和 j 以弧度为单位, w 称为离散正弦序列的数字角频率,j 为初相位。 离散时间实指数序列的一般形式为:f (k)=ca k ,其中 c 和 a 为实常数。离散时间虚指数序列的一般形式为:f (k )=e(jwk)其中 w 为角频率复指数序列的一般形式为:f (k )=r(k)*e(jwk)2.2 连续系统的是与分析及MATLAB实现2.2.1 离散时间序列卷积及MATLAB实现MATLAB 的 conv()函数可以帮助我们快速求出两个离散序列的卷积和。conv 函数的 调用格式为:f = conv (f1, f2 )其中 f1 为包含序列 f1(k ) 的非零样值点的行向量,f2 为包含序列 f 2 (k ) 的非零样值点的行向量,向量 f 则返回序列 f (k )=f1 (k )*f 2 (k ) 的所有非零样值点行向量2.2.2 连续时间信号卷积及MATLAB实现两个与卷积相关的重要结论:(1)f (t ) = f (t) *d (t ),即连续信号可分解为一系列幅度由f (t )决定的冲激信号d (t)及其平移信号之和。(2)线性时不变连续系统,设其输入信号为f (t),单位响应为h(t),其零状态响应为y(t ),则有: y (t) = f (t ) * h(t)用 MATLAB 实现连续信号 f1 (t) 与 f 2 (t ) 卷积的过程如下:(1)将连续信号 f1 (t) 与 f 2 (t ) 以时间隔进行取样,得到离散序列 f1 (k) 和 f2 (k) (2)构造与 f1 (k) 和 f 2 (k) 相对应的时间向量f1 (k)和 f2 (k)(注意,此时时间序号向量 k1、k2 的元素不再是整数,而是取样时间隔的整数倍的时间间隔点);(3)调用 conv()函数计算卷积积分 f (t) 的近似向量 f (n ) ; (4)构造 f (n) 对应的时间向量 k。LTI 系统当输入为冲激信号d (t)时产生的零状态响应称为系统的冲激响应,用h(t)表示。若输入为单位阶跃信号e (t)时系统产生的零状态响应则称为系统的阶跃响应,记为g (t),如图所示:对 LTI 连续系统,设其输入信号为f (t),冲激响应为h(t),零状态响应为y(t ),则有:y (t) = f (t ) * h(t)即h(t)包含了连续系统的固有特性,与系统的输入无关。MATLAB 为用户提供了专门用于求连续系统冲激响应及阶跃响应,并绘制其时域波形 的函数 impulse 和 step。在调用函数 impulse()和 step()时,我们需要用向量来对连续系统进行表示。Impulse()函数有如下几种调(1)impulse( b, a )(2)impulse( b, a, t )(3)impulse( b, a, t1:p:t2 )(4)impulse( b, a, t1:p:t2 )函数 step()将绘出由向量 a 和 b 表示的连续系统的阶跃响应 g (t) 在指定时间范围内的 波形图,并能求出其数值解。和 impulse()函数一样,step()函数也有如下四种调用格式:(1)step(b,a)(2)step(b,a,t)(3)step(b,a,t1:p:t2)(4)y=step(b,a,t1:p:t2)函数 impz( )能绘出向量 a 和 b 定义的离散系统在指定时间范围内单位响应的时域波形, 并能求出系统单位响应在指定时间范围内的数值解。Impz()函数有如下几种调用格式:(1)impz(b,a)(2)impz(b,a,n)(3)impz(b,a,n1:n2)(4)impz(b,a,n1:n2)MATLAB 的函数 lsim( )能对上述微分方程描述的 LTI 连续系统的响应进行仿真。lsim( ) 函数能绘制连续系统在指定的任意时间范围内系统响应的时域波形图,还能求出连续系统 在指定的任意时间范围内系统响应的数值解。lsim()函数有如下两种调用格式:(1)lsim(b,a,x,t)(2)lsim(b,a,x,t)MATLAB 为用户提供了求 LTI 离散系统响应的专用函数 filter()。该函数能求出由差分 方程描述的离散系统在指定时间范围内的输入序列时所产生的响应序列的数值解。filter()函数的调用格式:filter(b,a,x)2.3 实例简介 2.3.1 信号的时域分析及MATLAB实现例1:设信号 f(t) =(1+t/2)*(t+2)-(t-2),用MATLAB求f(t+2),f(t-2), f(-t), f(2t),- f(t)并绘出其时域波形。 解:根据前面的介绍,我们可用符号运算来实现上述过程,MATLAB命令如下: syms t f=sym(t/2+1)*(heaviside(t+2)-heaviside(t-2) subplot(2,3,1),ezplot(f,-3,3) y1=subs(f,t,t+2) subplot(2,3,2),ezplot(y1,-5,1) y2=subs(f,t,t-2)subplot(2,3,3),ezplot(y2,-1,5) y3=subs(f,t,-t) subplot(2,3,4),ezplot(y3,-3,3) y4=subs(f,t,2*t) subplot(2,3,5),ezplot(y4,-2,2) y5=-f subplot(2,3,6),ezplot(y5,-3,3) 命令执行后得到f,y1,y2,y3,y4,y5的符号表达式如下: f = (t/2+1)*(heaviside(t+2)-heaviside(t-2); y1 = (1/2*t+2)*(heaviside(t+4)-heaviside(t); y2 = 1/2*t*(heaviside(t)-heaviside(t-4) ; y3 = (-1/2*t+1)*(heaviside(-t+2)-heaviside(-t-2) ;y4 = (t+1)*(heaviside(2*t+2)-heaviside(2*t-2) ;y5 = -(1/2*t+1)*(heaviside(t+2)-heaviside(t-2); 图形如下:例 2:已知如图所示信号 f1(t)及信号f2(t)=sin(2兀t ) 用 MATLAB绘出满足下列要求的信号波形。(1)f3(t)=f1(-t)+f1(t) (2) f4(t)=-f1(-t)+ f1(t)(3)f5(t)=f2(t)* f3(t) (4) f6(t)=f1(t)* f2(t)解:信号f1(t)可表示为f1(t)=(-t+4)(t)-(t-4),这样我们即可用MATLAB 的符号运算功能来实现题目要求的时域运算: syms t f1=sym(-1*t+4)*(heaviside(t)-heaviside(t-4) subplot(2,3,1),ezplot(f1) f2=sym(sin(2*pi*t) subplot(2,3,4),ezplot(f2,-4,4) y1=subs(f1,t,-t) f3=f1+y1 subplot(2,3,2),ezplot(f3) f4=-f3 subplot(2,3,3),ezplot(f4) f5=f2*f3 subplot(2,3,5),ezplot(f5) f6=f1*f2 subplot(2,3,6),ezplot(f6)命令执行后得到f1(t) ,f2(t) ,f3(t) ,f4(t), f5(t), f6(t)的符号表达式如下:f1 =(-1*t+4)*(heaviside(t)-heaviside(t-4)f2 =sin(2*pi*t) y1 =(t+4)*(heaviside(-t)-heaviside(-t-4) f3=(-t+4)*(heaviside(t)-heaviside(t-4)+(t+4)*(heaviside(-t)-heaviside(-t-4) f4 = -(-t+4)*(heaviside(t)-heaviside(t-4)-(t+4)*(heaviside(-t)-heaviside(-t-4) f5 = sin(2*pi*t)*(-t+4)*(heaviside(t)-heaviside(t-4)+(t+4)*(heaviside(-t)-heaviside(-t-4) f6 = (-t+4)*(heaviside(t)-heaviside(t-4)*sin(2*pi*t);图形如下: 例3:有两离散序列,f 1 (k) = 2, 1,0,1, 2,f 2 ,f2(k ) = 1,1, 1 用MATLAB绘出它们的波形及f 1 (k )+f 2 (k) 的波形。 解: MATLAB命令为: f1=-2:2; k1=-2:2; f2=1 1 1; k2=-1:1; stem(k1,f1),axis(-3,3,-2.5,2.5) stem(k2,f2),axis(-3,3,-2.5,2.5) f,k=lsxj (f1,f2,k1,k2) 程序运行结果如下,绘制的波形如图所示: f= -2 0 1 2 2 k= -2 1 0 1 2 例4:画出复指数信号f (t)= e(-t)* e(10it)的实部、虚部、模及相角随时间变化的曲线, 并观察其时域特性。 解:对应的MATLAB程序如下:t=0:0.01:3 a=-1;b=10;z=exp(a+i*b)*t); subplot(2,2,1),plot(t,real(z),title(实部); subplot(2,2,3),plot(t,imag(z),title(虚部); subplot(2,2,2),plot(t,abs(z),title(模); subplot(2,2,4),plot(t,angle(z),title(相角); 例5:画出复指数信号f (t)= r(k)* e(jwk)的实部、虚部、模及相角随时间变化的曲线, 并观察其时域特性解:创建M文件:function dfzsu(n1,n2,r,w) %n1:绘制波形的虚指数序列的起始时间序号 %n2:绘制波形的虚指数序列的终止时间序号 %w:虚指数序列的角频率 %r: 指数序列的底数 k=n1:n2; f=(r*exp(i*w).k; Xr=real(f); Xi=imag(f); Xa=abs(f); Xn=angle(f); subplot(2,2,1), stem(k,Xr,filled),title(实部); subplot(2,2,3), stem(k,Xi,filled),title(虚部); subplot(2,2,2), stem(k,Xa,filled),title(模); subplot(2,2,4),stem(k,Xn,filled),title(相角);输入dfzsu(0,20,0.9,pi/4) ,结果如图:2.3.2 离散时间序列卷积及MATLAB实现例6:已知某LTI 离散系统,其单位响应h(k) = e(k) -e(k - 4),求该系统在激励为f (k) = e(k) -e(k -3)时的零状态响应y(k),并绘出其时域波形图。解:由LTI 变离散系统的分析可得y(k) = h(k) * f (k)因此,我们可调用dconv()函数来解决此问题,相应的MATLAB 命令为:f1=ones(1,4);k1=0:3;f2=ones(1,3);k2=0:2;f,k=dconv(f1,f2,k1,k2)运行结果为:f =1 2 3 3 2 1k =0 1 2 3 4 5 时域波形图例7:已知两连续时间信号如下图所示,试用MATLAB 求f(t)= f1(t) * f2( t),并绘出f (t)的时域波形图。解: 我们可以调用前述的函数sconv( )来解决此问题,即首先设定取样时间间隔p,并对连续信号f1(t)和f2(t)的非零值区间以时间间隔p 进行抽样,产生离散序列f1和f2,然后构造离散序列f1 和f2 所对应的时间向量k1 和k2,最后再调用sconv 函数即可求出f1(t) * f2( t)的数值近似,并绘出其时域波形图。实现上述过程的 MATLAB 命令如下:p=0.01;k1=0:p:2;f1=0.5*k1;k2=k1;f2=f1;f,k=sconv(f1,f2,k1,k2,p)上述命令绘制的波形如图所示。图中分别给出了取样时间间隔p=0.5 和p=0.01时的处理效果。可见,当取样时间p 足够小时,函数sconv( )的计算结果就是连续时间卷积f(t)=f1(t)*f2( t)的较好的数值近似 例8:已知描述某连续系统的微分方程为:2 y(t ) + y(t) + 8 y(t) = f (t )试用 MATLAB 绘出该系统的冲激响应和阶跃响应的波形。解:直接调用函数impulse()和step()即可解决此问题,对应的MATLAB 命令如下:b=1;a=2 1 8;subplot(1,2,1)impulse(b,a)subplot(1,2,2)step(b,a)上述命令绘制的系统冲激响应和阶跃响应的波形如图所示。例9:已知描述某离散系统的差分方程如下:2 y(k) - 2y(k - 1) + y(k - 2) = f (k ) + 3 f (k -1) + 2 f (k - 2)试用 MATLAB 绘出该系统050 时间范围内单位响应的波形。解:首先用向量a 和b 表示出该离散系统,然后再调用impz()函数即可解决此问题。实现上述过程的MATLAB 命令如下:a=2 -2 1b=1 3 2;impz(b,a)绘制的系统单位响应波形图如图所示例10:已知描述离散系统的差分方程为:y(k ) - 0.25 y(k -1) + 0.5 y(k - 2) = f (k ) + f (k - 1)且知该系统输入序列为f (k) = (0.5)k*(k)试用 MATLAB 实现下列分析过程:(1) 画出输入序列的时域波形;(2) 求出系统零状态响

温馨提示

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

评论

0/150

提交评论