基于折叠结构的半带滤波器的设计

分享到:

首先根据设计要求用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的编号。计算出各个结点延迟值后我们就可以得到相应的结构图,然后根据结构图编写代码。在下采样当中采用折叠技术,可以大大减少乘法器的使用,减少大量的乘法运算,减少了面积和功耗。

2. 2 基于折叠结构的半带滤波器的设计

下面以一个基于折叠结构的11阶半带滤波器的设计为例来说明设计的可行性及优越性。

2. 2. 1 设计指标

设计指标:系统时钟为61. 44MHz,半带滤波器的阶数11 阶,系数为定点18 位,滤波器通带要求1. 23M,阻带位置要求为30. 72 - 1. 75 = 28. 97M。

2. 2. 2 下采样数据率变换

半带滤波器作为抽取器使用时,其抽取因子为2,即输出速率为输入速率的一半,也就是说输出速率与系统时钟频率是1: 2的关系。为了采用折叠技术,同时也方便整个滤波过程的时序控制,首先我们利用系统时钟产生一个同步控制信号cONtr_ rw。

同步控制信号contr_ rw的初始值为1,在每个系统时钟上升沿到来时,其值在0与1之间进行跳变,其它时候数值保持不变,也就是说在第一个系统时钟上升沿到来时, contr_ rw的值由1跳变为0,此值一直保持着,直到第二个系统时钟上升沿到来时, contr_rw的值才由0跳变为1,同样此值也一直保持到第三个系统时钟上升沿到来时才发生跳变。由此可见contr_rw的值只有在系统时钟上升沿到来时才发生跳变,为此我们可以用此同步控制信号作为分路器(DEMUX)的选通开关把输入数据分成奇、偶2个通道,以此达到下采样数据率变换。当系统时钟上升沿到来时,如果同步控制信号contr_ rw的值为0,则把输入数据送入奇通道,此时偶通道送入的是0值;如果contr_rw的值为1,则把输入数据送入偶通道,此时奇通道送入的是0值;紧接着在经过两级的数据率稳定之后,奇、偶2个通道的数据率均为系统时钟频率的一半,也就是说此时奇、偶通道均为每两个时钟变化一次数据。根据公式2,我们知道此11阶半带滤波器的输出为:

由此表达式我们知道x ( n) h0、x ( n - 2) h2、x ( n - 4) h4、x (n - 6) h4、x (n - 8) h2、x (n - 10) h0 是根据奇通道数据产生的, x (n - 5) h5 是根据偶通道数据产生的。为了节约资源同时也为后续的折叠技术的应用,系数h2、h4 采用分时复用技术,当同步控制信号contr_rw的值为0时产生系数h4、contr_rw的值为1时产生系数h2。

 

论坛已做迁移,有相关技术资料和问题讨论可以到电路城对应版块(“模拟/电源”)
X