前言
在此书中,我所做的仅仅是采摘他人之鲜花,用我的丝线将它们捆扎在一起而已。
M.De蒙田(Montaigne)(1533—1592年)
法国散文家
本书是第2版,第2版的总体框架与第1版保持一致,但从内容上讲,第2版对第1版的部分内容进行了改写,补充了一些素材,并重新进行了组织。所做的修改很多都来自于使用本书的师生们在教学过程中所提出的有益建议,对此向他们表示诚挚的感谢。
正如在第1版中指出的那样,虽然科学与工程的进步很难与技术的进步保持同步,但令人欣慰的是通过对基本原理的深刻理解,要保持科学和工程的发展与创新是存在可能的。信号与系统理论是这些基本原理之一,它将在未来几年里成为众多工程研发的基础。在不久的将来,不仅仅是工程师们需要了解信号与系统,从某种程度上来说我们每一个人都需要了解信号与系统,计算机、手机、数字记录和数字通信等等的广泛应用,使得我们都需要信号与系统理论。
信号与系统结合了抽象的数学和学科上的具体工程应用,它的学习和讲授都比较复杂,因此需要设计一门信号与系统课程,以便培养学生对于工程应用的兴趣,同时也能使学生们欣赏到数学概念和数学工具的重要性。编写本教材的目的是为学生们学习信号与系统理论提供帮助,同时也通过作者本人在讲授此课程的过程中所发现的有效方法来促进老师们的教学。为了强化学习体验,本书考虑采用MATLAB,它是工程实践中必不可少的工具。MATLAB不仅有助于解释理论性的结果,还能让同学们意识到计算上的问题,而这些正是工程师们在实现理论设计时所要面对的问题。
层次
尽管本书的内容是面向学习电子与计算机工程专业的初级信号与系统课程的学生,但是学习机械工程和生物工程的学生在学习类似课程的时候也可以参考它,甚至应用数学专业的学生也可能会对它感兴趣。此外,这本教材的“学生友好”特性也使得它对于想通过自学或者温习信号与系统基本原理的实习工程师来说非常有用。本书在内容安排上,不仅通过一般的例题和应用MATLAB的例子使学生深刻理解理论,了解实际应用方面的情况,而且通过做分析和计算题使学生对教材的内容产生信任并熟练掌握。
本书内容的组织是假设学生已经学习过线性电路理论、微分方程和线性代数等课程,并且在学习本课程之后还将学习控制、通信或数字信号处理等课程。本书旨在培养学生对实际应用的兴趣,并使他们更加熟练地应用数学工具。
方法
本书按照以下方式编写:
(1) 全书内容分为三个部分: 绪论、连续时间信号与系统的理论与应用,以及离散时间信号与系统的理论与应用。
第一部分内容旨在帮助学生理解连续时间信号与系统和离散时间信号与系统之间的关系、无限小运算和有限运算,以及为什么在信号与系统的学习中要用到复数和复变函数。这一部分还介绍了MATLAB,它是数值计算和符号计算的工具。对于其他章节的综述也多多少少地散见于绪论之中,还有一些能够激发学生兴趣的实际应用在绪论部分也有介绍。值得注意的是,绪论这一章被命名为第0章,因为我们想把它作为底层,在此基础上搭建由其他章节所构成的大厦。
由于将连续时间信号与系统和离散时间信号与系统合在一起介绍,学生容易搞混,故在本书中它们是分开介绍的。在第二和第三部分,本书努力让学生明白的不仅是用于信号与系统分析中的各种变换之间的联系和它们各自的本质,还有就是一些变换应该被看作是另一些变换的改进,它们并不是没有关联性的一个个独立的方法。
(2) 本书付出了极大的努力尽可能地使教材符合“学生友好”特性。为了确保学生不会遗漏某些章节中的重要问题,经过周密考虑之后本书添加了一些备注,目的是使学生避免出现常见误解,这些误解都是我们在过去的教学中发现学生们所犯的错误。本教材运用了大量难度不同的分析实例来阐述问题,而且每一章都安排了一些应用MATLAB的实例,用来解释说明出现在教材中或者一些特殊问题中学生们应该知道的课题,学生们也可以通过给出的MATLAB代码学习MATLAB。为了帮助学生理解数学推导,在必要的时候本书提供了一些额外的推导步骤,并且任何有助于学生理解的步骤都没有遗漏。为了让学生抓住要点,对于重要问题的总结本书采用了方框,为了让学生记住专业术语,本书对概念和术语用粗体加以强调。
(3) 毫无疑问,学习信号与系统的知识不仅需要分析能力,更需要计算能力,因此在教材中提供复杂程度不同的问题是很重要的,这样不仅可以锻炼学生解决基本问题的能力,而且可以使学生熟练运用这门课程的知识来解决复杂的数学问题。相较于第1版教材,第2版教材在每一章之后的题目数量有明显增加,同时分析题和计算题也进行了区分。基础题旨在让学生精通概念性的问题,而MATLAB实践题旨在通过实际应用加深学生对概念的理解。为了鼓励学生自己解决问题,我们还在每一章的后面提供了大多数题目的部分或全部答案。
(4) 本书另外的两个特点应该对学生很有益处: 一是它引用了一些经典语录,还采用了脚注,这些语录和脚注展示了一些有意思的理念、评论或者历史注解; 另一个是采用了边导航,目的是告诉学生一些他们本应该知道的历史事实。很显然信号与系统理论与数学有关系,许多数学家都为此做出了贡献,其实也有许多工程师同样对信号与系统的发展和应用做出了杰出贡献,他们都应当为此而得到认可,我们也应该从他们的经历中有所收获。
(5) 最后,本书的一些其他特征是:
① 本书包含索引部分,目的是让学生能通过它找到定义、符号和本书中用到的MATLAB函数;
② 本书还包含参考文献列表。
内容
本书第二部分和第三部分的内容是全书的核心。第二部分介绍连续时间信号和系统的基本知识,并通过例子讲解了它们的应用,第三部分用类似的方式对离散时间信号和系统做了介绍。
由于信号与系统的概念对学生而言比较陌生,因此第1章和第2章对信号与系统的相关课题进行了广泛而全面的描述。第1章介绍连续时间信号的基本特点和处理方法,并提供了利用基本信号表示一般信号的表达式。第2章介绍系统的概念,特别是连续时间系统,还介绍了系统的线性、时不变性、因果性和稳定性。利用线性和时不变性,用卷积积分可以计算连续时间系统的输出,在第2章中我们对此进行了阐述并举例说明如何计算卷积积分。
第3章介绍拉普拉斯变换的基本知识及其在连续时间信号与系统分析中的应用。本章引入了极点、零点、阻尼和频率的概念,以及它们与时间函数信号的联系。本章的重点是表示线性时不变(LTI)系统的常微分方程的求解方法,特别是方程的暂态解和稳态解的求解,这是由于暂态解在控制中非常重要,稳态解在滤波和通信中非常重要。本章对比了卷积积分的时域计算方法和拉普拉斯变换计算方法,强调了变换的运算能力。本章还对LTI系统的转移函数这个重要概念以及其极点、零点的重要意义进行了详细研究,也研究了拉普拉斯逆变换的多种不同计算方法。
第4章和第5章介绍了连续时间信号和系统的傅里叶分析。第4章中周期信号的傅里叶级数分析扩展到非周期信号的傅里叶分析就是第5章介绍的傅里叶变换,傅里叶变换在表示周期信号和非周期信号以及系统的频率响应方面都很有用。要特别注意这些方法与拉普拉斯变换之间的关系,明白了它们之间的联系,只要有可能就利用已知的拉普拉斯变换来计算傅里叶级数系数和傅里叶变换,这样可以避免积分运算,不过要用到收敛域的概念。这两章还强调了频率、系统响应(与转移函数的极/零点位置有关)和稳态响应的概念。
拉普拉斯变换和傅里叶变换(离散信号的Z变换和傅里叶表示也类似)的出现顺序对于课程内容的学习和讲授有重要意义。本书采用先介绍拉普拉斯变换,然后再介绍傅里叶级数和傅里叶变换的顺序,这种方式是合理的,其原因如下: 一,进入信号与系统课程学习的学生通常已经熟悉了拉普拉斯变换,因为他们在之前学过的电路或者微积分课程中接触过拉普拉斯变换,并且还将在控制类课程中继续使用拉普拉斯变换,所以说这方面的专业知识很重要,已学过的内容将会被一直使用; 二,在应用傅里叶级数和傅里叶变换时,学生们遇到的一个普遍困难与积分运算有关,因此若能利用拉普拉斯变换,则不仅可以绕过积分运算,还可以提供一个对于频率表示的更全面理解。通过让学生认真思考双边拉普拉斯变换及其收敛域的意义,他们会更好地领会到在很多情况下傅里叶表示仅仅是拉普拉斯表示的一种特殊情况。更为重要的是,这些变换可以被看作是一个连续统一体,而不是一个个孤立的方法,这样做也使得系统的拉普拉斯表示具有理论意义,首当其冲就是证明傅里叶表示中存在稳态解的合法性——除非系统的稳定性得到保证,否则稳态解不存在,而且系统的稳定性也只能利用拉普拉斯变换来检验。一个有趣的典型例子是暂态响应和稳态响应之间的关系,二者的关系是理解傅里叶分析和拉普拉斯分析之间的关系,以及它们在控制、通信和滤波领域的应用之前就必须先理解的。
第6章和第7章介绍拉普拉斯变换在控制中的应用,傅里叶变换在通信、滤波中的应用,这两章的目的在于激发学生对这些领域的兴趣。第6章阐述了转移函数、系统响应和经典控制理论中稳定性等概念的意义。与第1版相比,本书增加了一节关于系统状态变量表示——这在现代控制理论中是热门课题——以及它与拉普拉斯变换关系的内容。第7章阐述了傅里叶分析在通信和模拟滤波中的应用。这两章的分析例子和MATLAB实例说明了两个变换在控制、通信和滤波器设计领域的不同应用。
抽样理论是联系连续时间信号和系统与离散时间信号和系统的桥梁,本书的第三部分介绍该理论并阐述离散时间信号和系统的应用。第8章陈述了抽样理论: 信号在抽样过程中不丢失信息的条件、从抽样信号中恢复出模拟信号,以及抽样理论在数字通信中的应用。
第9章讨论离散时间信号与系统,第10章介绍Z变换。尽管第9章中离散时间信号与系统的介绍方式与连续时间信号与系统的介绍方式相同,但本章重点放在了说明两个域之间差异的问题上,例如,时间的离散本质、离散频率的周期性和离散正弦可能不具有周期性,等等,这些问题都在这一章加以研究。第10章介绍Z变换的基本理论及其与拉普拉斯变换的联系。本章内容与介绍拉普拉斯变换那一章相似,包括差分方程的运算解、转移函数、极点和零点的意义。为了与第6章连续时间系统的状态变量表示相呼应,我们在这一章介绍了离散时间系统的状态变量表示。
第11章介绍离散信号与系统的傅里叶分析。考虑到学生在连续时间信号与系统的分析中已经积累了一些经验,我们在Z变换的基础上建立起离散时间傅里叶变换(DTFT),并且研究了一些不能使用Z变换的特殊情况。离散傅里叶变换(DFT)是由离散时间信号的傅里叶级数并对频率进行抽样而得到的,DFT在数字信号处理中具有重要意义。这一章举例说明了如何利用快速傅里叶变换(FFT)计算周期离散时间信号和非周期离散时间信号的DFT以及如何用离散时间系统处理它们。FFT是DFT的一个高效计算算法,本章讨论了该算法的一些基础。
第12章介绍离散滤波,即把第7章中的模拟滤波进行了扩展。本章首先说明了如何利用模拟滤波器理论来设计递归的离散低通滤波器,之后给出频率变换方法,说明如何从低通原型滤波器获得不同类型的滤波器,接下来又考虑了用窗函数法设计有限冲激响应滤波器,最后给出了应用基本技术实现递归和非递归滤波器的方法。我们希望通过使用MATLAB设计递归和非递归离散滤波器,能够启发同学们继续进行更加复杂的滤波器的设计。
使用本书教学
本教材的内容是为连续两个学期讲授“信号与系统”所使用: 第一学期课程介绍连续时间信号与系统,接着第二学期课程介绍离散时间信号与系统以及使用MATLAB的实验环节。这两门课程应该覆盖本教材的绝大部分章节,至于各章所讲的深度则取决于授课教师在这门课程上所想要强调的重点。正如我们指出的那样,第0章对于教材中的其余章节而言是必要的引子,但是并不需要非常详细地介绍这一章,学生们可以根据自身的需要进行参考。如果在应用方面的重点是滤波器设计,那么需要把第7章和第12章放在一起考虑。如果省略第1章~第5章和第7章~第9章中相对不重要的内容,那么可以在一个学期的课程内把本书讲完。
致同学们
作为本书的主要读者之一,你需要了解本书的特点,这样在学习本书内容时你就可以利用这些特点。尤其是:
(1) 根据需要尽量多参考第0章和附录中的内容,回顾或学习数学背景知识; 设想全书内容的整体架构; 回顾或学习MATLAB在信号处理中的应用。
(2) 你会感觉到本书内容的难度是逐步增加的,你要不断地学习,逐渐学会将书中的内容与你感兴趣的应用领域联系起来,从而激发你的学习兴趣。
(3) 为了帮助学习本书的内容,每一节我们都用一个方框将清晰、简洁的结论框起来,这样突出了重点。这些结论的证明都位于方框之前或之后,需要额外说明的问题均用备注加以补充,并使用了大量的分析和计算示例进行说明。另外,书中的重要术语都用粗体加以突出并被索引,以便于查寻。还有特殊符号和相关MATLAB函数的名字在索引中也能找到。最后,性质和公式都总结在表格里了。
(4) 每一章后面的绝大部分题目都给出了全部或者部分答案,目的是鼓励你依靠自己的力量解决这些问题,其中的一些题目还在笔者的考试中曾经用过。需要使用MATLAB的题目均有标题,标题指明这些问题如何与具体的课题关联。
(5) 本教材的目的之一是帮助读者自学MATLAB 在信号与系统中的应用: 通过在第0章介绍MATLAB软件,在之后的每一章都给出有代码的例子而达到。读者将会注意到,前两部分中的代码比后一部分中的代码更为完整,因为我们假设经过前面的学习,读者在运用MATLAB方面会变得熟练,因而能够很容易地补充被省略的代码。
(6) 最后笔者想要提醒读者注意书中的脚注、小花絮和历史栏,它们为你提供了信号与系统理论及其实践发展的背景。
路易斯·F.查普诺(Luis F.Chaparro)(美)匹兹堡大学,电气与计算机工程系