matlab1信号的单边z变换:,数字信号处理实验(1-4)

2.3 编程练习

1. 试用MATLAB命令求解以下离散时间系统的单位取样响应。

(1)3y(n)?4y(n?1)?y(n?2)?x(n)?x(n?1) (2) 解:

5y(n)?6y(n?1)?10y(n?2)?x(n) 2

附:

a1=[3 4 1];a2=[5/2 6 10]; b1=[1 1];b2=1; n=0:20; subplot(211)

impz(b1,a1,n),grid on

title('系统(1)单位取样响应h(n)') subplot(212)

impz(b2,a2,n),grid on

title('系统(2)单位取样响应h(n)')

2. 已知某系统的单位取样响应为h?n??()?u?n??u?n?10??,试用MATLAB求当激励信

n78号为x(n)?u(n)?u(n?5)时,系统的零状态响应。

解:

附:

nx=-1:6; nh=-2:12; x=uDT(nx)-uDT(nx-5);

h=(7/8).^nh.*(uDT(nh)-uDT(nh-10)); y=conv(x,h);

ny1=nx(1)+nh(1);

ny=ny1+(0:(length(nx)+length(nh)-2)); subplot(311)

stem(nx,x,'fill'),grid on xlabel('n'),title('x(n)') axis([-4 16 0 3]) subplot(312)

stem(nh,h','fill'),grid on xlabel('n'),title('h(n)') axis([-4 16 0 3]) subplot(313)

stem(ny,y,'fill'),grid on

xlabel('n'),title('y(n)=x(n)*h(n)') axis([-4 16 0 5]

实验三 z变换及离散时间LTI系统的z域分析

3.1 实验目的

? ? ? ?

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

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

3.2 实验原理及实例分析

3.2.1 z正反变换

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

X?z??Z?x?n???n????x?n?z???n

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

X?z??Z?x?n????x?n?zn?0?n

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

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

上式中的x和Z分别为时域表达式和z域表达式的符号表示,可通过sym函数来定义。 实例1: 试用ztrans函数求下列函数的z变换。

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

>>x=sym('a^n*cos(pi*n)'); >>Z=ztrans(x); >>simplify(Z) ans=

z/(z+a)

n 实例2: 试用iztrans函数求x(z)?8z?19的z反变换。

z2?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) 63.2.2 系统函数的零极点分析

离散时间系统的系统函数定义为系统零状态响应的z变换与激励的z变换之比,即

H(z)?Y(z) X(z)如果系统函数H(z)的有理函数表示式为

b1zm?b2zm?1???bmz?bm?1 H(z)?

a1zn?a2zn?1???anz?an?1那么,在MATLAB中系统函数的零极点就可通过函数roots得到,也可借助函数tf2zp得到,tf2zp的语句格式为

[Z,P,K]=tf2zp(B,A) 其中,B与A分别表示H(z)的分子与分母多项式的系数向量。它的作用是将H(z)的有理分式表示式转换为零极点增益形式,即

H(z)?k(z?z1)(z?z2)?(z?zm)

(z?p1)(z?p2)?(z?pn)z?0.32,试用MATLAB2z?z?0.16 实例3:已知一离散因果LTI系统的系统函数为H(z)?命令求该系统的零极点。

解:用tf2zp函数求系统的零极点,MATLAB源程序为

>>B=[1,0.32]; >>A=[1,1,0.16]; >>[R,P,K]=tf2zp(B,A) R= -0.3200 P= -0.8000 -0.2000 K= 1

你可能感兴趣的:(matlab1信号的单边z变换:,数字信号处理实验(1-4))