Loading [MathJax]/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Matlab滤波器设计:Z变换与Z逆变换原理及Matlab实现代码

Matlab滤波器设计:Z变换与Z逆变换原理及Matlab实现代码

作者头像
用户1143655
发布于 2023-02-23 03:52:45
发布于 2023-02-23 03:52:45
3.7K00
代码可运行
举报
文章被收录于专栏:全栈之殇全栈之殇
运行总次数:0
代码可运行

Z变换在离散时间信号与系统中的地位相当于拉普拉斯变换在连续时间信号与系统中的地位。它可以求解常系数差分方程,进而估算一个线性时不变系统的响应及线性滤波器的设计。

一、Z变换的数学表述方法及Matlab实现代码

1、Z变换的数学表述方法

对于连续时间信号

,其拉普拉斯变换为

,即

。经过离散化处理,每隔一个采样周期

取得一个采样点,进而根据拉普拉斯变换延迟定理,可以得到

因此,对于离散时间序列

,采用拉普拉斯变换的延迟定理可以得到

XA(s)=XA(0)+XA(1)esTs+xA(2)e2sTs+...

其中,

xA(n)

XA(s)

表示采样后的时间信号与对应的拉普拉斯变换,进而

XA(s)

可以重新表示为:

XA(s)=n=xA(nTs)ensTs(1)

其中,

xA(nTs)

:为模拟信号

x(t)

在各个

nTs

时刻的采样值。

为了进一步简化数学表示,得到如下的数学变换,

进而得到Z变换的数学表达式:

其中具有如下关系:

此时就从连续系统的拉普拉斯变换转换为离散系统的Z变换,因此,Z变换就是离散系统的拉普拉斯变换。

其中

式是双边Z变换,但是对于因果关系的时间序列,如下所示,单边Z变换是用单边求和的形式来描述:

而对于有限时间序列,如果

序列长度为

,Z变换的表达式可以用有限项求和形式来表示:

S平面与Z平面的映射关系如下所示:在S平面上通常使用直角坐标系统,因此复变量s可以表示为

;而在Z平面上通常使用极坐标系统,即

,将它们代入

得到,并将采样周期简写为

即,

上式表明,z的模值

的实部

相关;而z的幅角

的虚部

相关,其具体的关系如下所示:

  • (1)对于

的关系,

表示z的模值,即z变量到原点的距离;而

表示

变量的实部,由

式可得如下所示两者对应关系:

  • 如下图所示,上式表明S平面的虚轴(即

)时,映射到Z平面上半径为

)的圆,即单位圆;而S的左半平面(

)映射到Z平面上的单位圆内区域(

);S平面右半平面(

)映射到Z平面上是单位圆外(

)。

  • (2)S平面的虚变量

与Z平面的幅角

之间的关系,显然

是一种线性关系。当

时,

,表明S平面的实轴映射到Z平面上是正实轴。根据公式

可得,S平面上的原点

正好映射到Z平面的

处。

时,

的映射关系就稍微复杂。当

增长到

时,即从

增长到

时(

为抽样频率),

增长到

,对应Z平面上的幅角旋转了一周。也就是说S平面的虚轴仅从

的区域,就已经映射到整个Z平面。

  • 如果

,则对应于Z平面单位圆内旋转一周;

  • 如果

,则对应于Z平面单位圆外旋转一周;

  • 如果

,则对应于Z平面单位圆上旋转一周。

  • 进而,当S的虚部

增长到

(即

增长到

)时,

增长到

,由于

的周期函数,所以此时仍然映射到Z平面上的同样位置,只不过是在旋转一周的基础上再旋转一周,进而在Z平面上重叠一次。此时,这种多值函数的映射关系可以直观看作将S平面分割成一条条宽度为

的横条。这些横条中的每一条都同样地映射到整个Z平面上且相互重叠在一起,可以表示为如下所示的数学公式:

2、Z变换的Matlab实现代码

在Matlab的符号运算中Z变换的函数为ztrans

  • (1)当

时,对

进行Z变换,Matlab实现代码如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
syms a n  % 声明符号变量

x = a^n;
X = ztrans(x);
X

运行代码,执行结果为X=-z/(a-z),其数学公式如下所示:

  • (2)将正弦波

进行Z变换,其Matlab命令如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
syms a n

x = sin(a * n);
X = ztrans(x);
X

运行代码,执行结果为X=(z*(sin a))/(z^2-2*cos a*z + 1),其数学公式如下所示:

二、Z变换的收敛域

通常,序列的Z变换

并不一定对任何

值都收敛,在Z平面上满足级数收敛的区域成为收敛域(Region of Convergence, ROC)。根据级数的知识,级数一致收敛条件是绝对可积。也就是说,如果在Z平面上的某处(即某个z值点)级数一致收敛,则对此z值满足:

即其各项模值的和必须有界。由此可以想到,Z平面上的收敛域总是环形,因此

式可以表示为:

因此,式

幂级数的收敛域由满足

式的全部

值所组成。因此,如果某个

值是在ROC内,即全部由

确定的圆上的z值也一定在ROC内。如下图所示,结果收敛域一定由在Z平面内以原点为中心的圆环所组成。收敛域的外边界是一个圆(或者可能外向延伸到无穷大),而内边界也是一个圆(或者ROC向内可包括原点)。

通常,级数在Z平面上的收敛域范围可以表示为:

上式表明收敛域是一个以

为半径的两个圆所围城的环带区域,其中

为内圆半径,

为外圆半径,同时

也称为收敛半径。

三、基本Z变换对

通常,简单信号的Z变换我们可以通过下表查到其变换结果及其收敛域ROC:

四、线性系统的Z变换

在Z平面上对数字线性系统进行建模与分析时,通常的方法是用

函数作为输入激励序列,通过系统输出(脉冲响应)来分析线性系统。根据这些研究,可以推导出任意输入信号的线性系统响应。通常,松弛型(初始条件为零)线性常系数系统或滤波器的输入-输出关系可由差分方程表示为:

其中,

为第

次的输出采样值;

为第

次的输入采样值。

的Z变换为

的Z变换为

,则根据延迟定理可得

以及

,代入

式得到:

其中

的比值称为传递函数,记为

。对于

式所描述的线性系统,其传递函数为:

式与

式描述了输入信号Z变换与输出信号Z变换之间的变换关系,该转换关系涵盖了系统的大量信息。

五、Z变换的特性

通常,大部分重要信号可由1.3部分表格中的一个或多个初等函数表示,然而这些原始信号可能需要经过适当的调整、修改与合并。结合下表所示的Z变换特性可以得到如何通过初等信号的变换与组合来构建复杂信号:

六、Z逆变换

1、Z逆变换的数学原理

已知函数

及其收敛域,反过来求序列的变换称为Z逆变换,表示为:

其数学表述方法通常表示为如下数学公式:

其中,如下图所示,

是包围

所有极点的逆时针闭合积分路线,通常选Z平面收敛域内以原点为中心的圆。

以下给出由Z变换定义表达式导出逆变换式的过程,已知

,对其两端分别乘以

,如上图所示然后沿围线

进行积分,得到:

根据复变函数中的柯西定理:

由于

式右边只有

项,其余均为

,于是

式可写为:

最终可以得到Z逆变换的数学表达式

直接计算围线积分是比较麻烦的,实际上求Z逆变换时的方法包括:

  • 围线积分法(留数法);
  • 部分分式展开法;
  • 幂级数展开法(长除法)。

为了更好的理解如何使用Matlab现成的函数求Z逆变换,下面以部分分式展开法为例,介绍Z逆变换的求解过程:

在数字信号处理中,

通常是

的有理函数,通常可采用部分分式分解将其变换为简单因式的和。假设

如果

,上式可表示为:

将(21)式中的真有理式部分进行部分分式展开,可得:

根据本文第三部分的基本Z变换对表格及Z变换的可叠加性,可以得到

式的Z逆变换:

2、Z逆变换的Matlab留数函数实现方法

在实际应用中我们不必手算,可以使用计算机代替。Matlab提供了极点留数计算的两个函数:

  • (1) residue:针对拉普拉斯算子

的极点留数计算函数,适用于连续系统;

  • (2) residuez:针对Z变换算子的,适用于离散系统。

residuez函数的调用格式为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[r,p,C] = residuez(b,a)

其中,

  • ba为按照z^{-1}升幂排列的多项式

的分子和分布系数向量;

  • p为分母的根向量,即

的极点向量;

  • r为对应于分母根向量中各个根的留数向量;
  • C为无穷项多项式系数向量,仅在

时存在。

residuez函数计算得到r、p、C向量后,就可以将多项式

分解成如下形式:

根据

式,对上式作逆变换,得到其时域信号表达式为:

其中,

为阶跃函数,

为脉冲函数。

3、Z逆变换Matlab符号函数实现方法

🚀 除了上面的residuez函数,Matlab的符号运算中有Z逆变换的iztrans函数。

比如我们已经知道

,则可以很容易地通过下面函数实现:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
syms z n;
X = z/(z-0.5);
x = iztrans(X,z,n);

但是函数iztrans处理高阶

的Z逆变换时,有时候很难解释Z逆变换符号运算的结果。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人工智能技术栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Latex数学公式符号编写大全
LaTeX是一种标记语言,主要用于创建高质量的学术文档,特别是数学、物理和计算机科学领域的文档。它基于TeX排版系统,由美国数学家Donald E. Knuth开发。在LaTeX中,你可以轻松地编写复杂的数学公式,并控制文档的布局和样式。
皮大大
2023/08/29
2.3K0
傅里叶变换
是描述数学函数或物理信号对时间的关系。例如一个信号的时域波形可以表达信号随着时间的变化。是真实世界,是惟一实际存在的域。因为我们的经历都是在时域中发展和验证的,已经习惯于事件按时间的先后顺序地发生。
为为为什么
2022/08/05
1.7K0
傅里叶变换
GNN系列 GCN简述 推导理解 及 DGL 源码解析
深度学习一直都是被几大经典模型给统治着,如CNN、RNN等等,它们无论再CV还是NLP领域都取得了优异的效果,那这个GCN是怎么跑出来的?是因为我们发现了很多CNN、RNN无法解决或者效果不好的问题——图结构的数据。
大鹅
2022/07/17
3.8K0
图神经网络综述:从Deepwalk到GraphSAGE,GCN,GAT
本文是笔者初学Graph neural network时写下的综述,从graph embedding开始讲起,回顾了GE和GNN的历史和经典论文,并利用热传播模型分析了GNN的数学渊源。
算法进阶
2023/11/05
2.1K0
图神经网络综述:从Deepwalk到GraphSAGE,GCN,GAT
Markdown数学公式语法手册
作者:DanielGavin 来源:简书 链接:https://www.jianshu.com/p/e74eb43960a1
Ai学习的老章
2019/08/20
2K0
OFDM原理及MATLAB仿真
本文讲解了 OFDM 相关概念及原理,并通过 MATLAB 仿真模拟一个 OFDM 时域及频域波形图。
Gnep@97
2023/10/20
3.3K0
OFDM原理及MATLAB仿真
大学生非数竞赛专题四 (5)
非数专题四 多元函数积分学 (5) 4.5 曲线积分的计算 4.14 (江苏省2016年竞赛题) 设 \varGamma 为曲线 y=2^x+1 上从点 A(0,2) 到点 B(1,3) 的一段弧,试着求曲线积分 \displaystyle \int_{\varGamma}e^{xy}(1+xy)dx+e^{xy}x^2dy 【解析】:可以采用曲线积分与路径无关或者直接计算法 【法一】:记 P=e^{xy}(1+xy0) , Q=e^{xy}x^2 , \dfrac{\partial Q}{\parti
用户9628320
2022/11/23
4560
大学生数学竞赛非数专题四(5)
专题四 多元函数积分学 (5) 4.5 曲线积分的计算 ---- 4.14 (江苏省2016年竞赛题) 设 \varGamma 为曲线 y=2^x+1 上从点 A(0,2) 到点 B(1,3) 的一段弧,试着求曲线积分 \displaystyle \int_{\varGamma}e^{xy}(1+xy)dx+e^{xy}x^2dy 【解析】:可以采用曲线积分与路径无关或者直接计算法 【法一】:记 P=e^{xy}(1+xy) , Q=e^{xy}x^2 , \dfrac{\partial Q}{\par
用户9628320
2022/11/14
4350
傅里叶变换相关公式
在学习高数的时候,就接触了傅里叶变换。也就记得是将一些周期函数表示成一系列三角函数的叠加,不是很理解这个变换的具体意义,就是觉的挺神奇的,可以求一些特殊的积分什么之类的。 到了学习信号与系统的时候,离散序列也可以傅里叶变换,还有一个叫离散傅里叶变换,那时学得很草,考完试之后都混在一起,不知道谁是谁了。
全栈程序员站长
2022/09/07
2.9K0
傅里叶变换相关公式
2016-PCS-End-to-end optimization of nonlinear transform codes for perceptual quality
这篇文章[1]提出了一个通用的变换编码框架,用于提升假定使用标量量化的端到端的非线性变换编码的率失真性能。结合任意可微的感知度量,这个框架可以用于优化任意可微的分析变换和综合变换对。
hotarugali
2022/03/09
1.3K0
2016-PCS-End-to-end optimization of nonlinear transform codes for perceptual quality
KaTeX 数学符号列表[通俗易懂]
KaTeX 是一个快速,易于使用的JavaScript库,用于在Web上进行TeX数学渲染。 KaTeX兼容所有主流浏览器,包括Chrome,Safari,Firefox,Opera,Edge和IE 9-11。 KaTeX支持很多(但不是全部)LaTeX语法和许多LaTeX软件包。
全栈程序员站长
2022/11/17
2.8K0
【数字信号处理】序列傅里叶变换 ( 傅里叶变换实例 | 矩形窗函数 | 傅里叶变换 | 傅里叶变换幅频特性 | 傅里叶变换相频特性 )
幅频特性 : 在 matlab 中绘制效果如下 , matlab 中取模后再绘制 ;
韩曙亮
2023/03/30
1.6K0
【数字信号处理】序列傅里叶变换 ( 傅里叶变换实例 | 矩形窗函数 | 傅里叶变换 | 傅里叶变换幅频特性 | 傅里叶变换相频特性 )
北邮通信原理知识点笔记小结-上半部分
数字通信比模拟通信有着更强的抗干扰能力,可以消除噪声积累,便于集成化、加密性能好,但是代价是什么呢?
Fisherman渔夫
2020/02/19
2K0
从傅立叶级数到傅立叶变换
写这篇博文的初衷是在翻阅数字图像处理相关教科书的时候,发现大部分对傅立叶变换的讲解直接给出了变换公式,而对于公式从何而来并没有给出说明。所以,本文在假设已经了解傅立叶级数的背景下,从傅立叶级数推导出傅立叶变换的一般公式。
卡尔曼和玻尔兹曼谁曼
2020/08/02
7350
离散时间傅里叶变换(DTFT)和离散傅里叶变换(DFT)区别-粒粒分明版
离散时间信号是指在离散的时间点上取值的信号。与连续时间信号(如模拟信号)不同,离散时间信号只在特定的、等间隔的时间点上有定义。
云深无际
2024/10/14
5080
离散时间傅里叶变换(DTFT)和离散傅里叶变换(DFT)区别-粒粒分明版
人工智能算法:基于Matlab的INFO向量加权平均优化算法的实现细节及其实现原理
向量加权平均(INFO, WeIghted meaN oF vectOrs)是一种改进的加权平均方法,其实现的核心内容即操作算子主要包括:
用户1143655
2023/02/23
1.9K0
人工智能算法:基于Matlab的INFO向量加权平均优化算法的实现细节及其实现原理
Markdown中的公式编辑, 看这一篇就够了!
在 {align} 中灵活组合 \text 和 \tag 语句。\tag 语句编号优先级高于自动编号。
数据STUDIO
2021/06/24
14.2K2
武忠祥老师每日一题|第320 - 335题
代入 初值: -1 = f(0) = -1 + C C = 0 f(x) = x - 1
一只野生彩色铅笔
2022/09/20
2.2K0
MATLAB实现图像的傅立叶变换
傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
timerring
2023/03/04
1.2K0
图神经网络1-介绍
图神经网络中的图是指数据结构中的图的样子,图由顶点(Vertex)和边(Edge)构成G=(V,E),顶点连接的边的数量叫做顶点的度(Degree)。
孔西皮
2021/03/04
1.1K0
图神经网络1-介绍
推荐阅读
相关推荐
Latex数学公式符号编写大全
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档