实验七 离散系统分析的MATLAB实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 =为()H z 的M 个零点,(1,2,
,)i p i N =为()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 )所示。