z变换及其收敛域

回顾前面的文章,序列$x[n]$的傅里叶变换(实际上是DTFT,由于本书把它叫做序列的傅里叶变换,因此这里以及后面的文章也统一称DTFT为傅里叶变换)被定义为

$X(e^{j\omega}) = \displaystyle{ \sum_{n=-\infty}^{\infty}x[n]e^{-j\omega n} }$

序列$x[n]$的z变换被定义成

$X(z) = \displaystyle{ \sum_{n=-\infty}^{\infty}x[n]z^{-n} }$

其中$z$就是一个复数变量,可见$z$变换与傅里叶变换一样把序列变成了函数。复变量$z$可以表示形式$z=|z|e^{j\omega}=re^{j\omega}$,代入z变换变成

$X(z) = \displaystyle{ \sum_{n=-\infty}^{\infty}x[n]r^{-n}e^{-j\omega n} }$

可以发现傅里叶变换就是$r=1$的z变换。

 

要使得z变换有意义,那么变换所得的函数必须在有限处收敛,即

$\begin{align*}
|X(z)|&= \left|\sum_{n=-\infty}^{\infty}x[n]r^{-n}e^{-j\omega n}\right|\\
&<\sum_{n=-\infty}^{\infty}|x[n]|r^{-n} \\
&=x[0]+ \sum_{n=1}^{\infty}|x[n]|(r^{-1})^n+\sum_{n=1}^{\infty}|x[-n]|r^n <\infty
\end{align*}$

按照root test,需要满足以下条件才能使得函数收敛

$\left\{\begin{matrix}
\displaystyle{ \limsup_{n\to\infty}|x[n]|^{\frac{1}{n}}r^{-1} < 1 }\\
\displaystyle{ \limsup_{n\to\infty}|x[-n]|^{\frac{1}{n}}r < 1 }
\end{matrix}\right.$

$\left\{\begin{matrix}
r &> &\displaystyle{\lim_{n\to\infty} |x[n]|^{\frac{1}{n}}} \\
r &< &\displaystyle{\lim_{n\to\infty} |x[-n]|^{\frac{1}{-n}}}
\end{matrix}\right.$

观察上面的不等式,可以发现z变换的收敛可以分为五种

  • $x[n]$是右边序列,即序列在$n<N_1<\infty$处全为0,那么该序列的收敛域就是从极点(使得函数趋于$\pm\infty$的点)往外延伸到$z=\pm\infty$
  • $x[n]$是左边序列,即序列在$n>N_2>-\infty$处全为0 ,那么该序列的收敛域就是从极点向内延伸至$z=0$
  • $x[n]$是双边序列,把该序列分成右边序列与左边序列后,如果这两个序列的z变换的收敛域有重合的部分,则该序列z变换的收敛域呈圆环状
  • $x[n]$是双边序列,把该序列分成右边序列与左边序列后,如果这两个序列的z变换的收敛域没有重合的部分,则该序列z变换不存在收敛域
  • $x[n]$是有限长序列,那么该序列的z变换必定在有限的范围内收敛

图中阴影部分为收敛域,其中红色圆圈是$|z| = r = 1$,即傅里叶变换,如果z变换的收敛域包含$r=1$的圆圈,就表明该序列的傅里叶变换收敛。

z变换例子

考虑一个为两个实指数和的信号

$x[n] = \left(\frac{1}{2}\right)^n u[n]+\left(-\frac{1}{3}\right)^n u[n]$

其z变换为

$\begin{align*}
X(z) &= \sum_{n=-\infty}^{\infty}\left\{ \left(\frac{1}{2} \right )^n u[n]+\left(-\frac{1}{3} \right )^n u[n] \right \}z^{-n}\\
&=\sum_{n=-\infty}^{\infty}\left(\frac{1}{2} \right )^n u[n]z^{-n}+\sum_{n=-\infty}^{\infty}\left(-\frac{1}{3} \right )^n u[n]z^{-n}\\
&=\sum_{n=0}^{\infty}\left(\frac{1}{2}z^{-1} \right )^n +\sum_{n=0}^{\infty}\left(-\frac{1}{3}z^{-1} \right )^n \\
&=\frac{1}{1-\frac{1}{2}z^{-1}}+\frac{1}{1+\frac{1}{3}z^{-1}} \quad Geometric\ Series\\
&=\frac{2z\left(z-\frac{1}{12} \right )}{\left(z-\frac{1}{2} \right )\left(z+\frac{1}{3} \right )}
\end{align*}$

为了使z变换收敛,必须满足条件

$\left\{\begin{matrix}
\left| \frac{1}{2}z^{-1}\right|&<&1\\
\left| -\frac{1}{3}z^{-1}\right|&<&1
\end{matrix}\right.$

$\left\{\begin{matrix}
\left| z\right|&>&\frac{1}{2}\\
\left| z\right|&>&\frac{1}{3}
\end{matrix}\right.$

由此可得到收敛域为$|z|>\frac{1}{2}$。观察z变换的结果,可以发现:

当$z=\frac{1}{2}$或者$z=-\frac{1}{3}$时,z变换趋于无穷,因此这两个点为极点

当$z=0$或者$z=\frac{1}{12}$时,z变换为0,因此这两个点为零点

[离散时间信号处理学习笔记] 7. z变换的更多相关文章

  1. [离散时间信号处理学习笔记] 10. z变换与LTI系统

    我们前面讨论了z变换,其实也是为了利用z变换分析LTI系统. 利用z变换得到LTI系统的单位脉冲响应 对于用差分方程描述的LTI系统而言,z变换将十分有用.有如下形式的差分方程: $\displays ...

  2. [离散时间信号处理学习笔记] 9. z变换性质

    z变换描述 $x[n] \stackrel{\mathcal{Z}}{\longleftrightarrow}X(z) ,\quad ROC=R_x$ 序列$x[n]$经过z变换后得到复变函数$X(z ...

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

    z逆变换的计算为下面的复数闭合曲线积分: $x[n] = \displaystyle{\frac{1}{2\pi j}}\oint_{C}X(z)z^{n-1}dz$ 式中$C$表示的是收敛域内的一条 ...

  4. [离散时间信号处理学习笔记] 3. 一些基本的LTI系统

    首先我们需要先对离散时间系统进行概念上的回顾: $y[n] = T\{ x[n] \}$ 上面的式子表征了离散时间系统,也就是把输入序列$x[n]$,映射称为$y[n]$的输出序列. 不过上述式子也可 ...

  5. SharpGL学习笔记(六) 裁剪变换

    在OpenGL中,除了视景体定义的6个裁剪平面(上下左右前后)外, 用户还可以定义一个或者多个附加的裁剪平面,以去掉场景中无关的目标. 附加平面裁剪函数原型如下: ClipPlane(OpenGL.G ...

  6. SharpGL学习笔记(五) 视口变换

    视口变换主是将视景体内投影的物体显示到二维的视口平面上. 在计算机图形学中,它的定义是将经过几何变换, 投影变换和裁剪变换后的物体显示于屏幕指定区域内. 前面我们讨论过的透视投影, 正射投影, 它们都 ...

  7. SharpGL学习笔记(七) OpenGL的变换总结

    笔者接触OpenGL最大的困难是: 经常调试一份代码时, 屏幕漆黑一片, 也不知道结果对不对,不知道如何是好! 这其实就是关于OpenGL"变换"的基础概念没有掌握好, 以至于对& ...

  8. z 变换

    1. z 变换 单位脉冲响应为 \(h[n]\) 的离散时间线性时不变系统对复指数输入 \(z^n\) 的响应 \(y[n]\) 为 \[ \tag{1} y[n] = H(z) z^{n}\] 式中 ...

  9. 数字信号处理--Z变换,傅里叶变换,拉普拉斯变换

    傅立叶变换.拉普拉斯变换.Z变换最全攻略 作者:时间:2015-07-19来源:网络       傅立叶变换.拉普拉斯变换.Z变换的联系?他们的本质和区别是什么?为什么要进行这些变换.研究的都是什么? ...

随机推荐

  1. 《maven in action》部分知识点总结

    maven in action 的部分知识点总结 今天又将<maven in action>这本书看了一遍,总结了一下,大概需要的知识点 (一)解耦   使用maven,在没有任何实际的J ...

  2. IDEA的Maxcomputer Studio开发

    一.安装 在IDEA中File > Settings > Plugins中Browse repositories搜索安装即可:MaxCompute Studio 二.开发UDF.UDAF. ...

  3. 【原创】自己动手写一个能操作redis的客户端

    引言 redis大家在项目中经常会使用到.官网也提供了多语言的客户端供大家操作redis,如下图所示 但是,大家有思考过,这些语言操作redis背后的原理么?其实,某些大神会说 只要按照redis的协 ...

  4. 来,看看MySQL 5.6, 5.7, 8.0的新特性

    对于MySQL的历史,相信很多人早已耳熟能详,这里就不要赘述.下面仅从产品特性的角度梳理其发展过程中的里程碑事件. 1995年,MySQL 1.0发布,仅供内部使用. 1996年,MySQL 3.11 ...

  5. Item 18: 使用srd::unique_ptr来管理独占所有权的资源

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 当你需要一个智能指针的时候,std::unique_ptr通常是最 ...

  6. 来自后端的突袭? --开包即食的教程带你浅尝最新开源的C# Web引擎 Blazor

    在今年年初, 恰逢新春佳节临近的时候. 微软给全球的C#开发者们, 着实的送上了一分惊喜. 微软正式开源Blazor ,将.NET带回到浏览器. 这个小惊喜, 迅速的在dotnet开发者中间传开了. ...

  7. leveldb和fork的初始化顺序

    我们服务器内用leveldb存一些不是很重要的, 但是又需要(半)持久化的东西. 可是自从2016到现在, 碰见好几次不同类型的死锁. 直到今天, 才发现真正的原因, 那就是leveldb不支持for ...

  8. JS 原型与原型链

    图解: 一.普通对象 跟 函数对象 JavaScript 中,一切皆对象.但对象也有区别,分为 普通对象 跟 函数对象,Object 和 Function 是 JavaScript 自带的函数对象. ...

  9. CodeIgniter框架对数据库查询结果进行统计

    假设有一个user表,如果要查询符合条件sex=male的记录数量,有下面几种方法: 方法一:先取回所有符合条件的记录,再count $res = $this->db->query(&qu ...

  10. promise-笔记

    promise 封装Promise var fs = require('fs') function pReadFile(filePath) { return new Promise(function ...