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

news2024/11/15 6:48:38

实验一 基于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

运行结果:

 

 

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')            

运行结果:

 

  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)

运行结果:

 

  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

运行结果:

 

  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

运行结果:

 

  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))

运行结果:

 

 

% 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')

运行结果:

 

  • 实验思考

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

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

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

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

 

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

 

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

 

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

 

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/359671.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧校园:电子班牌+家长端小程序源码

说到智慧校园家长端微信小程序大家有多少了解呢?它有哪些优点和功能呢? 下面就来说说智慧校园家长端微信小程序的特色和优点。 1.学生通过闸机人脸、刷卡进出校,如出校则推送给家长小程序孩子已离校的信息,如进校则实时推送孩子已进校信息…

解决Visual Studio Code 热键冲突

因为最近很火的ChatGPT,更新了VSCode的版本,但是界面和配置有了一些变化,原来的热键也有所调整,在使用markdown的时候,enter键竟然都出现了冲突,在此记录一下操作步骤,非常简单。 报错如下&…

为什么要用数据库视图?

视图的定义 视图(View)是一种虚拟的表,其结构和数据来自于一个或多个基本表,可以被当作普通表一样进行查询操作,但实际上不存储任何数据。在数据库中,视图可以被看作是一种数据访问的方式,它可…

16.hadoop系列之MapReduce之MapTask与ReduceTask及Shuffle工作机制

1.MapTask工作机制 以上内容我们之前文章或多或少介绍过,就已网络上比较流行的该图进行理解学习吧 MapTask分为五大阶段 Read阶段Map阶段Collect阶段溢写阶段Merge阶段 2.ReduceTask工作机制 ReduceTask分为三大阶段 Copy阶段Sort阶段Reduce阶段 3.ReduceTask并…

eBPF双子座:天使or恶魔?

启示录 新约圣经启示录认为:恶魔其实本身是天使,但炽天使长路西法背叛了天堂,翅膀变成了黑色,坠落地狱,堕落成为恶魔。这些恶魔主宰著黑暗势力,阻碍人类与上帝沟通,无所不用其极。所以可以说天…

box-shadow详解

box-shadow详解 属性定义及使用说明 box-shadow属性可以设置一个或多个下拉阴影的框。 语法 box-shadow: h-shadow v-shadow blur spread color inset;注意:boxShadow 属性把一个或多个下拉阴影添加到框上。该属性是一个用逗号分隔阴影的列表,每个阴…

使用多种算法对sin函数进行拟合-学习记录

1.使用linear层拟合 原代码链接在这里,效果如下: 2.使用LSTM预测 原代码链接在这里,效果如下: 3.使用GAN拟合 忘记代码哪里找的了,不过效果很差。 4.使用LSTM-GAN 这个代码在GitHub上找的,然后改了改&…

3、内存管理

文章目录1、内存的基础知识1.1、什么是内存?1.2、进程的运行原理--指令1.3、逻辑地址 & 物理地址1.4、从写程序到程序运行1.5、装入模块到运行1.6、装入的三种方式--绝对装入1.7、装入的三种方式--静态重定位1.8、装入的三种方式--动态重定位(重定位…

移动WEB开发四、rem布局

零、文章目录 文章地址 个人博客-CSDN地址:https://blog.csdn.net/liyou123456789个人博客-GiteePages:https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee:https://gitee.com/bluecusliyou/TechLearnGithub:https:…

树的概念及结构

前言 什们是树?树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。树 (1)树的特点 有一个特殊的…

Blazor入门100天 : 身份验证和授权 (3) - DB改Sqlite

目录 建立默认带身份验证 Blazor 程序角色/组件/特性/过程逻辑DB 改 Sqlite将自定义字段添加到用户表脚手架拉取IDS文件,本地化资源freesql 生成实体类,freesql 管理ids数据表初始化 Roles,freesql 外键 > 导航属性完善 freesql 和 bb 特性 本节源码 https://github.com/…

采用aar方式将react-native集成到已有安卓APP

关于react-native和android的开发环境搭建、环境变量配置等可以查看官方文档。 官方文档地址 文章中涉及的node、react等版本: node:v16.18.1 react:^18.1.0 react-native:^0.70.6 gradle:gradle-7.2开发工具:VSCode和android studio 关于react-native和…

即拼商城系统之七人拼团会员模式

即拼商城系统之七人拼团会员模式,在商城选购399商品可加入会员体系,参加7人拼团盈利。购买产品或礼包成为团长,铺满剩余6个位置拼团成功。满团后即可用赚来的钱去复购礼包再次开团,继续盈利。 ◇◆商城系统团长获得礼包提成&#…

【matplotlib】可视化解决方案——如何向图表中添加数据表

概述 虽然 matplotlib 主要用途是绘图,但是他还是可以在绘图时帮助我们做一些其他事务,比如在图表旁边放置一个整齐的数据表格。我们必须明白为数据绘制可视化图形主主要是是为了解释那些不能理解的数据。将一些来自数据整体集合的总结性或者突出强调的…

大地量子全面使用亚马逊云科技提供的多样化云服务

近年来,我国光伏和风电并网装机容量持续增长,截至2021年底,全国可再生能源装机规模突破10亿千瓦,占总发电装机容量的44.8%。其中,风电装机3.28亿千瓦、光伏发电装机3.06亿千瓦。风光电总装机和新增装机规模多年来位居全…

PCB设计中降低噪声与电磁干扰的24个窍门

电子设备的灵敏度越来越高,这要求设备的抗干扰能力也越来越强,因此PCB设计也变得更加困难,如何提高PCB的抗干扰能力成为众多工程师们关注的重点问题之一。本文将介绍PCB设计中降低噪声与电磁干扰的一些小窍门。 下面是经过多年设计总结出来的…

MyBaits

MyBaitsMyBaits的jar包介绍MyBaits的入门案例创建实体java日志处理框架常用的日志处理框架Log4j的日志级别Mybatis配置的完善Mybatis的日志管理使用别名alias方式一方式二SqlSession对象下的常用API查询操作Mapper动态代理Mapper 动态代理规范查询所有用户根据用户ID查询用户Ma…

MMPBSA计算--基于李继存老师gmx_mmpbsa脚本

MMPBSA计算–基于李继存老师gmx_mmpbsa脚本 前期准备 软件安装 安装gromacs, 可以查阅 我的blogGromacs-2022 GPU-CUDA加速版 unbantu 安装 apbs, sudo apt install apbs 安装 gawk, sudo apt install gawk MD模拟好的文件 我们以研究蛋白小分子动态相互作用-III(蛋白配体…

钓鱼网站+bypassuac提权

本实验实现1 :要生成一个钓鱼网址链接,诱导用户点击,实验过程是让win7去点击这个钓鱼网站链接,则会自动打开一个文件共享服务器的文件夹,在这个文件夹里面会有两个文件,当用户分别点击执行后,则…

【面试题】vue中的插槽是什么?

大厂面试题分享 面试题库后端面试题库 (面试必备) 推荐:★★★★★地址:前端面试题库一、slot是什么在HTML中 slot 元素 ,作为 Web Components 技术套件的一部分,是Web组件内的一个占位符该占位符可以在后期…