《实时数字信号处理:实践方法与应用(第2版)》分为两大部分:DSP实现与DSP应用。第一部分,DSP实现(第1~7章)讨论了实时DSP原理、架构、算法及实现思考。第1章概述了实时DSP功能模块的基本原理、DSP硬件选择、定点与浮点DSP设备、实时约束、算法开发、DSP芯片挑选及软件开发。第2章介绍了TMS320C55x DSP处理器的架构与汇编编程。第3章介绍了基本DSP概念和在DSP硬件上实现数字滤波器与算法的实际考虑。第4章集中研究了FIR滤波器的设计、实现和应用。数字IIR滤波器和自适应滤波器分别在第5、第7章介绍。FFT算法的开发、实现和应用在第6章介绍。
近年来,数字信号处理(DSP)已经扩展到超出滤波器、频域分析及信号生成的范围。越来越多的市场向DSP应用打开,之前实时信号处理在这些市场中或者不可行或者过于昂贵。对于实际应用的DSP算法,通用数字信号处理器的实时信号处理为其提供了有效的设计与实现方法。然而,在当今的工程领域,这是一个很有挑战性的工作。随着DSP渗透到很多实际应用,对高性能数字信号处理器的需求在今年迅速扩展。很多工业公司当前正参与到实时DSP 的研究与开发中。因此,不仅掌握DSP理论而且掌握实时信号系统的设计实现技术,对于当今的学生、实践工程师及开发研究人员变得日益重要。
本书介绍了实时DSP基础原理,并且使用实际操作的方法介绍了DSP算法、系统设计、实时实现考虑以及很多实际应用。本书包含很多有用的实例,如实际操作的实验软件以及使用MATLAB、Simulink、C及DSP汇编语言的程序。书中也包含用于进一步探索实例和实验的各种练习。本书使用德州仪器的代码集成开发环境和用于实时实验与应用的频谱数字TMS320VC5510 DSP启动工具包(DSK)。
本书强调实时DSP应用,且可作为高年级大学生/研究生的教材。本书的预修课程为信号与系统概念、微处理器架构与编程以及基本的C编程知识。这些专题在初、中级电气和计算机工程、计算机科学以及其他相关课程中均有涉及。本书亦可作为桌面参考书,以供DSP工程师、算法开发者及嵌入式系统程序员学习DSP概念,开发工作中的实时DSP应用。我们使用一种避免很多理论推导的实际方法。在每章结尾均有DSP教材列表,提供数学证明。德州仪器(www.ti.com)的TMS320C55x DSP处理器和Math Works(www.mathworks.com)的MATLAB与Simulink的手册与使用说明同样对学习有帮助。
这是2001年出版、名为《实时数字信号处理: 实现、应用与TMS320C55x实验》一书的第2版,作者是Kuo,Lee,由John WileyandSons,Ltd出版。
修订中的主要变化如下:
(1) 使用有效的软件开发过程: 从算法设计和利用MATLAB与浮点C证明开始,到有限字长分析、定点C实现和在定点DSP处理器上使用内联函数、汇编程序、C与汇编编程混合的代码优化。这种一步一步的软件开发和开发过程被用在第8~15章的有限冲激响应(FIR)滤波、无限冲激响应(IIR)滤波、自适应滤波、快速傅里叶变换和很多实际应用中。
(2) 将第1版的第9章扩展为8章,增加了必要的背景及一些广泛使用的DSP应用,如语音编码、信道编码、音频编码、图像处理、信号发生与检测、回声消除和噪声消减等,以实施使用优化的软件开发过程的实验。
(3) 使用最有效的MATLAB图形用户接口(GUI)工具开发分析DSP算法,如信号处理工具(SPTTool)、滤波器设计与分析工具(FDATool)等。这些工具对滤波器设计、分析、量化、测试与实现都很有效。
(4) 使用一步一步的实验创建CCS DSP/BIOS 应用、配置用于实时音频应用的TMS320VC5510 DSK,以及利用MATLAB的CCS特性连接改进DSP开发、调试、分析和测试性能。
(5) 更新实验以包含新的实际操作的练习与应用。同时,使用最新版的软件和用于实时实验的TMS320C5510 DSK版更新所有程序。
很多现有的算法和应用,可用MATLAB和浮点C程序实现。本书提供了一种系统的软件开发过程,用于将这些程序转换为定点C并进行优化以便在可商用的定点DSP处理器上实现。MATLAB用于分析和滤波器设计,C程序用于实现DSP算法,CCS被整合到TMS320C55x的实验与应用中,以有效阐述实时DSP概念和应用。书中强调了C与汇编语言混合编程,以便为快速软件开发与维护有效利用先进的DSP架构。
本书分为两大部分: DSP实现与DSP应用。第一部分,DSP实现(第1~7章)讨论了实时DSP原理、架构、算法及实现思考。第1章概述了实时DSP功能模块的基本原理、DSP硬件选择、定点与浮点DSP设备、实时约束、算法开发、DSP芯片挑选及软件开发。第2章介绍了TMS320C55x DSP处理器的架构与汇编编程。第3章介绍了基本DSP概念和在DSP硬件上实现数字滤波器与算法的实际考虑。第4章集中研究了FIR滤波器的设计、实现和应用。数字IIR滤波器和自适应滤波器分别在第5、第7章介绍。FFT算法的开发、实现和应用在第6章介绍。
第二部分,DSP应用(第8~15章)介绍了一些信号处理中的实际应用,这些应用已经在系统实现中起到了重要作用。这些挑选的DSP应用包括第8章中的信号(正弦、噪声及多频音)发生、第9章中的双音调多频率检测、第10章中的自适应回声消除、第11章中的语音编码算法、第12章中的语音增强技术、第13章中的音频编码方法、第14章中的错误纠正编码技术和第15章中的图像处理原理。
正如任何试图在给定时间捕捉艺术状态的书籍,本书中自然出现了这个不断变化领域中的快速发展导致的更新。我们确信本书将作为已经产生的知识的引导者和将随之产生的知识的启发者。
软件有效性
本文在实例、实验和应用中使用了各种MATLAB、浮点与定点C、DSP汇编和C与汇编混合程序。这些程序及很多其他程序和实际数据文件均可在附带的CD中获得。附录B有目录结构和子目录名字的解释。这些软件将帮助对DSP算法实现的理解,且需要在每章最后部分的实验中用到。其中的一些实验设计包括经过细微修改过的实例代码。通过检查、学习及修改实例代码,这些软件也可作为其他实际应用的原型。我们进行了各种尝试以保证代码的正确性。我们也将感谢将任何代码错误告知我们的读者(kuo@ceet.niu.cn),以便我们可以改正、更新及在网站上公告: http://www.ceet. niu.edu/faculty/kuo。
致谢
德州仪器的Cathy Wicks和Gene Frantz及Math Works的Naomi Fernandes和Courtney Esposito为我们完成本书提供了必需的支持,对此我们表示感谢。我们对支持该工程的Wiley的下列人员表示感谢: 执行责任编辑Simone Taylor,助理编辑Emily Bone和执行工程编辑Lucy Bryan。我们也感谢为本书作最终准备的Wiley员工。最后,我感谢自始至终表现出无尽的爱、鼓励、耐心和理解的家人。
Sen M.Kuo,Bob H.Lee,Wenshun Tian
1 实时数字信号处理导论
1.1 实时DSP系统的基本要素
1.2 模拟接口
1.2.1 采样
1.2.2 量化和编码
1.2.3 平滑滤波器
1.2.4 数据转换器
1.3 DSP硬件
1.3.1 DSP硬件选择
1.3.2 DSP处理器
1.3.3 定点与浮点处理器
1.3.4 实时约束
1.4 DSP系统设计
1.4.1 算法开发
1.4.2 DSP处理器的选择
1.4.3 软件开发
1.4.4 高级软件开发工具
1.5 DSP开发工具介绍
1.5.1 C编译器
1.5.2 汇编器
1.5.3 链接器
1.5.4 其他开发工具
1.6 实验与程序示例
1.6.1 使用CCS和DSK的实验
1.6.2 使用CCS和DSK调试程序
1.6.3 使用探点的文件I/O
1.6.4 使用C文件系统功能的文件I/O
1.6.5 使用分析器进行代码效率分析
1.6.6 使用DSK的实时实验
1.6.7 采样定理
1.6.8 ADC中的量化
参考文献
练习题
2 TMS320C55x数字信号处理器导论
2.1 处理器家族简介
2.2 TMS320C55x体系结构
2.2.1 体系结构概述
2.2.2 总线
2.2.3 片上存储器
2.2.4 内存映射寄存器
2.2.5 中断和中断向量
2.3 TMS320C55x外围电路
2.3.1 外部存储器接口
2.3.2 直接存储器存取
2.3.3 增强主机接口
2.3.4 多通道缓冲器串行口
2.3.5 时钟产生器和定时器
2.3.6 通用I/O口
2.4 TMS320C550x的寻址方式
2.4.1 直接寻址方式
2.4.2 间接寻址方式
2.4.3 绝对寻址方式
2.4.4 内存映射寄存器寻址方式
2.4.5 寄存器位寻址方式
2.4.6 循环寻址方式
2.5 流水线和并行处理
2.5.1 TMS320C55x的流水线
2.5.2 并行执行
2.6 TMS320C55x指令集
2.6.1 算术指令
2.6.2 逻辑和位操作指令
2.6.3 移动指令
2.6.4 程序流程控制指令
2.7 TMS320C55x汇编语言编程
2.7.1 汇编伪指令
2.7.2 汇编声明语法
2.8 TMS320C55x的C语言编程
……
3 DSP基础及应用要点
4 FIR滤波器的设计与实现
5 无限长单位冲激响应(IIR)滤波器的设计和实现
6 频谱分析和快速傅里叶变换
7 自适应滤波
8 数字信号发生器
9 双音多频检测
10 自适应回声消除
11 语音编码技术
12 语音增强技术
13 音频信号处理
14 信道编码技术
15 数字图像处理导论
附录A 一些有用的公式和定义
附录B 软件组织结构和实验清单