FIR滤波器(图1)存储n数据单元系列,每个数据单元延迟一个附加周期。通常,这些数据单元称之为分支。每个分支与系数相乘,其结果求和产生输出。某些方法并行执行所有的乘法。更一般的方法是分为N级,用累加器从一级到下一级传递结果。这些实现方法用功能资源换取速度,取N个计算级并需要n/N个乘法器。根据系数是静态还是动态以及系数值设计,有不少其他通用的设计最佳化方法。
图1 典型FIR滤波器的实现
实现方法
从图像压缩到确定数据取样的频谱成分,在不同的应用中都用FFT。实现FFT有多种方法。最通用的方法是通用Cooley-Tukey时间抽取,把FFT分解成若干更小的FFT。最简单的实现方法是用Radix-2蝶形单元(图2),其输入数据必须传递倍数。这种计算概念上是简单的;然而,图左边所有的乘和加是用复数计算的,所需要的乘和加的实数是更复杂的问题(如图右边所示)。
IIR滤滤器除引入反馈通路外,它类似于FIR滤波器。这些反馈通路使IIR滤波器的设计和分析比FIR更复杂。然而,对于相同硅面积,IIR方法可提供更强的滤波器。尽管有几种IIR结构,但是,一种通用的结构是用2阶四次方结构(图3)。
很多应用是用混频器来变换信号频率。概念上,可用单个乘法器,而在数字应用中,用复数形式表示不少优点。最一般的形式是信号表示是为I和Q分量。
DSP选择
做为这些通用功能应用,大多数DSP应用的核心是乘、加、减或累加。通用DSP芯片与通用微处理器结合能有效地实现这些功能。乘法器数量通常1“4个,而微处理器通过乘和其他功能定序通过的数据,存储中间结果在存储器或累加器。主要靠提高乘法所用的时钟速度来提高性能。典型时钟速度为几十MHz”1GHz。性能用每秒MMAC(百万乘累加)度量,典型值10“4000。
需要较佳功能必须并联组合多个DSP引擎。这种方法的主要优点是直接实现用高级编程语言(如C语言)编写的算法。
DSP定向的FPGA能在一个芯片上并行实现很多功能。通用发送、逻辑和存储器资源互连功能、执行加**能、定序和存储数据。某些基本器件仅提供乘法支持,需要用户建造其他逻辑功能。更复杂的器件提供加、减和累加功能做为DSP构建单元的一部分。FPGA通常带有几十乘法器单元,可工作在几百MHz的时钟频率。