基于折叠结构的半带滤波器的设计
摘 要:半带滤波器是一种高效的数字滤波器,目前流行的半带滤波器设计方法一般能够满足参数要求,但其存在着功耗高、面积大、资源耗费代价高等不足之处。为了弥补上述的不足,文中提出了一种基于折叠技术的新的半带滤波器设计方法。
本文引用地址:http://www.amcfsurvey.com/article/187587.htm首先根据设计要求用MATLAB产生相应的滤波器系数,用CSD码对系数进行优化,然后采用折叠结构,通过代码实现。设计过程当中还用到分时复用和重定时技术。相比其它半带滤波器的设计,本设计具有耗费的资源少,整个抽取、滤波过程包括系数产生始终没有用到乘法器,而且延迟小、功耗低、面积小、单一时钟控制有很高的稳定性。
作为软件无线电的核心技术———上下变频技术可以通过专用芯片来实现。目前市场上的DDC、DUC品种很多,尽管这些专业芯片的功能强大但其价格昂贵,工作参数配置非常的复杂,且由于当前的通信制式多种多样,专用芯片无法完全满足软件无线电系统的性能指标。而FPGA,即现场可编程门阵列,拥有丰富的逻辑资源,可编程性强,可以用于复杂的数字信号处理比如卷积、相关和滤波等等,为此采用FPGA来实现数字上下变频是目前软件无线电通信系统的主要实现方案。
数字上下变频由各种多采样率数字滤波器组成,常见的滤波器有C IC滤波器、半带滤波器、FIR整形滤波器等。半带滤波器(Half2Band)是一种特殊的F IR滤波器,由于其系数的对称性以及将近一半系数为零值,这使得其滤波运算过程中乘法次数减少近3 /4,加法次数减少近一半,同时用于存储系数的存储器也减少了一半,因此半带滤波器是个高效的数字滤波器,特别适合实现2的幂次方倍的抽取或者内插,有计算效率高,实时性强等特点。流行的半带滤波器系统级设计方法主要是在MATLAB环境下根据设计要求搭建系统,用sySTem generator系统设计工具,将模型直接转化成代码,然后进行调用,此方法实现起来比较简单,一般能够满足要求但其存在着功耗高、面积大、资源耗费代价高等不足之处。为了弥补上述不足,本设计首先根据设计要求用MATLAB产生相应的滤波器系数,然后采用折叠结构,通过代码编写来实现。
1 半带滤波器的设计原理
半带滤波器(HB)是一种特殊的F IR滤波器,其频率响应满足公式1的FIR滤波器。
F IR滤波器可以表示为:
根据公式2,通常半带滤波器可以采用直接型或者转置型结构来实现。由于h ( k ) = h (N - 1 - k) ,采用转置型结构可以减少乘法器以及加法器的使用,其结构图如图1所示。
图1 转置型FIR滤波器的结构图
2 基于折叠结构的半带滤波器的设计
2. 1 折叠技术的原理
半带滤波器用作抽取器使用时,其输出速率为输入速率的一半,即输出速率与系统时钟频率是1∶2的关系,因此可以把转置型的半带滤波器进行折叠,折叠因子为2。为了使得折叠后时序不会出错, 我们首先得算出折叠后各结点之间的延迟值, 延迟可按照公式3进行计算。
其中DF ( u→v)指折叠后功能单元u的输出到功能单元v的输入所经过的延时数, N 为折叠因子即折叠后功能单元迭代的次数, w ( e)是折叠前功能单元u和功能单元v之间的延时数, Pu 是功能单元u的流水级数, v和u分别是功能单元v和u的编号。计算出各个结点延迟值后我们就可以得到相应的结构图,然后根据结构图编写代码。在下采样当中采用折叠技术,可以大大减少乘法器的使用,减少大量的乘法运算,减少了面积和功耗。
评论