技术中心
 
 

采用DSP、PLD和ASIC实现多速滤波器设计的比较

   作者:管理员    浏览:211    

  许多通信系统都要用到多速滤波器(multirate filter),多速滤波器指输出数据速率与输入数据速率不相等的滤波器,常用于某个物理接口如数模转换器(DAC)或模数转换器(ADC)的接口处。当滤波器输出数据到DAC时,用户常会选择插值滤波器,因为它能产生更多的取样点以使DAC的输出波形更加平滑;而当滤波器从ADC接收信号时,用户一般会选用抽取滤波器,因为抽取滤波器允许数据被过取样从而获得更高的信噪比(SNR)。使用抽取滤波器后系统只需工作在信号速率。  

  在多速滤波器设计过程中,有效地采用硬件实现插值和抽取功能非常重要,问题的关键还在于怎样选择正确的硬件类型。下面分别讨论采用DSP、PLD和ASIC实现多速滤波器的方法。  

  插值和抽取  

  插值功能常用来增加输出信号的取样率(图1),实际上在原始取样值附近增加新的取样值很有必要。由于新的取样点处的值是未知数,一般就设为零,因此也被称为上取样(upsampling)、零值插入或零值填充。输出端数据点的增加会改变取样速率,从而使奈奎斯特频率外推。

在时域中向数据插入零值,则信号在频域上会产生原始信号频谱的镜像。由于取样速率的改变并不会产生更多的信息,因此所有的镜像信号(以工方式加入系统中)都表现为噪声,幸运的是些噪声可以通过理想低通滤波器滤除。  

采用DSP、PLD和ASIC实现多速滤波器设计的比较如图

  抽取滤波器的工作方式也大致相同。这种滤波器要消除某些取样点,从而降低取样速率和奈奎斯特频率。任何低于或高于奈奎斯特频率的信号都将表现为噪声,因此有必要在消除数据(下取样)前加入低通滤波器,这样可以确保噪声不串入系统(图2)。  

采用DSP、PLD和ASIC实现多速滤波器设计的比较如图

  实现策略  

  在插值与抽取实现方案中采用的低通滤波器最好具有线性相位特性,一般是利用有限冲击响应(FIR)滤波器来实现这种线性相位滤波器,但FIR滤波器的实现要比无限冲击响应滤波器(IIR)的代价高得多。为了取得更好的性能,需要增加滤波器的阶数,而FIR滤波器可以从10阶到200阶甚至更高。每个滤波器的输出必须经过10到200次运算。由于FIR滤波器非常昂贵,设计师一般会采用专用硬件来实现,这里的专用硬件可能是一块专用滤波芯片、一种可编程逻辑解决方案或一些半定制(标准化单元实现)集成电路。  

  用标准单元实现的FIR滤波器可以获得最大的吞吐量,按速度排序的话,可编程逻辑器件(PLD)和专用滤波芯片的吞吐量排第二,然后才是通用DSP器件。当最终用户需要高的数据吞吐量时,几乎没有什么硬件可以胜过ASIC和PLD。ASIC设计流程相当成熟,对于PLD来说,可以利用能自动创建FIR滤波器的工具来加速开发流程。为了减小插值与抽取滤波器的芯片面积并增强其性能,很有必要采用一些专门技术。  

  目前还没有最佳的多速滤波器实现方案,而方案的评估也有很多种方法。方案的成本取决于某个实现方案所对应的性能要求。这里性能可以定义为每秒钟乘法运算的总次数(由于加法一般都与乘法结合在一起,因此运算成本中不再包含加法)。假设单个乘法操作需要一个时钟周期,那么我们就可以确定实现某个方案所需的MIPS值。  

  检查插值滤波器的运算速度有个比较直接的方法,即将数据先进行上取样然后再进行滤波。图3所示的样本要求采用388抽头的滤波器,并且滤波器工作时的数据速率必须达到每秒12兆样点(MSPS)。这种实现方式所要求的运算速率大约为4500MIPS。  

采用DSP、PLD和ASIC实现多速滤波器设计的比较如图

  多级滤波  

  好在有许多方法来降低运算速率要求,比如可以在三级内实现插值因子为12的多级滤波。设计人员可以将第一级的插值因子定为2,在第二级再以因子2对第一级的输出进行插值,然后输出到第三级,第三级的插值因子设为3,这样就有了3级滤波器,图3给出了每个滤波器的详细数。  

  通过分级插值可以降低对每个滤波器的要求,从而减少滤波器的阶数。另外,前二个滤波器分别工作在2MSPS和4MSPS,只有最后一个滤波器才工作在12MSPS,而改进前的方法要求整个滤波器工作在12MSPS。同样,若采用分级抽取,运算速率就不必要求太高。  

  多级滤波法可以将运算速率减小到1035MIPS。对多级滤波器的各级重新分配运算任务,用小得多的滤波器就可以达到期望的运算结果,这是一种相对高水平的优化方法。 

 
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
点击排行