信号与系统_MATLAB

上传人:cl****1 文档编号:567913383 上传时间:2024-07-22 格式:PPT 页数:96 大小:2.73MB
返回 下载 相关 举报
信号与系统_MATLAB_第1页
第1页 / 共96页
信号与系统_MATLAB_第2页
第2页 / 共96页
信号与系统_MATLAB_第3页
第3页 / 共96页
信号与系统_MATLAB_第4页
第4页 / 共96页
信号与系统_MATLAB_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《信号与系统_MATLAB》由会员分享,可在线阅读,更多相关《信号与系统_MATLAB(96页珍藏版)》请在金锄头文库上搜索。

1、利用利用MATLAB进行信号与系统分析进行信号与系统分析MATLAB简介简介信号的信号的MATLAB表示表示利用利用MATLAB进行系统的时域分析进行系统的时域分析利用利用MATLAB进行信号的频域分析进行信号的频域分析利用利用MATLAB分析系统的频率特性分析系统的频率特性利用利用MATLAB进行连续系统的进行连续系统的s域分析域分析利用利用MATLAB进行离散系统的进行离散系统的z域分析域分析利用利用MATLAB进行系统的状态变量分析进行系统的状态变量分析 MATLAB简介简介( Matrix Laboratory )( Matrix Laboratory )MATLABMATLAB的工作

2、方式的工作方式的工作方式的工作方式如何获取帮助如何获取帮助如何获取帮助如何获取帮助表达式表达式表达式表达式变量、数值、算数运算符、变量、数值、算数运算符、变量、数值、算数运算符、变量、数值、算数运算符、关系运算符、逻辑运算符、冒号运算符关系运算符、逻辑运算符、冒号运算符关系运算符、逻辑运算符、冒号运算符关系运算符、逻辑运算符、冒号运算符数组及其运算数组及其运算数组及其运算数组及其运算函数文件函数文件函数文件函数文件循环(循环(循环(循环(FORFOR、 WHILEWHILE 循环)循环)循环)循环)基本绘图语句基本绘图语句基本绘图语句基本绘图语句一、一、MATLAB的工作方式的工作方式(1)窗

3、口命令方式(2)运行以 .M 为扩展名磁盘文件工作方式举例工作方式举例%用plot函数画一个方波t=-1 0 0 1 1 3;x=0 0 1 1 0 0;plot(t,x);xlabel(t);ylabel(x(t);axis(-1 3 0 2);直接在命令窗口输入以上命令建一个名字为my_file.M的文件,然后在命令窗口输入文件名及回车。二、二、获取帮助获取帮助命令窗口输入: help+函数名例如 help plot三、三、表达式表达式不需要变量的类型说明变量名的第一个字符必须是字母变量名长度:不超过31个字符大写和小写的字母视为不同的字符 例如:num_students = 25特殊变量

4、: pi 表示圆周率,inf 表示无穷大,NaN(Not a Number)表示不定量,如0/0。 变量变量三、三、表达式表达式 数值数值 MATLAB用常规的十进制表示数值 用i或j作为后缀来表示复数的虚部 例 1.235e5表示1.235105,x=2+3jabs(x) 求复数x的模angle(x) 求复数x的相角(弧度)real(x) 求复数x的实部imag(x) 求复数x的虚部conj(x) 求复数x的共轭三、三、表达式表达式 运算符号运算符号 算数运算符算数运算符算数运算符算数运算符u + 加u - 减u * 乘u / 除u 乘方u 矩阵的复共轭转置三、三、表达式表达式 运算符号运算

5、符号 逻辑运算符逻辑运算符逻辑运算符逻辑运算符u A & B逻辑与(and)u A | B逻辑或(or)u A 逻辑非(not) 值为0时表示逻辑假(F),其它任何非零值表示逻辑真。三、三、表达式表达式 运算符号运算符号 关系运算符关系运算符关系运算符关系运算符u A B 大于uA = B 大于等于uA = B 等于uA = B不等于三、三、表达式表达式 运算符号运算符号 冒号运算符冒号运算符冒号运算符冒号运算符u表达式 1:10 表示产生一个行向量,它的值为 1 2 3 4 5 6 7 8 9 10u表达式 10:-2:1 表示产生一个递减的行向量,它的值为 10 8 6 4 2 四、四、数

6、组数组1. 数组的构造数组的构造用冒号:产生数组例 x=2:5 产生一个数组,它的值为x(1)=2, x(2)=3, x(3)=4, x(4)=5x=linspace(0,2,11)将区间0,2均匀抽样11点作为数组x 给2维数组赋值时,用分号表示一行的结束,如:z=1 2; 3 4。用linspace产生数组四、四、数组数组1. 数组的构造数组的构造MATLAB 提供了一些产生基本矩阵的函数 zeros 产生矩阵元素全为0的矩阵 ones 产生矩阵元素全为1的矩阵 rand 产生(0,1)均匀分布随机数矩阵 randn 产生正态分布随机数矩阵四、四、数组数组2. 数组的运算数组的运算数组和一

7、个标量相加或相乘数组和一个标量相加或相乘数组和一个标量相加或相乘数组和一个标量相加或相乘 例例 y=xy=x- -1 z=3*x1 z=3*x2 2个数组的对应元素相乘除个数组的对应元素相乘除个数组的对应元素相乘除个数组的对应元素相乘除 .* ./.* ./ 例例 z=x.*yz=x.*y确定数组大小的函数确定数组大小的函数确定数组大小的函数确定数组大小的函数 size(A) 返回值数组A的行数和列数(二维) length(B) 确定数组B的元素个数(一维)五、五、函数文件函数文件MM文件的第一行包含文件的第一行包含文件的第一行包含文件的第一行包含functionfunction功能功能功能功

8、能: : 建立一个函数,可以同建立一个函数,可以同建立一个函数,可以同建立一个函数,可以同MATLABMATLAB的库的库的库的库函数一样使用。函数一样使用。函数一样使用。函数一样使用。五、五、函数文件函数文件例:编一个绘制图示波形的函数。function y=tri(t)y= abs(t) eps s=s+1/(n*n); n=n+1; end例例: 计算 的值,且误差小于10-6fprintf(s=%.5fn,s)八、八、plot函数函数绘图函数绘图函数(continuous)t=linspace(0,4*pi,512);plot(t,sin(t),t,cos(t),-.);title(m

9、y figure); %图的标题xlabel(t); %横坐标标示legend(sin(t),cos(t); %图形上的标注八、八、plot函数函数绘图函数绘图函数(continuous)九、九、stem函数函数绘图函数绘图函数(discrete)k=0:39;stem(k,cos(0.9*pi*k);title(cos(0.9pik);九、九、stem函数函数绘图函数绘图函数(discrete)cos(0.9k)波形波形 信号的信号的MATLAB表示表示基本信号的基本信号的MATLAB表示表示 指数信号Aeat 、指数序列ak 、抽样函数Sa(t)、 正弦型信号、矩形脉冲信号、三角脉冲信号信

10、号基本运算的信号基本运算的MATLAB实现实现 尺度变换、翻转、时移、尺度变换、翻转、时移、 相加、相乘、相加、相乘、 差分与求和、微分与积分差分与求和、微分与积分一、基本信号的一、基本信号的MATLAB表示表示指数信号Aeat y = A*exp(a*t);指数序列ak幂运算a.k实现正弦型信号内部函数cos( ) 和sin( )抽样函数Sa(t) sinc(t) 矩形脉冲信号 y = rectpuls(t,width)三角波脉冲信号y = tripuls(t,width,skew) %skew:斜度一、基本信号的一、基本信号的MATLAB表示表示%decaying exponentialt

11、=0:001:10;A=1;a=-0.4;ft=A*exp(a*t);plot(t,ft)t=0:0.1:10;A=1;a=-0.4;ft=A*exp(a*t);stem(t,ft)一、基本信号的一、基本信号的MATLAB表示表示% rectpulst=0:0.001:4;T=1;ft=rectpuls(t-2*T,T);plot(t,ft)axis(0,4,-0.5,1.5)一、基本信号的一、基本信号的MATLAB表示表示% tripuls% tripulst=t=- -3:0.001:3;3:0.001:3;ft=tripuls(t,4,0.5);ft=tripuls(t,4,0.5);p

12、lot(t,ft)plot(t,ft)ft=tripuls(t,4,1);ft=tripuls(t,4,1);一、基本信号的一、基本信号的MATLAB表示表示% unit impuls sequence% unit impuls sequencek=-50:50;k=-50:50;delta=zeros(1,50),1,zeros(1,50);delta=zeros(1,50),1,zeros(1,50);stem(k,delta)stem(k,delta)function f,k=function f,k=impseqimpseq(k0,k1,k2)(k0,k1,k2)%产生产生 fk=de

13、lta(kfk=delta(k- -k0)k0);k1=k=k2k1=k=k2k=k1:k2;f=(kk=k1:k2;f=(k- -k0)=0;k0)=0;k0=0;k1=k0=0;k1=- -50;k2=50;50;k2=50;f,k=f,k=impseqimpseq(k0,k1,k2);(k0,k1,k2);stem(k,f)stem(k,f)一、基本信号的一、基本信号的MATLAB表示表示% unit step sequence% unit step sequencek=k=- -50:50;50:50;uk=zeros(1,50), ones(1,51);uk=zeros(1,50),

14、 ones(1,51);stem(k,uk)stem(k,uk)function f,k=function f,k=stepseqstepseq(k0,k1,k2) (k0,k1,k2) %产生产生 fk=u(kfk=u(k- -k0);k1=k=k2k0);k1=k=0;k0)=0;k0=0;k1=k0=0;k1=- -50;k2=50;50;k2=50;f,k=f,k=stepseqstepseq(k0,k1,k2);(k0,k1,k2);stem(k,f)stem(k,f)二、信号基本运算的二、信号基本运算的MATLAB实现实现t=t=- -3:0.001:3;3:0.001:3;ft1

15、=tripuls(ft1=tripuls(2*t2*t,4,0.5);,4,0.5);subplot(2,1,1)subplot(2,1,1)plot(t,ft1)plot(t,ft1)title(title(x(2t)x(2t) )ft2=tripuls(ft2=tripuls(2 2- -2*t2*t),4,0.5);),4,0.5);subplot(2,1,2)subplot(2,1,2)plot(t,ft2)plot(t,ft2)title(title(x(2x(2- -2t)2t) )1. . 信号的尺度变换、翻转、时移(平移)信号的尺度变换、翻转、时移(平移)已知三角波x(t),用

16、MATLAB画出的x(2t)和x(2-2t) 波形二、信号基本运算的二、信号基本运算的MATLAB实现实现2. . 信号的相加与相乘信号的相加与相乘相加相加用算术运算符用算术运算符“+”实现实现相乘相乘用数组运算符用数组运算符“.*”实现实现 例:画信号Aeatcos(0t+f)的波形 t=0:0.001:8; A=1; a=-0.4; w0=2*pi;phi=0; ft1=A*exp(a*t).*sin(w0*t+phi); plot(t,ft1)二、信号基本运算的二、信号基本运算的MATLAB实现实现3. . 离散序列的差分与求和离散序列的差分与求和 连续信号的微分与积分连续信号的微分与积

17、分差分差分差分差分y=y=diffdiff(f);(f);求和求和求和求和y=y=sumsum(f(k1:k2);(f(k1:k2); 微分微分微分微分 y=diff(f)/hy=diff(f)/h; h; h为数值计算所取时间间隔为数值计算所取时间间隔 定积分定积分定积分定积分 quadquad(function_name,a,b);(function_name,a,b);function_namefunction_name为被积函数名,为被积函数名,a a和和b b指定积分区间。指定积分区间。二、信号基本运算的二、信号基本运算的MATLAB实现实现3. . 离散序列的差分与求和离散序列的差

18、分与求和 连续信号的微分与积分连续信号的微分与积分例例:已知三角波x(t),画出其微分与积分的波形%differentiation h=0.001;t= -3:h:3;y1=diff(f2_2(t)*1/h;plot(t(1:length(t)-1),y1)%integrationt= -3:0.1:3;for x=1:length(t) y2(x)=quad(f2_2, -3,t(x);endplot(t,y2)三角波f(t)微分与积分的波形 利用利用MATLAB进行系统的时域分析进行系统的时域分析连续时间系统零状态响应的求解连续时间系统零状态响应的求解连续时间系统冲激响应和阶跃响应的求解连

19、续时间系统冲激响应和阶跃响应的求解离散时间系统零状态响应的求解离散时间系统零状态响应的求解离散时间系统单位脉冲响应的求解离散时间系统单位脉冲响应的求解离散卷积的计算离散卷积的计算一、连续时间系统零状态响应的求解一、连续时间系统零状态响应的求解t 表示计算系统响应的抽样点向量a=a3, a2, a1, a0; b=b3, b2, b1, b0; sys=tf(b,a)y=lsim(sys,x,t)sys=tf(b,a)b和a分别为微分方程右端和左端各项的系数向量x 是系统输入信号向量,sys 是LTI系统模型,借助tf函数获得二、连续系统冲激响应和阶跃响应求解二、连续系统冲激响应和阶跃响应求解

20、连续时间系统冲激响应可用impulse函数直接求出,其调用形式为y=impulse(sys, t) 连续时间系统阶跃响应可用step函数直接求出,其调用形式为y=step(sys, t)t 表示计算系统响应的抽样点向量sys 是LTI系统模型三、离散时间系统零状态响应的求解三、离散时间系统零状态响应的求解b , a 分别是差分方程左、右端的系数向量b=b0,b1,b2,bM;a=a0,a1,a2, ,aN;可用MATLAB表示为y=filter(b,a,x)x 表示输入序列, y 表示输出序列四、离散时间系统单位脉冲响应的求解四、离散时间系统单位脉冲响应的求解b, a 分别是差分方程左、右端的

21、系数向量k 表示输出序列的取值范围h 就是单位脉冲响应h=impz(b,a,k)五、离散卷积的计算五、离散卷积的计算例:(s3+2s+3)(s2+3s+2)可用下面MATLAB语句求出 a =1,0,2,3; b =1,3,2; c=conv(a,b)c=conv(a,b)式中a,b为待卷积两序列的向量表示,c是卷积结果。conv函数也可用于计算两个多项式的积例例1 1 求系统 y(t)+2y(t)+100y(t)=10x(t) 的零状态响应,已知x(t)=sin(2t) u(t)。%program3_1微分方程求解ts=0;te=5;dt=0.01;sys=tf(10,1 2 100);t=

22、ts:dt:te;x=sin(2*pi*t);y=lsim(sys,x,t);plot(t,y);xlabel(Time(sec)ylabel(y(t)例例2 2 求系统 y (t)+2y (t)+100y(t)=10x(t) 的零状态响应,已知x(t) =d (t) 。%program3_2连续时间系统的冲激响应ts=0;te=5;dt=0.01;sys=tf(10,1 2 100);t=ts:dt:te;y=impulse(sys,t);plot(t,y);xlabel(Time(sec)ylabel(h(t)例例例例3 3 3 3 分析噪声干扰的信号分析噪声干扰的信号x x k k=s

23、s k k+d d k k 通过通过MM点滑动点滑动平均系统的响应,平均系统的响应,其中其中s sk k=(2=(2k k)0.9)0.9k k是原始信号,是原始信号,d d k k 是噪声。是噪声。R =51 ; d = rand(1,R) - 0.5;k=0:R-1;s=2*k.*(0.9.k); x=s+d;figure(1); plot(k,d,r-.,k,s,b-,k,x,g-);M =5; b = ones(M,1)/M; a = 1;y = filter(b,a,x);figure(2); plot(k,s,b-,k,y,r-);例例3 3 分析噪声干扰的信号xk=sk+dk通过

24、M点滑动平均系统的响应,其中sk=(2k)0.9k是原始信号,dk是噪声。噪声干扰信号xk=sk+dk通过M点滑动平均系统的响应例例4 4 求系统yk+3yk-1+2yk-1=10xk的单位脉冲响应。% program 3_4 离散系统的单位脉冲响应k=0:10;a=1 3 2;b=10; h=impz(b,a,k);stem(k,h)例例5 计算xk* yk并画出卷积结果,已知xk=1,2,3,4; k=0,1,2,3,yk=1,1,1,1,1; k=0,1,2,3,4 。% program 3_5x=1,2,3,4; y=1,1,1,1,1; z=conv(x,y);N=length(z)

25、;stem(0:N-1,z); 利用利用MATLAB进行信号的频域分析进行信号的频域分析周期信号频谱的周期信号频谱的MATLAB实现实现用数值积分分析非周期信号频谱用数值积分分析非周期信号频谱一、周期信号频谱的一、周期信号频谱的MATLAB实现实现 频谱Fn一般为复数,可分别利用abs和angle函数获得其幅频特性和相频特性。其调用格式分别为x=abs(Cn) y=angle(Cn) 周期信号的频谱Cn 为离散信号,可以用stem画出其频谱图。例例1 试用MATLAB画出图示周期三角波信号的频谱。解:解:周期信号的频谱为画三角波信号频谱的画三角波信号频谱的MATLAB程序程序N=8;n1= -

26、N:-1; %计算n=-N到-1的Fourier系数c1= -4*j*sin(n1*pi/2)/pi2./n1.2;c0=0; %计算n=0时的Fourier系数n2=1:N; %计算n=1到N的Fourier系数c2= -4*j*sin(n2*pi/2)/pi2./n2.2;cn=c1 c0 c2;n= -N:N;subplot(2,1,1);stem(n,abs(cn);ylabel(Cn的幅度);subplot(2,1,2);stem(n,angle(cn);ylabel(Cn的相位);xlabel(omega/omega0);程序运行结果程序运行结果例例2 求周期矩形脉冲的Fourie

27、r级数表示式。并用MATLAB求出由前N项Fourier级数系数得出的信号近似波形。取A=1, T=2, t=1, 0=% Gibbs phenomenont=-2:0.001:2;N=input(Number of harmonics= );c0=0.5;xN=c0*ones(1,length(t); %dc componentfor n=0:2:N % even harmonics are zero xN=xN+cos(pi*n*t)*sinc(n/2);endplot(t,xN);% Gibbs phenomenonN=5N=15N=50N=500二、用数值积分分析非周期信号频谱二、用数

28、值积分分析非周期信号频谱数值函数积分quad8可用来计算非周期信号频谱F 是一个字符串,它表示被积函数的文件名。a,b 分别表示定积分的下限和上限quad8的返回是用自适应Simpson算法得出的积分值y = quad8(F,a,b) 例例3 试用数值方法近似计算三角波信号的频谱X X(j (j )= Sa)= Sa2 2( ( / 2)/ 2)解解: 图示三角波可表示为三角波信号频谱的理论值为例例3 试用数值方法近似计算三角波信号的频谱function y=sf1(t,w);y=(t=-1 & t=1).*(1-abs(t).*exp(-j*w*t);w=linspace(-6*pi,6*p

29、i,512);N=length(w);X=zeros(1,N);for k=1:N X(k)=quad8(sf1,-1,1,w(k);endfigure(1);plot(w,real(X);title()xlabel(omega);ylabel(X(jomega);figure(2);plot(w,real(X)-sinc(w/2/pi).2);xlabel(omega);title(计算误差);例例3 试用数值方法近似计算三角波信号的频谱运行结果运行结果 利用利用MATLAB进行系统频域分析进行系统频域分析 连续系统频率响应的计算连续系统频率响应的计算 周期信号通过系统的响应周期信号通过系统

30、的响应 离散系统频率响应的计算离散系统频率响应的计算一、连续系统频率响应的计算一、连续系统频率响应的计算b 分子多项式系数 a 分母多项式系数 w 需计算的H(j)的抽样点 (数组w中少需包含两个的抽样点)。计算频响的MATLAB函数H=freqs(b,a,w)一、连续系统频响特性的计算一、连续系统频响特性的计算例例1 三阶归一化的Butterworth低通滤波器的系统函数为w=linspace(0,5,200);b=1;a=1 2 2 1;h=freqs(b,a,w);subplot(2,1,1);plot(w,abs(h);subplot(2,1,2);plot(w,angle(h); 试

31、画出|H(j)| 和()。一、连续系统频响特性的计算一、连续系统频响特性的计算三阶Butterworth低通滤波器的幅度响应和相位响应二、周期信号通过系统的响应二、周期信号通过系统的响应例例例例2 2 周期方波通过周期方波通过周期方波通过周期方波通过RCRC系统的响应。系统的响应。系统的响应。系统的响应。二、周期信号通过系统的响应二、周期信号通过系统的响应例例例例2 2 周期方波通过周期方波通过周期方波通过周期方波通过RCRC系统的响应。系统的响应。系统的响应。系统的响应。%p5_2 Periodic signal pass LTI systemT=4;w0=2*pi/T;RC=0.1;t=

32、-6:0.01:6;N=51;c0=0.5;xN=c0*ones(1,length(t); %dc for n=1:2:N % even harmonics are zero H=abs(1/(1+j*RC*w0*n); phi=angle(1/(1+j*RC*w0*n); xN=xN+H*cos(w0*n*t+phi)*sinc(n*0.5);endplot(t,xN);xlabel(time RC=,num2str(RC);grid;set(gca,xtick,-5 -3 -1 0 1 3 5);二、周期信号通过系统的响应二、周期信号通过系统的响应例例例例2 2 周期方波通过周期方波通过周

33、期方波通过周期方波通过RCRC系统的响应。系统的响应。系统的响应。系统的响应。三、离散系统频率响应的计算三、离散系统频率响应的计算计算频率响应的MATLAB函数b 分子的系数 a 分母系数w 抽样的频率点(至少2点), w在02之间幅频特性: abs, 相频特性: angleh = freqz(b,a,w)三、离散系统频率响应的计算三、离散系统频率响应的计算b=1;a1=1 -0.9; a2=1 0.9;w=linspace(0,2*pi,512);h1=freqz(b,a1,w);h2=freqz(b,a2,w);plot(w/pi,abs(h1),w/pi,abs(h2),:);legen

34、d(alpha=0.9,alpha=-0.9);三、离散系统频率响应的计算三、离散系统频率响应的计算 利用利用MATLAB进行连续系统的进行连续系统的复频域分析复频域分析部分分式展开的部分分式展开的MATLAB实现实现H(s)的零极点与系统特性的的零极点与系统特性的MATLAB计算计算一、部分分式展开的一、部分分式展开的MATLAB实现实现r,p,k=residue(num,den) num,den分别为X(s)分子多项式和分母多项式的系数向量。 r为部分分式的系数,p为极点,k为多项式的系数。若为真分式,则k为零。二、二、H(s)的零极点与系统特性的的零极点与系统特性的MATLAB计算计算计

35、算多项式根roots的函数可用于计算H(s)的零极点。r=roots(D) %计算多项式D(s)的根 H(s)零极点分布图可用pzmap函数画出,调用形式为pzmap(sys)表示画出sys所描述系统的零极点图。例例例例1 1 用部分分式展开法求X(s)的反变换。%program7_1format rat %将结果数据以分数的形式输出num=1 2; den=1 4 3 0; r,p=residue(num,den) 运行结果为运行结果为 r = -1/6 ,-1/2 ,2/3 p = -3 ,-1 ,0故故F F( (s s) )可展开为可展开为例例例例2 2 用部分分式展开法求X(s)的反

36、变换。% program7_2num=2 3 0 5;den=conv(1 1,1 1 2); %将因子相乘的形式转换成多项式的形式r,p,k=residue(num,den)magr=abs(r) %求r的模angr=angle(r) %求r的相角例例例例2 2 用部分分式展开法求X(s)的反变换。运行结果为运行结果为lr =-2.0000 + 1.1339i, -2.0000 - 1.1339i, 3.0000lp =-0.5000 + 1.3229i, -0.5000 - 1.3229i, -1.0000lk =2lmagr =2.299, 2.2991, 3.0000 langr =2

37、.6258, -2.6258, 0 故故F F( (s s) )可展开为可展开为例3 试画出系统 的零极点分布图,求其单位冲激响应h(t)和频率响应H(j),并判断系统是否稳定。num=1;den=1 2 2 1;sys=tf(num,den); poles=roots(den)figure(1);pzmap(sys);t=0:0.02:10;h=impulse(num,den,t);figure(2);plot(t,h)title(Impulse Respone)H,w=freqs(num,den);figure(3);plot(w,abs(H)xlabel(omega)title(Magn

38、itude Respone)运行结果运行结果 利用利用MATLAB进行离散系统的进行离散系统的z域分析域分析部分分式展开的部分分式展开的MATLAB实现实现H(z)的零极点与系统特性的的零极点与系统特性的MATLAB计算计算一、部分分式展开的一、部分分式展开的MATLAB实现实现r,p,k=residuez(num,den) num,den分别为X(z)分子多项式和分母多项式的系数向量。 r为部分分式的系数,p为极点,k为多项式的系数。若为真分式,则k为零。二、二、H(z)的零极点与系统特性的的零极点与系统特性的MATLAB计算计算利用tf2zp函数计算H(z)的零极点,调用形式为z,p,k=

39、tf2zp(b,a) H(z)零极点分布图可用zplane函数画出,调用形式为zplane(b,a)b和a分别为H(z)分子多项式和分母多项式的系数向量。返回值z为零点、p为极点、 k为增益常数。例例1 1 将X(z)用部分分式展开。%program8_1num = 18; den = 18 3 -4 -1;r,p,k = residuez(num,den)运行结果为r =0.3600 , 0.2400 , 0.4000 p =0.5000 , -0.3333 , -0.3333 k =故X(z)可展开为例2 试画出系统 的零极点分布图,求其单位冲激响应hk和频率响应H(ejW) 。% pro

40、gram 8_2b =1 2 1;a =1 -0.5 -0.005 0.3;figure(1);zplane(b,a);num=0 1 2 1;den=1 -0.5 -0.005 0.3;h=impz(num,den);figure(2);stem(h)xlabel(k)title(Impulse Respone)H,w=freqz(num,den);figure(3);plot(w/pi,abs(H)xlabel(Frequency omega)title(Magnitude Respone)运行结果运行结果 利用利用MATLAB进行系统状态进行系统状态变量分析变量分析 微分方程到状态方程的

41、转换微分方程到状态方程的转换 状态方程系统函数矩阵状态方程系统函数矩阵H(s)的计算的计算 MATLAB求解连续系统的状态方程求解连续系统的状态方程 MATLAB求解离散系统的状态方程求解离散系统的状态方程一、微分方程到状态方程的转换一、微分方程到状态方程的转换 num,den 分别表示系统函数H(s)的分子和分母多项式; A,B,C,D 分别为状态方程的矩阵。 A,B,C,D= tf2ss(num,den)二、状态方程系统函数矩阵二、状态方程系统函数矩阵H (s)的计算的计算A, B, C, D 分别表示状态方程的矩阵。K 表示函数ss2tf计算的与第k个输入相关的系统函数,即H(s)的第k

42、列。num 表示H(s)第k列的m个元素的分子多项式den 表示H(s)公共的分母多项式。num,den= ss2tf (A,B,C,D,k)三、三、MATLAB求解连续求解连续系统的状态方程系统的状态方程sys 由函数ss构造的状态方程模型t 需计算的输出样本点, t=0:dt:Tfinalx(:,k) 系统第k个输入在t上的抽样值q0 系统的初始状态(可缺省)y(:,k) 系统的第k个输出 to 实际计算时所用的样本点; q 系统的状态 获得连续系统状态方程的计算机表示模型sys = ss(A,B,C,D)求解状态方程y,to,q=lsim(sys,x,t,q0)四、四、MATLAB求解离

43、散求解离散系统的状态方程系统的状态方程sys 由函数ss构造的状态方程模型x(:,k)系统第k个输入序列q0 系统的初始状态(可缺省)y(:,k)系统的第k个输出n 序列的下标; q 系统的状态获得离散状态方程的计算机表示模型sys = ss(A,B,C,D, )求解状态方程y,n,q=lsim(sys,x, ,q0)或直接利用y, q=dlsim(A,B,C,D,x,q0)例1 写出系统 的状态方程。由A,B,C,D=tf2ss(1,1 5 10)可得所以系统的状态方程为C C=0 1=0 1 D D=0=0例2 已知某连续系统的状态方程和输出方程为其初始状态和输入分别为求该系统的系统函数矩

44、阵H(s) 和输出。计算系统函数矩阵H(s)A=2 3;0 -1;B=0 1; 1 0;C=1 1; 0 -1;D=1 0; 1 0;num1,den1=ss2tf(A,B,C,D,1)num2,den2=ss2tf(A,B,C,D,2)运行结果num1 =1 0 -1 1 -2 0den1 =1 -1 -2num2 =0 1 1 0 0 0den2 =1 -1 -2所以系统函数矩阵H(s)为计算输出计算输出计算输出计算输出%Program 9_1A=2 3;0 -1;B=0 1; 1 0;C=1 1; 0 -1;D=1 0; 1 0;q0=2 -1;dt=0.01;t=0:dt:2; x(:

45、,1)=ones(length(t),1);x(:,2)=exp(-3*t);sys=ss(A,B,C,D);y=lsim(sys,x,t,q0);subplot(2,1,1);plot(t,y(:,1),r);ylabel(y1(t);xlabel(t);subplot(2,1,2);plot(t,y(:,2);ylabel(y2(t);xlabel(t);运行结果运行结果运行结果运行结果例3 已知某离散系统的状态方程和输出方程为其初始状态和输入分别为求该系统的输出。计算输出计算输出计算输出计算输出%Program 9_2A=0 1; -2 3;B=0;1;C=1 1; 2 -1;D=zeros(2,1);q0=1; -1;N=10;x=ones(1,N);y=dlsim(A,B,C,D,x,q0);subplot(2,1,1);y1=y(:,1);stem(0:N-1),y1);xlabel(k);ylabel(y1);subplot(2,1,2);y2=y(:,2);stem(0:N-1),y2);xlabel(k);ylabel(y2);运行结果运行结果运行结果运行结果

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 文学/艺术/历史 > 人文/社科

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号