实验十五 离散信号与系统的z域分析的MATLAB实现
实验十五 离散信号与系统z域分析的MATLAB实现
一、实验目的
1. 掌握离散信号z变换和逆z变换的MATLAB方法;
2. 掌握离散系统的系统函数零极点分布与系统频率特性分析的MATLAB实现方法。
二、实验原理
1.离散信号的z变换和逆z变换 序列f(k) (k为整数)的双边z变换定义为
?F(z)??k???f(k)z?k
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.已知序列f(k)?2?k,求其z变换。
解:在命令窗口中输入如下命令,即可完成f(k)的z变换
>> syms k
>> f=sym('2^(-k)'); %定义序列>> F=ztrans(f) %求z变换
运行结果为:F =2*z/(2*z-1) ,即F(z)?2z2z?12?kf(k)?2
例15-2.已知一离散系统的系统函数H(z)?解:运行如下M文件,
syms k z
H=sym('z/(z^2+3*z+2)');
h=iztrans(H,k) %求逆z变换
78
zz?3z?2,求其冲激响应h(k)。
实验十五 离散信号与系统的z域分析的MATLAB实现
运行结果为:h =(-1)^k-(-2)^k,即h(k)?[(?1)?(?2)]?(k)
对象函数F求逆z变换,还可以利用函数residuez( )对象函数作部分分式展开,然后按部分分式展开法求得原函数。有关方法参见《MATLAB信号处理详解》第31页。
2.系统函数的零极点图的绘制
MATLAB的zplane函数用于系统函数的零极点图的绘制,调用方式为: zplane(b,a)
其中, b、a分别为系统函数分子、分母多项式的系数向量。
在MATLAB中,可以借助函数tf2zp来直接得到系统函数的零点和极点的值,函数tf2zp的作用是将H(z)转换为用零点、极点和增益常数组成的表示式,即:
H(z)?B(z)A(z)?C(z?z1)(z?z2)...(z?zm)(z?p1)(z?p2)...(z?pn)kk
tf2zp函数的调用形式如下:
[z,p,C]=tf2zp(b,a)
例15-3.已知一离散系统的系统函数H(z)?z2?0.7z?0.1z2?3z?2,试绘制其零极点图。
解:在MATLAB的命令窗口中输入如下命令,即可得到其零极点图(图15-1)。
>> a=[1 3 2]; >> b=[1 -0.7 0.1];
>> zplane(b,a) %绘制其零极点图
图中,零点、极点分别用“○”、“×”表示。
图15-1
3.离散系统的频率响应分析
若离散系统是稳定的,其系统函数的收敛域应包含单位圆,离散系统的频率响应即为单位圆上(z?1)的系统函数,即
H(ej?)?H(ej?)ej?(?)?H(z)z?ej?
其中,H(ej?)为系统的幅频特性,?(?)为系统的相频特性。
在MATLAB中,利用freqz( )函数可方便地求得系统的频率响应。调用格式如下: freqz(b,a)
79
实验十五 离散信号与系统的z域分析的MATLAB实现
该调用方式将绘制系统在0~?范围内的幅频特性和相频特性图,其中,b、a分别为系统函数分子、分母多项式的系数向量。
freqz(b,a,’whole’)
该调用方式将绘制系统在0~2?范围内的幅频特性和相频特性图。 freqz(b,a,N)
该调用方式将绘制系统在0~?范围内N个频率等分点的幅频特性和相频特性图,N的缺省值为512;
freqz(b,a,N,’whole’)
该调用方式将绘制系统在0~2?范围内N个频率等分点的幅频特性和相频特性图。 此外,还有如下相类似的四种调用形式。其中,返回向量H包含了离散系统频率响应
H(ej?)在0~?(或0~??)范围内各频率点处的值,返回向量w则包含了在0~?(或0~??)
范围内N个(或512个)频率等分点。利用这些调用方式MATLAB并不直接绘制系统的频率特性图,但可由向量H、w用abs、angle、plot等函数来绘制幅频特性和相频特性图。
[H,w]= freqz(b,a)
[H,w]=freqz(b,a,’whole’) [H,w]=freqz(b,a,N) [H,w]=freqz(b,a,N,’whole’) 例15-4.已知一离散系统的系统函数H(z)?解:在MATLAB的命令窗口中输入如下命令,即可得到其频率特性图(图15-2)。
>> b=[0 1 0]; >> a=[1 0.3 0.2]; >> freqz(b,a,'whole')
图15-2
zz?0.3z?0.22,试绘制频率特性图。
三、实验内容与步骤
1.已知因果系统的系统函数为
H(z)?zz22?0.75z?0.125
80
实验十五 离散信号与系统的z域分析的MATLAB实现
利用MATLAB,求:(1)系统的单位序列响应的表达式并显示其波形;(2)画出幅频响应和相频响应特性曲线。
2.已知一离散因果系统的系统函数为:
H(z)?z322?2z?1?0.005z?0.3z?0.5z
利用MATLAB,求:(1)系统函数的零点和极点,并在z平面显示它们的分布;(2)画出幅频响应和相频响应特性曲线。
3.已知系统的差分方程为
y(k)?0.7y(k?1)?0.1y(k?2)?5f(k)?f(k?1)
输入为f(k)?(0.25)?(k)。求:(1)系统的零状态响应y(k)、单位序列响应h(k)和阶跃响应g(k)的波形图(选取k=0:10)(2)画出系统的幅频响应和相频响应特性曲线。
k四、实验报告要求
列出M文件,给出运行结果图形。
总结z变换及其逆变换、离散系统频率分析的MATLAB实现方法。
81