《数字信号处理》实验指导书(完整) - 图文 下载本文

程序运行结果如图12-1所示。

图2-1 单位冲激序列

2. 单位阶跃序列

单位阶跃序列u(n)定义为

u(n)???1(n?0)?0(n?0) (12-2)在MATLAB中,冲激序列可以通过编写uDT.m文件来实现,即

function y=uDT(n)

y=n>=0; %当参数为非负时输出1

调用该函数时n也同样必须为整数或整数向量。

【实例2-2】 利用MATLAB的uDT函数绘出单位阶跃序列的波形图。 解:MATLAB源程序为

>>n=-3:5; >>x=uDT(n);

>>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位阶跃序列') >>axis([-3 5 -0.1 1.1])

8

12-2所示。

图2-2 单位阶跃序列

9

程序运行结果如图

第2章 z变换及离散时间LTI系统的z

域分析

2.1 实验目的

? 学会运用MATLAB求离散时间信号的z变换和z反变换; ? 学会运用MATLAB分析离散时间系统的系统函数的零极点;

? 学会运用MATLAB分析系统函数的零极点分布与其时域特性的关系; ? 学会运用MATLAB进行离散时间系统的频率特性分析。

2.2 实验原理及实例分析

2.2.1 z正反变换

序列x?n?的z变换定义为

X?z??Z?x?n???n????x?n?z??n (2-1)

其中,符号Z表示取z变换,z是复变量。相应地,单边z变换定义为

X?z??Z?x?n????x?n?z?n (2-2)

n?0?MATLAB符号数学工具箱提供了计算离散时间信号单边z变换的函数ztrans和z反变换函数iztrans,其语句格式分别为

Z=ztrans(x) x=iztrans(z)

上式中的x和Z分别为时域表达式和z域表达式的符号表示,可通过sym函数来定义。

【实例2-1】 试用ztrans函数求下列函数的z变换。

?n)u(n); (2)x(n)?[2(1)x(n)?acos(解:(1)z变换MATLAB源程序为

>>x=sym('a^n*cos(pi*n)');

nn?1?(?2)n?1]u(n)。

10

>>Z=ztrans(x); >>simplify(Z) ans=

z/(z+a)

(2)z变换MATLAB源程序为

>>x=sym('2^(n-1)-(-2)^(n-1)'); >>Z=ztrans(x); >>simplify(Z) ans=

z^2/(z-2)/(z+2)

【实例2-2】 试用iztrans函数求下列函数的z反变换。

z(2z2?11z?12)8z?19(1)X(z)?2 (2)X(z)? 3(z?1)(z?2)z?5z?6解:(1)z反变换MATLAB源程序为

>>Z=sym('(8*z-19)/(z^2-5*z+6)'); >>x=iztrans(Z); >>simplify(x) ans=

-19/6*charfcn[0](n)+5*3^(n-1)+3*2^(n-1)

其中,charfcn[0](n)是?(n)函数在MATLAB符号工具箱中的表示,反变换后的函数形式为

x(n)??19?(n)?(5?3n?1?3?2n?1)u(n)。 6(2)z反变换MATLAB源程序为

>>Z=sym('z*(2*z^2-11*z+12)/(z-1)/(z-2)^3'); >>x=iztrans(Z); >>simplify(x) ans=

-3+3*2^n-1/4*2^n*n-1/4*2^n*n^2

其函数形式为x(n)?(?3?3?2?n1n12nn2?n2)u(n)。 44如果信号的z域表示式X(z)是有理函数,进行z反变换的另一个方法是对

X(z)进行部分分式展开,然后求各简单分式的z反变换。设X(z)的有理分式

表示为

11