实验七--离散系统分析的MATLAB实现讲解学习

合集下载

离散系统频域分析及matlab实现

离散系统频域分析及matlab实现

《数字信号处理》课程设计报告离散系统的频域分析及matlab实现专业:通信工程班级:通信11级组次:姓名及学号:姓名及学号:离散系统的频域分析及matlab 实现一、设计目的1.熟悉并掌握matlab 软件的使用;2.掌握离散系统的频域特性;3.学会分析离散系统的频域特性的方法;二、设计任务1.设计一个系统函数系统的频率响应进行分析;2.分析系统的频域响应;3.分析系统的因果稳定性;4.分析系统的单位脉冲响应;三、设计原理1. 系统函数对于离散系统可以利用差分方程,单位脉冲响应,以及系统函数对系统进行描述。

在本文中利用系统函数H(z)进行描述。

若已知一个差分方程为∑∑==---=Mi Ni i i i n y a i n x b n 01)()()(y ,则可以利用双边取Z 变换,最终可以得到系统函数的一般式H(z),∑∑=-=-==Ni iiMi iiza zb z X z z H 00)()(Y )(。

若已知系统的单位脉冲响应,则直接将其进行Z变换就可以得到系统函数H(z)。

系统函数表征系统的复频域特性。

2.系统的频率响应:利用Z 变化分析系统的频率响应:设系统的初始状态为零,系统对输入为单位脉冲序列)(n δ的响应输出称为系统的单位脉冲响应h (n )。

对h(n)进行傅里叶变换,得到:∑∞∞∞-==-)(jw nj |)(|)(e H w j n n j e e H e n h ϕω)( 其中|)(|jwn e H 称为系统的幅频特性函数,)(ωϕ称为系统的相位特性函数。

)(jw e H 表示的是系统对特征序列jwn e 的响应特性。

对于一个系统输入信号为n )(ωj e n x =,则系统的输出信号为jwn e )(jw e H 。

由上可以知道单频复指数信号jwn e 通过频率响应函数为)(jw e H 后,输出仍为单频复指数信号,其幅度放大了|)(|jw e H ,相移为)(ωϕ。

对于系统函数H(z)与H(w)之间,若系统函数H(z)的收敛域包含单位圆|z|=1,则有jw e z jw z H e H ==|)()(,在MATLAB 中可以利用freqz 函数计算系统的频率响应。

离散信号的MATLAB实现

离散信号的MATLAB实现

离散信号的MATLAB实现1.9离散信号和系统分析的MATLAB实现1.9.1利用MATLAB产生离散信号用MATLAB表示一离散序列x[k]时,可用两个向量来表示。

其中一个向量表示自变量k的取值范围,另一个向量表示序列x[k]的值。

例如序列x[k]={2,1,1,-1,3,0,2}可用 MATLAB表示为K=-2:4;x=[2,1,1,-1,3,0,2]可用stem(k,f)画出序列波形。

当序列是从k=0开始时,可以只用一个向量x来表示序列。

由于计算机内寸的限制,MATLAB无法表示一个无穷长的序列。

例1-38利用MATLAB计算单位脉冲序4δ-k在-k≤]24[≤范围内各点的取值。

解:%progran 1_1 产生单位脉冲序列Ks=-4;ke=4;n=2;K=[ks:ke];X=[(k-n)==0];Stem(k,x):xlabel(‘k’);程序产生的序列波形如图1-49所示。

例1-39利用MATLAB画出信号X[k]=10sin(0.02kπ)+n[k], 1000≤≤k的波形。

其中n[k]表示为均值为0方差为1的Gauss分布随机信号。

解:MALAB提供了两个产生(伪)随机序列的函数。

Rand(1,N)产生1行N列的[0,1]均匀分布随机数。

Randn(1,N)产生1行N列均值为0方差为1的Gauss分布随机数。

%program 1_2 产生受噪声干扰的正弦信号N=100;k=0:N;X=10*sin(0.02*pi*k)+randn(1,N+1);Plot(k,x);Xlabel(‘k’);Ylabel(‘x[k]’);程序产生序列如图1-50所示。

1.9.2 离散卷积的计算离散卷积是数字信号处理中的一个基本运算,MTLAB提供的计算两个离散序列卷积的函数是conv,其调用方式为y=conv(x,h)其中调用参数x,h为卷积运算所需的两个序列,返回值y是卷积结果。

MATLAB函数conv的返回值y中只有卷积的结果,没有y的取值范围。

(整理)利用MATLAB进行离散控制系统模拟.

(整理)利用MATLAB进行离散控制系统模拟.

实验利用MATLAB进行离散控制系统模拟本试验的目的主要是让学生初步掌握MATLAB软件在离散控制系统分析和设计中的应用。

1.连续系统的离散化。

在MATLAB软件中,对连续系统的离散化主要是利用函数c2dm( )函数来实现的,c2dm( )函数的一般格式为C2dm( num, den, T, method),可以通过MATLAB的帮助文件进行查询。

其中:Num:传递函数分子多项式系数;Den:传递函数分母多项式系数;T:采样周期;Method:转换方法;允许用户采用的转换方法有:零阶保持器(ZOH)等五种。

2.求离散系统的相应:在MATLAB中,求采样系统的响应可运用dstep( ),dimpulse( ),dlsim( )来实现的。

分别用于求取采样系统的阶跃,脉冲,零输入及任意输入时的响应,其中dstep( )的一般格式如下:dstep( num, den, n),可以通过MATLAB的帮助文件进行查询。

其中:Num:传递函数分子多项式系数;Den:传递函数分母多项式系数;N:采样点数;3.此外,离散控制系统也可以用simulink工具箱进行仿真,仿真界面如下图(采样周期可以在对应模块中进行设定)。

1.编制程序实现上面三个仿真程序。

2.把得到的图形和结果拷贝在试验报告上。

3.在第1个例子中,改变采样周期为0.25,重新运行程序,把结果和原来结果进行比较,并说明为什么?4.在第2个例子中,改变采样点数为70,重新运行程序,把结果和原来结果进行比较,并说明为什么?同样,改变采样周期T,观察不同周期下系统阶跃响应的动态性能,分析采样周期对系统动态性能的影响。

1.1)num=10;den=[1,7,10];t=0.1[numz,denz]=c2dm(num,den,t,'zoh');printsys(numz,denz,'z')得出结果:t =0.1000num/den =0.039803 z + 0.031521------------------------z^2 - 1.4253 z + 0.49659若t改为0.25:num=10;den=[1,7,10];t=0.25[numz,denz]=c2dm(num,den,t,'zoh'); printsys(numz,denz,'z')得出结果为:t =0.2500num/den =0.18012 z + 0.10062-------------------------z^2 - 0.89304 z + 0.173772)num=10;den=[1,7,10];t=0.25;i=[0:35];time=i*t;[numz,denz]=c2dm(num,den,t,'zoh'); yc=step(num,den,time);y_zoh=dstep(numz,denz,36);[xx,yy]=stairs(time,y_zoh);plot(time,yc,'r'),holdplot(xx,yy,'r'),hold;grid采样点数改为70:num=10;den=[1,7,10];t=0.1;i=[0:70];time=i*t;[numz,denz]=c2dm(num,den,t,'zoh'); yc=step(num,den,time);y_zoh=dstep(numz,denz,71);[xx,yy]=stairs(time,y_zoh);plot(time,yc,'r'),hold周期改为0.25:3num=[0.008,0.072];den=[1,-1.905,0.905];t=0.1;i=[0:35];time=i*t;[numz,denz]=c2dm(num,den,t,'zoh'); yc=step(num,den,time);y_zoh=dstep(numz,denz,36);[xx,yy]=stairs(time,y_zoh);plot(time,yc,'r'),holdplot(xx,yy,'r'),hold;gridSimulink 实现:仿真时间:10仿真时间700:3(3) 采样周期不同,得出的Z变换也不同,说明Z变换的结果随采样周期的变化而变化。

离散信号及离散系统的MATLAB编程实现

离散信号及离散系统的MATLAB编程实现

数字信号处理课程实验报告实验名称离散信号及离散系统的MATLAB编程实现系别教师姓名实验地点实验日期一、实验内容1、用MATLAB仿真(编写)离散序列2、常见序列运算3、差分方程的求解4、系统零极点的求解。

(红色部分为必做项目)二、实验目的1. 复习离散时间的信号和系统,复习离散时间重要类型的信号和它们的运算的实现。

2. 熟悉MATLAB软件的集成开发环境,学会利用MATLAB编程及获得帮助的方法。

3. 学会利用MATLAB的绘图功能。

三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况)matlab软件,计算机四、实验试做记录(含程序、数据记录及分析)1、 Matlab表示序列MATLAB中,可采用向量表示序列,由于MATLAB中对序列下标默认为从1开始递增,因此要表示离散信号,一般应采用两个向量分别对信号的自变量和因变量进行描述。

如, n= -3~4,在MATLAB中表示为>> n = [-3, -2, -1, 0, 1, 2, 3, 4]; %自变量取值>> x = [ 2, 1, -1, 0, 1, 4, 3, 7]; %因变量取值说明:(1)向量可用方括号[ ]表示。

(2)当向量取值连续变化时可用冒号运算符“:”简化赋值过程,如的n值,可简化为n=[-3:4]或n= -3:4 。

(3)分号“;”表示不回显表达式的值。

(4)“%”表示其后内容为注释对象。

(5)符号“>>”是MATLAB命令窗口的输入提示符,此外,为便于多次调用,也可在m文件中输入相应的命令语句。

利用MATLAB,还可对信号的波形进行描述,常采用的绘图语句有stem,plot,subplot, axis,title,xlabel,ylabel,gtext, hold on, hold off, grid 等。

其中stem 绘制离散图形;plot 绘制连续图形;subplot 用于绘制子图,应在stem 或plot 语句前调用;axis 指定x 和y轴的取值范围,用在stem或plot语句后;title 标注图形名称,xlabel, ylabel 分别标注x轴和y轴名称;gtext可将标注内容放置在鼠标点击处;hold on和 hold off 用于控制对象绘制方式,是在原图上还是在新图上绘制;grid用于绘制网格。

离散系统的时域分析matlab.(DOC)

离散系统的时域分析matlab.(DOC)

实验一 常见离散信号的MATLAB 产生和图形显示一、 实验目的加深对常见离散信号的理解 二、实验原理1、单位抽样序列的产生,10,0{=≠=n n n )(δ在MATLAB 中可以用zeros()函数实现 x=[1,zeros(1,N-1)]; 或x=zeros(1,N); x(1)=1;2、单位阶跃序列的产生0,10,0{u ≥<=n n n )(在MATLAB 中可以用ones()函数实现 x=one(1,N); 3、正弦序列的产生 在MATLAB 中实现方法如下: N=0:N-1X=A*sin(2*pi*f*n/fs+fai) 4、复正弦序列的产生jwn e A n x *)(=在MATLAB 中实现方法如下:n)*w *exp(j *A 1:0=-=x N n5、实指数序列的产生na A n x *)(= 在MATLAB 中实现方法如下:na A x N n .^*1:0=-=三、实验内容及步骤编制程序产生以下信号,并绘出其图形。

1)产生64点的单位抽样序列)(n δN=64x=[1,zeros(1,N-1)]stem(x)2)产生64点并移位20位的单位抽样序列)20(-n δN=64x=[0,zeros(1,N-1)] x(20)=1 stem(x)3)任意序列)5(7.0)4(9.2)3(6.5)2(8.1)1(4.3)(0.8)(-+-+-+-+-+=n n n n n n n f δδδδδδ b=[1];a=[8,3.4,1.8,5.6,2.9,0.7]; xh=[1,zeros(1,20)]; h=filter(b,a,xh) figure(1); n=0:20; stem(n,h,) legend('冲激')4)产生幅度A=3,频率f=100,初始相位ϕ=1.2,点数为32 点的正弦序列。

n=0:31;x=3*exp(j*314*n)figure(1)stem(n,x)5)产生幅度A=3,角频率ω=314,点数为32 点的复正弦序列。

离散系统的的Z域分析及Matlab实现

离散系统的的Z域分析及Matlab实现
10
1.5
1
0.5
0
1
2
3
4
5
6
7
1 0.5 0 -0.5 -1
0
1
2
3
4
5
6
7
11
作业
1.画出下列两个系统的零极点分布图,并分析系统的稳定性
H
z
1
1 0 .5 z 4 4
3
1
z
1

2
1 8
z
2
H
z
3 z 5 z 10 z z 3z 7 z 5
3 2
7
2.离散系统的零极点分析
• 离散系统稳定的充要 条件是系统函数H(z) 的所有极点位于Z平面 的单位圆内
H
z
z 1 3z z 1
5 4
p=
a = [3 -1 0 0 0 1]; b = [1 1]; p = roots(a); q = roots(b); pa = abs(p); 0.7255 + 0.4633i 0.7255 - 0.4633i -0.1861 + 0.7541i -0.1861 - 0.7541i -0.7455
2绘出下述系统的幅频和相频特性曲线,分析该系统的作用
H
z
5 4 1 z 11 4 z
1 1

12
1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2.5 -2 -1 0 1 2 Re[z]
6
pole-zero diagram for discrete system jIm[z] 1 0.8
B = [1 1 0] A = [1 1/2 1/4]
0.6 0.4 0.2 Re[z] 0 -0.2 -0.4 -0.6 -0.8 -1 -1 -0.5 0 0.5 1

7-8MATLAB在离散系统中的应用

7-8MATLAB在离散系统中的应用

y(Z)=GB(Z)R(Z)=
(
z
z(0.368 − 1)(z 2
z −
+ z
0.264) + 0.632)
= 0.368z -1+z –2 +1.4z -3+1.4z -4+1.14z -5
+…
可绘制输出响应如图
1.4 1 0.4
123 45
图7-56闭環离散控制系统单位阶跃响应
如果用Matlab的dstep函数,可很快得到离 散输出y*(t)和连续输出结果y(t)
dend=conv([1 0],dd); [numdm,dendm]=minreal(numd,dend ); % [n1,d1]=series(numdm,dendm,numg ,deng); [num,den]=cloop(n1,d1); t=[0:0.1:20]; step(num,den,t)
S tep Res pons e
From: U(1) 1.4
1.2
1
Am plitude
To : Y(1 )
0.8
0.6
0.4
0.2
0
0
5
10
15
20
25
Tim e (s e c .)
This script computes the continuous-time unit %step response for the system in example % numg=[1];deng=[1 1 0]; [nd,dd]=pade(1,2) numd=dd-264 z^ 2 −1.368z + 0.368
假定离散系统如图7-54所示。输入为单位阶 跃,可用dstep函数求输出响应。

离散系统的MATLAB实现

离散系统的MATLAB实现

离散系统的MATLAB实现一、实验目的(1)学习利用matlab求解系统频率响应的方法。

(2)学习利用matlab求解系统输出响应的方法。

(3)加深对离散系统频率响应概念的理解。

二、设计内容及主要MATLAB函数离散系统对应的输入输出差分方程为:y(n)-0.4y(n-1)-0.5y(n-2)=0.2x(n)+0.1x(n-1)求该系统的单位抽样响应,频率响应及零极点增益。

1.单位抽样响应系统的单位抽样响应是当输入信号为单位抽样信号时系统的输出响应。

MATLAB中有两个函数可以计算系统的单位抽样响应:filter函数和impz函数。

1)filter函数filter函数是利用递归滤波器或非递归滤波器对数据进行滤波。

因为一个离散系统可以看做一个滤波器。

系统的输出就是输入经过滤波器滤波的结果。

filter函数的格式为:y=filter(b,a,x)此函数是对由a和b组成的系统对输入进行滤波,如果输入为单位抽样信号δ(n),那么输出就是系统的单位抽样响应。

2)impz函数impz函数的格式为:impz(b,a)可直接给出系统的单位抽样响应。

2.频率响应H(e jw))由向量a和b组成的系统的频率响应为:M∑b(r)e-jwrr=0H(e jw) = ———————N1 + ∑a(k)e-jkwk=1MATLAB中的freqz函数使用基于FFT的算法来计算由向量a和b组成的系统的频率响应。

其一般用法为:[h,f]=freqz(b,a,n,Fs)其中向量a和b由离散系统决定,Fs为采样频率,在[0,Fs]频率范围内选取n个频率点,并记录在f中。

由于freqz 函数是采用基2的FFT算法,n常取2的幂次方,这样可以提高运算速度。

3.零极点增益利用MATLAB中roots的函数可求得系统的零、极点,从而得到系统的零极点增益表示。

其一般用法为:zr=roots(b)zp=roots(a)三、源程序b=[0.2 0.1];a=[ -0.4 -0.5];x=[1,zeros(1,60)];y=filter(b,a,x)stem(y)fs=1000;[h,f]=freqz(b,a,64,fs)abs(h)plot(f,abs(h))p=angle(h)ph=p*180/pplot(f)roots(b)roots(a)zplane(b,a)四、仿真结果单位抽样响应图:系统的频率响应图:零点图:极点图:五、设计总结在编程调试的过程中,不可避免地遇到了很多的困难。

离散信号时域分析的MATLAB实现

离散信号时域分析的MATLAB实现

实验十一 离散信号时域分析的MATLAB 实现一、实验目的1. 熟悉MATLAB 编程方法、常用语句和可视化绘图技术;2. 掌握序列时域运算的MATLAB 编程方法。

二、实验原理在用MATLAB 表示离散信号并将其可视化时,由于矩阵元素个数是有限的,因此无法表示无限长序列;另外,离散信号无法进行符号运算。

在MATLAB 中,绘制离散序列波形图的专用命令为stem( )。

其格式有:(1)stem(k,f)在图形窗口中,绘制出样值顶部为空心圆的序列f (k)波形图。

(2)stem(k,f ,’fill’)在图形窗口中,绘制出样值顶部为实心圆的序列f (k)波形图。

下面介绍离散序列的MATLAB 表示、基本运算(相加、相乘、平移、反转、尺度变换)、卷积和的实现及其图形显示方法。

1.单位序列δ(k ) 单位序列的定义:⎩⎨⎧≠==0,00,1)(k k k δ下面为绘制δ(k-k 0)波形图的子程序:function impseq(k1,k2,k0) %单位序列δ(k-k0),k0为时移量k=k1:k2; %k1,k2为序列的起止序列号 n=length(k); x=zeros(1,n);x(1,k0-k1+1)=1; %在k0时刻信号赋值为1 stem(k,x,'fill') axis([k1,k2,0,1.1])title('单位序列d(k-k0)')输入如下命令,则可获得单位序列δ(k-3)的波形图,如图11-1所示。

impseq(-1,5,3)图11-12.单位阶跃序列ε(k ) 单位序列的定义:⎩⎨⎧<≥=0,00,1)(k k k ε下面为绘制ε(k-k 0)波形图的MATLAB 子程序。

function stepseq(k1,k2,k0) %单位阶跃序列,k0为时移量 k=k1:k0-1; %k1,k2为序列的起止序列号 kk=length(k);x=zeros(1,kk); %k0前信号赋值为0 stem(k,x,'fill') %绘出k1~k0-1的波形(0值) hold onn=k0:k2; nn=length(n);x=ones(1,nn); %k0后信号赋值为1 stem(n,x,'fill') %绘出k0~k2的波形(1值) hold offaxis([k1,k2,0,1.1]) title('单位阶跃序列')运行如下命令,则可获得单位序列ε(k-3)的波形图,如图11-2所示。

实验7 离散信号的频域分析

实验7  离散信号的频域分析

实验七 离散信号的频域分析1.实验目的(1)掌握离散信号DTFT 和DFT 的计算的MATLAB 实现。

(2)验证DFT 与DTFT 的关系。

(3)验证DFT 圆周卷积定理。

2.实验原理(1)DTFT 的计算序列x(n)的DTFT ()[]n j jwn n X e x n eω=∞-=-∞=∑是ω的连续函数。

在MATLAB 中只能以数值形式计算其在给定区间中离散频率点上的值。

可以用函数freqz 计算,调用格式如下:[X,w] = freqz(x,1,N);[X,w] = freqz(x,1,N,'whole');X=freqz(x,1,w)第一种格式求出的是0~π之间的频谱,第二种格式求出的是0~2π之间的频谱。

第三种格式求的是指定频率w 对应的频谱值。

式子中,x 为时间序列,N 是欲求的频谱值的个数,X 是频谱值,w 为对应的频率值,两者均为列向量。

如果x 是有限长序列,可求得精确值;如果x 是无限长序列,求得的是近似值。

(2)DFT 计算序列x(n)的DFT ()112/00[][]n N n N j nk N nk Nn n X k x n e x n W π=-=--====∑∑可以用函数fft 计算,调用格式如下:X = fft(x,N);其中,x 为时间序列,N 为DFT 的点数,X 为x 的DFT 值。

如果N 与序列长度相等,可以省略,此时调用格式为:X = fft(x);(3)DFT 与DTFT 的关系长度为L 的序列的N 点DFT 与其DTFT 的关系为()()2j k NX k X e ωπω== 根据这个关系,可以得到计算DFT 的另一种方法:X = freqz(x,1,N, 'whole');(4)DFT 圆周卷积定理圆周卷积定理:()1x n ○N ()()()212x n X k X k ↔3.实验内容及其步骤(1)序列x={1,2,3,4},求x 在-π~π之间的DTFT ,画出幅度谱和相位谱。

实验七离散系统的z域分析与MATLAB实现

实验七离散系统的z域分析与MATLAB实现

实验七离散系统的z域分析与MATLAB实现实验目的:1、掌握离散序列z变换的计算方法。

2、掌握离散系统系统函数零极点的计算方法和零极点图的绘制方法,并能根据零极点图分析系统的因果性和稳定性。

3、掌握利用MATLAB进行z反变换的计算方法。

实验内容:13.1程序:(1)f1=n^2u(n);syms nzf1=n^2;f1_z=ztrans(f1)f1_z =(z^2 + z)/(z - 1)^3(3)f3=n*exp(-2*n)u(n)syms nzf3=n*exp(-2*n);f3_z=ztrans(f3)f3_z =(z*exp(2))/(z*exp(2) - 1)^213.2程序(2):syms zX(z)=(2*z^2-z+1)/(z^3+z^2+0.5*z);h=iztrans(X(z))h =2*kroneckerDelta(n - 1, 0) - 6*kroneckerDelta(n, 0) - (-1)^n*2^(1 - n)*(1 - i)^(n - 1)*3*i + (-1)^n*2^(1 - n)*(1 + i)^(n - 1)*3*i(4):syms zX(z)=(z^2+0.5*z)/(z-0.5)^3;h=iztrans(X(z))h =4*(1/2)^n*nchoosek(n - 1, 2) + 2*(1/2)^n + 6*(1/2)^n*(n - 1) 13.4程序(1):num=[2 0 0];den=[1 3 2];[z,p,k]=tf2zp(num,den)z =p =-2-1k =2所以由程序运行结果可得,该系统的零,极点增益模型如图:实验小结:通过实验我掌握了离散序列z变换的计算方法,掌握了利用MATLAB进行z反变换的计算方法。

学会了用MATLAB 实现传递函数模型与零,极点增益模型的转换。

应用MATLAB分析离散控制系统

应用MATLAB分析离散控制系统
图1-30 离散系统脉冲响应
3.dslim()函数的调用格式
dslim(num,den,u)
其中:num为脉冲传递函数分子多项式系数;den为脉冲传递函数分母多项式系数;u为输入 信号。
自动控制原理
自动控制原理
应用MATLAB分析离散控制系统
1.1 连续系统与离散系统模型之间的转换 在MATLAB中对连续系统的离散化是通过c2dm()函数实现的,c2dm()函数的调
用格式为 [numd,dend] = c2dm(num,den,T,’zoh’)
其中zoh表示零阶保持器;T为采样周期,num为传递函数分子多项式系数; den为传递函数分母多项式系数。
表1-5 连续系统模型与离散系统模型转换函数
MATLAB函数
调用格式
函数说明
c2d
sysd=c2d(sysc,Ts,’method’)
连续时间LTI系统模型转换成 离散时间系统模型
c2dm

[numz,denz]=c2dm(num,den,T,’method’)
连续时间LTI传递函数模型转 换成离散时间传递函数模型
d2c d2cm d2d
sysc=d2c(sys,’method’)
离散时间系统模型转换成连续 时间LTI系统模型
1. [A,B,C,D]=d2cm(Ad,Bd,Cd,Dd,T,’method’)
离散时间状态空间模型 转换成连续时间状态空 间模型
sys=d2d(sysd,T)
离散时间模型转换成新的离散 时间系统模型
利用MATLAB中的dstep()函数可得到输出响应,如图1-29所示。程序如下: num = [0.368 0.264]; den = [1 -1 0.632]; dstep(num,den)

Matlab讲义-离散时间系统的Z域分析

Matlab讲义-离散时间系统的Z域分析

atlab讲义-离散时间系统的Z 域分析离散时间系统的Z 域分析一、实验目的1. 加深理解和掌握离散时间序列信号求Z 变换和逆Z 变换的方法。

2. 加深理解和掌握离散时间系统的零极点分布于时域特征关系。

二、实验内容1. 离散时间信号的Z 变换()()n n F z f n z +∞-=-∞=∑(1)双边Z 变换,单边Z 变换MATLAB 实现 F=ztrans(f)//Z 变换 f=iztrans(F)//逆Z 变换7-1 已知序列1()()n f n a u n =,序列2()f n 的Z 变换为22()/(1/2)F z z z =-,求序列1()f n 的z 变换,2()F z 的逆z 变换。

f1=sym('a^n'); F1=ztrans(f1) F2=sym('z/(z-1/2)^2'); f2=iztrans(F2) F1 =z/a/(z/a-1) f2 =2*(1/2)^n*n由此可知 11zza F z z a a ==--,21()2()()2n f n nu n =2. 系统函数1201212012()()()mm nn b b z b z b z B z H z A z a a z a z a z------++++==++++ (2) 1111(1)(2)()()(1)(2)1(1)1(2)1()r r r n H z k k z p z p zp n z----=++++++--- MATLAB 实现 residuez()函数。

7-2 已知因果系统的传递函数2()(1/2)(1/4)z H z z z =--。

利用MATLAB 计算()H z 的部分分式展开,求单位冲激响应画出图形。

B=1;A=[1 -0.75 0.125]; [r p k]=residuez(B,A) r =2 -1 p =0.5000 0.2500 k =[]1121()10.510.25H z z z--=---。

离散信号与系统z域分析的MATLAB实现

离散信号与系统z域分析的MATLAB实现

离散信号与系统z域分析的MATLAB实现实验⼗五离散信号与系统z域分析的MATLAB实现⼀、实验⽬的1. 掌握离散信号z变换和逆z变换的MATLAB⽅法;2. 掌握离散系统的系统函数零极点分布与系统频率特性分析的MATLAB实现⽅法。

⼆、实验原理1.离散信号的z变换和逆z变换序列f(k) (k为整数)的双边z变换定义为MATLAB的符号数学⼯具箱(Symbolic Math Tools)提供了计算z正变换的函数ztrans和计算逆z变换的函数iztrans。

其调⽤形式为:F=ztrans(f) %求符号函数f的z变换,返回函数的⾃变量为z;F=ztrans(f,w) %求符号函数f的z变换,返回函数的⾃变量为w;F=ztrans(f,k,w) %对⾃变量为k的符号函数f求z变换,返回函数的⾃变量为w。

f=iztrans(F) %对⾃变量为z的符号函数F求逆z变换,返回函数的⾃变量为n;f=iztrans(F,k) %对⾃变量为z的符号函数F求逆z变换,返回函数的⾃变量为k;f=iztrans(F,w,k) %对⾃变量为w的符号函数F求逆z变换,返回函数的⾃变量为k。

例15-1.已知序列,求其z变换。

解:在命令窗⼝中输⼊如下命令,即可完成f(k)的z变换>> syms k>> f=sym('2^(-k)'); %定义序列>> F=ztrans(f) %求z变换运⾏结果为:F =2*z/(2*z-1) ,即例15-2.已知⼀离散系统的系统函数,求其冲激响应h(k)。

解:运⾏如下M⽂件,syms k zH=sym('z/(z^2+3*z+2)');h=iztrans(H,k) %求逆z变换运⾏结果为:h =(-1)^k-(-2)^k,即对象函数F求逆z变换,还可以利⽤函数residuez( )对象函数作部分分式展开,然后按部分分式展开法求得原函数。

离散时间信号与系统实验的matlab实现

离散时间信号与系统实验的matlab实现

离散时间信号与系统[实验目的]1.了解信号处理的基本操作2.熟悉一些常用的序列及其应用[实验原理]我们所接触的信号大多为连续信号,为使之便于处理,往往要对其进行采样,对信号抽样并保证其能完全恢复,对抽样频率有一定的限制。

基本的离散序列的定义如下:1.单位采样序列2.单位阶跃序列3.实指数序列,;a为实数4.复数指数序列,5.正余弦序列,6.周期序列,[实验内容]1.用MATLAB实现函数impseq(n0,n1,n2),使函数实现,。

函数定义:function [x,n]=impseq(n0,n1,n2)if (n1〉n2||n0〉n2||n0<n1)error(’parameter error');end;if (n1〈=n2)for n=1:n2-n1+1if (n==n0)x(1,n)=n1-1+n;x(2,n)=1;end;x(1,n)=n1—1+n;x(2,n)=0;end;x(2,n0—n1+1)=1;end;运行结果:impseq(3,1,9)ans =6 7 8 9 10 11 12 13 140 0 0 0 1 0 0 0 0注:上面一行为自变量n,下面一行为函数值,以下运行结果为两行的,都与此题同,不在表明。

2.用MATLAB实现函数stepseq(n0,n1,n2),使函数实现u(n-n0),。

函数定义:function[x,n]=stepseq(n0,n1,n2)if (n0〉n2||n0〈n1||n1>n2)error(’parameter error’);end;for n=1:n2—n1+1if(n+n1-1〈n0)x(1,n)=n1+n-1;x(2,n)=0;elsex(1,n)=n1+n—1;x(2,n)=1;end;end;运行结果:Stepseq(4,2,10)ans =2 3 4 5 6 7 8 9 100 0 1 1 1 1 1 1 1 注:与上同,上面一行是自变量,下面一行是函数值。

利用MATLAB进行离散控制系统仿真(七_八)

利用MATLAB进行离散控制系统仿真(七_八)

姓名: 学号: 得分实验七基于MATLAB的描述函数法非线性系统分析一.基础知识1.考虑如图的非线性系统,图中的继电器非线性模块。

试判断系统是否存在自振;若有自振,求出自振的振幅和频率。

M=10,h=1程序如下:x=1:0.1:20;disN=40/pi./x.*sqrt(1-x.^(-2))-j*40/pi./x.^2; %描述函数disN2=-1./disN; %负倒描述函数w=1:0.01:200;num=12; %线性部分分子den=conv([1 1],[1 6 13]); %线性部分分母[rem,img,w]=nyquist(num,den,w); %线性部分Nyquist曲线参数plot(real(disN2),imag(disN2),rem,img) %同时绘制非线性部分和线性部分的极坐标图grid; %加网格由图可见,两曲线相交,系统存在自激振荡2.建立Simulink模型,如图进行仿真。

系统的Simulink仿真模型由图所示的仿真输出可见,系统中确实存在自激振荡,进一步证实了前面的分析。

二.实验内容:具有间隙非线性系统的Simulink仿真结构图如图所示,设给定输入位单位阶跃信号,试仿真对于线性系统的阶跃响应和有非线性环节的阶跃响应。

姓名: 学号: 得分实验八利用MATLAB进行离散控制系统仿真一.基础知识本试验的目的主要是让学生初步掌握MATLAB软件在离散控制系统分析和设计中的应用。

1.连续系统的离散化。

在MATLAB软件中对连续系统的离散化是应用c2dm()函数实现的,c2dm()函数的一般格式为2.求离散系统的响应:在Matlab软件中,求离散系统的响应可运用dstep()、dimpulse()、dlism()函数实现。

其分别用于求离散系统的阶跃、脉冲及任意输入时的响应。

dstep()的一般格式如下二.实验内容:1.已知离散系统的结构图如图所示,求开环脉冲传递函数。

(采样周期T=1s)系统结构图2.已知离散系统结构图如图所示,输入为单位阶跃,采样周期T=1s,求输出响应。

实验七--离散系统分析的MATLAB实现讲解学习

实验七--离散系统分析的MATLAB实现讲解学习

实验七 离散系统分析的MATLAB 实现一、实验目的1、掌握利用MATLAB 绘制系统零极点图的方法;2、掌握离散时间系统的零极点分析方法;3、学习离散系统响应的MATLAB 求解方法;4、掌握用MATALB 实现离散系统频率特性分析的方法;5、深刻理解离散系统的系统函数零极点对系统频响的影响,可以根据 零极点知识设计简单的滤波器。

二、基本原理(一)离散系统零极点线性时不变离散系统可用线性常系数差分方程描述,即()()N Miji j a y n i b x n j ==-=-∑∑ (1)其中()y k 为系统的输出序列,()x k 为输入序列。

将式(1)两边进行Z 变换,00()()()()()Mjjj Nii i b zY z B z H z X z A z a z-=-====∑∑ (2) 将式(2)因式分解后有:11()()()Mjj Nii z q H z Cz p ==-=-∏∏ (3)其中C 为常数,(1,2,,)j q j M =L 为()H z 的M 个零点,(1,2,,)i p i N =L 为()H z 的N 个极点。

系统函数()H z 的零极点分布完全决定了系统的特性,若某系统函数的零极点已知,则系统函数便可确定下来。

因此,系统函数的零极点分布对离散系统特性的分析具有非常重要意义。

(二)离散系统零极点图及零极点分析 1、零极点图的绘制设离散系统的系统函数为()()()B z H z A z =则系统的零极点可用MATLAB 的多项式求根函数roots()来实现,调用格式为:p=roots(A) 其中A 为待求根多项式的系数构成的行矩阵,返回向量p 则是包含多项式所有根的列向量。

如多项式为231()48B z z z =++,则求该多项式根的MATLAB 命令为为:A=[1 3/4 1/8]; P=roots(A) 运行结果为: P =-0.5000 -0.2500需注意的是,在求系统函数零极点时,系统函数可能有两种形式:一种是分子、分母多项式均按z 的降幂次序排列;另一种是分子、分母多项式均按1z -的升幂次序排列。

离散时间系统的Matlab实现汇总PPT教案学习

离散时间系统的Matlab实现汇总PPT教案学习

[h, w]=freqz(b, a, n); %求系统 的频率响应
subplot(2, 2, 1), plot(n/pi, abs(h)); grid %作系统的绝对幅度频响 图
第23页/共27页
axis([0,1,1.1*min(abs(h)),
subplot(2,2, 2), plot(n/pi, angle(h)); grid %作系统的相位 频响图
2
相位
0
-2
0.5
1
幅 频 响 应 ( db)
0
0.5
1
以 pi为 单 位 的 频 率
零极点分布
1
Imaginary Part
0.5
0
-0.5
-1
0.5
1
-1 -0.5 0 0.5 1
Real Part
第25页/共27页
状态空间的转换
tf2ss函数:由传递函数到状态空间的转换
[A,B,C,D] = TF2SS(NUM,DEN)
的数字系统(b和a分别表示系统函数H(z)对
应的分子项和分母项系数构成的数组,而且分
母系数要归一化处理。)当输入信号为x时,对
x中的数据进行滤波,结果存于y中,长度取
max(na , nb).
第12页/共27页
[y , zf]=filter(b , a, x);除得到结果矢量y外, 还得到x 的最终状态矢量zf。
第17页/共27页
a=[1,0,1/3, 0];
b=[1/6, 1/2, 1/2, 1/6];
xi=filtic(b,a,0,0);
N=32;
n=0:N-1;
x1=[n==0]; 信号
%单位冲激

离散系统的MATLAB实现

离散系统的MATLAB实现

数字信号处理实验报告实验项目名称:离散系统的MATLAB实现实验日期:2012年10月11日实验成绩:实验评定标准:1)实验结果是否正确A()B()C()2)实验结果分析A()B()C()3)实验报告是否按照规定格式A()B()C()一、实验目的离散系统的模型时域表示的MATLAB实现函数有filter和impz 函数两种,本实验通过以上函数实现离散系统的时域模型。

二、实验器材PC机一台MATLAB软件三、实验内容1.filter函数:利用递归滤波器或非递归滤波器对数据滤波,将一个离散系统可以看成一个滤波器,系统的输出就是输入经过滤波器的结果。

●y=filer(b,a,x); 说明:y表示由向量b和a组成的系统对输入信号x进行滤波,系统的输出为y。

2.impz函数:直接给出系统的单位冲击响应。

●impz(b,a);实验要求:(1)当系统的输入输出差分方程为:0.9(n)-y(n-1)-0.8y(n-2)=0.3x(n)+0.7x(n-1)+0.7x(n-2),并且系统的输入为N点单位冲激序列的时候,分别用filter和impz函数得到系统单位冲激相应的曲线,并对其进行比较。

四、实验结果系统的输入方程为:y(n)-0.8y(n-1)-0.5y(n-2)=0.7x(n)+0.3x(n-1)程序:clear all;Pulse=[1,zeros(1,63)];B=[0.7 0.3];A=[1 -0.8 - 0.5];H1=filre(b,a,pulse);H2=impz(b,a,4);Suplot(2,1,1),stem(h1),title(‘filer function’);Suplot(2,1,2),stem(h2),title(‘impz function’);系统的输入方程为:0.9y(n)-y(n-1)-0.8y(n-2)=0.3x(n)+0.7x(n-1)+0.7x(n-2):clear all;Pulse=[1,zeros(1,63)];B=[0.3 0.7 0.7];A=[0.9 -1 - 0.8];H1=filre(b,a,pulse);H2=impz(b,a,4);Suplot(4,1,1),stem(h1),title(‘filer function’);Suplot(4,1,2),stem(h2),title(‘impz function’);系统的输入方程为:y(n)-0.9y(n-1)-0.3y(n-2)=0.6x(n)+0.2x(n-1)clear all;Pulse=[1,sin(1*63)];B=[0.6 0.2];A=[ 1 -0.9 -0.3];H1=filre(b,a,pulse);H2=impz(b,a,4);Suplot(2,1,1),stem(h1),title(‘filer function’);五、实验结果分析y(n)-0.8y(n-1)-0.5y(n-2)=0.7x(n)+0.3x(n-1)0.9y(n)-y(n-1)-0.8y(n-2)=0.3x(n)+0.7x(n-1)+0.7x(n-2)y(n)-0.9y(n-1)-0.3y(n-2)=0.6x(n)+0.2x(n-1)。

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

实验七 离散系统分析的MATLAB 实现一、实验目的1、掌握利用MATLAB 绘制系统零极点图的方法;2、掌握离散时间系统的零极点分析方法;3、学习离散系统响应的MATLAB 求解方法;4、掌握用MATALB 实现离散系统频率特性分析的方法;5、深刻理解离散系统的系统函数零极点对系统频响的影响,可以根据 零极点知识设计简单的滤波器。

二、基本原理(一)离散系统零极点线性时不变离散系统可用线性常系数差分方程描述,即()()N Miji j a y n i b x n j ==-=-∑∑ (1)其中()y k 为系统的输出序列,()x k 为输入序列。

将式(1)两边进行Z 变换,00()()()()()Mjjj Nii i b zY z B z H z X z A z a z-=-====∑∑ (2) 将式(2)因式分解后有:11()()()Mjj Nii z q H z Cz p ==-=-∏∏ (3)其中C 为常数,(1,2,,)j q j M =L 为()H z 的M 个零点,(1,2,,)i p i N =L 为()H z 的N 个极点。

系统函数()H z 的零极点分布完全决定了系统的特性,若某系统函数的零极点已知,则系统函数便可确定下来。

因此,系统函数的零极点分布对离散系统特性的分析具有非常重要意义。

(二)离散系统零极点图及零极点分析 1、零极点图的绘制设离散系统的系统函数为()()()B z H z A z =则系统的零极点可用MATLAB 的多项式求根函数roots()来实现,调用格式为:p=roots(A) 其中A 为待求根多项式的系数构成的行矩阵,返回向量p 则是包含多项式所有根的列向量。

如多项式为231()48B z z z =++,则求该多项式根的MATLAB 命令为为:A=[1 3/4 1/8]; P=roots(A) 运行结果为: P =-0.5000 -0.2500需注意的是,在求系统函数零极点时,系统函数可能有两种形式:一种是分子、分母多项式均按z 的降幂次序排列;另一种是分子、分母多项式均按1z -的升幂次序排列。

这两种方式在构造多项式系数向量时稍有不同。

(1)()H z 按z 的降幂次序排列:系数向量一定要由多项式最高次幂开始,一直到常数项,缺项要用0补齐。

如34322()3221z zH z z z z z +=++++其分子、分母多项式系数向量分别为A=[1 0 2 0]、B=[1 3 2 2 1]。

(2)()H z 按1z -的升幂次序排列:分子和分母多项式系数向量的维数一定要相同,不足的要用0补齐,否则0z =的零点或极点就可能被漏掉。

如11212()11124z H z z z ---+=++其分子、分母多项式系数向量分别为A=[1 2 0]、B=[1 1/2 1/4]。

用roots()求得()H z 的零极点后,就可以用plot()函数绘制出系统的零极点图。

下面是求系统零极点,并绘制其零极点图的MATLAB 实用函数ljdt(),同时还绘制出了单位圆。

函数ljdt()的程序如下:function ljdt(A,B)% The function to draw the pole-zero diagram for discrete system p=roots(A) %求系统极点 q=roots(B) %求系统零点 p=p'; %将极点列向量转置为行向量 q=q'; %将零点列向量转置为行向量 x=max(abs([p q 1])); %确定纵坐标范围x=x+0.1; y=x; %确定横坐标范围 clf hold onaxis([-x x -y y]) %确定坐标轴显示范围 w=0:pi/300:2*pi; t=exp(i*w);plot(t) %画单位园 axis('square') plot([-x x],[0 0]) %画横坐标轴 plot([0 0],[-y y]) %画纵坐标轴 text(0.1,x,'jIm[z]') text(y,1/10,'Re[z]')plot(real(p),imag(p),'x') %画极点 plot(real(q),imag(q),'o') %画零点 title('pole-zero diagram for discrete system') %标注标题 hold off例1:绘制如下系统函数的零极点图(1)32323510()375z z zH z z z z -+=-+- (2)11210.5()31148z H z z z ----=++解:MATLAB 命令如下:(1) A=[1 -3 7 -5];B=[3 -5 10 0]; ljdt(A,B)绘制的零极点图如图7-1(a )所示。

(2) A=[1 3/4 1/8];B=[1 -0.5 0]; ljdt(A,B)绘制的零极点图如图7-1(b )所示。

图7-1 离散系统的零极点图2、离散系统零极点分析《信号与系统》课程已讲到离散系统稳定的条件为:①时域条件:离散系统稳定的充要条件为()n h n ∞=-∞<∞∑,即系统单位样值响应绝对可和;②Z 域条件:离散系统稳定的充要条件为系统函数()H z 的所有极点均位于Z 平面的单位圆内。

对于三阶以下的低阶系统,可以利用求根公式求出系统函数的极点,从而判断系统的稳定性,但对于高阶系统,手工求解则显得十分困难,这时可以利用MATLAB 来实现。

实现方法是调用前述的函数ljdt()绘出系统的零极点图,然后根据极点的位置判断系统的稳定性。

例2:系统函数如例1所示,判断两个系统的稳定性。

解:由例1绘出的零极点图可以看出两个系统的稳定性分别为:第(1)个系统不稳定;第(2)个系统稳定。

(三)离散系统响应的求解除可以使用MATLAB 命令lsim 求解外,还可以使用命令filter 来求解系统响应。

例3:已知系统函数为1111121212()(10.2)(10.6)10.40.12z z H z z z z z------++==-++-,求 (1) 系统的脉冲响应()h n ;(2) 输入()()x n u n =,求系统的零状态响应()y n ;(3) 输入()()x n u n =,初始条件(1)1,(2)2y y -=-=,求系统的完全响应()y n 。

解:(1) 计算前11个时刻的()h n N=11;b=[1,2];a=[1,0.4,-0.12]; x=[1,zeros(1,N-1)]; y=filter(b,a,x)(2) 计算前11个时刻的零状态响应()y n N=11;b=[1,2];a=[1,0.4,-0.12]; x=ones(1,N); y=filter(b,a,x)(3) 计算前11个时刻的完全响应()y n注意filter(b,a,x,zi)中的初始值zi 不是(1)1,(2)2y y -=-=,它可以用命令filtic 来求得。

N=11;b=[1,2];a=[1,0.4,-0.12]; x=ones(1,N);zi=filtic(b,a,[1,2]); y=filter(b,a,x,zi);(四)离散系统频率特性分析 1、离散系统的频率响应()j H e ω对于某因果稳定离散系统,如果激励序列为正弦序列:0()sin()()x n A n u n ω=则,根据《信号与系统》课程给出的结果有,系统的稳态响应为:()()sin[()]()j ss y n A H e n u n ωωϕω=+定义离散系统的频率响应为()()()()j j j j z e H e H z H e e ωωωϕω===其中,()j H e ω——称为离散系统的幅频特性; ()ϕω——称为离散系统的相频特性;()j H e ω是以2π为周期的周期函数,只要分析()j H e ω在ωπ≤范围内的情况,便可分析出系统的整个频率特性。

2、用MATLAB 实现离散系统的频率特性分析方法设某因果稳定系统的系统函数()H z ,则系统的频响特性为:()()()()j j j j z e H e H z H e e ωωωϕω===MATLAB 提供了专门用于求离散系统频响特性的函数freqz(),调用freqz()的格式有以下两种: ①[H,w]=freqz(B,A,N)B 和A 分别为离散系统的系统函数分子、分母多项式的系数向量,N 为正整数,返回量H 则包含了离散系统频响()j H e ω在0~π范围内N 个频率等分点的值,向量w 则包含0~π范围内N 个频率等分点。

调用中若N 默认,默认值为512。

②[H,w]=freqz(B,A,N,’whole’)该调用格式将计算离散系统在0~2π范围内N 个频率等分点的频率响应()j H e ω的值。

因此,可以先调用freqz()函数计算系统的频率响应,然后利用abs()和angle()及plot()函数,即可绘制出系统在0~π或0~2π范围内的频响曲线。

例4:绘制如下系统的频响曲线0.5()z H z z -=解:MATLAB 命令如下: B=[1 -0.5]; A =[1 0];[H,w]=freqz(B,A,400,'whole'); Hf=abs(H) Hx=angle(H) clffigure(1) plot(w,Hf)title('离散系统幅频特性曲线') figure(2)plot(w,Hx)title('离散系统相频特性曲线')运行结果如图7-2所示。

图7-2 系统的幅频特性曲线和相频特性曲线3、离散系统函数的零极点对系统频域特性的影响例5:已知某系统系统函数为1121()10.5zH zz z---+=-+,求系统的幅频曲线。

解: b=[1,1,0];a=[1,-1,0.5];[H,w]=freqz(b,a);plot(w,abs(H));xlabel('Frequency(rad)'); ylabel('Magnitude');title('Magnitude response');其运行结果如下图7-3所示。

图7-3 系统的幅频特性曲线由图7-3可见,系统的零点1j z e π=-=迫使高频处πΩ=的幅频响应的幅度很小。

三、预习练习1、为了使实验能够顺利地进行,课前对教材中离散系统的Z 域分析的相关内容和实验原理、方法及内容做好充分预习,并预期实验的结果。

2、学习MATLAB 软件,尤其是其中的和本次实验有关的一些函数的使用。

相关文档
最新文档