实验一 基于MATLAB语言的线性离散系统的Z变换分析法

这篇具有很好参考价值的文章主要介绍了实验一 基于MATLAB语言的线性离散系统的Z变换分析法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验一 基于MATLAB语言的线性离散系统的Z变换分析法

一、实验目的

1. 学习并掌握 Matlab 语言离散时间系统模型建立方法;

2.学习离散传递函数的留数分析与编程实现的方法;

3.学习并掌握脉冲和阶跃响应的编程方法;

4.理解与分析离散传递函数不同极点的时间响应特点。

二、实验工具

1. MATLAB 软件(6.5 以上版本);

2. 每人计算机一台。

三、实验内容

1. Matlab语言平台上,通过给定的离散时间系统差分方程,理解课程中Z变换定义,掌握信号与线性系统模型之间Z传递函数的几种形式表示方法;

2. 学习语言编程中的Z变换传递函数如何计算与显示相应的离散点序列的操作与实现的方法,深刻理解课程中Z变换的逆变换;

3. 通过编程,掌握传递函数的极点与留数的计算方法,加深理解G(z)/z 的分式方法实现过程;

4. 通过系统的脉冲响应编程实现,理解输出响应的离散点序列的本质,即逆变换的实现过程;

5. 通过编程分析,理解系统的Z传递函数等于单位脉冲响应的Z变换,并完成响应的脉冲离散序列点的计算;

6. 通过程序设计,理解课程中脉冲传递函数极点对系统动态行为的影响,如单独极点、复极点对响应的影响。

四、实验步骤

1.创建系统

%How to create digital system g % Four examples are as follows:

numg=[0.1 0.03 -0.07];  

deng=[1 -2.7 2.42 -0.72]; 

g=tf(numg,deng,-1)  

get(g);

[nn dd]=tfdata(g,'v')   

[zz,pp,kk]=zpkdata(g,'v')  

%Unite circle region with distrbuting zeros points and poles points

hold on

pzmap(g), hold off  

axis equal

运行结果:

实验一 基于MATLAB语言的线性离散系统的Z变换分析法

 

实验一 基于MATLAB语言的线性离散系统的Z变换分析法

 

2.转换为零极点标准形式

    %Convert from tf(z-function) to zpk(z-function) %Part C exercise form

gg=zpk(g)

[zz,pp,kk tts]=zpkdata(gg,'v')

[z,p k,ts]=zpkdata(g,'v')            

运行结果:

实验一 基于MATLAB语言的线性离散系统的Z变换分析法

 

  1. 四个例子

% Four examples are as follows:

% Part A exercise

eg1mun=[1.25 -1.25,0.30];

eg1den=[1 -1.05 0.80 -0.10];

eg1=tf(eg1mun,eg1den,-1);

eg1zpk=zpk(eg1);

[zz1,pp1,kk1,tts1]=zpkdata(eg1zpk,'v');

%Part B exercise

eg2mun=[0.84 -0.062 -0.156 0.058];

eg2den=[1 -1.03 0.22 0.094 0.05];

eg2=tf(eg2mun,eg2den,-1);

eg2zpk=zpk(eg2);

[zz2,pp2,kk2,tts2]=zpkdata(eg2zpk,'v');

%Part C exercise

zz3=[-0.2 0.4];

pp3=[0.6 0.5+0.75i 0.5-0.75i 0.3];

kk3=150;

tts3=-1;

eg3zpk=zpk(zz3,pp3,kk3,tts3);

eg3=tf(eg3zpk);

%Part D exercise

zz4=[-0.3 0.4+0.2i 0.4-0.2i];

pp4=[-0.6 -0.3,0.5 0.6];

kk4=5;

tts4=-1;

eg4zpk=zpk(zz4,pp4,kk4,tts4);

eg4=tf(eg4zpk);

  1. 留数法

% Residue method and impluse response

numg=[2 -2.2 0.65];

deng=[1 -0.6728 0.0463 0.4860];

[rGoz, pGoz,other]=residue(numg,[deng 0])

%[mag_pGoz,theta_pGoz] =xy2p(pGoz)

%[mag-rGoz,theta-rGoz]=xy2p(rGoz)

G=tf(numg,deng,-1)

impulse(G)

[y,k]=impulse(G);

stem(k,y,'filled');

impulse(G)

运行结果:

实验一 基于MATLAB语言的线性离散系统的Z变换分析法

 

  1. 复杂极点响应

%When transfer function is G(Z) with complex ,t=t*ts;pole of z=e^(+-j*30*pi/3) and z=-0.5,as well as its gain value is unit step signal,its collecting cycle is 0.5 second,how to analyze its response.

gcf

ts=0.3;

num=[1 0.5];

den=conv([1 -exp(i*pi/3)],[1 -exp(-i*pi/3)]);

g1=tf(num,den,ts)

[y,k]=impulse(g1,20);

stem(k,y,'filled'),grid

运行结果:

实验一 基于MATLAB语言的线性离散系统的Z变换分析法

 

  1. 重极点响应

% How to analyze response with repeating poles dtime=[0:90];

%y(k+2)-1.8y(k+1)+0.81y(k)=3u(k+1)-1.2u(k) yi=impulse(gstep,dtime)

gcf

num=[3 -1.2];

den=[1 -1.8 0.81];

[rGoz, pGoz,other]=residue(num,[den 0])

t=0:60;

y=rGoz(2,1).*(t.*(pGoz(2,1).^(t-1)))+rGoz(1,1).*(pGoz(1,1).^(t))

y1=zeros(1,61);

y1(1,1)=rGoz(3,1);

y=y+y1;

t=ts*t;

stem(t,y,'filled'),grid

%Special example about difference real pole to

system response

%[rGoz,pGoz,other]=residue(num,[den,0])

%num1=[rGoz(1) 0];

%den1=[1 -pGoz(1)]

%gg1=tf(num1,den1,ts)

%[y,t]=impulse(gg1,50)

%stem(t,y,'filled'),grid

运行结果:

实验一 基于MATLAB语言的线性离散系统的Z变换分析法

 

  1. 阶跃响应

numg=[2 -2.2 0.56];

deng=[1 -0.6728 0.0463 0.4860];

g=tf(numg,deng,1);

numgstep=[numg 0];

dengstep=conv(deng,[1 -1]);

gstep=tf(numgstep,dengstep,1)

dtime=[0:90];

yi=impulse(gstep,dtime)

subplot(2,1,1)

stem(dtime,yi,'filled')

ys=step(g,dtime);

subplot(2,1,2)

stem(dtime,ys,'filled')

dcgain(g)

ys_ss=ys(end)

ys_ss=ys(max(dtime))

运行结果:

实验一 基于MATLAB语言的线性离散系统的Z变换分析法

实验一 基于MATLAB语言的线性离散系统的Z变换分析法 

 

% Example 1: Analysis of subsection input function

subplot(1,1,1)

num=[2 -2.2 0.56];

den=[1 -0.6728 0.0463 0.4860];

ts=0.2;

g=tf(num,den,ts);

dtime=[0:ts:8]';

u=2.0*ones(size(dtime));

ii=find(dtime>=2.0); u(ii)=0.5;

y=lsim(g,u,dtime);

stem(dtime,y,'filled'),grid

hold on

plot(dtime,u,'o')

hold off

text(2.3,-1.8,'output')

text(1.6,2.3,'input')

运行结果:

实验一 基于MATLAB语言的线性离散系统的Z变换分析法

 

  • 实验思考

1、根据实验结果,分析离散传递函数不同极点的时间响应特点。

离散系统的时间响应是由各个极点时间响应的线性叠加而成的,根据极点在不同的位置我们可以看出如下规律:

  1. 极点在单位圆外的正实轴上,对应的暂态响应分量单调发散;
  2. 极点在单位圆与正实轴的交点,对应的暂态响应分量是等幅的;
  3. 极点在单位圆内的正实轴上,对应的暂态响应分量单调衰减;
  4. 极点在单位圆内的负实轴上,对应的暂态响应分量是以2T为周期正负交替的衰减振荡;
  5. 极点在单位圆与负实轴的交点,对应的暂态响应分量是以2T为周期正负交替的等幅振荡;
  6. 极点在单位圆外的负实轴上,对应的暂态响应分量是以2T为周期正负交替的发散振荡。
  1. 通过程序设计,分析不同的传递函数极点 如单独极点、复极点、重根极点对系统动态行为的影响

   当极点是稳定的单极点时,系统的输出如图所示:

实验一 基于MATLAB语言的线性离散系统的Z变换分析法

 

 当极点是稳定的实极点时,系统的输出如图所示:

实验一 基于MATLAB语言的线性离散系统的Z变换分析法

 

 当极点是稳定复极点时,系统的输出如图所示:

实验一 基于MATLAB语言的线性离散系统的Z变换分析法

 

 当极点是稳定重实极点时,系统的输出如图所示:

实验一 基于MATLAB语言的线性离散系统的Z变换分析法

 

  1. 分析留数法的意义,根据系统的阶跃响应判别系统稳定性

留数法相对于长除法以及部分分式法,得出的结果更加准确,可以直观看出z变换的形式,无论是有理形式还是非有理形式均可以运用,因此留数法更加实用。当系统是稳定无差系统时,系统的阶跃响应与输入理想情况相等,当系统是有差稳定系统时,阶跃响应会存在一定偏差,如果是不稳定系统,系统输出将会发散。

  1. Z 变换的进一步思考。

    从z变换的本质来看,实际上就是对离散信号和系统的拉普拉斯变换,由此我们会根本容易理解Z变换的重要性,同时也可以看出Z变换和傅里叶变换之间的关系。Z变换中的Z平面与拉普拉斯中的S平面存在映射的关系,即z=exp(Ts)。在Z变换中,单位圆上的结果即对应离散时间傅里叶变换的结果。因此,Z变换也是一种非常重要的分析工具。文章来源地址https://www.toymoban.com/news/detail-477578.html

到了这里,关于实验一 基于MATLAB语言的线性离散系统的Z变换分析法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数字图像处理实验(二)|图像变换{离散傅里叶变换fft2,离散余弦变换dct2、频谱平移fftshift}(附实验代码和截图)

    1了解图像变换的原理; 2理解图像变换系数的特点; 3掌握图像变换的方法及应用; 4掌握图像的频谱分析方法; 5了解图像变换在图像数据压缩、图像滤波等方面的应用。 安装了MATLAB软件的台式或笔记本电脑 1.离散傅里叶变换 对于二维离散信号,Fourier正变换定义为: 二维离

    2024年02月06日
    浏览(49)
  • matlab小波变换、离散小波变换函数使用

    matlab中,连续小波变换、离散小波变换函数使用比较复杂,最近做了个总结。 参考1:https://www.jianshu.com/p/56733f6c0a10 参考2:小波变换工具箱(7页)-原创力文档 参考3:《Matlab信号处理》 沈再阳,清华大学出版社,第8章 注意:以下所有函数均为matlab 2020a环境中测试,更早的版

    2024年02月02日
    浏览(38)
  • MATLAB——DFT(离散傅里叶变换)

    题目1: 已知有限长序列x(n)为: x(n)=[0,1,2,3,4,5,6,7,8,9],求x(n)的DFT和IDFT。要求 1)画出序列傅里叶变换对应的|X(k)|和arg[X(k)]图形。 2)画出原信号与傅里叶逆变换IDFT[X(k)]图形进行比较。 知识点: DFT(Discrete Fourier Transform)和IDFT(Inverse Discrete Fourier Transform)是互为逆运算的变换

    2023年04月23日
    浏览(51)
  • 用MATLAB计算序列的离散傅里叶变换

    MATLAB提供了用快速算法计算离散傅里叶变换的函数fft,其调用格式为: 其中, 调用参数xn为时域序列向量 , N为离散傅里叶变换区间长度。 当N大于xn的长度时,fft函数自动在xn后面补零,返回xn的N点离散傅里叶变换结果向量Xk。 当N小于xn的长度时,fft函数计算xn的前N个点构成

    2023年04月16日
    浏览(39)
  • MATLAB 之 数值积分和离散傅里叶变换

    数值积分时研究定积分的数值求解方法,即借助于计算机,用数值逼近的方法近似计算定积分。 我们假设 I 1 = ∫ a b f ( x ) d x I_{1}=int_{a}^{b}f(x)mathrm{d}x I 1 ​ = ∫ a b ​ f ( x ) d x I 2 = ∫ a b p ( x ) d x I_{2}=int_{a}^{b}p(x)mathrm{d}x I 2 ​ = ∫ a b ​ p ( x ) d x 从高等数学中知道,当 ∣

    2024年02月08日
    浏览(42)
  • 【自控笔记】线性系统时域分析法

    二阶系统单位阶跃

    2024年04月11日
    浏览(42)
  • 数字信号处理实验---Z变换及系统的零极点分析 Matlab代码

    一.各种函数的用法 1.tf2zp函数:通常用于将传递函数(Transfer Function)转换为零极增益形式(ZPK form),转换前G(s) = num(s) / den(s),转换后G(s) = K * (s - z1) * (s - z2) * ... * (s - zn) / (s - p1) * (s - p2) * ... * (s - pn) 2.zp2tf函数:用于将零极增益形式(ZPK form)转换为传递函数(Transfer Fu

    2024年01月23日
    浏览(46)
  • (数字图像处理MATLAB+Python)第四章图像正交变换-第一节:离散傅里叶变换

    一维离散傅里叶变换(Discrete Fourier Transform,DFT) :是一种数学技术,用于将代表离散时间信号的N个复数序列从 时域转换到频域 。DFT被广泛用于许多应用,如音频和图像处理、通信和控制系统。DFT是傅里叶变换的离散版本,傅里叶变换是一种用于分析频域信号的连续数学技

    2023年04月13日
    浏览(87)
  • 【编译原理】【C语言】实验三:递归下降分析法

    C语言 实验环境:Visual Studio 2019 author:zoxiii   用高级语言实现递归下降分析程序。使用输入串i*(i+i),输出分析栈中所有内容,并给出分析结果。   自顶向下分析就是从文法的开始符触发并寻找出这样一个推导序列:推导出的句子恰好为输入符号串;或者说,能否从根节

    2023年04月21日
    浏览(39)
  • Matlab|数字图像处理02|图像的傅里叶变换(平移/旋转性质)及图像的离散余弦变换

    问题1:x,y方向同时平移后频谱有何变化? 答:经过平移后的傅里叶变换幅值图与原图像得到的傅里叶变换幅值图基本相同,平移不改变频谱的幅值。 代码运行结果: 代码: 问题2:编程验证一幅图旋转45度后,其傅里叶谱图也旋转了45度。 代码: 问题3:第8行10的数字大小对

    2024年02月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包