账号:
密码:
最新动态
 
产业快讯
CTIMES / 文章 /
DSP与多速滤波器设计
 

【作者: 誠君】2001年06月01日 星期五

浏览人次:【7687】

选用专用元件来设计数位信号处理系统,是目前数位设计工程师的主要任务。而面对各种设计多速滤波的方案,设计工程师必须评估所需的数据传输量,从中找出高效率的设计方案,并正确地选择各类硬体,从而获得既可最佳化又能尽速完工的目标。


许多通讯系统都要用到「多速滤波器(Multirate Filter)」,多速滤波器是指输出数据速率与输入数据速率不相等的滤波器,常用于某个实体介面如:数位类比转换器( DAC)或类比数位转换器(ADC)的介面。当滤波器输出数据到DAC时,用户常会选择「插值滤波器」,因为它能产生更多的取样点以使DAC的输出波形更加平滑;而当滤波器从ADC接收信号时,用户一般会选用「抽取滤波器」,因为抽取滤波器允许数据被过取样从而获得更高的信噪比(SNR)。使用抽取滤波器后,系统只需工作在讯号速率即可,这类似降频的效果。


在多速滤波器设计过程中,有效地选用硬体来设计插值和抽取滤波器是非常重要。下面将讨论选用DSP设计多速滤波器的方法。


插值和抽取(Interpolation & Decimation)

插值功能常用来增加输出信号的取样率(图一),实际上在原始取样值附近增加新的取样值很有必要。由于新的取样点的值是未知数,一般设为零,因此也被称为上取样(Upsampling)、零值插入或零值填充。



《图一 插值滤波器的功能》
《图一 插值滤波器的功能》

由于取样点的增加,所以改变了取样速率,从而使Nyquist频率外移。在时域中向数据插入零值,则信号在频域上会产生原始信号频谱的镜​​像。由于取样速率的改变并不会产生更多的资讯,因此所有的镜像信号(以人工方式加入系统中)都表现为噪音,幸运的是这些噪音可以藉由理想低通滤波器滤除。


抽取滤波器的工作方式也和插值滤波器大致相同。这种滤波器要消除某些取样点,从而降低取样速率和Nyquist频率。任何高于Nyquist频率的信号都将被视为噪音,因此有必要在消除数据/下取样(Downsampling)前加入低通滤波器,这样可以确保噪音不介入系统(图二)。



《图二 抽取滤波器的功能》
《图二 抽取滤波器的功能》

插值和抽取之设计方法

在插值与抽取设计方案中采用的低通滤波器,最好具有线性相位特性,一般是利用有限冲击响应(FIR)滤波器来设计这种线性相位滤波器,但FIR滤波器的设计要比无限冲击响应滤波器(IIR)的代价高得多。为了取得更好的性能,需要增加滤波器的阶数,而FIR滤波器可以从10阶到200阶甚至更高。此滤波器的输出必须藉由10到200次运算。由于FIR滤波器非常昂贵,设计师一般会自行选用专用硬体来DIY设计,这些专用硬体可能是一颗专用滤波晶片、一种可程式逻辑元件(PLD)或一些半客制(Semi-custom)标准单元晶片。


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


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


降低运算速率之方法

检查插值滤波器的运算速度有个比较直接的方法,即将数据先进行上取样然后再进行滤波。 (图三)所示的样本要求采用388接头(taps)的滤波器,并且滤波器工作的速率必须达到每秒12兆样点(MSPS)。这种设计方式所要求的运算速率大约为4500MIPS。目前有两种方法来降低运算速率,这些方法罗列于下:


《图三 388接头的滤波器》
《图三 388接头的滤波器》

1.多级滤波法:

在三级内设计插值因子为12的多级滤波,设计者可以将第一级的插值因子定为2,在第二级再以因子2对第一级的输出进行插值,然后输出到第三级,第三级的插值因子设为3,这样就有了3级滤波​​器,图三表示出了每个滤波器的详细参数。


藉由分级插值可以降低对每个滤波器的要求,从而减少滤波器的阶数。另外,前二个滤波器分别工作在2MSPS和4MSPS,只有最后一个滤波器才工作在12MSPS,而改进前的方法则要求整个滤波器工作在12MSPS。同样,若采用分级抽取,运算速率就不必要求太高。多级滤波法可以将运算速率减小到1035MIPS。对多级滤波器的各级重新分配运算任务,用较小的滤波器就可以达到期望的运算结果,这是一种相对高水平的优化方法。


2.多项分解法:

降低运算速率的另外一种方式需要详细分析插值滤波器的设计方案。众所周知,先进行零值插入然后滤波,就可以将问题分解到多个较短的滤波器中解决,每个滤波器工作于不同的时间点上,这种方法被称为多相分解,如(图四)所示。举个简单的例子来说明一下多相分解的工作原理,在例中滤波器系数为24,插值因子为4。由于滤波器插值因子为4,因此实际上大多数输出​​到滤波器的数据为零,藉由执行特殊的乘法作业可以消除这些零数据的系数。



《图四 多相分解的功能》
《图四 多相分解的功能》

例如,第一个输出数据可以单独由系数C0、C4、C8…C20确定,而第二个输出数据则由C1、C5、C9…C21等系数决定。在这种情况下每个输出只要求6次乘法运算,而不是24次乘法运算,调整插值因子可以减少运算速率。对于插值因子为12的388接头滤波器,每个输出只需33次乘法即可确定。多相插值器可以用388MIPS完成相同的运算量。


抽取结构同样也可利用类似的技术。在本例中抽取因子为4,因此4个数据点藉由滤波后只剩下了1个,其实没有必要去计算被丢弃的取样点数。多相抽取器将数据分配给4个较短的多相滤波器(抽取因子为4),最后将4个滤波器的输出叠加在一起从而形成最终滤波输出。每个多相滤波器以抽取后的数据速率输出数据,从而降低了对抽取器​​的性能要求。


当然,也可以综合运用多种方法,以进一步降低运算速率,例如,可以对多相结构中的每个单级滤波器执行多级滤波。


采用DSP设计低功耗滤波器

从设计层面看,若需要采用特殊的结构,例如:占用最小的元件资源、工作于最低的功耗等,这种需求取决于运算速度,对于要求几百MIPS的情形,采用DSP就是很理想的方案。某些DSP元件的运算速度能达到1GOPS,采用DSP的典型设计还能做滤波以外的其它工作,例如:谨慎地分配MIPS。


在许多情况下,用户基于本身预算因素等的考量,都会限制MIPS值,并根据具体性能选择DSP。如果性能要求超过了单片DSP的处理能力,可以考虑多种应变方案,如将任务分配到多个DSP上,或采用硬体多工处理器来加速处理巨大的运算量,此时,选用ASIC和PLD元件就是最佳方案。


专用逻辑元件

许多半导体供应商都提供能设计插值功能的专用晶片,这些晶片包含用于设计滤波功能的乘法器,因此能获得比DSP元件更优异的性能。它们还能支援固定数值的系数和特定的插值或抽取因子。 ASIC和PLD可以结合起来形成“用户专用硬体”产品,采用这种方法后可以在一个时钟周期内计算全部127接头的FIR滤波器,比DSP快两个级数(Two Orders of Magnitude)。设计时要仔细考虑后续工作,如HDL模拟、综合、验证、可测性及故障率,这点在DSP设计中也一样。对于完全平行的插值滤波器来说,将滤波器进行多相分解可以产生由较短滤波器构成的滤波器组。为了在一个时钟周期内进行一次滤波运算,多相滤波器中的每个系数必须配备一个乘法器。在每个输入时钟周期要完成两个任务:1.数据储存到每个多相结构中;2.每个滤波器会产生N个输出。最后输出时钟会在同一时间扫描所有的各相滤波器,就如同是单一输入时钟的效果。


静态时序分析

将设计分解开来,可以得到二个时钟路,即输入时钟与输出时钟,输出时钟速率


是输入时钟速率的整数倍。输出结构(一个简单的乘法器)需要以高于输入多相滤波器的速率工作,当进行专用硬体(如ASIC或可程式逻辑)设计时,减小时钟域的数量是必须的。当用ASIC产生扫描向量(Scan Vectors)时,需要另外增加时钟域。藉由静态时序分析可能还需消除一些错误路径。


采用可程式逻辑,可供选择的时钟信号数量是固定的,因此每个时钟域也就显得更加珍贵。当时钟启动来自多相结构中的触发器(Flip-flops)时,就有可能采用输出时钟对整个结构进行时钟控制。采用时钟启动功能,多相结构只需运行于输入时钟速率(较慢的时钟信号),还可放宽这些复杂结构的时序要求。这使多相结构成为一个多循环组件,静态时序必须符合多循环规范。在ASIC和PLD为主的设计流程中,使用的时序分析工具需要支援多循环规范。


当设计ASIC时,所需的乘法单元可以整合进晶片中,并且可以在最小的面积上获得所要的速度。但是ASIC设计要比DSP和PLD设计不灵活,因为ASIC任何改变都需要对整个系统做重新设计,既费时又费力。


采用PLD设计滤波器

PLD设计则不同,用PLD设计滤波功能可以采用两种结构:串列与平行。这两种结构都能有效地将系数映射到查寻表格(Look-up Tables)并执行乘法运算。完全平行的结构可在单个时钟周期内进行完整的滤波运算,而串列结构需要将运算分配在若干时钟周期内完成(取决于输入位元宽度),因此串列结构的传输量较小,但串列结构在晶片的利用率方面还是很高的(只需很小的储存空间和逻辑单元)。


目前用于可程式逻辑的FIR滤波器自动生成工具已经问世。至少这些工具能在给定系数后,自动生成所需滤波器;而更先进的工具可以为用户产生定点系数,并在此基础上设计出多相滤波器,同时进行晶片面积和速度评估。


结语

其实,设计插值与抽取逻辑的方​​案很多,设计师必须评估所需的传输量,提出高效率的设计方案,并在设计优化与尽快完工之间取得平衡。随着DSP功能的日益强大,其结构不断获得改进和扩展,因此,在设计低功耗系统时选择合适的DSP并非易事。


DSP是一种可程式器件,具有独特的指令集、结构和周边器件。因此,在将DSP用于低功耗系统设计时,不能​​只考虑其每秒所能执行的指令数MIPS,而需综合分析各种因素,如工作电压、结构性效率、封装尺寸、周边元件和内部记忆体的容量,以做出最周全的选择。


  相关新闻
» 慧荣获ISO 26262 ASIL B Ready与ASPICE CL2认证 提供车用级安全储存方案
» 默克完成收购Unity-SC 强化光电产品组合以满足半导体产业需求
» 新思科技与台积电合作 实现数兆级电晶体AI与多晶粒晶片设计
» 恩智浦提供即用型软体工具 跨处理器扩展边缘AI功能
» AMD携手合作夥伴扩展AI解决方案 全方位强化AI策略布局


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.2048.3.143.25.53
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw