译著序
这是一本在实时数字信号处理(DSP)方面非常实用的书。它从基础的核心理论讲起,再结合理论探讨具体的工程实践,用winDSK、MATLAB与C语言实现进行实践对比,循序渐进地引导读者将理论与实践进行有机结合。特别地,第Ⅰ部分“理论基础”中各章的最后一节“问题”,指引读者进行深入思考与回顾;第Ⅱ部分“项目实践”中各章的最后一节“后继挑战”,拓展读者的实践思维,增强实践能力。
本人在计算机软件行业从业多年,其间阅读了不少英文在线文档及书籍,由于深感阅读与理解英文技术资料的速度大幅落后于直接学习对应的中文资料的速度,因此拜读了很多前辈翻译的中文技术资料,受益匪浅! 一直以来希望自己也能翻译一些英文技术资料,方便其他中文读者轻松地学习和理解英文技术资料,为促进知识传播尽一份微薄之力。
当自己认真翻译时,才发现比自行阅读艰难许多。自己阅读时意会即可,而真正翻译时需要能够言传,期望更准确地表达出原作者的意图,需要不断揣摩与斟酌相关字眼,同时需要结合专业术语与前人的翻译习惯来选取对应的词汇及表达方式。由于本书翻译是在工作之余进行的,时间比较仓促,加之本人水平有限,翻译过程中难免对原著有理解偏差甚至错误之处,欢迎广大读者批评指正。
在本书翻译工作启动时,刘阳丽、陈荣生、李宗衡提供了协助,翻译过程中家人给予极大的理解与支持,出版过程中剧艳婕、宋淑娟提供工作协助与稿件审校,在此一并感谢!
2020年4月于广州····
序言
数字信号处理是今天使用的大多数技术的“核心”。手机使用数字信号处理来生成用于与无线网络通信的DTMF(双音多频)音调;降噪耳机使用自适应数字信号处理来消除周围环境的噪声;数码相机使用数字信号处理将图像压缩成JPEG格式以便有效存储,比如在一张存储卡中存储数千张图像;数字信号处理允许播放存储在手机和iPod中的压缩音乐;数字信号处理甚至可以控制汽车中的防抱死制动器。这些只是我们周围世界中数字信号处理的几个例子。
今天有许多好的教科书可以教授数字信号处理——但是大多数都是教授理论的,也许还有一些MATLAB的仿真。而本书则迈出了大胆的一步,它不仅提供了理论,还通过仿真强化了理论,并向我们展示了如何在实时应用中实际使用结果。这最后一步不是一个微不足道的步骤,这就是为什么这么多的书和课程只提供理论和仿真。凭借本书三位作者——Thad Welch、Cameron Wright和Michael Morrow的综合专业知识,读者可以通过所提供的可访问路径走进应用程序的实时世界。第3版继续支持德州仪器(Texas Instruments)的C6713 DSK和多核OMAPL138电路板。多核OMAP138芯片同时包括一个C6784 DSP内核和一个ARM9 GPP内核,使其功能非常强大,对各种用户都具有吸引力。新增功能还支持TI LCDK(低成本开发套件)。包含自适应滤波和二阶节(SOS)的新项目的章节已添加到包括QPSK和QAM发射器和接收器的现有项目章节中。所有代码都已更新为在CCS6.1版上运行,并且所有M文件已更新为在MATLAB 2016a上运行。
我有幸曾与本书的作者合作撰写过几篇论文,因此能从他们对工程教育贡献的直接经验方面来阐述。他们更加努力地持续扩展自己的理解和能力,以合乎逻辑、直截了当的方式呈现复杂的材料。他们参加工程教育会议,主持工程教育会议,写工程教育的论文,为工程教育而活!(其中一位合著者Thad Welch,最近被选为第一位信号处理工程网络研究员(Signal Processing Engineering Network Fellow),以表彰他的领导才能和贡献。)我很高兴能有机会以作者自己的话来告诉本书的读者:你们开始了“一趟旅程……”
Delores M. Etter,电气工程卡鲁思主席,德克萨斯州达拉斯市南卫理公会大学莱尔工程学院达尔文迪森网络安全研究所杰出研究员。
(Etter博士,美国国家工程学院院士、IEEE会员、美国工程教育学会会员。2005—2007年,她担任海军助理秘书长,负责研究、开发和收购;1998—2001年,她担任美国国防科技部副部长。她还是许多工程教科书的作者,其中包括几本MATLAB的教科书。)
前言
本书供需要在实时数字信号处理(DSP)方面具有简单实践经验的学生、教育工作者和工程师使用。过去,在实时DSP方面,理论与实践之间存在着巨大的“差距”,本书使用作者已证明的方法弥补了这一差距。本书分为三个部分:理论基础(共9章)、项目实践(共12章)和附录(共10章)。本书附带的软件包括所有必要的源代码,以及附加信息和教程材料,以帮助读者掌握实时DSP(有关访问软件的操作指南,请参阅第1章)。还有一个网站支持这本书(见http://www.rtdsp.com/),读者可以在那里找到最新的新闻、提示、教程、勘误表、额外的材料和软件。
我们设想,如果读者是第一次接触DSP,则他们应结合更传统的、理论性更强的信号处理教材一起使用本书。您正在阅读的这本书并不是为了教授基本的DSP理论,而是假设您已经了解或正在学习DSP理论。本书不是讲授理论,而是使用一个非常实用的、逐步引导的框架,提供实时DSP的实践经验,并在此过程中强化这种基本的DSP理论(作者称之为理论基础)在一本篇幅合理的书中以有效的方式既讲授理论又讲授实践是极不实际的。。该框架在每章中使用了一系列演示、练习和实践项目,首先对适用理论进行快速概述,然后使用MATLAB来应用这些概念,最后在一些最新的高性能DSP硬件上实时运行适用程序。这些项目指导读者来为自己创建各种有趣的实时DSP程序。请务必查看本书的附录——有些读者评论说,这些附录让这本书很值!每个理论基础章节在该章的最后都提出一些问题,作为家庭作业或自学,检验读者对特定章节里的关键DSP概念的理解。如前所述,这些关键概念通常仅在书中进行简要介绍,更深入的内容期望来自读者已经阅读的或现在正与本书结合使用的、更传统的、理论性更强的教材。这是有意安排的,如果读者难以找到章节最后所提问题的解决方案,那么就基本确定了读者需要对该理论进行回顾以便充分利用本教材。
理想情况下,读者应该参加或已经参加过介绍性的DSP(或离散时间信号和系统)的课程。然而,我们已经成功将本书的各个部分用于还没有参与过DSP课程的学生作为补充理论的“及时”方法。这本书的主题覆盖范围足够广泛,同时包含本科和研究生水平的课程。期望读者对MATLAB和C编程语言有基本的了解,但也不必是这方面的专家。为了充分利用这本书,读者应该能够使用相对适中的硬件和软件工具集合。特别是,一些推荐的项目包括一台运行版本比较新的Microsoft Windows(例如Windows 7 SP1/8.1/10)的标准PC、一份MATLAB及其信号处理工具箱的拷贝,以及下面介绍的一块廉价的德州仪器DSP电路板(带软件)。其他一些杂项项目,如信号源(任何能够播放数字音乐的设备都可以正常工作,如iPod、智能手机,甚至CD播放器)、扬声器(通常连接到PC电源的类型即可)、耳机或耳塞,以及3.5毫米立体声接插线(有时称为1/8英寸立体声唱机插头电缆)都会有用。为了以最大的灵活性处理输入和输出信号,支持DSP电路板的几种不同编解码器(见第1章)使用一些常见的测试设备,如示波器、频谱分析仪和信号发生器,可以获得更大的灵活性,但我们展示了如何在需要时使用第二块便宜的DSP电路板甚至PC的声卡作为此类测试设备的廉价替代品。
实时数字信号处理(从MATLAB到C)——基于TMS320C6x DSP(第3版)本书中介绍并随书提供的实时软件支持德州仪器公司(TI)提供的几种相对便宜的DSP电路板。这些电路板包括TI低成本开发套件(Low Cost Development Kit,LCDK)的OMAPL138版本、LogicPD Zoom OMAPL138实验者套件(Experimenter Kit)和仍然可用的TMS320C6713 DSK首字母缩略词“DSK”代表“DSP Starter Kit”。而本书中讨论的LCDK和实验者套件(Experimenter Kit)电路板未被TI正式称为“DSK”,我们选择简化讨论,并经常称所有的电路板为DSK。这些电路板可以从授权的TI分销商处购买,也可以直接从TI购买(参见第1.3.1小节)。请注意,TI提供了大量学术折扣和捐赠(也在第1.3.1小节中讨论)。。这些具有与TMS320C6711 DSK有限的向后兼容性,但在本书中未明确涵盖这种已终止的电路板。目前可用的电路板都是标配(或可以免费下载)一套强大的软件开发工具(Code Composer StudioTM),我们在后面的章节中会大量使用这些工具。
第1版是为响应各种大学的学生和教师的许多要求而写的。当作者在各种会议上介绍本书中出现的一些概念和代码时,我们被一群试图靠他们各自的努力去“弥合理论与实践(使用实时硬件)之间的差距”的听众包围。第1版将我们统一的、逐步过渡的、以跨越这个“差距”的方法汇集在一个单一的来源中,被证明是相当流行的。
第2版做了更新,其中包括对更强大的DSP开发电路板的支持。该开发电路板当时可从德州仪器公司(TI)获得,即LogicPD Zoom OMAPL138实验者套件(Experimenter Kit)。该电路板现在已不再生产,但仍在许多大学中使用。第2版还添加了一些其他主题(例如PN序列)和一些更高级的实时DSP项目(例如像QPSK和QAM这样的用于发射器和接收器的高阶数字通信项目),这些是第1版的读者所要求的。
第3版(即本书)为最新的、功能强大的廉价DSP开发电路板提供支持,该电路板目前可从德州仪器公司(TI)获得,即OMAPL138OMAPL138同时包含C6748和ARM处理器内核,我们二者都用。 LCDK。这个复杂但功能极其丰富的电路板是一个很好的例子,说明了为什么我们的书被如此多的工程师、教育工作者和学生使用:我们让开始使用这个电路板进行实时DSP变得容易,并使读者少走了许多弯路。本书所支持的DSP板的更详细描述见第1章。第3版还包括两个应早期版本的读者所要求的新的实时DSP项目(探索二阶节的使用和自适应滤波器的设计)。我们还添加了3个新的附录:MATLAB提供的代码生成(Code Generation)工具介绍,如何将LCDK转换为便携式电池驱动设备的指南,以及本版本直接支持的3个DSP电路板的比较。在这个版本中,出版商增加了彩色印制,我们重新生成了书中的大部分图,以充分利用这一点。我们还检查并运行了(在3种电路板的每一种上)本书附带的所有软件。与之前的版本一样,我们吸纳了来自早期版本的许多用户的宝贵的得到高度赞赏的反馈和建议,从而使本书成为一本我们所希望的更好的书。
请注意,任何勘误、更新、其他软件和其他相关材料都将发布在由作者维护的本书网站上,网址为http://www.rtdsp.com。由于DSP硬件的更新速度比我们可以出版本书新增补版的速度更快,因此该网站将为作者提供一种方法来支持这种更新,甚至包括那些在本书当前版本出版后才推出的所选择的新DSP电路板。为了您的方便,本前言末尾的二维码也将带您进入该网站。出版商CRC Press(Taylor &Francis Group的一部分)也提供了一个安全的网页,用于访问本书的解决方案手册(Solutions Manual)等材料,允许采用本书作为其中一门或多门课程的教学资料的教授们访问,有需要请联系出版商了解详情。
从DSP理论到实时实现之路充满了潜在的坑洼和其他障碍,这些障碍在历史上造成了理论与实践之间众所周知的“差距”。本书提供了一种经过验证的方法,可以平滑路径、清除障碍并避免通常会遇到的挫折,帮您缩小差距。我们希望您喜欢这趟旅程……
致谢
如果没有德州仪器公司(TI)的支持和帮助,这本书不可能完成。特别地,我们想对凯西·威克斯(Cathy Wicks)表达衷心的感谢,他在指导德州仪器公司的全球大学项目方面不遗余力,使无数的学生和教授都能负担得起DSP。凯西的前任克里斯蒂娜·彼得森(Christina Peterson)、玛丽亚·霍(Maria Ho)和托伦斯·罗宾逊(Torrence Robinson)也为我们的努力做出了贡献,最终促成了这本书的出版。德州仪器公司对DSP教育的支持在业界是无与伦比的,我们非常感激这种前瞻性的企业愿景。
我们还要感谢CRC Press(Taylor &Francis Group的一部分)的Nora Konopka和Kyra Lindholm,在他们的帮助和指导下完成了本书。他们的实时帮助、快速响应和永不言败的幽默感应成为其他出版商的榜样。请注意,我们以完全格式化为“可直接拍照制版”的形式向出版商提供了原稿,因此任何文稿错误都是我们的错,而不是出版商的。
我们要感谢罗伯特·W·科南特(Robert W. Conant)对QPSK数字接收机一章的宝贵贡献,以及布莱恩·L·埃文斯(Brian L. Evans)关于书中PN序列覆盖范围的有益建议。怀俄明大学(University of Wyoming)的罗伯特·F·库比切克(Robert F. Kubichek)也提供了许多出色的建议和反馈。
匿名评审员的投入和许多第1版、第2版用户的经验使得本书得到了明显的改进,他们给予我们宝贵的反馈和许多优秀的建议。
如果我们在这份简短的致谢中遗漏了一个与文本编写相关的“插件”,将是我们的失职。本书是用LaTeX排版的,这是Leslie Lamport开发的一个功能强大的文档准备系统,是Donald Knuth的TeX程序的一个特殊宏集合(具体来说,我们使用了pdfLaTeX以直接生成PDF文件输出,它是Han The Thanh创建的pdfTeX的变体)。LaTeX是技术写作的理想工具,得到了TeX用户组(TUG)全球成员的大力支持,详情请访问http://www.tug.org/。TeX、LaTeX和pdfLaTeX在公共领域免费提供(TeX是美国数学协会的商标)。我们使用优秀的TeXStudio免费软件编辑器(见http://texstudio.sourceforge.net/)作为TeX用户组(TUG)免费提供的LaTeX的全面的TeX Live分发版的前端。为了以标准BibTeX语法维护书目参考数据库,我们使用了免费提供且功能强大的JabRef程序(请参阅http://jabref.sourceforge.net/)。所有这些程序不仅是免费的,而且可以用于多种操作系统。本书中的插图主要是用两个程序之一创建的:Canvas和MATLAB。Canvas是美国ACD系统有限公司(ACD Systems of America, Inc.)的高端技术绘图软件包,它可以在同一个图形中创建、操作向量和位图图像,且提供了类似于将Adobe Illustrator和Adobe Photoshop组合在一个软件包中的功能。 MATLAB是由迈斯沃克软件有限公司(The MathWorks, Inc.)开发的,它是一个功能极其强大的数值计算环境和第四代编程语言,且有许多可用于各种专业领域的工具箱扩展。