1、1实验二 离散时间信号与系统的 Z 变换分析一、 实验目的1、熟悉离散信号 Z 变换的原理及性质2、熟悉常见信号的 Z 变换3、了解正/反 Z 变换的 MATLAB 实现方法4、了解离散信号的 Z 变换与其对应的理想抽样信号的傅氏变换和拉氏变换之间的关系5、了解利用 MATLAB 实现离散系统的频率特性分析的方法二、 实验原理1、正/反 Z 变换Z 变换分析法是分析离散时间信号与系统的重要手段。如果以时间间隔 对连续时间信号 f(t)进行sT理想抽样,那么,所得的理想抽样信号 为:()ft()*()*Ts skftftfT 理想抽样信号 的双边拉普拉斯变换 F (s)为:()()()()skT
2、stk kFsfttedfe若令 , , 那么 的双边拉普拉斯变换 F (s)为:sfkTfsTze(ft()()()sTkzekfF则离散信号 f(k)的 Z 变换定义为: kkFzz从上面关于 Z 变换的推导过程中可知,离散信号 f(k)的 Z 变换 F(z)与其对应的理想抽样信号的拉氏变换 F (s)之间存在以下关系: ()ft()sTzes同理,可以推出离散信号 f(k)的 Z 变换 F(z)和它对应的理想抽样信号 的傅里叶变换之间的关系为()ft()jTszeFj如果已知信号的 Z 变换 F(z),要求出所对应的原离散序列 f(k),就需要进行反 Z 变换,反 Z 变换的定义为: 1
3、()()2kfkFzdjA其中,C 为包围 的所有极点的闭合积分路线。在 MATLAB 语言中有专门对信号进行正反 Z 变换的函数 ztrans( ) 和 itrans( )。其调用格式分别如下: F=ztrans( f ) 对 f(n)进行 Z 变换,其结果为 F(z)2 F=ztrans(f,v) 对 f(n)进行 Z 变换,其结果为 F(v) F=ztrans(f,u,v) 对 f(u)进行 Z 变换,其结果为 F(v) f=itrans ( F ) 对 F(z)进行 Z 反变换,其结果为 f(n) f=itrans(F,u) 对 F(z)进行 Z 反变换,其结果为 f(u) f=itr
4、ans(F,v,u ) 对 F(v)进行 Z 反变换,其结果为 f(u)注意: 在调用函数 ztran( )及 iztran( )之前,要用 syms 命令对所有需要用到的变量(如t,u,v,w)等进行说明,即要将这些变量说明成符号变量。例用 MATLAB 求出离散序列 的 Z 变换(0.5(kfMATLAB 程序如下:syms k zf=0.5k; %定义离散信号Fz=ztrans(f) %对离散信号进行 Z 变换运行结果如下:Fz = 2*z/(2*z-1)例已知一离散信号的 Z 变换式为 ,求出它所对应的离散信号 f(k)2()1zFMATLAB 程序如下:syms k zFz=2* z
5、/(2*z-1); %定义 Z 变换表达式fk=iztrans(Fz,k) %求反 Z 变换运行结果如下:fk = (1/2)k例:求序列 的 Z 变换.()1)(4)fktclc;clear allsyms n hn=sym(kroneckerDelta(n, 1) + kroneckerDelta(n, 2)+ kroneckerDelta(n, 3)Hz=ztrans(hn)Hz=simplify(Hz)2、离散系统的频率特性同连续系统的系统函数 H(s)类似,离散系统的系统函数 H(z)也反映了系统本身固有的特性。对于离散系统来说,如果把其系统函数 H(z)中的复变量 z 换成 (其中
6、 ),那么所得的函sjTjesT数 就是此离散系统的频率响应特性,即离散时间系统的频率响应为:()jHe()(jjjjzeeA3其中, 称为离散系统的幅频特性, 称为系统的相频特性。同连续系统一样,离散时间系()jHe()统的幅频特性也是频率的偶函数,相频特性也是频率的齐函数。由于 是频率的周期函数,所以离散系统的频率响应特性也是频率的周期函数,其周期为 ,j 2或者角频率周期为 。实际上,这就是抽样系统的抽样频率,而其中的 T 则是系统的抽样周期。2Ts频率响应呈现周期性是离散系统特性区别于连续系统特性的重要特点。因此,只要分析 在()jHe范围内的情况,便可分析出系统的整个频率特性。2函数
7、来表示离散系统的频率响应特性, 表示幅频特性,而相频特性仍用 来()jHe ()jHe ()表示。应该特别注意的是,虽然这里的变量仍然称为频率变量,但是它已经不是原来意义上的角频率概念,而实际上是表示角度的概念。我们称之为数字频率。它与原来角频率的关系为: 。也就是sT说,根据离散系统的系统函数 H(z),令其中的 ,并且代入 0 范围内不同的频率值(实际上jze2是角度值),就可以逐个计算出不同频率时的响应,求出离散系统的频率响应特性。再利用离散系统频率特性的周期性特点(周期为 2),求出系统的整个频率特性。离散系统的幅频特性曲线和相频特性曲线能够直观地反映出系统对不同频率的输入序列的处理情
8、况。在函数 随的变换关系中,在=0 附近,反映了系统对输入信号低频部分的处理情况,而在 =()jHe附近,则反映了系统对输入信号高频部分的处理情况。一般来说,分析离散系统频率响应特性就要绘制频率响应曲线,而这是相当麻烦的。虽然可以通过几何矢量法来定性画出频率响应特性曲线,但一般来说这也是很麻烦的。值得庆幸的是,MATLAB 为我们提供了专门用于求解离散系统频率响应的函数 freqz() ,其调用格式如下: H,w=freqz(B,A,N) 其中,B 和 A 分别是表示待分析的离散系统的系统函数的分子,分母多项式的向量,N 为正整数,返回向量 H 则包含了离散系统频率响应函数 在 范围内的 N
9、个()jHe0频率等分点的值。向量则包含 范围内的 N 个频率等分点。在默认情况下 N=512。0 H,w=freqz(B,A,N,whole) 其中,B,A 和 N 的意义同上,而返回向量 H 包含了频率响应函数 在 范围内 N 个频率等分点的值。()je2由于调用 freqz()函数只能求出离散系统频率响应的数值,不能直接绘制曲线图,因此,我们可以先用 freqz()函数求出系统频率响应的值,然后再利用 MATLAB 的 abs()和 angle()函数以及 plot()命令,即可绘制出系统在 或 范围内的幅频特性和相频特性曲线。02例若离散系统的系统函数为 ,请用 MATLAB 计算 频
10、率范围内 10 个等分点的0.5()zH0频率响应 的样值。 ()jHeMATLAB 程序如下:A=1 0; %分母多项式系数向量B=1 -0.5; %分子多项式系数向量H,w=freqz(B,A,10) %求出对应 范围内 10 个频率点的频率响应样值0运行结果如下:H =40.5000 0.5245 + 0.1545i0.5955 + 0.2939i0.7061 + 0.4045i0.8455 + 0.4755i1.0000 + 0.5000i1.1545 + 0.4755i1.2939 + 0.4045i1.4045 + 0.2939i1.4755 + 0.1545iw =00.3142
11、0.62830.94251.25661.57081.88502.19912.51332.8274例用 MATLAB 计算前面离散系统在 频率范围内 200 个频率等分点的频率响应值,并绘出相02应的幅频特性和相频特性曲线。MATLAB 程序如下:A=1 0;B=1 -0.5;H,w=freqz(B,A,200);H,w=freqz(B,A,200,whole); %求出对应 范围内 200 个频率点的频率响%应样值02HF=abs(H); %求出幅频特性值HX=angle(H); %求出相频特性值subplot(2,1,1);plot(w,HF) %画出幅频特性曲线subplot(2,1,2)
12、;plot(w,HX) %画出相频特性曲线运行结果如下:5运行结果分析:从该系统的幅频特性曲线可以看出,该系统呈高通特性,是一阶高通滤波器。三、 实验内容1 求出下列离散序列的 Z 变换 122()cos()kf 3kf 3()(5)k 41fk2 已知下列单边离散序列的 z 变换表达式,求其对应的原离散序列。21()zF 22341zz 34(6) 241()(3)zF3. 已知离散系统的系统函数 H (z)如下,请绘出系统的幅频和相频特性曲线,并说明系统的作用 1234()(zH 20.8z4. 已知描述离散系统的差分方程为:()1.().35(2)(0.5(1)ykykek请绘出系统的幅
13、频和相频特性曲线,并说明系统的作用。四、 预习要求1、 熟悉正反 z 变换的意义及用 MATLAB 软件实现的方法62、 熟悉离散系统的频率响应特性及用 MATLAB 软件实现的方法3、 编写 MATLAB 程序五、 实验报告要求1、 简述实验目的及实验原理2、 计算相应 z 变换或反 z 变换的理论值,并与实验结果进行比较3、 记录离散系统的频率响应特性曲线,分析系统作用4、 写出程序清单5、 收获与建议%参考程序%三 1.clc;clear allsyms k z f1=0.5k*cos(k*pi/2); %定义离散信号Fz1=ztrans(f1) %对离散信号进行 Z 变换% 实验二 1. f2=k*(k-1)*(2/3)k; %定义离散信号Fz2=ztrans(f2) %对离散信号进行 Z 变换% 实验二 1. f3=sym(kroneckerDelta(n, 1) + kroneckerDelta(n, 2)+ kroneckerDelta(n, 3)Fz3=ztrans(f3)Fz3=simplify(Fz3)% 实验二 1.f4=k*(k-1)*sym(kroneckerDelta(k, 1) + kroneckerDelta(k, 2)+ kroneckerDelta(k, 3); %定义离散信号Fz4=ztrans(f4)Fz4=simplify(Fz4)