在线刊号(2278-8875)印刷版(2320-3765)
Shrikant帕特尔 印度印多尔,东方大学电子与通信系,研究生 |
有关文章载于Pubmed,谷歌学者 |
更多相关文章请访问国际电气、电子和仪器工程高级研究杂志
本文给出了改进的分布式算法原理,并将其引入到FIR滤波器的设计中,提出了一种采用改进分布式算法的31阶FIR低通滤波器,该滤波器节省了大量MAC块,降低了电路规模,同时采用分块LUT方法减少了所需的存储单元,并采用管道结构提高了系统速度。基于传统方法在FPGA上实现FIR滤波器需要消耗大量硬件资源,不利于减小电路规模和提高系统速度。众所周知,FIR滤波器由延迟元件、乘法器和加法器组成。由于在我们的设计中使用了乘法器,导致了两个缺点:(i)面积增加和(ii)延迟增加,最终导致性能降低(速度降低)。针对这一问题,本文提出了一种基于改进分布式算法的FIR滤波器的设计与实现方法。采用改进的分布式算法结构提高资源利用率,同时采用管道结构提高系统速度。此外,还使用了分割LUT方法来减少所需的内存单位。改进的分布式算法利用LUT代替MAC单元,节省了大量的硬件资源。仿真结果表明,采用改进分布式算法的FIR滤波器工作稳定,速度快,可节省近50%的硬件资源,减小电路规模,具有较大的灵活性和较高的可靠性,可广泛应用于各种领域。本文的主要摘要是根据改进的分布式算法设计一个FIR滤波器,通过建立一个查找表(LUT)来保存MAC值,并根据输入数据进行标注。 Therefore, LUT can be created to take the place of MAC units so as to save the hardware resources.
关键字 |
分布式算法(DA),现场可编程门阵列(FPGA),有限脉冲响应(FIR),查找表(LUT),流水线。 |
介绍 |
滤波器是所有信号处理和通信系统的基本组成部分。滤波器广泛应用于信号处理和通信系统,如信道均衡、降噪、雷达、音频处理、视频处理、生物医学信号处理以及经济和金融数据分析。例如,在无线电接收机中,带通滤波器或调谐器用于从无线电信道中提取信号。数字滤波器分为两类,包括有限脉冲响应(FIR)和无限脉冲响应(IIR)。FIR滤波器由于具有线性相位和系统稳定性的优点,被广泛应用于各种数字信号处理领域。 |
![]() |
C (i) =常数或滤波系数 |
X (i) =输入序列的第n个点是可变的 |
Y (n)=表示系统响应 |
有限脉冲响应(FIR)滤波器是在软件中实现的最流行的滤波器类型。数字滤波器接受数字输入,给出数字输出,并由数字组件组成。在典型的数字滤波应用中,运行在数字信号处理器(DSP)上的软件从a /D转换器读取输入样本。基于fpga的FIR滤波器使用传统的直接算法,随着滤波器顺序的增加,将花费相当多的乘累加(MAC)块。但是,根据分布式算术,我们可以创建一个查找表(LUT)来保存MAC值,并在必要时根据输入数据调用这些值。因此,可以创建LUT来代替MAC单元,从而节省硬件资源。本文给出了分布式算法的基本原理,并将其引入到FIR滤波器的设计中,提出了一种基于改进分布式算法的31阶FIR低通滤波器,该滤波器节省了大量MAC块,降低了电路规模,同时采用分块LUT方法减少了所需的存储单元,并采用管道结构提高了系统速度。 |
分布式算术 |
定义线性时不变网络响应的乘积的算术和可以表示为: |
![]() |
地点: |
Y (n) =网络在n时刻的响应。 |
Xk (n) =第n时刻的第k个输入变量。 |
AK =第k个输入变量的权重因子,对于所有n都是常数,因此它保持时不变。在滤波应用中,常数AK是滤波器系数,变量xk是单个数据源(例如,模数转换器)的先验样本。在频率变换中——无论是离散傅里叶变换还是快速傅里叶变换——常数是正弦/余弦基函数,变量是来自单个数据源的样本块。在图像处理中可以找到多个数据源的例子。的乘法密集性质可以通过观察单个输出响应需要K个积项的累积来理解。在DA中,产品术语的累加任务被在Xilinx可配置逻辑块(CLB)查找表体系结构中很容易实现的表查找过程所取代。首先,我们将变量的数字格式定义为2的补数,即分数——定点微处理器的一种标准做法,目的是在乘法下实现数字的约束增长。常数因子Ak不需要如此限制,也不需要像微处理器那样匹配数据字长。常量可以是整数和分数的混合格式;现在不需要定义它们。变量xk可以写成小数格式,如 |
![]() |
其中xkb是二进制变量,只能假设值为0和1。值-1的符号位由xk0表示。请注意,时间索引n已被删除,因为不需要继续推导。最后的结果是先代入 |
![]() |
然后显式地表示求和符号下的所有积项 |
y= - [X10.A1+X20.A2+X30.A3+............+Xk0.Ak] |
+ [X11.A1 + X21.A2 + X31.A3 +............+ Xk1.Ak) 2 - 1 |
+ [X12.A1 + X22.A2 + X32.A3 +............+ Xk2.Ak) 2 - 2 |
+ (x1b - 2. - a1 + x2b - 2. - 2. a2 + x3b - a3 +............+ xkb - 2. - ak) 2 - (b - 2) |
+ (x1b - 1. - a1 + x2b - 1. - 1. a2 + x3b - a3 +............+ xkb - 1. - ak) 2 - (b - 1) |
![]() |
过滤器的设计 |
在FIR滤波器设计过程中,由于有限级数傅里叶变换不能产生锐边,在过渡带边缘会产生振铃。因此,经常使用窗来产生合适的过渡带,而Kaiser窗因提供良好的性能而被广泛使用。参数ñ μ ”是Kaiser窗口的一个重要系数,涉及到窗口类型。通过调整ñ μ Â],可以得到矩形窗、汉宁窗、汉明窗、布莱克曼窗等多种窗口。利用Kaiser窗设计了31阶FIR低通滤波器,参数为ñµÂ] =3.39, w=0.18。通过Matlab可以得到滤波器系数,公式如下: |
h (0) = h (31) = 0.0019; h (1) = h (30) = 0.0043; h (2) = h (29) = 0.0062; h (3) = h (28) = 0.0061; h (4) = h (27) = 0.0025; h (5) = h (26) = - 0.0050; h (6) = h (25) = 0.0148; h (7) = h (24) = 0.0236; h (8) = h (23) = 0.0266; h (9) = h (22) = 0.0192; h (10) = h (21) = 0.0015; h (11) = h (2 0) = 0.0351; h (12) = h (19) = 0.0774; h (13) = h (18) = 0.1208; h (14) = h (17) = 0.1566; h (15) = h(16) = 0.1768。 |
在Matlab中数据以浮点形式描述,而在FPGA系统中数据以定点形式描述。在使用12位宽的带符号二进制量化滤波器系数后,我们可以得到最终的系数如下所示: |
h (0) = h (31) = 4; h (1) = h (30) = 9; h (2) = h (29) = 13; h (3) = h (28) = 12; h (4) = h (27) = 5; h (5) = h (26) = -10; h (6) = h (25) = 30; h (7) = h (24) = - 48; h (8) = h (23) = 55; h (9) = h (22) = 39; h (10) = h (21) = 3; h (11) = h (20) = 72; h (12) = h (19) = 158; h (13) = h (18) = 247; h (14) = h (17) = 32 1; h (15) = h(16) = 362。 |
在Matlab中利用上述系数,得到滤波器的频幅特性如图2所示。 |
![]() |
由于我们设计的是31阶滤波器,随着滤波器阶数的增加,LUT的规模将急剧增加,这将花费更多的时间来查找表,并占用更多的内存来存储值。因此,我们可以将LUT单元分成四个小的LUT单元来解决这个问题。小LUT的系数值如下 |
![]() |
fir滤波器的分布式算法 |
分布式算法是实现FIR滤波器最著名的方法之一。当系数是预知识时,DA解决了内积方程的计算,就像FIR滤波器一样。长度为K的FIR滤波器描述为: |
![]() |
其中h[k]为滤波系数,x[k]为输入数据。为便于分析,用x'[k] =x [n - k]对式(1)进行修正,有: |
![]() |
然后我们使用b位2的补码二进制数来表示输入数据: |
![]() |
其中Xb[k]表示Xb[k]的b次,Xb[k]€{0,1}。将(3)代入(2)所得: |
![]() |
在式(4)中,我们观察到滤波器系数可以预存储在LUT中,并通过xb =[,,…]寻址。通过使用寄存器、内存资源和缩放累加器,实现了使用该算法的数字滤波器。基于lut的4-tap (K=4) FIR滤波器的原始DA实现如图3所示。DA架构包括三个单元:移位寄存器单元、DA- lut单元和加法器/移位器单元。 |
![]() |
随着过滤器顺序的增加,内存大小也会增加。这又增加了查找表(LUT)的大小。因此,我们使用组合逻辑来代替查找表,以获得更好的性能。提出的DA-LUT单元极大地减少了内存使用,因为所有的LUT单元都可以被多路复用器和全加法器取代。 |
![]() |
图4基于分布式算法的15-Tab FIR滤波器结构 |
B.改进的分布式算法LUT体系结构 |
在图3中,我们可以看到,LUT的下半部分(b3=1的位置)与LUT的上半部分(b3= 0的位置)与h[3]的和是一样的。因此,通过一个额外的2x1多路复用器和一个完整的加法器,LUT大小可以减小1/2,如图5所示。通过同样的LUT缩减程序,我们可以得到最终的LUT-less DA架构,如图6所示。另一方面,由于使用组合逻辑电路,滤波器性能会受到影响。但是,当滤波器的开关是质数时,我们可以使用4输入LUT单元与额外的多路复用器和完整的加法器来获得滤波器性能和小资源使用之间的权衡。 |
![]() |
图5 4-tap滤波器的DA架构(DA的2³字LUT实现) |
![]() |
图6 4抽头FIR滤波器的LUT-less DA架构 |
31-tab fir滤波器的最终框图 |
上面的框图显示了31 -制表符FIR滤波器的最终框图。该图由PISO移位寄存器组成,其中PISO表示并行输入和串行输出,即移位寄存器以并行形式接收数据,以串行形式输出数据。它还包括8种类型的4制表FIR滤波器。为了这个目的,没有。使用了8个LUT。它是对基本LUT的改进。它连接在流水线寄存器和移位寄存器之间。当管道寄存器作为元件使用时,提高了系统的运行速度。LUT - 0和LUT - 1与加法器的连接方式相似。将6个LUT的两个加法器以耦合的形式连接到加法器上,然后将4个LUT的相加结果分别连接到单独的加法器上,最后两个相加结果均由最终加法器相加。 Final result of the entire adding is saved to the accumulator. |
![]() |
图7基于分布式算法的31-Tab FIR滤波器结构(LUT -查找表,P.R. -管道寄存器) |
基本lut的仿真结果 |
![]() |
图8基本LUT仿真结果 |
改进lut的仿真结果 |
![]() |
基本lut设计总结 |
![]() |
图10基本LUT设计概要 |
改进型lut设计总结 |
![]() |
图11改进型LUT设计总结 |
基本lut的合成 |
![]() |
图12基本LUT综合 |
改性lut的合成 |
![]() |
图13改性LUT的合成 |
修正lut的RTL原理模型 |
![]() |
图14改进LUT的RTL示意图模型 |
结论 |
本文介绍了高阶滤波器的DA结构。该体系结构以系统频率的有限降低为代价,在每次LUT减少迭代中将内存使用量减少一半。我们还将高阶滤波器划分为几组小滤波器;因此我们也可以减少LUT的大小。为了实现FIR滤波器的高速实现,采用了全并行的DA架构。我们成功地在4VLX40FF668 FPGA器件上实现了一个高效的31分程全并行DA滤波器,使用了原始DA架构和改进的DA架构。结果表明,所提出的DA体系结构是FPGA实现的硬件高效结构。基于分布式算法的设计与实现,实现了一个31阶FIR低通滤波器。采用分布式算法结构提高资源利用率,采用流水线结构提高系统速度。测试结果表明,采用分布式算法设计的滤波器工作稳定,速度快,可节省50%的硬件资源。 Meanwhile, it is very easy to transplant the filter to other applications through modifying the order parameter or bit width and other parameters, and therefore have great practical applications in digit signal processing. After all implementation and simulation result of the basic LUT and modified LUT result .according to Fig. 8 and Fig. 9 these are the diagram of Basic LUT and modified LUT . these wave from result are same that mean basic LUT work with large memory space and modified LUT work with small memory space so that wave result of both LUTs are same. After that according to the design summary result, we take Fig. 10 and Fig. 11. These are the diagrams of Basic LUT and modified LUT. Now take the device utilization summary of Basic LUT. |
![]() |
现在我们使用修改后的LUT的设备利用率摘要。 |
表3 |
设备利用率修改后LUT汇总 |
![]() |
在此基础上,比较了基本LUT和修改LUT的设备利用率概况。的比例是26%。但在修改后的LUT中,利用率为13%,利用率为386/4656,利用率为1233/4656。同样,在基本LUT中,对no的利用。4i/p LUT的利用率为23%,而改进后的LUT为12%,利用率为759/9312。但是没有。带状IOB的利用率273/232是常见的,利用率为117%,在两个LUT中也很常见。 |
未来的工作 |
到目前为止,所有基于DA的自适应滤波器都是在一个普通的查找表中实现的,因此本文的发展是用偏移二进制编码的分布式算法高效地构造查找表。在这种off - set二进制编码中,查找表与实际查找表相比正好减少了一半。采用分块LUT方法减少所需内存单元或减小电路规模,采用管道结构提高系统速度。它也适用于在数字信号处理中使用FIR滤波器的地方。本文所使用的基本LUT可以减少3倍,这意味着我们可以在3倍的时间内减少电路规模和提高系统速度,因此在许多基于FIR滤波器的DSP应用中都可以使用这种方法,我们可以在减少电路规模的同时提高系统速度,这是本文未来的主要工作。通过修改序参量或位宽等参数,可以很容易地将滤波器移植到其他应用中,因此在数字信号处理中有很大的实际应用价值。这是一种基于查找表的局部高效滤波器,称为分布式FIR滤波器。 |
ACKNOWLADGEMENT |
我感谢东方大学印多尔分校电子与通信系的所有教职员工,他们在许多方面直接或间接地帮助我完成了这篇论文。我想把这篇论文献给我的家人和朋友,以及在我完成论文的艰难时期给予我支持的上帝。 |
参考文献 |
|