当前位置:文档之家› 系统的零极点分布决定时域特性

系统的零极点分布决定时域特性

目录一、引言 (1)二、Matlab入门 (2)2.1 Matlab7.0介绍 (2)2.2利用Matlab7.0编程完成习题设计 (2)三、利用Matlab7.0实现系统函数的零极点分布决定时域特性的设计 (4)3.1系统函数的零极点分布决定时域特性的基本原理 (4)3.2编程设计及实现 (5)3.3运行结果及其分析 (6)四、结论 (11)五、参考文献 (12)一、引言《信号与系统》课程是一门实用性较强、涉及面较广的专业基础课,该课程是将学生从电路分析的知识领域引入信号处理与传输领域的关键性课程,对后续专业课起着承上启下的作用. 该课的基本方法和理论大量应用于计算机信息处理的各个领域,特别是通信、数字语音处理、数字图像处理、数字信号分析等领域,应用更为广泛。

我们选择Matlab语言作为辅助教学工具,借助Matlab强大的计算能力和图形表现能力,将《信号与系统》中的概念、方法和相应的结果,以图形的形式直观地展现给我们,大大的方便我们迅速掌握和理解老师上课教的有关信号与系统的知识。

Matlab是当前最优秀的科学计算软件之一,也是许多科学领域中分析、应用和开发的基本工具。

Matlab全称是Matrix Laboratory,是由美国Mathworks公司于20世纪80年代推出的数学软件,最初它是一种专门用于矩阵运算的软件,经过多年的发展,Matlab 已经发展成为一种功能全面的软件,几乎可以解决科学计算中的所有问题。

而且MATLAB 编写简单、代码效率高等优点使得Matlab在通信、信号处理、金融计算等领域都已经被广泛应用。

它具有强大的矩阵计算能力和良好的图形可视化功能,为用户提供了非常直观和简洁的程序开发环境,因此被称为第四代计算机语言。

Matlab 强大的图形处理功能及符号运算功能,为我们实现信号的可视化及系统分析提供了强有力的工具。

Matlab强大的工具箱函数可以分析连续信号、连续系统,同样也可以分析离散信号、离散系统,并可以对信号进行各种分析域计算,如相加、相乘、移位、反折、傅里叶变换、拉氏变换、z变换等等多种计算。

作为信号与系统的基本分析软件之一,利用Matlab进行信号与系统的分析与设计是通信以及信息工程学科的学生所要掌握的必要技能之一。

通过学习并使用Matlab语言进行编程实现课题的要求,对学生能力的培养极为重要。

尤其会提高综合运用所学理论知识进行分析问题、解决问题的能力,也便于将理论知识与实践相结合,并得以更好地掌握信号分析与处理的基本方法与实现。

这也将为后续相关的课程学习打下一定的基础,从而在以后相关课程设计与分析的时候达到对Matlab的熟练应用与融会贯通。

二、Matlab入门2.1 Matlab7.0介绍Matlab7.0比Matlab的老版本提供了更多更强的新功能和更全面、更方便的联机帮助信息。

当然也比以前的版本对于软件、硬件提出了更高的要求。

在国内外Matlab已经经受了多年的考验。

Matlab7.0功能强大,适用范围很广。

其可以用来线性代数里的向量、数组、矩阵运算,复数运算,高次方程求根,插值与数值微商运算,数值积分运算,常微分方程的数值积分运算、数值逼近、最优化方法等,即差不多所有科学研究与工程技术应用需要的各方面的计算,均可用Matlab来解决。

Matlab7.0提供了丰富的库函数(称为M文件),既有常用的基本库函数,又有种类齐全、功能丰富多样的的专用工具箱Toolbox函数。

函数即是预先编制好的子程序。

在编制程序时,这些库函数都可以被直接调用。

无疑,这会大大提高编程效率。

Matlab7.0的基本数据编程单元是不需要指定维数的复数矩阵,所以在Matlab环境下,数组的操作都如数的操作一样简单方便。

而且,Matlab7.0界面友好,用户使用方便。

首先,Matlab具有友好的用户界面与易学易用的帮助系统。

用户在命令窗里通过help 命令可以查询某个函数的功能及用法,命令的格式极为简单。

其次,Matlab程序设计语言把编辑、编译、连接、执行、调试等多个步骤融为一体,操作极为简单。

除此之外,Matlab7.0还具有强大的图形功能,可以用来绘制多姿多彩的图形,直观而形象。

综上,在进行信号的分析与仿真时,Matlab7.0无疑是一个强大而实用的工具。

尤其对于信号的分析起到了直观而形象的作用,非常适合与相关课题的研究与分析。

2.2利用Matlab7.0编程完成习题设计在熟悉了Matlab7.0的基本界面之后,可以通过简单的编程与相关函数的调用,实现绘制系统函数零极点图的操作。

例如:编程实现矩形波的仿真。

程序如下,直接在命令窗口键入如下程序:%rectpulst=-4:0.001:4;T=2;ft=rectpuls(t,T);plot(t,ft)axis([-4,4,-0.5,1.5])仿真图形如下:图1三、利用Matlab7.0实现系统函数的零极点分布决定时域特性的设计3.1系统函数的零极点分布决定时域特性的基本原理 (一)离散系统零极点线性时不变离散系统可用线性常系数差分方程描述,即()()NMiji j a y n i b x n j ==-=-∑∑ (8-1)其中()y k 为系统的输出序列,()x k 为输入序列。

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

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

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

通过对系统函数零、极点的分析,可以分析离散系统以下几个方面的特性: ● 系统单位样值响应()h n 的时域特性; ● 离散系统的稳定性; ● 离散系统的频率特性;(二)离散系统零极点图及零极点分析 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 z H 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]。

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

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

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

3. 零极点分布与系统单位样值时域特性的关系从《信号与系统》课程中已经得知,离散系统的系统函数()H z 与单位样值响应()h n 是一对Z 变换对;因而,()H z 必然包含了()h n 的固有特性。

离散系统的系统函数可以写成11()()()Mjj Nii z q H z Cz p ==-=-∏∏ (8-4)若系统的N 个极点均为单极点,可将()H z 进行部分分式展开为:1()Ni i ik zH z z p ==-∑(8-5) 由Z 逆变换得:1()()()Nn i i i h n k p u n ==∑ (8-6)从式(8-5)和(8-6)可以看出离散系统单位样值响应()h n 的时域特性完全由系统函数()H z 的极点位置决定。

从《信号与系统》的学习中已经得出如下规律: ● ()H z 位于Z 平面单位圆内的极点决定了()h n 随时间衰减的信号分量; ● ()H z 位于Z 平面单位圆上的一阶极点决定了()h n 的稳定信号分量;● ()H z 位于Z 平面单位圆外的极点或单位圆上高于一阶的极点决定了()h n 的随时间增长的信号分量;3.2系统函数的零、极点分布决定时域特性的编程设计及实现用roots()求得()H z 的零、极点后,就可以用plot()函数绘制出系统的零、极点图。

下面是求系统零、极点,并绘制其零、极点图的Matlab 实用函数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;%确定横坐标范围clfhold 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 off3.3运行结果及其分析 (1)1)(-=z z z H MATLAB 程序实现:z=[0]';p=[1]';k=1; [b,a]=zp2tf(z,p,k); subplot(1,2,1),zplane(z,p); title('系统的零极点分布图'); subplot(1,2,2),impz(b,a,20); title('系统的冲激响应'); xlabel('n'); ylabel('h(n)');运行结果如下:本例中系统只有一个极点,z 1处于单位圆上,系统处于临界稳定状态,其冲激响应幅度恒定。

相关主题