【原书信息】
ISBN 978-3-319-01341-1 ISBN 978-3-319-01342-8 (eBook)
DOI 10.1007/978-3-319-01342-8
Springer Cham Heidelberg New York Dordrecht London

1 学习本书的目的
1.1 Python已经成为流行的编程语言

在着手学习和复现该书的时间:2021年10月,TIOBE 榜单的榜首位置首次出现了除 Java 和 C 以外的第三个编程语言——Python,意味着TIOBE 榜单创建至今的 20 多年来,Java 和 C 的长期霸权已经结束。

1.2 Python已经成为大学生编程的基本入门语言

根据译者所了解的一些高校计算机语言教学现状而言,Python已经逐渐取代C语言成为大学生程序设计的事实入门语言,并且Python语言的教学并不仅仅局限于传统的理工类院校和专业,经济、管理等传统文史类专业也逐渐开始开设Python编程课程,促进大学生的计算思维、逻辑思维等能力素质的提升。

1.3 Matlab由于某些原因在中国限制使用

由于一些众所周知的原因,信号处理领域传统的编程和计算工具Matlab工具在中国范围内被限制使用,诸多高校被列入禁用名单,国内也开始着手开发替代产品。但是在可以预计的一段时间之内,寻求免费可用、性能基本对等的替代方案,是当下的一种明智之选。Python由于其强大的计算生态,使其已经被广泛应用于人工智能等领域,同样可以在科学计算领域发挥其强大功能。

1.4 Python的广泛应用超出Matlab计算的范围

随着时代的发展,物联网在生活中已经得到广泛应用。部分电子信息专业学生在毕业后将从事物联网开发相关工作,Matlab的性质使其更加适合于研究而非开发领域,Python由于其较强的可移植特性,能够工作于各种不同的平台,尤其是当下比较热门的物联网之中。

2 本书原版序言
2.1 本书面向的读者

本书将教你使用Python语言及其强大的科学计算扩展库进行基础的信号处理。这本书并不适合做信号处理的入门书籍,而是假设已经系统学习过信号处理课程。此外,我们还假设读者对Python语言有基本的掌握和理解,当然可能是通过某些在线课程。也就是说,本书适合于具有一定的信号处理基础,并且想学习如何使用Python工具链的人员。另一方面,如果读者通过在其他科学领域的工作中对Python很熟悉的话,本书将会教授信号处理的基础知识。同样,如果读者是信号处理工程师,熟悉MATLAB、IDL等商业工具包,将会学习到如何有效地利用Python科学工具验证已经熟悉的概念。

2.2 本书的特点

本书的一大特征是:所有的内容都使用Python进行复现。具体而言,本书响应的全部代码和图形都在可下载的补充材料中,采用IPython Notebooks的形式进行提供(注:在学习和代码复现过程中,采用Jupyter Notebook提供代码)。IPython Notebooks是实时的交互式文档,允许读者改变参数,重绘图形,或者修改本书所有的知识点和代码。我强烈建议读者下载IPython Notebooks,并按照其中的文本内容进行所涉及的信号处理专题的实验。作为一个开源项目,全部的Python工具集,包括IPython Notebooks都是免费的。在讲授该课程多年之后,我深信学习的唯一方法是边学习边实践。本书也将提供安装和配置Python环境的说明。

2.3 本书的内容说明

本书的内容并非包罗万象,而仅仅只是作者所从事工作的一方面。因此,重点仅仅只包括日常的基础工作。尽管Python支持很多强大的装饰器、生成器和上下文管理器等,但是本书所使用的Python只是一种最直接的方式。当然,我们也鼓励更好的Python编码实践。

3 学习和复现过程中所用平台和Python库
3.1 Python版本和编程工具

原代码采用Python 2.x版本。在学习过程中,将代码修改为Python 3.8版本。

3.2 用到的库

Numpy
Scipy
Matplotlib
mpl_toolkits

4 本书的结构框架