matlab零状态、零输入响应
- 格式:doc
- 大小:175.50 KB
- 文档页数:7
信号与信号实验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.熟悉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 ππ-≤≤的波形图。
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 对RC 、RL 电路进行分析摘要: MATLAB 是美国Mathworks 公司开发的大型软件包,是MATrix LABoratory 的缩略语。
目前,MATLAB 广泛应用于线性代数、高等数学、物理、电路分析、信号与系统、数字信号处理、自动控制等众多领域,是当前国际上最流行的科学与工程计算的工具软件。
MATLAB 功能强大并且同其它高级语言相比具有语法规则简单、容易掌握、调试方便等特点。
Simulink 是MATLAB 软件的扩展,它是实现动态系统建模和仿真的一个软件包。
MATLAB 具有强大的图形处理功能、符号运算功能和数值计算功能。
其中系统的仿真(Simulink )工具箱是从底层开发的一个完整的仿真环境和图形界面。
在这个环境中,用户可以完成面向框图系统仿真的全部过程,并且更加直观和准确地达到仿真的目标。
本次主要介绍基于MATLAB 的一阶动态电路特性分析。
关键字:MATLAB ;仿真;图形处理;一阶动态电路。
一. RC 串联电路1.1 RC 串联电路的零输入响应动态电路中无外施激励电源,仅由动态元件初始储能所产生的响应,称为动态电路的零输入响应。
在图1所示的RC 电路中,开关S 打向2前,电容C 充电,U u u C R =+。
当开关S 打向2后,电压C R u u =,电容储存的能量将通过电阻以热能的形式释放出来【2】。
图1 RC 电路的零输入响应电路分析:由图可知 t RC o e R U i 1-=, t RC o C R e U u u 1-== t RC o R e R U R I p 222-==,t RC o C C e R U iu p 22-== 在MATALAB 的M 文件编写以下程序:U0=40;R=10;C=0.5; %输入给定参数U1=10;R1=5;C1=0.5; %输入给定参数t=[0:0.1:10]; %确定时间范围Uc1=U0*exp(-t/(R*C));Uc2=U1*exp(-t/(R*C)); %电容电压值Ur1=U0*exp(-t/(R*C));Ur2=U1*exp(-t/(R*C)); %电阻电压值I1=U0/R*exp(-t/(R*C));I2=U1/R*exp(-t/(R*C)); %计算电流值Pc1=U0^2/R*exp(-2*t/(R*C));Pc2=U1^2/R*exp(-2*t/(R*C)); %电容功率值 Pr1=U0^2/R*exp(-2*t/(R*C));Pr2=U1^2/R*exp(-2*t/(R*C)); %电阻功率值 figuresubplot(5,1,1);plot(t,Uc1,t,Uc2); title('Uc(t)的波形图')subplot(5,1,2);plot(t,Ur1,t,Ur2); title('Ur(t)的波形图')subplot(5,1,3);plot(t,I1,t,I2); title('I(t)的波形图')subplot(5,1,4);plot(t,Pc1,t,Pc2); title('Pc(t)的波形图')subplot(5,1,5);plot(t,Pr1,t,Pr2); title('Pr(t)的波形图')波形仿真图:图2 RC 串联电路零输入响应特性曲线蓝线表示U0=40;R=10;C=0.5情况下的特性曲线绿线表示U1=10;R1=5;C1=0.5情况下的特性曲线1.2 RC 串联电路的直流激励的零状态响应零状态响应就是电路在零初始状态下(动态元件初始储能为零)由外施激励引起的响应。
信号与系统MATLAB平时作业学院:电子信息工程学院班级::学号:教师:钱满义MATLAB 习题M3-1 一个连续时间LTI系统满足的微分方程为y ’’(t)+3y ’(t)+2y(t)=2x ’(t)+x(t)(1)已知x(t)=e -3t u(t),试求该系统的零状态响应y zs (t); (2)用lism 求出该系统的零状态响应的数值解。
利用(1)所求得的结果,比较不同的抽样间隔对数值解精度的影响。
解:(1) 由于''()3'()2()2'()(),0h t h t h t t t t δδ++=+≥则2()()()t t h t Ae Be u t --=+ 将()h t 带入原方程式化简得(2)()()'()2'()()A B t A B t t t δδδδ+++=+所以1,3A B =-=2()(3)()t t h t e e u t --=-+又因为3t ()()x t e u t -= 则该系统的零状态响应3t 23t 2t ()()()()(3)()0.5(6+5)()zs t t t y t x t h t e u t e e u t e e e u t ----=*=*-+=-- (2)程序代码 1、ts=0;te=5;dt=0.1;sys=tf([2 1],[1 3 2]);t=ts:dt:te;x=exp(-3*t).*(t>=0);y=lsim(sys,x,t)2、ts=0;te=5;dt=1;sys=tf([2 1],[1 3 2]);t=ts:dt:te;x=exp(-3*t).*(t>=0);y1=-0.5*exp(-3*t).*(exp(2*t)-6*exp(t)+5).*[t>=0];y2=lsim(sys,x,t)plot(t,y1,'r-',t,y2,'b--')xlabel('Time(sec)')legend('实际值','数值解')用lism求出的该系统的零状态响应的数值解在不同的抽样间隔时与(1)中求出的实际值进行比较将两种结果画在同一幅图中有图表 1 抽样间隔为1图表 2 抽样间隔为0.1图表 3 抽样间隔为0.01当抽样间隔dt减小时,数值解的精度越来越高,从图像上也可以看出数值解曲线越来越逼近实际值曲线,直至几乎重合。
MATLAB课程设计任务书(-)一、名称:MATLAB编程简介二、目的熟悉MATLAB编程环境,掌握Help 命令、基本的变量类型、矩阵的基本运算、基本的绘图函数和M-file的建立。
三、内容(一)例题例1、Help 命令help coshelp plothelp abshelp exphelp +例2、变量和矩阵运算(1) Matrix——The basic variable typeM=3M=[1 2 6]M=[1 2 6; 4 6 7]M13=M(1,3)size(M)(2) The Colon Operator ( : )%Creating Array and Vector% v = start: skip: endx1=0:2:10x2=0:1:10 (or x=0:10)t=-1:0.2:1%Accessing MatrixA=[1 2 3;4 5 6;7 8 9]A(2:3,1:2)x2(4:8)(3) Matrix Operations (A±B)A=[2 3 4; 6 9 8]B=[1 2 3; 5 8 7]C1=A+BC2=A-BC3=A-4(4)Matrix Operations (A*B A.*B)% A*BA=[2 3 4; 6 9 8]B=[1 2; 3 5; 8 7]A*B% A.*BA=[2 3 4; 6 9 8]B=[1 2 3 ;5 8 7]A.*B(5)Matrix Operations (B/A ,A\C, B./A ,A.\B)% B/A —— B*inv(A)% A\C —— inv(A)*C%B./A —— B(i,j)/A(i,j)%A.\B ——B(i,j)/A(i,j)(6) Matrix Operations ( ^ and .^)% ^ OperationA=[1 2 3; 4 5 6; 7 8 9]b=A^2% .^ OperationA=[1 2 3; 4 5 6; 7 8 9]b=A.^2(7)Matrix Operations ( A′and A. ′)% A′共轭转置a=[1+2i 3+4i; 3+2i 5+5i]a′% A.′非共轭转置a.′例3 、绘图函数plot(x,y) ,stem(k,y)% plot(x,y)x=0:0.01:2;y=sin(2*pi*x);plot(x,y)% stem(k,y)k=0:50;y=exp(-0.1*k);stem(k,y)例4、M file% y(t)=sin(2t) + sin(5t) -2pi ≤t ≤2pit =-2*pi:0.02:2*pi;y=sin(2*t) + sin(5*t);plot(t,y)(二)练习题1、基本命令help plothelp colonhelp opshelp zeroshelp onespi*pi-10sin(pi/4) ans^2 zz=3+4i; conj(zz)abs(zz) angle(zz) real(zz) imag(zz)2、Array Indexingxx=[ones(1,4),[2:2:11],zeros(1,3)] xx(3:7) length(xx)xx(2:2:length(xx)) xx(3:7)=pi*(1:5)3、 用以下语句建立M-file t=-2:0.05:3;y=sin(2*pi*0.789*t); plot(t,y), grid ontitle('TEST PLOT of SINUSOID') xlabel('TIME(sec)')4、 画出以下信号的波形1t 2≤≤(-)(用M-file 实现) 1()2cos(230)x t t π=+︒ 2()4cos(260)x t t π=-︒四、要求学生对实验练习题编写MATLAB 程序并运行,在计算机上输出仿真结果。
matlab求差分方程的单位阶跃响应差分方程的单位阶跃响应是指在单位阶跃输入下,系统的响应情况。
差分方程是一种用于描述离散时间系统的数学模型,是离散时间系统理论中的重要内容之一。
在信号与系统、数字信号处理等领域中,差分方程被广泛应用。
差分方程的单位阶跃响应可以用于分析系统的稳定性、动态特性以及系统对不同输入信号的响应情况。
在计算机编程中,差分方程的单位阶跃响应可以用于模拟系统的行为,实现数字滤波等功能。
单位阶跃信号通常被定义为在时间 t=0 处突变,其数学表达式为:u(t)= {0,t<0,1,t≥0}差分方程的单位阶跃响应可以通过求解差分方程的递归关系来得到。
例如,考虑一个一阶线性时不变系统,其差分方程可以表示为:y(n) = a*y(n-1) + b*u(n)其中,y(n) 是系统的输出信号,u(n) 是系统的输入信号,a 和b 是常数。
对于单位阶跃输入 u(n),即 u(n) = 1,可以得到递推关系为:y(n) = a*y(n-1) + b为了求解递推关系,需要指定初始条件 y(0)。
常见的初始条件有 y(0) = 0(零输入响应),y(0) = 1(零状态响应)等。
通过不断迭代递推关系,可以得到差分方程的单位阶跃响应的离散序列。
可以将这些序列绘制成图形,从而得到离散系统的单位阶跃响应曲线。
除了通过求解递推关系,还可以使用其他方法来计算差分方程的单位阶跃响应。
例如,可以通过计算差分方程的传递函数来得到单位阶跃响应。
传递函数是系统的输入输出关系的拉普拉斯变换形式,在离散时间系统中可以表示为 Z 变换。
通过求解传递函数的单位阶跃响应,可以得到差分方程的单位阶跃响应的解析表达式,从而可以更直观地分析系统的特性。
除了差分方程的单位阶跃响应,还可以对差分方程的零状态响应、零输入响应进行研究。
零状态响应是指在输入信号为零的情况下系统的响应,零输入响应是指在初始状态为零的情况下系统的响应。
通过分析这些响应,可以更全面地了解差分方程所描述的离散时间系统的特性。
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 z H z z --=- (2) 31()1z H z z +=- (3) 2322()2241z H z z z z +=+-+ (4) 332()0.20.30.4z H z z 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)试用MATLAB绘出系统的零极点分布图,并绘出系统的幅频和相频特性曲线,分析该系统的作用解:程序代码如下: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 z F z z z ++=+- (2) 23221()12z z F z z z z-+=++(3) 2()F z = (4) 3243221()32321z z z F z z 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的根。