matlab零状态零输入响应

合集下载

matlab状态空间表达式的解

matlab状态空间表达式的解

标题:MATLAB状态空间表达式的解析一、概述MATLAB是一种非常常用的数学软件,用于分析、设计和模拟动态系统。

在控制系统理论中,状态空间表达式是描述线性系统动态行为的重要方法。

本文旨在介绍如何使用MATLAB对状态空间表达式进行解析和分析。

二、状态空间表达式简介状态空间表达式是一种描述线性时不变系统的数学模型。

通常由状态方程和输出方程组成。

状态方程描述了系统的演化规律,而输出方程则描述了系统状态和输出之间的关系。

三、MATLAB中的状态空间表示在MATLAB中,状态空间表示可以使用ss函数进行表达。

该函数的输入参数包括系统的状态方程系数矩阵A、输入矩阵B、输出矩阵C 和前馈矩阵D。

四、求解状态空间表达式1. 稳态响应分析在MATLAB中,可以使用sys = ss(A,B,C,D)定义一个状态空间模型,然后使用step(sys)绘制系统的阶跃响应曲线。

通过阶跃响应曲线可以分析系统的稳态性能。

2. 传递函数表示使用tf(sys)可以将状态空间表示转换为传递函数表示,这样可以更方便地分析系统的特性。

3. 稳定性分析使用eig(A)可以计算状态方程系数矩阵A的特征值,从而判断系统的稳定性。

如果系统的所有特征值都是负实数,那么系统是稳定的。

4. 频域特性分析使用bode(sys)可以绘制系统的频率响应曲线,这样可以分析系统在不同频率下的特性。

五、应用实例以电机控制系统为例,假设系统的状态空间表达式为:A = [-2 -1; 3 -4]B = [1; 0]C = [0 1]D = [0]可以使用以下代码在MATLAB中求解该系统:sys = ss(A,B,C,D)step(sys)tf_sys = tf(sys)eig(A)bode(sys)六、结语本文介绍了MATLAB中状态空间表达式的解析方法,并以电机控制系统为例进行了说明。

希望本文能够帮助读者更好地理解和应用状态空间表达式在MATLAB中的求解方法。

信号与信号实验

信号与信号实验

信号与信号实验MATLAB 部分实验一:基本信号在MATLAB 中的表示和运算 一、 实验目的;1、学会用MATLAB 表示常用连续信号的方法;2、学会用MATLAB 进行信号基本运算的方法;3、学会用MATLAB 实现连续时间信号的卷积的方法。

二、 实验内容:1、绘出下列信号的时域波形(1)f(t)=(2-e-2t)u(t) (2)f(t)=cos(πt)[u(t)-u(t-1)] (3)f(t)=u(-3t+2) (4)f(t)= -(1/2)tu(t+2) 解:t1=0:0.01:5; y1=(2-exp(-2*t1)).*(t1>0); subplot(221);plot(t1,y1);grid; title('f(t)=(2-e-2t)u(t)'); t2=0:0.01:5; y2=cos(pi*t2).*((t2>0)-(t2>1)); subplot(222);plot(t2,y2);grid; title('f(t)=cos(πt)[u(t)-u(t-1)]'); t3=-2:0.01:5; y3=(-3*t3+2>0); subplot(223);plot(t3,y3);grid; title('f(t)=u(-3t+2)'); t4=-3:0.01:5; y4=(-1/2)*t4.*(t4>-2); subplot(224);plot(t4,y4);grid; title('f(t)=-(1/2)tu(t+2)');00.511.52f(t)=(2-e-2t)u(t)图 1-1f(t)=cos(πt)[u(t)-u(t-1)]图1-200.51f(t)=u(-3t+2)图1-3f(t)=-(1/2)tu(t+2)图 1-42、用MATLAB 绘出下列信号的卷积积分f1(t)*f2(t)的时域波形(1) f1(t)=tu(t), f2(t)=u(t) (2) f1(t)=u(t)-u(t-4), f2(t)=sin(πt)u(t) (3) f1(t)= e-2t u(t), f2(t)= e-t u(t) (4) f1(t)= e-t u(t), f2(t)=u(t) 解:(1)fs=1000; t=-1:1/fs:4; x1=stepfun(t,0); x2=x1.*t; y=conv(x1,x2)/fs; n=length(y1); tt=(0:n-1)/fs-2; subplot(311),plot(t,x1),grid; title('f1(t)=tu(t)'); subplot(312),plot(t,x2),grid; title(' f2(t)=u(t)'); subplot(313),plot(tt,y),grid on; title('f1(t) * f2(t)');(2)fs=1000; t=-1:1/fs:4; x1=(t>0)-(t>4); x2=sin(pi*t).*(t>0); x=conv(x1,x2)/fs; n=length(x); tt=(0:n-1)/fs-2; subplot(311);plot(t,x1);grid; title('f1(t)=u(t)-u(t-4))'); subplot(312);plot(t,x2);grid; title('f2(t)=sin(πt)u(t)'); subplot(313);plot(tt,x);grid; title('f1(t) * f2');(3)t=0:1/fs:4; x1=exp(-2*t).*(t>0); x2=exp(-t).*(t>0); x=conv(x1,x2)/fs; n=length(x); tt=(0:n-1)/fs-0; subplot(311);plot(t,x1);grid; title('f1(t)= e-2t u(t)'); subplot(312);plot(t,x2);grid; title('f2(t)= e-t u(t)'); subplot(313);plot(tt,x);grid; title('f1(t) * f2(t)');(4)t=0:1/fs:2; x1=exp(-2*t).*(t>0); x2=(t>0); x=conv(x1,x2)/fs; n=length(x); tt=(0:n-1)/fs-0; subplot(311);plot(t,x1);grid; title(' f1(t)= e-t u(t))'); subplot(312);plot(t,x2);grid; title('f2(t)=u(t)'); subplot(313);plot(tt,x);grid; title('f1(t)*f2(t)');0.51 1.52 2.53 3.540.51 1.52 2.53 3.5412345678-1 -0.5 00.51 1.52 2.53 3.54? 2-1 -1 -0.5 00.51 1.52 2.53 3.54? 2-2 -2-112 3 4 5678? 2-3实验二:连续时间LTI 系统的时域分析一、实验目的:学会用MATLAB 求解连续系统的零状态响应、冲击响应和阶跃响应。

MATLAB实验报告(1-4)

MATLAB实验报告(1-4)

信号与系统MATLAB第一次实验报告一、实验目的1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。

2.学会运用MATLAB表示常用连续时间信号的方法3.观察并熟悉一些信号的波形和特性。

4.学会运用MATLAB进行连续信号时移、反折和尺度变换。

5.学会运用MATLAB进行连续时间微分、积分运算。

6.学会运用MATLAB进行连续信号相加、相乘运算。

7.学会运用MATLAB进行连续信号的奇偶分解。

二、实验任务将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。

三、实验内容1.MATLAB软件基本运算入门。

1). MATLAB软件的数值计算:算数运算向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。

2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。

矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开;矩阵的不同行之间必须用分号”;”或者ENTER分开。

2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。

3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。

举例:计算一个函数并绘制出在对应区间上对应的值。

2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名”2.MATLAB软件简单二维图形绘制1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y)2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表示第p个区域,表达为subplot(mnp)或者subplot(m,n,p)3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin])4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’)5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’)6).输出:grid on举例1:举例2:3.matlab程序流程控制1).for循环:for循环变量=初值:增量:终值循环体End2).while循环结构:while 逻辑表达式循环体End3).If分支:(单分支表达式)if 逻辑表达式程序模块End(多分支结构的语法格式)if 逻辑表达式1程序模块1Else if 逻辑表达式2程序模块2…else 程序模块nEnd4).switch分支结构Switch 表达式Case 常量1程序模块1Case 常量2程序模块2……Otherwise 程序模块nEnd4.典型信号的MATLAB表示1).实指数信号:y=k*exp(a*t)举例:2).正弦信号:y=k*sin(w*t+phi)3).复指数信号:举例:4).抽样信号5).矩形脉冲信号:y=square(t,DUTY) (width默认为1)6).三角波脉冲信号:y=tripuls(t,width,skew)(skew的取值在-1~+1之间,若skew取值为0则对称)周期三角波信号或锯齿波:Y=sawtooth(t,width)5.单位阶跃信号的MATLAB表示6.信号的时移、反折和尺度变换:Xl=fliplr(x)实现信号的反折7.连续时间信号的微分和积分运算1).连续时间信号的微分运算:语句格式:d iff(function,’variable’,n)Function:需要进行求导运算的函数,variable:求导运算的独立变量,n:求导阶数2).连续时间信号的积分运算:语句格式:int(function,’variable’,a,b)Function:被积函数variable:积分变量a:积分下限b:积分上限(a&b默认是不定积分)8.信号的相加与相乘运算9.信号的奇偶分解四、小结这一次实验让我能够教熟悉的使用这个软件,并且能够输入简单的语句并输出相应的结果和波形图,也在一定程度上巩固了c语言的一些语法。

信号与系统仿真作业

信号与系统仿真作业

nGDOU-B—11—112广东海洋大学学生实验报告书(学生用表)课程名称课程号学院(系)信息学院专业班级学生姓名学号实验地点04002 实验日期实验一连时间信号的MATLAB表示和连续时间LTI系统的时域分析一、实验目的1.掌握MA TLAB产生常用连续时间信号的编程方法,并熟悉常用连续时间信号的波形和特性;2.运用MATLAB符号求解连续系统的零输入响应和零状态响应;3.运用MATLAB数值求解连续系统的零状态响应;4.运用MATLAB求解连续系统的冲激响应和阶跃响应;5.运用MATLAB卷积积分法求解系统的零状态响应。

二、实验原理1. 连续信号MATLAB实现原理从严格意义上讲,MA TLAB数值计算的方法并不能处理连续时间信号.然而,可用连续信号在等时间间隔点的取样值来近似表示连续信号,即当取样时间间隔足够小时,这些离散样值能够被MATLAB处理,并且能较好地近似表示连续信号.MATLAB提供了大量生成基本信号的函数.比如常用的指数信号、正余弦信号等都是MATLAB的内部函数。

为了表示连续时间信号,需定义某一时间或自变量的范围和取样时间间隔,然后调用该函数计算这些点的函数值,最后画出其波形图.三、实验内容1.实例分析与验证根据以上典型信号的MA TLAB函数,分析与验证下列典型信号MA TLAB程序,并实现各信号波形图的显示,连续信号的图形显示使用连续二维图函数plot().(1)正弦信号:用MA TLAB命令产生正弦信号2sin(2/4)ππ+,并会出时间0≤t≤3的波形图。

程序如下:K=2;w=2*pi ;phi=pi/4;t=0:0.01:3;ft=K*sin (w*t+phi );plot(t,ft ),grid on ;axis ([0,3,-2。

2,2.2])title (’正弦信号’)(2) 抽样信号:用MA TLAB 中的sinc(t)函数命令产生抽样信号Sa(t),并会出时间为66t ππ-≤≤的波形图。

连续时间LTI系统分析

连续时间LTI系统分析

连续时间L T I系统分析(总8页) -本页仅作为预览文档封面,使用时请删除本页-实验三 连续时间LTI 系统分析一、实验目的(一)掌握使用Matlab 进行连续系统时域分析的方法1、学会使用符号法求解连续系统的零输入响应和零状态响应2、学会使用数值法求解连续系统的零状态响应3、学会求解连续系统的冲激响应和阶跃响应(二)掌握使用Matlab 进行连续时间LTI 系统的频率特性及频域分析方法1、学会运用MATLAB 分析连续系统的频率特性2、学会运用MATLAB 进行连续系统的频域分析(三)掌握使用Matlab 进行连续时间LTI 系统s 域分析的方法1、学会运用MATLAB 求拉普拉斯变换(LT )2、学会运用MATLAB 求拉普拉斯反变换(ILT )3、学会在MATLAB 环境下进行连续时间LTI 系统s 域分析二、实验条件装有MATLAB 的电脑三、实验内容(一)熟悉三部分相关内容原理(二)完成作业1、已知某系统的微分方程如下:)(3)()(2)(3)(t e t e t r t r t r +'=+'+''其中,)(t e 为激励,)(t r 为响应。

(1) 用MATLAB 命令求出并画出2)0(,1)0(),()(3='==---r r t u e t e t 时系统的零状态响应和零输入响应(零状态响应分别使用符号法和数值法求解,零输入响应只使用符号法求解);符号法求解零输入响应: >> eq='D2y+3*Dy+2*y=0';>> cond='y(0)=1,Dy(0)=2';>> yzi=dsolve(eq,cond);>> yzi=simplify(yzi)yzi =符号法求解零状态响应:exp(-2*t)*(4*exp(t) - 3)eq1='D2y+3*Dy+2*y=Dx+3*x';eq2='x=exp(-3*t)*heaviside(t)';cond='y=0,Dy=0';yzs=dsolve(eq1,eq2,cond);yzs=simplify(yzs)yzs =(exp(-2*t)*(exp(t) - 1)*(sign(t) + 1))/2图像如下:代码:subplot(211)ezplot(yzi,[0,8]);grid ontitle('ÁãÊäÈëÏìÓ¦')subplot(212)ezplot(yzs,[0,8]);grid ontitle('Áã״̬ÏìÓ¦')数值计算法:t=0::10;sys=tf([1,3],[1,3,2]);f=exp(-3*t).*uCT(t);y=lsim(sys,f,t);plot(t,y),grid on ;axis([0 10 ]);title('ÊýÖµ¼ÆËã·¨µÄÁã״̬ÏìÓ¦')(2)使用MATLAB命令求出并画出系统的冲激响应和阶跃响应(数值法);用卷积积分法求系统的零状态响应并与(1)中结果进行比较;系统的冲激响应和阶跃响应(数值法):代码:t=0::10;sys=tf([1,3],[1,3,2]);h=impulse(sys,t);g=step(sys,t);subplot(211)plot(t,h),grid on;axis([0 10 ]);title('³å¼¤ÏìÓ¦')subplot(212)plot(t,g),grid on;axis([0 10 ]);title('½×Ô¾ÏìÓ¦'卷积积分法求系统的零状态响应:Ctsconv函数的定义:function[f,t]=ctsconv(f1,f2,t1,t2,dt)f=conv(f1,f2);f=f*dt;ts=min(t1)+min(t2);te=max(t1)+max(t2);t=ts:dt:te;subplot(221)plot(t1,f1);grid onaxis([min(t1),max(t1),min(f1)-abs(min(f1)*,max(f1)+abs(max(f1)*])title('f1(t)');xlabel('t')subplot(222)plot(t2,f2);grid onaxis([min(t2),max(t2),min(f2)-abs(min(f2)*,max(f2)+abs(max(f2)*])title('f2(t)');xlabel('t')subplot(212)plot(t,f);grid onaxis([min(t),max(t),min(f)-abs(min(f)*,max(f)+abs(max(f)*])title('f(t)=f1(t)*f2(t)');xlabel('t')求系统的零状态响应代码:dt=;t1=0:dt:10;f1=exp(-3*t1).*uCT(t1);t2=t1;sys=tf([1,3],[1,3,2]);f2=impulse(sys,t2);[t,f]=ctsconv(f1,f2,t1,t2,dt)如图,根据两图相比较,两种方法做出的零状态响应大体相同。

零输入响应和零状态响应

零输入响应和零状态响应

计算方法
利用系统的传递函数和初始条 件进行计算。
通过求解常微分方程或差分方 程ห้องสมุดไป่ตู้找到系统的零输入响应。
在MATLAB/Simulink等仿真软 件中,可以通过设置系统的初 始状态来模拟零输入响应。
02 零状态响应
定义
零状态响应:是指在系统无输入 信号的情况下,系统对初始状态
产生的响应。
描述了系统在没有输入信号作用 时,其内部状态的变化情况。
零状态响应完全取决于系统本身 的特性,与输入信号无关。
产生原因
系统内部存在储能元件(如电容、电 感),当输入信号为零时,储能元件 的能量不会立即消失,而是会以某种 形式继续存在并产生响应。
系统参数(如电阻、电感、电容等) 发生变化,导致系统内部状态发生变 化,从而产生零状态响应。
计算方法
根据系统的传递函数 和初始状态进行计算。
针对复杂系统和多尺度问题,发展基于零输入响应和零状态响应的跨学科 解决方案,促进各领域之间的交流与合作。
探索零输入响应和零状态响应在可持续发展、环境保护、公共安全等领域 的潜在应用价值,为社会发展和人类福祉做出贡献。
技术创新
开发高效、稳定的零输入响应和零状态响应算 法,提高计算效率和精度,降低计算成本。
零状态响应
零状态响应描述的是系统在外部输入作用下的输出变化。通过研究零状态响应, 可以了解系统对不同类型输入的响应特性,进而设计出更好的控制系统。
系统建模与仿真
零输入响应
在系统建模与仿真中,零输入响应用 于描述系统的内部动态特性。通过分 析零输入响应,可以深入了解系统的 内部工作原理和稳定性。
零状态响应
零状态响应用于描述系统对外部输入 的响应特性。通过研究零状态响应, 可以预测系统在不同输入条件下的行 为表现,有助于优化系统的设计和控 制。

matlab求解零状态零输入响应

matlab求解零状态零输入响应

matlab求解零状态零输入响应在控制系统理论中,零状态零输入响应是关于一个特定系统的动态响应的一种模型。

这种响应是指在输入信号为零的情况下,考虑到初始状态对系统的影响而产生的响应。

对于多数控制问题,除非考虑到开始时就有输入信号的情况,否则零状态零输入响应会是我们更加感兴趣的一种状态,因为它考虑到了初值的影响并且可以帮助我们得到一个特定时间内的系统响应。

在这里,我们将主要介绍如何使用MATLAB软件包来解决零状态零输入响应问题。

考虑到这种响应是一个关于时间的函数,我们将讨论如何利用MATLAB的功能包来创建一个时间序列并生成相应的输出结果。

在MATLAB中,我们可以使用过渡矩阵法(State Transition Matrix)来求解零输入响应。

该方法是将系统的状态空间描述通过定义一个从时间t1到t2的矩阵转换,输入输出关系描述为超前作用器(feedforward action),并依次解决零输入和零状态响应的问题。

因此,我们可以将求解零状态零输入响应的问题转换为一个简单的线性代数问题。

在MATLAB中,我们需要定义一个描述系统的状态空间模型,并使用矩阵乘法来表示状态空间方程和状态转换。

在MATLAB中,有两种常用的方法可以解决零输入响应问题:直接使用转移矩阵法或使用MATLAB中的laplace变换。

1. 直接使用转移矩阵法在MATLAB中,我们可以使用矩阵操作命令来实现求解零输入响应时的状态转移过程。

具体步骤如下:a. 首先,需要定义系统的状态空间模型,包括矩阵A,B,C和D。

b. 接着,我们需要使用MATLAB中的expm命令来计算过渡矩阵。

c. 最后,利用在MATLAB中定义的C和D矩阵来计算响应。

例如,在以下控制系统中:x' = Ax + B1u1 + B2u2y = Cx + Du其中,A,B1,B2,C和D由以下矩阵给出:A = [0 1 0;0 0 1;0 0 0]B1 = [0;0;1]B2 = [1;0;0]C = [1 1 1]D = 0我们可以使用以下MATLAB命令来计算系统响应:%计算过渡矩阵t = 0:0.1:10;phi = expm(A*t);plot(t,y)2. 使用MATLAB中的laplace变换另一个解决零输入响应问题的方法是使用MATLAB中的laplace变换。

电源 零极点 matlab

电源 零极点 matlab

电源零极点 matlab介绍在电力系统中,电源是一个重要的组成部分,它为电力设备提供所需的电能。

电源的性能直接影响到电力系统的稳定性和可靠性。

为了更好地了解电源的特性和行为,我们可以使用Matlab来进行分析和模拟。

什么是零极点在电源的分析中,零极点是非常重要的概念。

零点是电源传递函数中使得输出为零的输入值,而极点则是使得传递函数无穷大的输入值。

了解电源的零极点分布可以帮助我们更好地理解电源的频率响应和稳定性。

使用Matlab分析电源的零极点Matlab是一个功能强大的数学计算软件,它提供了丰富的工具和函数来进行电源的分析。

以下是使用Matlab分析电源零极点的一般步骤:1. 定义电源传递函数首先,我们需要定义电源的传递函数。

传递函数是描述输入和输出之间关系的数学表达式。

在Matlab中,可以使用tf函数来定义传递函数。

例如,如果我们有一个传递函数为s/(s+1)的电源,可以使用以下代码进行定义:num = [1];den = [1, 1];sys = tf(num, den);2. 绘制零极点图接下来,我们可以使用zpk函数来获取电源的零极点信息,并使用zplane函数来绘制零极点图。

零极点图可以帮助我们直观地了解电源的频率响应和稳定性。

以下是绘制零极点图的代码示例:[z, p, k] = zpkdata(sys);zplane(z, p);3. 分析零极点的位置和数量通过观察零极点图,我们可以分析电源的零极点的位置和数量。

零极点的位置可以告诉我们电源的频率响应特性,而零极点的数量则与电源的稳定性相关。

通常情况下,零极点越远离原点,电源的频率响应越宽,但稳定性可能会受到影响。

4. 评估电源的稳定性除了通过零极点图来评估电源的稳定性外,我们还可以使用Matlab提供的稳定性分析工具来进行评估。

Matlab提供了一些函数,如isstable和margin,可以帮助我们快速评估电源的稳定性。

以下是使用isstable函数来评估电源稳定性的代码示例:isStable = isstable(sys);5. 优化电源设计根据对电源零极点的分析和评估结果,我们可以进一步优化电源的设计。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 已知离散时间系统的差分方程为:2y(n) - y(n-1) - 3y(n-2)=2x(n) - x(n-1)x(n)= 0.5nu(n) , y(-1)=1,y(-2)=3 , 试用filter 函数求系统的零输入响应、零状态响应和全响应.解:将差分方程Z 变换得:12112()[()(1)]3[()(1)(2)]2()[()(1)]Y z z Y z y z Y z z y y X z z X z x -----+--+-+-=-+- …………………………………….(1) 依题意有:x(-1)=0,x(-2)=0,y(-1)=1,y(-2)=3 ,X(z)=1110.50.5z z z -=-- 将上式变形如下: 1211(23)()[(1)3(1)3(2)](2)()z z Y z y z y y z X z --------+-+-=- ………..(2) 1211(23)()(2)()[(1)3(1)3(2)]z z Y z z X z y z y y ------=-+-+-+-1211(23)()(2)()[103]z z Y z z X z z ------=-++ (3)易得系统函数为H(z)= 12122222323z z z z z z z -----=---- ① 零输入时零输入时,x(n)=0,差分方程右边为0,z 变换后应为121(23)()103z z Y z z -----=+112103()23z Y z z z ---+=-- =2210323z z z z +-- =71835152z z z z ++- 将Y(z)进行Z 反变换,得到其零输入响应为: y(n)= 7183[(1)()]()552n n u n -+ ② 零状态时零状态时,将y(-1)=0,y(-2)=0代入上面的式(2)中,得Y(z)= 112223z z z ------X(z)= 112223z z z ------1110.5z --=22223z z z --=233 5152 z z z z++-将其Z反变换,得到零状态响应为:y(n)=233 [(1)()]() 552n n u n -+③全响应与上面同理,y(-1)=1,y(-2)=3将上面式(3)变形得:Y(z)=2212323z zz z+--=92135152z zz z++-Z反变换得全响应为Y(n)=921[]()35152z zu n z z++-程序代码:%第二章Z变换第2.12题程序clear all;close all;num=[2 -1 0]; %系统函数分子的系数den=[2 -1 -3]; %系统函数分母的系数n=0:50;nl=length(n);%求零输入响应y01=[1 3]; %y的初始状态x01=[0 0]; %x 的初始状态x1=zeros(1,nl);zi1=filtic(num,den,y01,x01); %为filter函数准备初始值y1=filter(num,den,x1,zi1); %求零输入响应subplot(311);stem(n,y1,'r.');title('零输入响应');grid on;%求零状态响应y02=[0 0];x02=[0 0];x2=0.5.^n;zi2=filtic(num,den,y02,x02);y2=filter(num,den,x2,zi2);subplot(312);stem(n,y2,'r.');title('零状态响应');grid on;%求全响应y03=[1 3];x03=[0 0];x3=0.5.^n;zi3=filtic(num,den,y03,x03);y3=filter(num,den,x1,zi3);subplot(313);stem(n,y3,'r.');title('全响应');grid on;运行结果如下:2. 已知离散系统的系统函数分别为(1)2321()21z zH zz--=-(2)31()1zH zz+=-(3)2322()2241zH zz z z+=+-+(4)332()0.20.30.4zH zz z z=+++试用MATLAB实现下列分析过程:①求出系统的零极点位置;②绘出系统的零极点图,根据零极点图判断系统的稳定性;③绘出系统单位响应的时域波形,并分析系统稳定性与系统单位响应时域特性的关系。

解:程序代码如下:%%第二章Z变换第2.13题程序clear all;close all;%题(1)a1=[2 0 0 -1]; %系统函数分母的系数b1=[0 2 -2 -1]; %系统函数分子的系数p1=roots(a1), %求极点pa1=abs(p1), %求极点到坐标原点的距离,看它是否大于1,若有一个大于1, %则系统不稳定;若所有的都小于1,则系统稳定q1=roots(b1), %求零点h1=impz(b1,a1); %求单位响应subplot(421);zplane(b1,a1);%画零极点图title('(1)的零极点图');subplot(425);stem(h1,'.'); %单位响应的时域波形grid on;title('(1)的单位响应的时域波形');%题(2)a2=[3 0 0 -1];b2=[0 0 1 1];p2=roots(a2),pa2=abs(p2),q2=roots(b2),h2=impz(b2,a2);subplot(422);zplane(b1,a1);title('(2)的零极点图');subplot(426);stem(h2,'.');grid on;title('(2)的单位响应的时域波形');%题(3)a3=[1 2 -4 1];b3=[0 1 0 2];p3=roots(a3),pa3=abs(p3),q3=roots(b1),h3=impz(b3,a3);subplot(423);zplane(b3,a3);title('(3)的零极点图');subplot(427);stem(h3,'.');grid on;title('(3)的单位响应的时域波形');%题(4)a4=[1 0 0 0];b4=[1 0.2 0.3 0.4];p4=roots(a4),pa4=abs(p4),q4=roots(b4),h4=impz(b4,a4);subplot(424);zplane(b1,a1);title('(1)的零极点图');subplot(428);stem(h4,'.');grid on;title('(1)的单位响应的时域波形');运行结果如下:3. 已知描述离散系统的差分方程为:y(n) - y(n-1) - y(n-2)=4x(n) - x(n-1) - x(n-2)试用MA TLAB绘出系统的零极点分布图,并绘出系统的幅频和相频特性曲线,分析该系统的作用解:程序代码如下:clear all;close all;num=[4,-1,-1];den=[1 -1 -1];[H,w]=freqz(num,den);subplot(311);zplane(num,den);subplot(312);plot(w/pi,abs(H));grid on;title('幅频响应曲线')subplot(313);plot(w/pi,angle(H));title('相频响应曲线');grid on;运行结果如下:4. 已知因果(单边)离散序列的Z变换分别如下所示,试用MATLAB求出其Z反变换(1)221()2z zF zz z++=+-(2)23221()12z zF zz z z-+=++(3)22()21F zz z=++(4)3243221()32321z z zF zz z z z+++=++++解:程序代码如下:clear all;close all;F1=sym('(z^2+z+1)/(z^2+z-2)');f1=iztrans(F1),F2=sym('(2*z^2-z+1)/(z^3+z^2+z/2)');f2=iztrans(F2),F3=sym('(z^2)/(z^2+sqrtm(2)*z+1)');f3=iztrans(F3),F4=sym('(z^3+2*z^2+z+1)/(3*z^4+2*z^3+3*z^2+2*z+1)');f4=iztrans(F4)运行结果如下:f1 =(-2)^n/2 - kroneckerDelta(n, 0)/2 + 1δ注:kroneckerDelta(n, 0)=()nf2 =2*kroneckerDelta(n - 1, 0) - 6*kroneckerDelta(n, 0) + 3*(-1)^n*2^(1 - n)*i*(i + 1)^(n - 1) - 3*(-1)^n*2^(1 - n)*i*(1 - i)^(n - 1)f3 =2*(-1)^n*cos(n*acos(sqrtm(2)/2)) + ((-1)^n*(sqrtm(2)/2 + (sqrtm(2)^2/4 - 1)^(1/2))^(n - 1))/(2*(sqrtm(2)^2/4 - 1)^(1/2)) - ((-1)^n*(sqrtm(2)/2 - (1/4*sqrtm(2)^2 - 1)^(1/2))^(n - 1))/(2*(sqrtm(2)^2/4 - 1)^(1/2))f4 =sum(-(r3*r3^n + r3^n + 2*r3^2*r3^n + r3^3*r3^n)/(2*r3^3 + 6*r3^2 + 6*r3 + 4), r3 in RootOf(z1^4 + (2*z1^3)/3 + z1^2 + (2*z1)/3 + 1/3, z1)) + kroneckerDelta(n, 0)sum( -(r3*r3^n + r3^n + 2*r3^2*r3^n + r3^3*r3^n)/(2*r3^3 + 6*r3^2 + 6*r3 + 4), r3 in RootOf(z1^4 + (2*z1^3)/3 + z1^2 + (2*z1)/3 + 1/3, z1) ) + kroneckerDelta(n, 0)注:r3 in RootOf(z1^4 + (2*z1^3)/3 + z1^2 + (2*z1)/3 + 1/3, z1)就是说r3是关于Z1的方程z1^4 + (2*z1^3)/3 + z1^2 + (2*z1)/3 + 1/3=0的根。

相关文档
最新文档