Jacky's blog Jacky's blog
首页
  • 编码专题
  • 深入浅出 Vite
  • 深入浅出 babel
  • 快速上手API
  • 深入浅出 react
  • Node

    • code-notebook
  • 状态管理

    • redux
  • 前端工程化

    • Wepack
  • React源码

    • React源码
  • 组件库封装

    • 组件库
  • 开发工具

    • Vscode 插件
  • 项目展示
  • 案例中心 (opens new window)
  • First Project
  • 基础算法题
  • 链表题
  • 动态规划
  • 双指针
  • 递归
  • 数据结构
  • 前端学习计划 (opens new window)
  • 技术随笔
  • 转载文章
  • 包管理工具
  • 前端学习周报
  • VSCode插件
  • Promise 专题
  • 函数技巧
  • React 专题
  • 配置文件

    • TSCONFIG-配置 (opens new window)
    • NGINX-配置 (opens new window)
    • 正则规则查询手册 (opens new window)
    • Lint 配置 (opens new window)
  • 教程

    • GIT-教程
    • NPM SCRIPTS-工作流 (opens new window)
    • DOCKER-教程 (opens new window)
    • LERNA-教程 (opens new window)
    • GIT-常用操作整理 (opens new window)
  • VSCode

    • LAUNCH.JSON (opens new window)
  • 指令

    • NPM 指令 (opens new window)
    • NVM 指令 (opens new window)
    • Nginx 指令 (opens new window)
    • YARN 指令 (opens new window)
    • PNPM 指令 (opens new window)
  • 库

    • FS-EXTRA 库 (opens new window)
    • NODE 库-PATH (opens new window)
  • 永远的神

    • 魔法师卡颂-自顶向下学 React 源码 (opens new window)
    • 全栈潇晨 (opens new window)
    • 博客-程序员山月-Daily (opens new window)
    • 淘系前端:冴羽 (opens new window)
  • 系列文章

    • 《图解HTTP》 (opens new window)
    • 《ES6标准入门》 (opens new window)
    • 《现代JavaScript教程》 (opens new window)
    • 《深入浅出Webpack》 (opens new window)
    • VSCode 插件系列:小茗同学 (opens new window)
    • JEST 教程 (opens new window)
    • 前端精读周刊:各种精读系列 (opens new window)
    • 一文吃透系列 (opens new window)
    • 图解 REACT 原理 (opens new window)
  • 实用网站

    • MDN (opens new window)
    • CAN I USE (opens new window)
    • TYPESCRIPT-ESLint-RULES (opens new window)
    • ESLint-RULES (opens new window)
    • FRONT-END TREND (opens new window)
    • NPM TREND (opens new window)
    • 在线分析 Node 依赖 (opens new window)
    • FIND NPM (opens new window)
    • CODE PEN (opens new window)
    • 印记中文 (opens new window)
    • TOOL.LU (opens new window)
    • 阮一峰-网道 (opens new window)
    • DIGITAL OCEAN (opens new window)
    • DEVDOCS.IO (opens new window)
    • JOI (opens new window)
  • 算法

    • 小浩算法 (opens new window)
    • LABULADONG 的算法小抄 (opens new window)
    • 力扣 SOLUTION (opens new window)
    • HACKER RANK (opens new window)
    • 代码随想录 (opens new window)
  • 博客系列

    • 美团大佬 (opens new window)
    • 蜡笔小伟 (opens new window)
    • 优秀博客1 (opens new window)
    • 优秀博客2-umi (opens new window)
    • 优质博客 (opens new window)
  • CSS

    • CSS-EASING 库 (opens new window)
    • ROUGH.JS (opens new window)
    • CSS 网站收集
    • UNOCSS (opens new window)
  • 前端

    • PROMISE (opens new window)
    • UNDERSCORE.JS (opens new window)
    • study with BGM (opens new window)
    • nginx【B站视频】 (opens new window)
    • 机器学习
    • Js基础
  • 掘金已购课程

    • 前端自动化测试精讲 (opens new window)
    • 深入浅出 Vite (opens new window)
    • 现代 Web 布局 (opens new window)
    • 前端算法与数据结构 (opens new window)
    • 基于 Vite 的 SSG 框架开发实战 (opens new window)
    • SSR 实战:官网开发指南 (opens new window)
    • WebGL 入门与实践 (opens new window)
    • 玩转 CSS 的艺术之美 (opens new window)
    • 前端调试通关秘籍 (opens new window)
    • React 进阶实践指南 (opens new window)
    • TypeScript 全面进阶指南 (opens new window)
    • 前端缓存技术与方案解析 (opens new window)
    • npm scripts 前端工作流 (opens new window)
    • Webpack5 核心原理与应用实践 (opens new window)
  • 购物车

    • 张鑫旭-技术写作指南 (opens new window)
    • 深入剖析 Node.js 底层原理 (opens new window)
    • 前端开发者的现代 C++ 课 (opens new window)
    • 从前端到全栈 (opens new window)
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Jacky Wang

行到水穷处,坐看云起时
首页
  • 编码专题
  • 深入浅出 Vite
  • 深入浅出 babel
  • 快速上手API
  • 深入浅出 react
  • Node

    • code-notebook
  • 状态管理

    • redux
  • 前端工程化

    • Wepack
  • React源码

    • React源码
  • 组件库封装

    • 组件库
  • 开发工具

    • Vscode 插件
  • 项目展示
  • 案例中心 (opens new window)
  • First Project
  • 基础算法题
  • 链表题
  • 动态规划
  • 双指针
  • 递归
  • 数据结构
  • 前端学习计划 (opens new window)
  • 技术随笔
  • 转载文章
  • 包管理工具
  • 前端学习周报
  • VSCode插件
  • Promise 专题
  • 函数技巧
  • React 专题
  • 配置文件

    • TSCONFIG-配置 (opens new window)
    • NGINX-配置 (opens new window)
    • 正则规则查询手册 (opens new window)
    • Lint 配置 (opens new window)
  • 教程

    • GIT-教程
    • NPM SCRIPTS-工作流 (opens new window)
    • DOCKER-教程 (opens new window)
    • LERNA-教程 (opens new window)
    • GIT-常用操作整理 (opens new window)
  • VSCode

    • LAUNCH.JSON (opens new window)
  • 指令

    • NPM 指令 (opens new window)
    • NVM 指令 (opens new window)
    • Nginx 指令 (opens new window)
    • YARN 指令 (opens new window)
    • PNPM 指令 (opens new window)
  • 库

    • FS-EXTRA 库 (opens new window)
    • NODE 库-PATH (opens new window)
  • 永远的神

    • 魔法师卡颂-自顶向下学 React 源码 (opens new window)
    • 全栈潇晨 (opens new window)
    • 博客-程序员山月-Daily (opens new window)
    • 淘系前端:冴羽 (opens new window)
  • 系列文章

    • 《图解HTTP》 (opens new window)
    • 《ES6标准入门》 (opens new window)
    • 《现代JavaScript教程》 (opens new window)
    • 《深入浅出Webpack》 (opens new window)
    • VSCode 插件系列:小茗同学 (opens new window)
    • JEST 教程 (opens new window)
    • 前端精读周刊:各种精读系列 (opens new window)
    • 一文吃透系列 (opens new window)
    • 图解 REACT 原理 (opens new window)
  • 实用网站

    • MDN (opens new window)
    • CAN I USE (opens new window)
    • TYPESCRIPT-ESLint-RULES (opens new window)
    • ESLint-RULES (opens new window)
    • FRONT-END TREND (opens new window)
    • NPM TREND (opens new window)
    • 在线分析 Node 依赖 (opens new window)
    • FIND NPM (opens new window)
    • CODE PEN (opens new window)
    • 印记中文 (opens new window)
    • TOOL.LU (opens new window)
    • 阮一峰-网道 (opens new window)
    • DIGITAL OCEAN (opens new window)
    • DEVDOCS.IO (opens new window)
    • JOI (opens new window)
  • 算法

    • 小浩算法 (opens new window)
    • LABULADONG 的算法小抄 (opens new window)
    • 力扣 SOLUTION (opens new window)
    • HACKER RANK (opens new window)
    • 代码随想录 (opens new window)
  • 博客系列

    • 美团大佬 (opens new window)
    • 蜡笔小伟 (opens new window)
    • 优秀博客1 (opens new window)
    • 优秀博客2-umi (opens new window)
    • 优质博客 (opens new window)
  • CSS

    • CSS-EASING 库 (opens new window)
    • ROUGH.JS (opens new window)
    • CSS 网站收集
    • UNOCSS (opens new window)
  • 前端

    • PROMISE (opens new window)
    • UNDERSCORE.JS (opens new window)
    • study with BGM (opens new window)
    • nginx【B站视频】 (opens new window)
    • 机器学习
    • Js基础
  • 掘金已购课程

    • 前端自动化测试精讲 (opens new window)
    • 深入浅出 Vite (opens new window)
    • 现代 Web 布局 (opens new window)
    • 前端算法与数据结构 (opens new window)
    • 基于 Vite 的 SSG 框架开发实战 (opens new window)
    • SSR 实战:官网开发指南 (opens new window)
    • WebGL 入门与实践 (opens new window)
    • 玩转 CSS 的艺术之美 (opens new window)
    • 前端调试通关秘籍 (opens new window)
    • React 进阶实践指南 (opens new window)
    • TypeScript 全面进阶指南 (opens new window)
    • 前端缓存技术与方案解析 (opens new window)
    • npm scripts 前端工作流 (opens new window)
    • Webpack5 核心原理与应用实践 (opens new window)
  • 购物车

    • 张鑫旭-技术写作指南 (opens new window)
    • 深入剖析 Node.js 底层原理 (opens new window)
    • 前端开发者的现代 C++ 课 (opens new window)
    • 从前端到全栈 (opens new window)
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 数字信号处理

    • 数字信号处理--FIR的线性相位特性
    • 数字信号处理 -- Z 变换
      • 什么是Z变换?
        • 1. 直接对离散信号定义
        • 2. 从连续信号导出
        • 3. 离散信号x(n)的含义
        • 3. 真频率与"假"频率
        • 4. 拉普拉斯变换、Z变换与DFT变换的联系
      • Z 变换的收敛域
      • Z变换的实例
      • 常用信号 Z变换
    • 数字信号处理--Z变换之极零分析
    • 数字信号处理--功率谱估计
    • 数字信号处理--全通系统与最小相位系统
    • 数字信号处理--相关函数
  • scikit-learn-机器学习常用算法原理及编程实战

  • 读书笔记
  • 数字信号处理
wangjiasheng
2020-04-06
目录

数字信号处理 -- Z 变换

Z变换是离散系统与离散信号分析与综合的重要工具,其地位和作用犹如拉普拉斯对于连续系统和连续信号。

从连续信号过渡到离散信号会导致频谱产生周期性,所以连续信号与离散信号存在本质性区别。

# 什么是Z变换?

ZZZ变换的定义,根据《数字信号处理》这本书,可以从两个角度导出:

  • 直接对离散信号定义

  • 对抽样后的信号进行拉普拉斯变换 ∼\sim∼ ZZZ变换

# 1. 直接对离散信号定义

对离散信号x(n)x(n)x(n),n=−∞∼+∞n=-\infin \sim + \infinn=−∞∼+∞,可直接给出x(n)x(n)x(n)的ZZZ变换的定义:

X(z)=∑n=−∞∞x(n)z−nX(z) = \sum_{n=-\infin}^{\infin}x(n)z^{-n} X(z)=n=−∞∑∞​x(n)z−n

又,实际信号是因果的

X(z)=∑n=0∞x(n)z−nX(z) = \sum_{n=0}^{\infin}x(n)z^{-n} X(z)=n=0∑∞​x(n)z−n

# 2. 从连续信号导出

这里的目的是为了解释实际连续信号圆频率Ω\OmegaΩ ,归一频率f′f'f′,离散信号圆周频率www 之间的关系。

对【采样后】连续信号进行拉普拉斯变换:

X(s)=∫−∞+∞x(nTs)e−stdt=∑n=−∞∞x(nTs)e−snTsX(s) = \int_{-\infin}^{+\infin} x(nT_s)e^{-st}dt = \sum_{n=-\infin}^{\infin}x(nT_s)e^{-snT_s} X(s)=∫−∞+∞​x(nTs​)e−stdt=n=−∞∑∞​x(nTs​)e−snTs​

令z=esTsz = e^{sT_s}z=esTs​ 【可以发现 sss 与 zzz 是一一对应的】,也可得到ZZZ变换的定义式

X(z)=∑n=−∞∞x(n)z−nX(z) = \sum_{n=-\infin}^{\infin}x(n)z^{-n} X(z)=n=−∞∑∞​x(n)z−n

通过以上的分析,就将连续信号与离散信号联系了起来:

z=esTsz = e^{sT_s} z=esTs​

# 3. 离散信号x(n)的含义

离散信号x(n)x(n)x(n)是从连续信号x(t)x(t)x(t)中采样出来的,这个时候就有个疑问,离散信号的n与t有什么关系呢?

离散信号x(n)x(n)x(n)是连续信号采样x(nTs)x(nT_s)x(nTs​)的简写。

# 3.真频率与"假"频率

我这里将真频率定义为连续信号中的频率,假频率是经过采样后的离散信号中的频率。真频率的单位就是Hz,假频率是将真频率根据采样频率fs归一化得到的,反映的是一种比值,单位无量纲。

拉普拉斯复变量:s=σ+jΩs = \sigma + j \Omegas=σ+jΩ

Z复变量:

z=esTs=e(σ+jΩ)Ts=∣z∣ejwz = e^{sT_s} = e^{(\sigma+j\Omega)T_s} = |z|e^{jw} z=esTs​=e(σ+jΩ)Ts​=∣z∣ejw

拉普拉斯变换【实际连续频率Ω\OmegaΩ】与Z变换【离散信号频率www】的关系:

ω=ΩTs=2πf/fs=2πf′\omega = \Omega T_s = 2 \pi f /f_s = 2\pi f' ω=ΩTs​=2πf/fs​=2πf′

真频率与假频率的关系:

# 4. 拉普拉斯变换、Z变换与DFT变换的联系

傅里叶变换:

X(ejw)=∑n=−∞∞x(n)e−jwnX(e^{jw}) = \sum_{n=-\infin}^{\infin}x(n)e^{-jwn} X(ejw)=n=−∞∑∞​x(n)e−jwn

Z 变换:

X(z)=∑n=−∞∞x(n)z−nX(z) = \sum_{n=-\infin}^{\infin}x(n)z^{-n} X(z)=n=−∞∑∞​x(n)z−n

将z=esTs=∣z∣ejwz = e^{sT_s}=|z|e^{jw}z=esTs​=∣z∣ejw 代入Z变换公式中,

X(∣z∣ejw)=∑n=−∞∞[x(n)∣z∣−n]e−jwnX(|z|e^{jw})= \sum_{n=-\infin}^{\infin}[x(n)|z|^{-n}]e^{-jwn} X(∣z∣ejw)=n=−∞∑∞​[x(n)∣z∣−n]e−jwn

当∣z∣=1|z|=1∣z∣=1时(也即σ=0\sigma=0σ=0时),ZZZ变换→\rightarrow→ 离散序列傅里叶变换

X(z)∣z=ejw=X(ejw)=∑n=−∞∞x(n)e−jwnX(z)|_{z= e^{jw}} = X(e^{jw}) = \sum_{n=-\infin}^{\infin}x(n)e^{-jwn} X(z)∣z=ejw​=X(ejw)=n=−∞∑∞​x(n)e−jwn

sss平面与zzz平面下的傅里叶变换:

注:S平面是直角坐标系,Z平面是极坐标系。可以发现在S平面与Z平面都可以转换为傅里叶变换。

# Z 变换的收敛域

这里主要就是用到了幂级数的收敛,

例:x(n)=anu(n)x(n) = a^n u(n)x(n)=anu(n) ,其中u(n)u(n)u(n)是单位阶跃函数,求x(n)x(n)x(n)的Z变换并决定收敛域。

X(z)=∑n=−∞∞anu(n)z−n=∑n=0∞(az−1)nX(z) = \sum_{n=-\infin}^{\infin}a^nu(n)z^{-n} = \sum_{n=0}^{\infin}(az^{-1})^n X(z)=n=−∞∑∞​anu(n)z−n=n=0∑∞​(az−1)n

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

∣az−1∣<1|az^{-1}|<1 ∣az−1∣<1

则,当∣Z∣>∣a∣|Z|>|a|∣Z∣>∣a∣时,级数收敛:

X(z)=11−az−1=zz−aX(z) = \frac{1}{1-az^{-1}} = \frac{z}{z-a} X(z)=1−az−11​=z−az​

情况分析 是否存在傅里叶变换
$ a
$ a

# Z变换的实例

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

x[n]=(12)nu[n]+(−13)nu[n]x[n]=\left(\frac{1}{2}\right)^{n} u[n]+\left(-\frac{1}{3}\right)^{n} u[n] x[n]=(21​)nu[n]+(−31​)nu[n]

其Z变换为:

X(z)=∑n=−∞∞{(12)nu[n]+(−13)nu[n]}z−n=∑n=−∞∞(12)nu[n]z−n+∑n=−∞∞(−13)nu[n]z−n=∑n=0∞(12z−1)n+∑n=0∞(−13z−1)n=11−12z−1+11+13z−1 Geometric Series =2z(z−112)(z−12)(z+13)\begin{aligned} 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 \text { Geometric Series } \\ &=\frac{2 z\left(z-\frac{1}{12}\right)}{\left(z-\frac{1}{2}\right)\left(z+\frac{1}{3}\right)} \end{aligned} X(z)​=n=−∞∑∞​{(21​)nu[n]+(−31​)nu[n]}z−n=n=−∞∑∞​(21​)nu[n]z−n+n=−∞∑∞​(−31​)nu[n]z−n=n=0∑∞​(21​z−1)n+n=0∑∞​(−31​z−1)n=1−21​z−11​+1+31​z−11​ Geometric Series =(z−21​)(z+31​)2z(z−121​)​​

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

{∣12z−1∣<1∣−13z−1∣<1\left\{\begin{array}{ccc} \left|\frac{1}{2} z^{-1}\right| & < & 1 \\ \left|-\frac{1}{3} z^{-1}\right| & < & 1 \end{array}\right. {∣∣​21​z−1∣∣​∣∣​−31​z−1∣∣​​<<​11​

即

{∣z∣>12∣z∣>13\left\{\begin{array}{ccc} |z| & > & \frac{1}{2} \\ |z| & > & \frac{1}{3} \\ \end{array}\right. {∣z∣∣z∣​>>​21​31​​

# 常用信号 Z变换

# 参考资料

  1. https://www.cnblogs.com/TaigaCon/p/8299433.html
  2. 《数字信号处理》(第3版)
编辑 (opens new window)
#数#字#信#号#处#理
上次更新: 2022/04/06, 15:04:00
数字信号处理--FIR的线性相位特性
数字信号处理--Z变换之极零分析

← 数字信号处理--FIR的线性相位特性 数字信号处理--Z变换之极零分析→

最近更新
01
如何理解浏览器的 user agent 用户代理的含义?
11-05
02
浏览器事件循环机制
10-31
03
浏览器页面渲染机制【2023】
10-15
更多文章>
Theme by Vdoing | Copyright © 2020-2023
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式