[离散时间信号处理学习笔记] 8. z逆变换

z逆变换的计算为下面的复数闭合曲线积分:

x[n]=12πjCX(z)zn1dz

式中C表示的是收敛域内的一条闭合曲线。该积分表达式可以利用复数变量理论下的柯西积分定理推导得到。不过本门课程用不上这条式子,因为在离散LTI系统分析中所遇到的典型序列和z变换,有如下更简单的z逆变换求解办法。

 

观察法(查表)

下面是一个常见序列的z变换表格,通过查表可以由z变换所得的函数反过来求得原序列

Sequence Transform Region of convergence
1. δ[n] 1 for all z
2. u[n] 11z1 |z|>1
3. u[n1] 11z1 |z|<1
4. δ[nm] zm z{0,m>0,m<0
5. anu[n] 11az1 |z|>a
6. anu[n1] 11az1 |z|<a
7. nanu[n] az1(1az1)2 |z|>a
8. nanu[n1] az1(1az1)2 |z|<a
9. cos(ω0n)u[n] 1cos(ω0)z112cos(ω0)z1+z2 |z|>1
10. sin(ω0n)u[n] sin(ω0)z112cos(ω0)z1+z2 |z|>1
11. rncos(ω0n)u[n] 1rcos(ω0)z112rcos(ω0)z1+r2z2 |z|>r
12. rnsin(ω0n)u[n] rsin(ω0)z112rcos(ω0)z1+r2z2 |z|>r
13. {an,0nN10,else 1aNzN1az1 |z|>0

 

 

部分分式展开法

不过也经常出现输入序列为组合序列的情况,这种序列的z变换就是它的组成序列的z变换的线性组合。

如果某个输入序列是这些典型序列的线性组合,那么这个输入序列的z变换就能表示成各个典型序列的z变换之和

x1[n]+x2[n]+x3[n]+ZX1(z)+X2(z)+X3(z)+

 

分式展开法

观察上面的表格可以发现大多数典型序列的z变换都是分数形式,因此这些z变换的组合可以假设为

X(z)=b0a0k=1M(1ckz1)k=1N(1dkz1)

其中ckX(z)的非零值零点,dkX(z)的非零值极点。分母是各个典型序列的分母的乘积,把各个典型序列的z变换(分数)相加就能得到上面的式子。

 

M<N

M<N,并且极点都是一阶(即没有相同的极点,即没有相同的dk)的,那么X(z)就能表示为

X(z)=k=1NAk1dkz1

此时,等式两边乘以(1dkz1),并取z等于其中的某个极点z=dk,可以消去等式右边除了Ak之外所有的项

(1dkz1)X(z)|z=dk=Ak

按照这种计算方式可以得到所有的Ak,然后通过查表即可得到各个和式所对应的序列。

 

MN

MN则可以用长除法,分子除以分母以使得分式的M<N,然后就可以按照上述方法继续求解

X(z)=r=0MNBrzr+k=1NAk1dkz1

 

重复极点

如果X(z)有多重极点在z=di,阶数为s(在该极点上有s个重复极点),而且MN,那么有

X(z)=r=0MNBrzr+k=1,kiNAk1dkz1+m=1sCm(1diz1)m

其中Cm由如下式求得

Cm=1(sm)!(di)sm{dsmdωsm[(1diω)sX(ω1)]}ω=di1

 

例子

考虑有一序列x[n],其z变换为

X(z)=1+2z1+z2132z1+12z2=(1+z1)2(112z1)(1z1)|z|>1

右下图为X(z)的零-极点图

Exp

  • 根据收敛域可知序列x[n]为一个右边序列
  • 观察X(z)可发现其两个极点都是一阶的
  • 因为X(z)的分子分母都是二次的,即M=N=2

因此X(z)可表示为

X(z)=B0+A1112z1+A21z1

其中常数B0能用长除法求得

212z232z1+1)z2+2z1+1¯z23z1+2_5z11

余项为一次项,即M<N,因此X(z)可以写成

X(z)=2+1+5z1(112z1)(1z1)

接下来求系数A1以及A2

A1=[(2+1+5z1(112z1)(1z1))(112z1)]z=1/2=9A2=[(2+1+5z1(112z1)(1z1))(1z1)]z=1=8

因此

X(z)=29112z1+81z1

查表可得

x[n]=2δ[n]9(12)nu[n]+8u[n]

 

 

幂级数展开法

如果X(z)由如下幂级数的形式给出时

X(z)=+x[2]z2+x[1]z1+x[0]+x[1]z1+x[2]z2

如果该多项式长度有限,我们就能得到该序列的所有的值。

如果该多项式无限长,我们可以观察该多项式是否能表示成如下形式

X(z)=n=f(n)zn

如果能转换成这种形式,就可以得到序列x[n]=f(n)

posted @   TaigaComplex  阅读(12260)  评论(1编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2016-01-18 [傅里叶变换及其应用学习笔记] 二十四. 级联,脉冲响应
点击右上角即可分享
微信分享提示