z逆变换的计算为下面的复数闭合曲线积分:
x[n]=12πj∮CX(z)zn−1dz
式中C表示的是收敛域内的一条闭合曲线。该积分表达式可以利用复数变量理论下的柯西积分定理推导得到。不过本门课程用不上这条式子,因为在离散LTI系统分析中所遇到的典型序列和z变换,有如下更简单的z逆变换求解办法。
观察法(查表)
下面是一个常见序列的z变换表格,通过查表可以由z变换所得的函数反过来求得原序列
Sequence |
Transform |
Region of convergence |
1. δ[n] |
1 |
for all z |
2. u[n] |
11−z−1 |
|z|>1 |
3. −u[−n−1] |
11−z−1 |
|z|<1 |
4. δ[n−m] |
z−m |
z≠{0,m>0∞,m<0 |
5. anu[n] |
11−az−1 |
|z|>a |
6. −anu[−n−1] |
11−az−1 |
|z|<a |
7. nanu[n] |
az−1(1−az−1)2 |
|z|>a |
8. −nanu[−n−1] |
az−1(1−az−1)2 |
|z|<a |
9. cos(ω0n)u[n] |
1−cos(ω0)z−11−2cos(ω0)z−1+z−2 |
|z|>1 |
10. sin(ω0n)u[n] |
sin(ω0)z−11−2cos(ω0)z−1+z−2 |
|z|>1 |
11. rncos(ω0n)u[n] |
1−rcos(ω0)z−11−2rcos(ω0)z−1+r2z−2 |
|z|>r |
12. rnsin(ω0n)u[n] |
rsin(ω0)z−11−2rcos(ω0)z−1+r2z−2 |
|z|>r |
13. {an,0⩽n⩽N−10,else |
1−aNz−N1−az−1 |
|z|>0 |
|
部分分式展开法
不过也经常出现输入序列为组合序列的情况,这种序列的z变换就是它的组成序列的z变换的线性组合。
如果某个输入序列是这些典型序列的线性组合,那么这个输入序列的z变换就能表示成各个典型序列的z变换之和
x1[n]+x2[n]+x3[n]+⋅⋅⋅Z⟷X1(z)+X2(z)+X3(z)+⋅⋅⋅
分式展开法
观察上面的表格可以发现大多数典型序列的z变换都是分数形式,因此这些z变换的组合可以假设为
X(z)=b0a0∏Mk=1(1−ckz−1)∏Nk=1(1−dkz−1)
其中ck是X(z)的非零值零点,dk是X(z)的非零值极点。分母是各个典型序列的分母的乘积,把各个典型序列的z变换(分数)相加就能得到上面的式子。
M<N
若M<N,并且极点都是一阶(即没有相同的极点,即没有相同的dk)的,那么X(z)就能表示为
X(z)=N∑k=1Ak1−dkz−1
此时,等式两边乘以(1−dkz−1),并取z等于其中的某个极点z=dk,可以消去等式右边除了Ak之外所有的项
(1−dkz−1)X(z)|z=dk=Ak
按照这种计算方式可以得到所有的Ak,然后通过查表即可得到各个和式所对应的序列。
M⩾N
若M⩾N则可以用长除法,分子除以分母以使得分式的M<N,然后就可以按照上述方法继续求解
X(z)=M−N∑r=0Brz−r+N∑k=1Ak1−dkz−1
重复极点
如果X(z)有多重极点在z=di,阶数为s(在该极点上有s个重复极点),而且M⩾N,那么有
X(z)=M−N∑r=0Brz−r+N∑k=1,k≠iAk1−dkz−1+s∑m=1Cm(1−diz−1)m
其中Cm由如下式求得
Cm=1(s−m)!(−di)s−m{ds−mdωs−m[(1−diω)sX(ω−1)]}ω=d−1i
例子
考虑有一序列x[n],其z变换为
X(z)=1+2z−1+z−21−32z−1+12z−2=(1+z−1)2(1−12z−1)(1−z−1)|z|>1
右下图为X(z)的零-极点图

- 根据收敛域可知序列x[n]为一个右边序列
- 观察X(z)可发现其两个极点都是一阶的
- 因为X(z)的分子分母都是二次的,即M=N=2
因此X(z)可表示为
X(z)=B0+A11−12z−1+A21−z−1
其中常数B0能用长除法求得
212z−2−32z−1+1¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯)z−2+2z−1+1z−2−3z−1+2––––––––––––––––5z−1−1
余项为一次项,即M<N,因此X(z)可以写成
X(z)=2+−1+5z−1(1−12z−1)(1−z−1)
接下来求系数A1以及A2
A1=[(2+−1+5z−1(1−12z−1)(1−z−1))(1−12z−1)]z=1/2=−9A2=[(2+−1+5z−1(1−12z−1)(1−z−1))(1−z−1)]z=1=8
因此
X(z)=2−91−12z−1+81−z−1
查表可得
x[n]=2δ[n]−9(12)nu[n]+8u[n]
幂级数展开法
如果X(z)由如下幂级数的形式给出时
X(z)=⋅⋅⋅+x[−2]z2+x[−1]z1+x[0]+x[1]z−1+x[2]z−2
如果该多项式长度有限,我们就能得到该序列的所有的值。
如果该多项式无限长,我们可以观察该多项式是否能表示成如下形式
X(z)=∞∑n=−∞f(n)z−n
如果能转换成这种形式,就可以得到序列x[n]=f(n)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 [傅里叶变换及其应用学习笔记] 二十四. 级联,脉冲响应