热门搜索 :
考研考公
您的当前位置:首页正文

实验二z变换及其应用

来源:东饰资讯网


实验三 z变换及其应用

3.1实验目的

1)加深对离散系统变换域分析——z变换的理解;

2)掌握进行z变换和z反变换的基本方法,了解部分分式法在z反变换中的应用;

3)掌握使用MATLAB语言进行z变换和z反变换的常用函数。

3.2实验涉及的MATLAB函数

1)ztrans

功能:返回无限长序列函数x(n)的z变换。

调用格式:

X=ztrans(x);求无限长序列函数x(n)的z变换X(z),返回z变换的表达式。

2)iztrans

功能:求函数X(z)的z反变换x(n)。

调用格式:

x=iztrans(X);求函数X(z)的z反变换x(n),返回z反变换的表达式。

3)syms

功能:定义多个符号对象。

调用格式:

syms a b w0;把字符a,b,w0定义为基本的符号对象。

4)residuez

功能:有理多项式的部分分式展开。

调用格式:

[r,p,c]=residuez(b,a);把b(z)/a(z)展开成部分分式。

[b,a]=residuez(r, p, c);根据部分分式的r、p、c数组,返回有理多项式。

其中:b,a为按降幂排列的多项式的分子和分母的系数数组;r为余数数组;p为极点数组;c为无穷项多项式系数数组。

3.3实验原理

1)用ztrans子函数求无限长序列的z变换

MATLAB提供了进行无限长序列的z变换的子函数ztrans。使用时须知,该函数只给出z变换的表达式,而没有给出收敛域。另外,由于这一功能还不尽完善,因而有的序列的z变换还不能求出,z逆变换也存在同样的问题。

例1 求以下各序列的z变换。

n(n1),21x5(n)n(n1)

x1(n)an,x4(n)ejw0n,x2(n)n,x3(n)syms w0 n z a

x1=a^n; X1=ztrans(x1)

x2=n; X2=ztrans(x2)

x3=(n*(n-1))/2; X3=ztrans(x3)

x4=exp(j*w0*n); X4=ztrans(x4)

x5=1/(n*(n-1)); X5=ztrans(x5)

2)用iztrans子函数求无限长序列的z反变换

MATLAB还提供了进行无限长序列的z反变换的子函数iztrans。

例2:求下列函数的z反变换。

X1(z)zz1X2(z)az(az)2zX3(z)(z1)31znX4(z)1z1

syms n z a

X1=z/(z-1); x1=iztrans(X1)

X2=a*z/(a-z)^2; x2=iztrans(X2)

X3=z/(z-1)^3; x3=iztrans(X3)

X4=(1-z^-n)/(1-z^-1); x4=iztrans(X4)

3)用部分分式法求z反变换

部分分式法是一种常用的求解z反变换的方法。当z变换表达式是一个多项式时,可以表示为

b0b1z1b2z2X(z)1a1z1a2z2bMzMaNzN

将该多项式分解为真有理式与直接多项式两部分,即得到

b0b1z1b2z2X(z)1a1z1a2z2bN1zN1MNCkzkNaNzk0

当式中M对于X(z)的真有理式部分存在以下两种情况:

情况1: X(z)仅含有单实极点,则部分分式展开式为

MNrkX(z)Ckzk1k11pkzk0Nr1r2111p1z1p2zMNrNkCzk1pNz1k0

X(z)的z反变换为:

x(n)rk(pk)u(n)nk1NMNk0C(nk)k

情况2: X(z)含有一个r重极点。这种情况处理起来比较复杂,本实验不做要求,仅举例4供使用者参考。

z2X(z)2z1.5z0.5,|z|>1,试用部分分式法求z反变换,并列出N=20点的数值。例3:已知

解:由表达式和收敛域条件可知,所求序列x(n)为一个右边序列,且为因果序列。将上式整理得:

111.5z10.5z2

X(z)求z反变换的程序如下:

b=[1, 0, 0]; a=[1, -1.5, 0.5];

[r, p, c]=residuez(b, a)

在MATLAB命令窗将显示:

r= 2

-1

p= 1.0000

0.5000

c= []

由此可知,这是多项式M211z110.5z1

X(z)可写出z反变换公式:

x(n)2u(n)(0.5)nu(n)

如果用图形表现x(n)的结果,可以加以下程序:

N=20; n=0: N-1;

x=r(1)*p(1).^n+r(2)*p(2).^n;

stem(n, x); title('用部分分式法求反变换x(n)');

z1H(z)112z136z2的z反变换,写出h(n)的表示式,并用图形例4:用部分分式法求解函数

与impz求得的结果相比较。

解 求z反变换的程序如下:

b=[0, 1, 0]; a=[1, -12, 36];

[r, p, c]=residuez(b, a)

在MATLAB命令窗将显示:

r= -0.1667- 0.0000i

0.1667+0.0000i

p= 6.0000+0.0000i

6.0000 - 0.0000i

c= []

由此可知,这个多项式含有重极点。多项式分解后表示为:

H(z)0.16670.166716z1(16z1)20.16670.16676z1z116z6(16z1)2

根据时域位移性质,可写出z反变换公式:

0.1667(n1)6n1u(n1)6

h(n)0.1667(6)nu(n)如果要用图形表现h(n)的结果,并与impz子函数求出的结果相比较,可以在前面已有的程序后面加以下程序段:

N=8; n=0: N-1;

h=r(1)*p(1).^n.*[n>=0]+r(2).*(n+1).*p(2).^n.*[n+1>=0];

subplot(1, 2, 1), stem(n, h);

title('用部分分式法求反变换h(n)');

h2=impz(b, a, N);

subplot(1, 2, 2), stem(n, h2);

title('用impz求反变换h(n)');

例5: 用部分分式法求解下列系统函数的z反变换,并用图形与impz求得的结果相比较。

0.13210.3963z20.3963z40.1321z6H(z)10.34319z20.60439z40.20407z6

解 由上式可知,该函数表示一个6阶系统。其程序如下:

a=[1, 0, 0.34319, 0, 0.60439, 0, 0.20407];

b=[0.1321, 0, -0.3963, 0, 0.3963, 0, -0.1321];

[r, p, c]=residuez(b, a)

此时在MATLAB命令窗将显示:

r= -0.1320-0.0001i

-0.1320+0.0001i

-0.1320+0.0001i

-0.1320-0.0001i

0.6537+0.0000i

0.6537-0.0000i

p= -0.6221+0.6240i

-0.6221-0.6240i

0.6221+0.6240i

0.6221-0.6240i

0 + 0.5818i

0 - 0.5818i

c = -0.6473

由于该系统函数分子项与分母项阶数相同,符合M≥N,因此具有冲激项。可以由r、p、c的值写出z反变换的结果。

如果要求解z反变换的数值结果,并用图形表示,同时与impz求解的冲激响应结果进行比较,可以在上述程序加:

N=40; n=0:N-1;

h=r(1)*p(1).^n+r(2)*p(2).^n+r(3)*p(3).^n+r(4)*p(4).^n+…

r(5)*p(5).^n+r(6)*p(6).^n+c(1).*[n==0];

subplot(1, 2, 1), stem(n, real(h), 'k');

title('用部分分式法求反变换h(n)');

h2=impz(b, a, N);

subplot(1, 2, 2), stem(n, h2, 'k');

title('用impz求反变换h(n)');

4)从变换域求系统的响应

系统的响应既可以用时域分析的方法求解,也可以用变换域分析法求解。当已知系统函数H(z),又已知系统输入序列的z变换X(z),则系统响应序列的z变换可以由Y(z)=H(z)X(z)求出。

z2zH(z)2X(z)z1.5z0.5,z1,例6: 已知一个离散系统的函数输入序列求系统在变换域的响

应Y(z)及时间域的响应y(n)。

解: 本例仅采用先从变换域求解Y(z),再用反变换求y(n)的方法,以巩固本实验所学习的内容。

MATLAB程序如下:

syms z

X=z/(z-1);

H=z^2/(z^2-1.5*z+0.5);

Y=X*H

y=iztrans(Y)

程序运行后,将显示以下结果:

Y= z^3/(z-1)/(z^2-3/2*z+1/2)

y= 2*n+2^(-n)

如果要观察时域输出序列y(n),可以在上面的程序后编写以下程序段:

n=0: 20;

y=2*n+2.^(-n);

stem(n, y);

3.4实验内容

1)输入并运行例题程序,理解每一条程序的意义。

2)求以下各序列的z变换:

x1(n)nanx3(n)2nx2(n)sin(0n)x4eansin(n0)

3)求下列函数的z反变换:

X1(z)zzaX2(z)z(za)2zX3(z)zej01z3X4(z)1z1

4)用部分分式法求解下列系统函数的z反变换,写出x(n)的表示式,并用图形与impz求得的结果相比较,取前10个点作图。

1020z1X(z)18z119z212z3

5z2X(z)1z16z2 1(10.9z1)2(10.9z1)

X(z)3. 5实验报告

(1) 列写出通过调试后的实验任务程序,打印或描绘实验程序产生的曲线图形。

(2) 思考题:

① MATLAB中提供的ztrans和iztrans变换方法,使用中有何问题需要注意?

② 回答预习思考题。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top