标题：数字信号处理教程:MATLAB释义与实现(第2版)
图书信息
作　者： 陈怀琛 编著  出 版 社： 电子工业出版社
出版时间： 2008-10-1
页　数：380页
开　本： 16开
I S B N ： 9787121071836
分类： 图书 >> 计算机 >> 数字信号处理 
定价：￥39.00元
内容简介
本教程中的全部例题程序和演示程序都可以免费从网上下载。本教程把《数字信号处理》课程定位为讲述“用数字方法处理（任何）信号”的技术，因此，对模拟信号的计算机处理给予了充分的篇幅，而这正是目前许多数字信号处理教材的弱点。
本书适合作为电子信息专业的大学本科学生教材，书中采用了大小两种字号混排，目的是适应不同专业和不同要求的本科学生。对于学过数字信号处理课程，但没有用MATLAB来解决有关问题的研究生和工程技术人员，也有很好的参考价值。
出版背景
本书第1版于2004年11月出版以后，得到了很好的反应。因为这本书与其他传统的教材不同，它是一本用MATLAB全面阐述数字信号处理教材，给出了所有概念阐述的形象演示和分析设计的计算机算法，而且提供了例题和演示的程序集，书中所有的理论和公式都可以通过执行程序得到验证，理论联系实际，学完了会快速地用计算机解决问题。心中有底。读者反映这本书的缺点主要是对本科生而言，内容有些偏多。
在修订出版第2版的时候，开始我们想把书改浅一些，薄一点，为此又专门征求了一些曾仔细阅读使用过本书的教授的意见。现把他们的意见摘出几条：“我觉得您已出版的‘释义’虽然厚一些，但写得易懂。若从头写一本更薄的，恐怕篇幅小，难以达到“释义”那本书的效果。”，“您的书是国内用MATLAB阐述DSP的第一本好书。最好不重新另写一本。完全可以在原来基础上进一步完善。”……经过探讨，大家觉得本书在对物理和数学概念的阐述上毫不逊于传统的教材，例如“关于模拟频率和数字频率的定义”，“关于角频率的正负”，“对DFT的序号k与实际频率f的关系”等等，讲得很细致，很便于本科生接受。其实，作者收到过一些本科生赞扬的来信，他们的经验是，不要怕书厚，不要怕MATLAB，一个一个问题看下去，这本书讲得很清楚，而且马上可以用程序验证，很好懂。
目前，大学本科用这本书作教材的还不太多，第一个原因是很多大学生（甚至部分老师）MATLAB基础差；见到程序就头痛了，不敢用MATLAB教学；但是从国内外发展趋势来看，要搞信号处理，不用计算机是不行的，用MATLAB的学校只会愈来愈多。令我们高兴的是：随着时间推移，本书的大量程序已为多本其他教材所引用。我们不能自己放弃或减弱这个特色。第二个原因是书中确有少数偏深的内容，这些内容虽然超越了本科大纲，但有利于已经毕业的读者在设计中更好地运用MATLAB，也有利于大学生在后续课程或毕业设计中应用。考虑到第1版的读者群并不限于本科生，很多是毕业了的工程师或研究生，这些内容仍是重要的，不能删除。为了兼顾大学生阅读方便，在本版中把它们用小号字印刷。
这样，第2版的修订量就比较小，主要包括了以下三方面：（1）改正了第1版中的一些印刷错误和图文标注；（2）由于MATLAB软件的升级，对相关的部分按新版本作了修订；（3）尽量减少大号字的篇幅，把它们改为小号字，使本科生能抓住要点，阅读方便。修订后程序集内容基本不变，新程序集名称改为dsk04n，修改中尽量考虑了新旧版本的兼容问题。
北京理工大学的王大伦教授曾仔细地阅读过本书第1版，对书中的大小错误都作了批注，并反馈给作者，对第2版的修订帮助很大，在此特表谢意。
MATLAB已经可以把信号处理的概念设计变成了非常方便的工作。近若干年来，Mathworks公司致力于扩展MATLAB的功能，目的是用基于模型的流程，使用统一的软件工具，把概念设计变成工程设计。这就更提高了把MATLAB作为设计工具的重要性。我们在本版中加了第10章，对此作了一个引导性的介绍。北京迈斯沃克公司（Mathworks China）的徐正高高级工程师写了该章中的10.4和10.5两节。
作者简介
陈怀琛教授，1934年生于上海，1953年毕业于军事电信工程学院，留校任教至今。期间曾到美国宾夕法尼亚大学系统工程系做访问学者，他先后在西安电子科技大学机械系，自动控制系，和电子工程系讲授过十多门课程，并曾任副校长。主管科研和研究生教育。他还曾兼任中国自动化学会理事，中国电子学会教育学会副理事长，陕西人民对外友协副会长，陕西自动化学会副理事长等职务。
陈怀琛教授1994年卸任后，继续任教并致力于推动大学课程和教学的计算机化。目标是使教师及学生都用计算机取代计算器来解决各课程的问题。出版 著作多本，并多次应邀在各研究所和大学做系列讲座。
第1版序
随着电子技术迅速地向数字化发展，《数字信号处理》越来越成为广大理工科，特别是IT领域的学生和技术人员的必修内容，先前也出版过很多有关这方面的书籍。但国内这门课程本身的现代化进程，却并不令人满意。这里的“现代化”指的是利用最新的计算技术和网络手段进行教学。我编写这本书的目的，就是想突出利用MATLAB和Internet来进行数字信号处理的教学。
信号处理涉及大量的运算，可以说离开了计算机及相应的软件，就不可能解决任何稍微复杂的实际应用问题。早在20世纪90年代中期，MATLAB就已成为国际公认的信号处理的标准软件和开发平台。从1996年后，美国新出版的信号处理教材就没有一本是不用MATLAB的（见参考文献[1,3,7,8,9]）。而国内把MATLAB贯彻始终的信号处理教材却还很少，在教学中真正用MATLAB的就更少，两者相比落后了近八年。本书的一个意图就是使之成为一本自始至终使用MATLAB阐述问题和进行计算的数字信号处理教材，更好地与国际接轨。
关于《数字信号处理》课程的内涵，存在着两种不同看法：一种看法把“数字信号”限定为“处理”的对象；另一种看法则把“数字技术”作为一种方法，研究如何用它来“处理信号”。从第一种看法出发，“数字信号处理”课程只讲离散信号。经验证明，这种划分会造成学生不会用数字技术处理连续信号，形成学科内容的“空白区”。而从第二种看法出发，“数字信号处理”课程应该同时考虑连续和离散信号，重点是如何用计算机进行分析和计算。我赞同后一种看法。因此，在本书多处加强了离散信号和连续信号等价性的讨论，并详细介绍了连续信号频谱的数值计算问题。
中国教材一般将快速傅里叶变换列为一章，篇幅约30~40页。美国教材则通常列为一节，篇幅一般只有10页左右。这是什么原因？我认为在目前所有的科学计算软件和数字信号处理芯片中，FFT已经是标准的模块，一般都没有必要自己编写FFT程序，所以重点应该是FFT的用法而不是算法。国外教材对这部分内容经历了“薄—厚—薄”的历史过程，我国则慢了一拍。所以本教材也精简了这方面的内容。
在把数字信号处理概念与MATLAB语言相结合的方面，国外教材有多种模式。有的以讲概念为主，MATLAB放在作业和实验中（见参考文献[9]）；有的以MATLAB为主，概念则建议读者另选教材（见参考文献[1]）；有的两者都讲得不少，但书就变得很厚（见参考文献[8]）：本书则大体采纳了参考文献[3]的模式，以系统地讲解信号处理的原理为主，用MATLAB程序的核心语句帮助解释概念。要做到这点，学生必须在修本课程以前已经学过并用过MATLAB。当然，这并不是说，没有学过MATLAB就不能用这本书。我曾在西安电子科技大学和桂林电子工业学院两次使用MATLAB进行数字信号双语教学，教材是英文书（见参考文献[1]），课堂90%用英语讲，同学中多数没有学过MATLAB。课还是正常进行，完成得还可以。但这些学生都已通过英语四级，因此属于班级中程度较高者，而且多加一个学分。尽管如此，在教学中有些同学仍提出“究竟着重概念还是编程”这样的问题，说明他们对于将语言和概念结合起来仍感到困难。所以，经验告诉我们：从大面积课堂教育而言，最好不要把MATLAB放到高年级和信号处理混在一起学。
我一贯的指导思想是：学生应在大学一年级或二年级学习MATLAB，这对各门课程都有好处。信号处理课是大学三年级开设的。此时学生应该已经能用矩阵建模并用MATLAB语言来思考和概括数学问题了。有了这样的基础，才能对本书有较深的体会。建议未学过MATLAB的读者，至少用10小时左右先学习其入门并实际做一些应用。为此，我们新制作了一套“MATLAB入门”（两张）讲课光盘。该组光盘以MATLAB6.x为背景（也介绍一点MATLAB 7.0），可在计算机上实时播送。本课程的老师统一购买了这套光盘给大家播放，可以不用费劲去备MATLAB课。与之配套的教材是参考文献[6]或参考文献[16]。其中，参考文献[16]是为大学一、二年级同学设计的，在应用方面结合的是数学、物理、力学、电学等；参考文献[6]是为大学二、三年级同学设计的，结合了电路、信号和系统、信号处理和控制原理四门课程。这套光盘由本人主讲，西安电子科技大学网络学院制作。有关发行购买事项，请各位教师注意下载程序中另附的通知。
本书利用电子工业出版社的博文视点公司网站向读者免费提供完整的子程序集、例题程序集和示教程序集（即附录B,C,D中的全部程序）共180余个，程序集名为dsk04，可免费下载。
单击资源下载，再按书名查找即可。下载前要按提问填写下载人的必要信息，在此网页上，还将提供作者其他有关书籍程序集和光盘获取的信息。由于读者可以免费获得全部的程序，从而也可得到程序产生的图形。我们把书中的程序都用小字排版，图形也缩排了，以降低篇幅和书价。希望读者理解。
为了使教师能够较方便地利用本书进行教学，我们准备了一套教师用光盘。其中包括两部分内容：一是为讲授本书用的PowerPoint幻灯片，约900张；二是本书部分习题的题解，因为有些教师认为若有题解流入学生中，出题的效果将打折扣。为了兼顾对题解的不同看法，我们只给了三分之一的题解。预计这张教师光盘将于本书出版后三个月内完成。由“西安电子科技大学电工电子教学基地”进行版权管理。我们将在下载程序中附上有关教师用光盘的发行办法和申购表，请读者注意。
为了适用不同类型的专业和学生对数字信号处理的不同要求，本书在排版上分了大小两种字型。大字是达到基本要求应掌握的内容，小字排版的部分是可以跳过不看的，不会影响对本课程基本概念的掌握。整个第9章都属于任选内容，但没有用小字，因为这个会引起误解，同时使读者看书时可以舒服一些。每章的最后都给出了复习思考题和习题，以利于读者自学复习。
为了阐述数字信号处理中的重要概念，本书采用了一些其他教材中未采用的术语和方法。例如，离散时间傅里叶变换、采样序列的等价序列、符幅特性、在无穷远邻域的收敛性、离散最小二乘设计法等。书中也有一些作者本人的研究工作内容。比如，信号流图的解析形式及MATLAB解、信号流图与状态空间法的转换和MATLAB解、系数向量量化的子程序以及一些有图形、动画和声音表现的演示程序等。其目的是引起大家讨论，更好地解放思想，用创新的态度来对待这门课程的教学。
这本书采用了参考文献[4,3,1,5,8]中不少的内容和例题，用到了这些作者的宝贵经验，也借用了一些图形、例题和习题，乘此机会向这些教材的作者们表示谢意。在2003年8月的“第十一届信号处理学术年会”上，我曾把编写本书的指导思想，与许多信号处理界的专家（如袁保宗、程佩青、张贤达等教授）交换过意见，得到了他们的支持。本书初稿形成后，又曾广泛征求了本校的丁玉美、赵树杰、廖桂生、高西全、史林等长期从事数字信号处理教学的教授们对初稿的意见，特别是丁玉美教授仔细阅读了稿件，给作者很大的帮助。西安电子科技大学的段宝岩校长还特别资助了作者的学术交流经费，保铮院士对本书的出版也给予了关心。此外Mathworks公司对本书的出版也给予了软件新版本的支持，电子工业出版社的博文视点公司的各位编辑对本书一路绿灯，提供了出版和网页方面的一切方便，使本书能及早问世。对大家的这些帮助，作者表示衷心的感谢。
由于作者水平和编著时间的限制，书中肯定有很多不足之处，欢迎广大读者指正，我很希望得到读者对本书的反馈信息。欢迎读者将教学实践中积累的经验告诉本人，并希望大家不断改进和充实网上的演示程序！
陈怀琛2004年8月31日
于西安电子科技大学
目 录
第1章 信号和信号处理 1
1.1 信号的分类 1
1.2 信号处理 5
1.2.1 信号处理的举例 5
1.2.2 信号处理的一般任务 6
1.2.3 数字信号处理 7
1.3 信号采样和复原实例 8
1.4 本书概貌的说明 10
复习思考题 12
习题 12
第2章 时域中的离散信号和系统 13
2.1 模拟信号与其采样序列的关系 13
2.2 基本序列及序列的基本运算 14
2.2.1 序列的表示方法 14
2.2.2 常用的典型序列 15
2.2.3 序列的运算和变换 17
2.3 序列的奇偶分解、卷积和相关 21
2.3.1 周期序列 21
2.3.2 实对称序列 21
2.3.3 复数域的偶序列和奇序列 22
2.3.4 序列的卷积 23
2.3.5 序列的相关 25
2.4 时域离散系统 26
2.4.1 线性系统 27
2.4.2 线性时不变离散系统 27
2.4.3 LTI离散系统的数学描述——线性常系数差分方程 28
2.4.4 用MATLAB的递推解法 29
2.4.5 用时移算子z1表示的离散系统 29
2.5 脉冲响应——用时间序列表征的系统特性 30
2.5.1 脉冲响应的特性 30
2.5.2 用解析卷积方法求系统输出 31
2.5.3 用向量矩阵乘法进行卷积计算 32
2.5.4 用脉冲响应判断系统的因果性 34
2.5.5 用脉冲响应判断系统的稳定性 34
2.5.6 用脉冲响应分类数字滤波器 35
2.6 序列运算的MATLAB函数列表 36
复习思考题 37
习题 38
第3章 离散序列的两种傅里叶变换 40
3.1 序列信号的周期性和频率 40
3.1.1 序列信号的周期性 40
3.1.2 序列信号的频率 41
3.1.3 连续信号的频谱 43
3.1.4 有限带宽序列 44
3.2 离散时间傅里叶变换（DTFT） 45
3.2.1 离散时间傅里叶变换（DTFT）的定义 45
3.2.2 DTFT的性质 46
3.2.3 实数奇偶序列的DTFT 48
3.2.4 复数奇偶序列的DTFT 48
3.2.5 DTFT的解析计算示例 49
3.2.6 DTFT的数值计算示例 51
3.2.7 用MATLAB计算DTFT 52
3.2.8 MATLAB计算举例 54
3.3 离散系统的频率特性 57
3.3.1 定义 57
3.3.2 用MATLAB计算系统频率特性 59
3.4 周期序列的频谱——离散傅里叶级数 60
3.4.1 从一个计算实例出发 60
3.4.2 周期序列的傅里叶级数 62
3.4.3 用MATLAB计算离散傅里叶级数 63
3.5 离散傅里叶变换（DFT） 64
3.5.1 离散傅里叶变换（DFT）的定义 64
3.5.2 用MATLAB计算DFT和IDFT 66
3.5.3 两种离散傅里叶变换（DFT与DTFT）的关系 66
3.6 离散傅里叶变换（DFT）的特性 68
3.6.1 隐含周期性 68
3.6.2 线性性质 69
3.6.3 循环移位性质 69
3.6.4 循环折叠性质 71
3.6.5 DFT的循环对称性 72
3.6.6 循环卷积特性 75
3.6.7 帕瑟瓦尔定理 77
3.7 用DFT计算线性卷积 78
3.7.1 循环卷积与线性卷积 78
3.7.2 分段卷积 81
3.7.3 分段卷积的MATLAB函数 82
复习思考题 84
习题 84
第4章 信号频谱的高效计算 88
4.1 各种傅里叶变换及其相互关系 88
4.1.1 傅里叶变换的主要类型 88
4.1.2 DFT与其他变换的直接关系 90
4.2 快速傅里叶变换（FFT） 91
4.2.1 时域抽取（DIT）基二FFT算法 91
4.2.2 用MATLAB程序描述FFT算法 95
4.2.3 基四和其他基的FFT算法 96
4.2.4 其他FFT算法 98
4.3 用FFT计算离散时间序列的频谱 99
4.3.1 有限长离散时间序列的频谱计算 99
4.3.2 用补零方法由FFT求DTFT 100
4.3.3 无限长序列的频谱计算 101
4.4 连续信号采样中的频谱变换 103
4.4.1 时域采样定理（奈奎斯特定理） 103
4.4.2 由离散序列重构模拟信号 106
4.4.3 理想预滤波作用的定量分析 109
4.5 连续信号的频谱计算 110
4.5.1 非周期连续信号的频谱计算 110
4.5.2 连续周期信号的频谱计算 116
4.5.3 循环计算中对应频点的确定方法 117
4.6 从频谱计算序列信号（IDFT） 119
4.6.1 频率域采样定理 119
4.6.2 从频谱计算离散时间序列 120
4.6.3 从频谱计算连续时间信号 123
4.7 用FFT计算能量 125
4.8 小结 126
复习思考题 127
习题 128
第5章 变换域中的离散时间系统 130
5.1 z变换 130
5.1.1 z变换的定义与收敛性 130
5.1.2 z变换的重要特性和定理 133
5.1.3 z变换的计算实例 135
5.2 z反变换和差分方程的解 136
5.2.1 用留数定理求z反变换 136
5.2.2 用部分分式法求z反变换 137
5.2.3 幂级数法（长除法）求z反变换 140
5.2.4 用z变换解差分方程 142
5.3 z域中对系统的描述 146
5.3.1 系统函数（传递函数） 146
5.3.2 正幂系统函数和零极增益形式 149
5.3.3 零极点分布与系统的因果性和稳定性 151
5.4 z平面上的谱分析 153
5.4.1 零极点与频率特性的关系 153
5.4.2 非单位圆周上的频谱分析 154
5.4.3 z平面螺旋线上的谱分析（Chirp-z变换） 155
5.5 理想滤波器 158
5.5.1 理想的因果低通滤波器的频率特性 158
5.5.2 线性相位条件对脉冲响应对称性的要求 160
5.5.3 考虑因果性和对称性对理想滤波器的影响 161
5.6 低阶数字滤波器 162
5.6.1 一阶数字滤波器 162
5.6.2 二阶数字滤波器 164
5.6.3 梳状滤波器的零极点分布 165
5.7 全通滤波器 166
复习思考题 167
习题 168
第6章 数字滤波器结构 171
6.1 概述 171
6.2 滤波器的信号流图结构及解法 172
6.2.1 信号流图 172
6.2.2 信号流图方程的计算机解法 173
6.2.3 信号流图与数字系统的网络结构图 175
6.3 FIR基本网络结构 175
6.3.1 概述 175
6.3.2 直接形式 176
6.3.3 级联形式 176
6.3.4 线性相位形式 177
6.3.5 频率样本结构 178
6.4 IIR基本网络结构 181
6.4.1 直接形式 182
6.4.2 级联形式 182
6.4.3 并联形式 184
6.5 一些其他类型的滤波器结构 189
6.5.1 全零点格型（Lattice）滤波器 189
6.5.2 全极点格型滤波器 191
6.5.3 用信号流图与MATLAB结合求解格型滤波器 193
6.6 状态变量分析法 195
6.6.1 状态方程和输出方程 195
6.6.2 状态方程和其他结构参数的转换 196
6.6.3 信号流图方程与状态方程的关系 197
6.6.4 例题：正余弦序列产生器 197
6.7 各种结构形式的比较 200
6.7.1 从计算的复杂性做比较 200
6.7.2 从减小系数量化影响做比较 200
复习思考题 200
习题 201
第7章 FIR滤波器设计 204
7.1 数字滤波器设计的基本要求 204
7.1.1 数字滤波器的设计基本步骤 204
7.1.2 数字滤波器的主要指标 204
7.1.3 为什么以低通滤波器为典型 207
7.2 线性相位滤波器的特性 207
7.2.1 线性相位和符幅特性（Amplitude Response） 207
7.2.2 符幅特性的计算举例 211
7.2.3 计算符幅特性的MATLAB程序 212
7.2.4 线性相位滤波器的零极点分布 214
7.3 设计FIR滤波器的窗函数法 215
7.3.1 对脉冲响应进行截断的分析方法 215
7.3.2 矩形窗截断的定量分析 216
7.3.3 几种其他窗函数的介绍 219
7.3.4 MATLAB提供的窗函数 220
7.3.5 用窗函数设计FIR滤波器的步骤 222
7.4 利用频率样本法设计FIR滤波器 228
7.4.1 预期频率特性的设置方法 228
7.4.2 频率样本法的设计过程 229
7.4.3 MATLAB中频率样本法的设计函数 232
7.5 FIR滤波器的最优设计法 233
7.5.1 设计FIR滤波器的离散最小二乘法 234
7.5.2 最小最大波动法设计滤波器 238
7.5.3 MATLAB中最优等波动滤波器的设计函数 241
7.6 FIR滤波器设计的一些深入问题 244
7.6.1 关于四种线性相位滤波器类型的应用范围 244
7.6.2 数字微分器的设计 244
7.6.3 Hilbert变换器的设计 247
复习思考题 249
习题 250
第8章 IIR滤波器设计 253
8.1 关于模拟滤波器的预备知识 253
8.1.1 模拟滤波器的指标 253
8.1.2 以模拟滤波器为基础的设计方法 255
8.2 模拟滤波器原型的设计 256
8.2.1 巴特沃斯低通滤波器 256
8.2.2 切比雪夫I型低通滤波器 261
8.2.3 切比雪夫II型低通滤波器 266
8.2.4 椭圆低通滤波器 268
8.2.5 滤波器原型的相位响应 270
8.3 由模拟滤波器变换为数字滤波器 270
8.3.1 脉冲响应不变法 270
8.3.2 双线性变换法 276
8.4 模拟滤波器的频带变换 284
8.4.1 低通到低通的频带变换 285
8.4.2 低通到高通的频带变换 285
8.4.3 低通到带通的频带变换 286
8.4.4 低通到带阻的频带变换 287
8.4.5 信号处理工具箱中的频带变换函数 288
8.5 数字滤波器的频带变换 291
8.6 MATLAB中直接设计IIR数字滤波器的函数 296
8.7 IIR和FIR数字滤波器的比较 297
8.8 MATLAB中的滤波器设计工具（fdatool） 298
复习思考题 300
习题 301
第9章 综合应用 303
9.1 信号处理工具（sptool）的介绍 303
9.2 语音数字化量化噪声的改善 306
9.3 系数量化和运算量化的影响 310
9.3.1 数的浮点和定点表示方法 310
9.3.2 系数量化对FIR滤波器的影响举例 311
9.3.3 系数量化对IIR滤波器的影响举例 312
9.3.4 运算量化和溢出问题 313
9.3.5 滤波器设计工具中的量化处理 314
9.3.6 定点（Fix-point）工具箱 315
9.4 数字信号处理在双音拨号系统中的应用 316
9.4.1 双音多频拨号 316
9.4.2 Goertzel算法 316
9.4.3 检测DTMF信号的DFT参数选择 318
9.4.4 生成和检测DTMF信号的演示程序 319
9.5 正余弦信号的频谱分析 320
9.6 音乐信号处理 326
9.6.1 时域处理方法 326
9.6.2 频域处理方法 327
9.7 变采样率数字滤波 329
9.7.1 信号的整数倍内插 329
9.7.2 信号的整数倍抽取 331
9.7.3 分数倍变采样率和相应的MATLAB函数 332
9.7.4 整数倍抽取和内插的应用举例 333
9.8 稀疏天线阵列设计 333
复习思考题 335
习题 336
第10章 信号处理从概念设计到芯片实现 338
10.1 嵌入式系统及其开发流程 338
10.2 系统仿真（Simulink）工具简介 339
10.2.1 概述 339
10.2.2 模块库及模型的建立 340
10.2.3 仿真的运行 341
10.3 MATLAB与嵌入式代码的衔接 342
10.4 基于模型的开发流程 343
10.5 嵌入式代码开发的一个实例 345
10.6 数字信号处理的未来 349
附录A 信号处理工具箱函数集 351
附录B 本书自编子程序索引表 357
附录C 例题程序索引表 358
附录D 图形生成和演示程序索引表 362
参考文献 363