文本阅读:
第17章数字信号处理707
11bit为指数b后者允许非常高保真度的处理,但并非所有DsP芯片都能实现这种精度17,8DSP编程
与所有的软件编程一样,DSP编程允许创建出能力很大、灵活性很高的各种应用程序DSP芯片把各个音频采样点作为输入信号,完成各条软件指令的执行。虽然一颗DSP芯片的架构决定了它理论
理能力,但实际实现的性能也要受到其指令集的结构与多样性的影DSP芯片使用汇编语言进行编程,这种方式的效率很高。更高级别的语言(比如C++)容易使用、容易编写文档、容易调试,并且还是与硬件无关的。但是,它们的效率较低,因此执行起来较慢,并且不能充分利用专门的芯片硬件。汇编语言的效率更高。它们在执行时速度更快,所需内存更少,并能充分利用各种特殊的硬件功能。不过,它们更难于编程、读取和调试,而且它们是与硬件相关的,同时也是非常耗费人力的用于某种具体DsP芯片类型的汇编语言是用该芯片指令集中的各条指令书写的。这些指分利用了这种芯片中的各种专门的信号处理功能。一般来说,有四类指令:算术运算、程序控制、内存访问和传输以及输入/输出。在规划设计这些指令时采用了助记术,能帮助识别出指令,并指向一个将要被操作的数据字段。因为很多DP芯片都在一个主机环境下工作,所以用户前端程序是采用更高级的语言编写的,仅把汇编语言编程留给那些关键的音频处理任务。
在DSP编程中处于中心地位的一项操作就是乘累加指令,通常被称为MAC(Multiply很多算法都要求两个数相乘,然后把乘积与先前的操作结果加起来。DSP的特色就是有一条乘累加指令,能把两个数字移动就位并把两者相乘,然后累加结果并进舍入,所有这些运算都算是一个操作。为了高效地实现这一系列动作,算术运算单元包含了个乘法器-累加器的组合(如图17.17所示)。这样就可以在器周期中计算一个子乘
积,同时把前一个子乘积加到一个和上。为了实现这一功能,DSP芯片依靠一个硬件乘法器执行乘累加操作。诸如对多个乘积进行求和以及迭代运算等操作都可效地进行
在大多数情况下,一个DSP程序的成功取决于编程人员的聪明才智。软件开发费用往往要比硬件本身高得多。在很多情况中,制造商会提供各种函数库,比如在很多DSP应用中都很常的FFT、滤波器和窗函数等。为了辅助开发过程,可以采用各种软件开发工具。文本编用来编写和修改汇编语言源代码。汇编程序把汇编语言源代码翻译成目标代码。编译器把级语言编写的程序翻译成目标代码。连接器把汇编的和编译的目标程序与库程序组合起来,创建出可执行的目标代码。汇编程序和编译器会在程序中所有有可能使用DSP芯片的专门处理能的地方尽可能地使用这些专门的功能。这些代码真正在DSP硬件上运行之前,可以使模拟器在计算机主机上仿真运行这些代码。调试器用来在DSP程序上进行底层的调试。此外,