前言
数字信号处理是从20世纪60年代以来,随着信息学科和计算机学科的高速发展而迅速发展起来的一门新兴学科,它的重要性日益在各个领域的应用中表现出来。简言之,数字信号处理是把信号用数字或符号表示的序列,通过计算机或信号处理设备,用数字的数值计算方法处理,以达到提取有用信息、便于应用的目的。
MATLAB是一个功能强大的数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案。
目前,MATLAB已成为信号处理、图像处理、通信原理、自动控制等专业的重要基础课程的首选实验平台,而对于学生而言最有效的学习途径是结合某一专业课程的学习掌握该软件的使用与编程。
1.本书特点
由浅入深,循序渐进:本书以初中级读者为对象,内容安排上考虑到MATLAB进行仿真和运算分析时的基础知识和实践操作,从基础开始,由浅入深地帮助读者掌握MATLAB的分析方法。
步骤详尽,内容新颖:本书结合作者多年MATLAB使用经验与实际应用案例,将MATLAB软件的使用方法与技巧详细地讲解给读者,使读者在阅读时能够快速掌握书中所讲内容。
实例典型,轻松易学:学习实际工程应用案例的具体操作是掌握MATLAB最好的方式。本书通过综合应用案例,透彻详尽地讲解了MATLAB在各方面的应用。
2.本书内容
本书结合多年MATLAB使用经验与实际工程应用案例,将MATLAB软件的使用方法与技巧详细地讲解给读者。本书在讲解过程中步骤详尽、内容新颖,讲解过程辅以相应的图片,使读者在阅读时一目了然,从而快速掌握书中所讲内容。
本书对数字信号处理的基本理论、算法及MATLAB实现进行系统的论述。全书分为3部分,共12个章节,具体内容如下:
第一部分:MATLAB基础。介绍MATLAB的基础知识、发展史及基本运算等内容,让读者对MATLAB有一个概要性的认识。具体的章节安排如下:
第1章MATLAB基础知识
第二部分:信号处理的基本理论。介绍了数字信号处理基本理论和方法及其MATLAB实现,向读者展示了MATLAB在处理数字信号方面的方法及技巧。具体的章节安排如下:
第2章信号与系统的分析基础
第3章信号变换
第4章IIR滤波器的设计
第5章FIR滤波器设计
第6章其他滤波器
第7章随机信号处理
第8章小波在信号处理中的应用
第三部分:信号处理的综合实例。介绍了MATLAB基于图像信号处理、语音信号处理、通信信号处理、雷达信号处理等在实际中应用,让读者进一步领略到MATLAB的强大功能和广泛的应用范围。具体的章节安排如下:
第9章基于语音信号处理
第10章基于通信信号处理
第11章基于雷达信号处理
第12章信号处理的图形用户界面工具与设计
3.读者对象
本书适合于MATLAB初学者和期望提高应用MATLAB进行信号处理能力的读者,具体说明如下:
★初学MATLAB的技术人员
★广大从事信号处理的科研工作人员
★大中专院校的教师和在校生
★相关培训机构的教师和学员
★参加工作实习的“菜鸟”
★MATLAB爱好者
4.读者服务
为了方便解决本书疑难问题,读者朋友在学习过程中遇到与本书有关的技术问题,可以发邮件到邮箱caxart@126.com,或者访问博客http://blog.sina.com.cn/caxart,编者会尽快给予解答,我们将竭诚为您服务。
5.本书作者
本书主要由沈再阳编著。此外,付文利、王广、张岩、温正、林晓阳、任艳芳、唐家鹏、孙国强、高飞等也参与了本书部分内容的编写工作,在此表示感谢。
虽然作者在本书的编写过程中力求叙述准确、完善,但由于水平有限,书中欠妥之处在所难免,希望读者和同仁能够及时指出,共同促进本书质量的提高。
最后再次希望本书能为读者的学习和工作提供帮助!
编著者
2017年5月
沈再阳,毕业于清华大学,研究生学历业,就职于中国核工业集团公司。精通MATLAB系统仿真软件,熟练应用MATLAB进行图像处理、信号处理等。在国内外期刊发表论文多篇,申请并获得授权专利多项,参与的项目获得集团三等奖。
第3章信号的变换
信号与系统的分析方法中,除了时域分析方法外,还有变换域分析的方法。连续时间信号与系统的变换域分析方法主要是傅里叶变换和拉普拉斯变换。离散时间信号的Z变换是分析线性时不变离散时间系统问题的重要工具,在数字信号处理、计算机控制系统等领域有着广泛的应用。
学习目标:
(1)了解、熟悉Z变换的概念与性质;
(2)理解Z反变换的相关内容;
(3)掌握离散系统中的Z域描述方法;
(4)了解、熟悉傅里叶级数与变换;
(5)理解离散傅里叶变换及其性质;
(6)实现频率域采样和快速傅里叶变换;
(7)熟悉实现离散余弦变换、ChirpZ变换和Gabor函数。
3.1Z变换概述
连续系统一般使用微分方程、拉普拉斯变换的传递函数和频率特性等概念进行研究。一个连续信号f(t)的拉普拉斯变换F(s)是复变量s的有理分式函数,而微分方程通过拉普拉斯变换后也可以转换为s的代数方程,从而可以大大简化微分方程的求解,从传递函数可以很容易地得到系统的频率特征。
因此,拉普拉斯变换作为基本工具将连续系统研究中的各种方法联系在一起。计算机控制系统中的采样信号也可以进行拉普拉斯变换,从中找到简化运算的方法,引入了Z变换。
3.1.1Z变换的定义
序列x(n)的Z变换(简称ZT)定义为
X(z)=∑+∞n=-∞x(n)z-n
上式称为双边Z变换。
如果x(n)的非零值区间为(-∞,0]或者[0,+∞),则上式可变为
X(z)=∑0n=-∞x(n)z-n
X(z)=∑+∞n=0x(n)z-n
此时,称为序列x(n)的单边Z变换。
序列的ZT存在的条件为
|X(z)|=∑+∞n=-∞x(n)z-n≤∑+∞n=-∞x(n)z-n=∑+∞n=-∞|x(n)||z-n|<+∞
满足上式的z的取值范围称为Z变换的收敛域(RegionofConvergence,ROC),它通常为z平面上的一个环状域,即
Rx-<|z|
3.1.2Z变换的收敛域
序列Z变换的收敛域与序列的形态有关。反之,同一个Z变换的表达式,不同的收敛域,确定了不同序列形态。下面根据序列形态不同,分别讨论其收敛域。
对于任意给定的序列x(n),能使X(z)=∑∞n=-∞x(n)z-n收敛的所有z值集合为收敛域。即满足
∑∞n=-∞|x(n)z-n|<∞
不同的x(n)的Z变换,由于收敛域不同,可能对应于相同的Z变换,故在确定Z变换时,必须指明收敛域。
1.有限长序列
有限序列的描述函数是
x(n)=x(n)n1≤n≤n2
0其他
其Z变换为
X(z)=∑n2n=n1x(n)z-n
因此Z变换式是有限项之和,故只要级数的每一项有界,则级数就收敛。收敛域为
0<|z|<∞
2.右边序列
右边序列的描述函数是
x(n)=x(n)n≥n1
0其他
其Z变换为
X(z)=∑∞n=n1x(n)z-n
因此Z变换样式是无限项之和,当n1≥0时,由根值判别法有
limn→∞n|x(n)z-n|<1
所以此时收敛域为
|z|>limn→∞n|x(n)|=R1
当n1<0时,此时级数全收敛,所以右边序列的收敛域为R1<|z|<∞。
3.左边序列
左边序列的描述函数为
x(n)=x(n)n≤n2
0其他
其Z变换为
X(z)=∑n2n=-∞x(n)z-n=∑∞n=-n2x(-n)zn
当n2<0时,由根值判别法有
limn→∞n|x(-n)zn|<1
由此求得的收敛域为
|z|
当n2>0时,此时相当于增加了一个n2>0的有限长序列,还应除去原点,左边序列的收敛域为
0<|z|
4.双边序列
双边序列的描述函数为
x(n)=x(n)[u(-n-1)+u(n)]
其Z变换为
X(z)=∑∞n=-∞x(n)z-n=∑-1n=-∞x(n)z-n+∑∞n=0x(n)z-n
因为∑∞n=0x(n)z-n的收敛域为|z|>R1,∑-1n=-∞x(n)z-n的收敛域为|z|
R1<|z|
3.2Z变换的性质
3.2.1线性性质
假设
Z[x1(k)]=X1(z)(|z|>Rx1)
Z[x2(k)]=X2(z)(|z|>Rx2)
则有
Z[ax1(k)+bx2(k)]=aX1(z)+bX2(z)
其中,a、b为任意常数。
3.2.2时域的移位
假设Z[f(t)]=F(z),那么有
Z[f(t+nT)]=znF(z)-∑n-1k=0f(kT)z-k
假设Z[f(t)]=F(z),那么有
Z[f(t-nT)]=z-nF(z)
3.2.3时域扩展性
若函数f(t)有Z变换F(z),则
Z[eatf(t)]=F(ze±aT)
根据Z变换定义有
Z[eatf(t)]=∑∞k=0f(kT)eakTz-k
令z1=ze±aT,则上式可写成
Z[eatf(t)]=∑∞k=0f(kT)z-k1=F(z1)
代入z1=ze±aT,得
Z[eatf(t)]=F(ze±aT)
3.2.4时域卷积性质
已知
x(k)X(z)(α1<|z|<β1)
h(k)H(z)(α2<|z|<β2)
则有
x(k)*h(k)X(z)H(z)
3.2.5微分性
如果有
x(k)X(z)α<|z|<β
那么有
kx(k)-zdX(z)dzα<|z|<β
3.2.6积分性
已知
x(k)X(z)α<|z|<β
则有
x(k)k+mzm∫∞zX(η)ηm+1dηα<|z|<β
3.2.7时域求和
如果有
x(k)X(z)α<|z|<β
那么有
f(k)=∑ki=-∞x(i)zz-1X(z)max(α,1)<|z|<β
3.2.8初值定理
如果函数f(t)的Z变换为F(z),并存在极限limz→∞F(z),则
limk→0f(kT)=limz→∞F(z)
3.2.9终值定理
假定f(t)的Z变换为F(z),并假定函数(1-z-1)F(z)在z平面的单位圆上或圆外没有极点,则
limk→∞f(kT)=limz→1(1-z-1)F(z)
3.3Z反变换
定义X(z)的Z反变换(IZT)为
x(n)=12πj∮CX(z)zn-1dz
式中,C为收敛域内一条环绕原点逆时针闭合围线。
求Z反变换的方法主要有两种,分别是留数法和部分分式展开法。
由留数定理可知:若函数在围线C上连续,在C以内有K个极点,而在C以外有M个极点,则有
12πj∫X(z)zn-1dz=∑kRes[X(z)zn-1]z=zk
当极点为一阶时的留数为
Res[X(z)zn-1]Z=Zr=[(z-zr)X(z)zn-1]z=zr
当极点为多重极点时的留数为
Res[X(z)zn-1]z=zr=1(l-1)!dl-1dzl-1[(z-zr)lX(z)zn-1]z=zr
部分分式法把x的一个实系数的真分式分解成几个分式的和,使各分式具有a(x+A)k或者ax+b(x2+Ax+B)k的形式。
通常情况下传递函数可分解为
X(z)=B(z)A(z)=∑Mi=0biz-i1+∑Ni=1aiz-i
MATLAB的符号数学工具箱提供了计算Z变换的函数ztrans()和Z反变换的函数iztrans(),其调用形式为
F=ztrans(f),
f=iztrans(F)
其中,右端的f和F分别为时域表示式和Z域表示式的符号表示,可应用函数sym来实现,其调用格式为
S=sym(A)
在MATLAB中,留数法求Z反变换可以使用函数residuez实现,调用格式为
[RPK]=residuez(B,A);
其中,B和A分别为X(z)的多项式中分子多项式和分母多项式的系数向量;返回值R为留数向量,P为极点向量,二者均为列向量;返回值K为直接项系数,仅在分子多项式最高次幂大于等于分母多项式最高次幂时存在,否则,返回值为空。