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

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

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

一、实验目的

1、掌握利用MATLAB 绘制系统零极点图的方法;

2、掌握离散时间系统的零极点分析方法;

3、学习离散系统响应的MATLAB 求解方法;

4、掌握用MATALB 实现离散系统频率特性分析的方法;

5、深刻理解离散系统的系统函数零极点对系统频响的影响,可以根据 零极点知识设计简单的滤波器。

二、基本原理

(一)离散系统零极点

线性时不变离散系统可用线性常系数差分方程描述,即

()()N M

i

j

i j a y n i b x n j ==-=-∑∑ (1)

其中()y k 为系统的输出序列,()x k 为输入序列。

将式(1)两边进行Z 变换,

00

()

()

()()

()

M

j

j

j N

i

i i b z

Y z B z H z X z A z a z

-=-==

==

∑∑ (2) 将式(2)因式分解后有:

11

()

()()

M

j

j N

i

i z q H z C

z 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

()48

B 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()3221

z z

H z z z z z +=++++

其分子、分母多项式系数向量分别为A=[1 0 2 0]、B=[1 3 2 2 1]。

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

1

1212()11124

z 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 on

axis([-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)3232

3510()375

z z z

H z z z z -+=-+- (2)1

1210.5()31148

z 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 )所示。

相关文档
最新文档