FIR滤波器的FPGA实现方法

发布者:zuiquan最新更新时间:2011-03-31 来源: 现代电子技术关键字:FIR  FFT  FPGA 手机看文章 扫描二维码
随时随地手机看文章
    在数字信号处理系统中,有限脉冲响应(finite impulse response,FIR)数字滤波器是一个非常重要的基本单元。近年来,由于FPGA具有高速度、高集成度和高可靠性的特点而得到快速发展。随着现代数字通信系统对于高精度、高处理速度的需求,越来越多的研究转向采用FPGA来实现FIR滤波器。而对于FIR滤波器要充分考虑其资源与运行速度的合理优化,各种不同的FIR滤波结构各具优缺点,在了解各种结构优缺点后才能更好地选择合适结构来实现FIR滤波。

1 FIR数字滤波器
   
FIR数字滤波器由有限个采样值组成,设计中在满足幅值特性时,还能保证精确、严格的相位特性,因此在信号处理等领域得到广泛的应用。
    对于FIR滤波器,其输出y(n)表示为如下形式:
   
    式中:N为滤波器的阶数(或抽头数);x(i)表示第i时刻的输入样本;h(i)为FIR滤波器的第i级抽头系数。
    由于FIR滤波器的冲击响应为一个有限序列,其系统函数可表示为:
   
    FIR滤波器的基本结构如图1所示。FIR滤波器只在原点处存在极点,所以这使得FIR滤波器具有全局稳定性。同时FIR滤波器满足线性相位条件,其冲击响应序列为实数且满足奇对称或偶对称条件,即:
   



2 实现方法
   
运用FPGA来实现FIR数字滤波器的结构多种多样,但是主要有以下几类:串行结构、并行结构、转置型结构、基于FFT算法结构、分布式结构。其他类型的FIR滤波器结构都可以由以上几种结构衍生而来。
2.1 串行结构
   
由表达式(1)可知,FIR滤波器实质是做一个乘累加运算,其滤波器的阶数决定了一次乘累加的次数,其串行结构如图2所示。


    串行结构的FIR滤波器结构简单,硬件资源占用少,只需要复用1个乘法器和1个加法器,所以成本较低。但是,这种结构的FIR滤波器要经过多个时钟周期才有输出,同时,内部时钟周期还受到乘法器运算速度的影响,所以该结构的FIR滤波器处理速度慢,只适用于滤波阶数较低且处理速度要求低的系统。
2.2 并行结构
   
将串行结构的FIR滤波器展开就可以得到并行结构的FIR滤波器,并行FIR滤波器结构又称作直接型FIR滤波器结构,这种结构是直接根据图1的滤波器结构,用多个乘法器和加法器并行实现。通常考虑到其滤波器系数的对称性,先对输入值进行加法运算,再进行乘法运算,最后累加输出,以此来减少乘法器的个数,其结构如图3所示。


    并行结构的FIR滤波器在1个周期内可以完成1次滤波,运行速度快,虽然利用滤波系数对称性,但仍要占用大量的乘法器和加法器,特别对于滤波阶数高的滤波器,其资源占用较多,如对于256阶的滤波器,其需要128个乘法器来实现。为提高滤波器速度,常引入流水线结构,即在每次加法或者乘法运算后加入1个寄存器存储数据,使得滤波器可以运行在更高的频率上。
2.3 转置型结构
   
根据转置定理,如果将网络中所有的支路方向倒转,并将输入x(n)和输出y(n)相互交换,则其系统函数H(z)不变。通过转置定理,将并行结构的FIR滤波器变换就可以得到转置型FIR滤波器,其结构如图4所示。


    基于并行结构的转置型FIR滤波器实现了数据的并行输入,在1个周期内就能完成1次滤波,并且各级结构相同,在每个阶段都可以读出数据,可以对滤波阶数进行扩展或者缩减,实现任意阶数的滤波器。但是由于基于的是并行结构,便有着并行结构的一些缺点,主要是对于高阶的滤波器,其资源占用量是巨大的,设计成本高。虽然这样,转置型FIR滤波器仍是应用广泛的一种滤波器。
2.4 基于FFT的结构
   
应用快速傅里叶变换(fast fourier transform,FFT)实现FIR滤波器是一种快速实现滤波算法的重要途径。由式(1)可知,FIR滤波器的输出y(n)是输入x(n)与系统冲击响应序列h(n)的卷积,应用FFT可以快速实现卷积变换。如图5所示,先将输入信号x(n)通过FFT变换为它的频谱采样值X(k),然后再与FIR滤波器的频响采样值H(k)相乘,H(k)可事先存放在存储器中,最后再将乘积X(k)H(k)通过快速傅里叶反变换(IF-FT)还原为时域序列,即得到输出y(n)。


    为实现FFT,根据两有限长序列的线性卷积可用其循环卷积代替而不发生混叠,必须选择循环卷积长度N≥N1+N2-1,即将x(n)和h(n)补零至长度为N的序列,即:
   
    在基于FFT的FIR滤波器结构中,求X(k),H(k)以及反傅里叶变换y(n)需要的乘法次数均为N/2log2N,而计算X(k)H(k)需要N次乘法,所以基于FFT的总乘法次数为mf=3/2Nlog2N+N。由于h(n)满足式(3)条件,所以直接卷积所需的乘法次数为md=1/2N1N2。假设N1=N2,则比较这两种乘法计算量有:
   
    从表1可知,当N1<42时,FFT法的运算量小于直接卷积的运算量,当N1=42时,FFT法的运算量与直接卷积的运算量相当,当N1>42时,FFT法的运算量大于直接卷积的运算量,并且随着N1增加,FFT法的运算速度越来越快,特别是N1=8 192时,FFT法的运算速度与直接卷积相比快上将近100倍。


2.5 分布式结构
2.5.1 分布式算法原理

    分布式算法(distributed arithmetic,DA)于1973年就由Croisier提出,但是直到FPGA出现,才广泛的被应用于FPGA中计算乘累积和。
    对于有符号数x(n)可以用下式的补码形式表示:
 
    对于式(7)中的h(i)xb(n-i)代表着输入数据x(n-i)的第i位与抽头系数h(i)的乘积,对于FIR滤波器,其系数h(i)是常数,所以可以事先构造一个查找表。该查找表存储所有h(i)xb(n-i)的乘积值,通过输入(xb(N-1),xb(N-2),…,xb(0))对该表寻址,然后将查得的值乘上2b后移位累加便得到滤波器输出y(n)。该查找表构造规则如表2所示。


2.5.2 基于分布式算法的FIR滤波器结构
   
基于分布式算法的FIR滤波器主要有3种结构类型。
    (1)第一种结构为串行分布式结构。串行分布式FIR滤波器的原理为,首先用所有N个输入量的最低位对DA查找表进行寻址查值,得到一个部分积,将部分积右移一位即相当于除以2后放到寄存器中暂存。同时,N个输入量的次低位开始对DA查找表进行寻址查值,得到另一个部分积,把该部分积与上一个储存在寄存器中的值进行相加,相加后的值再右移一位放到寄存器中。以此重复循环累加,直到所有位数都寻址完
成,注意最高位寻址后的部分积是相减,最后所得到的值就是所需要的结果。
    当N过大,即FIR滤波器的滤波阶数很高时,采用一个查找表来实现将使得存储查找表的ROM变得十分庞大。为此可采用部分表结构,即将查找表划分为多个部分,N个输入量的同一位对应不同的部分表寻址。图6所示即为基于4输入部分表结构的串行DA结构。


    (2)第二种结构为并行分布式结构。并行分布式结构就是将N个输入量的不同位进行同时查表,而相同位送入同一个ROM寻址,不同位有不同的ROM。其结构如图7所示。


    第三种结构为串并结合分布式结构。它是一种折中方案,既要求速度不太高又要求资源占用少。对于串行分布式算法,是一次一位(one bit-at-a-time,1BAAT)查找表,而并行分布式算法是一次B位(B bits-at-a-time)。所以串并结合分布式算法采用一次多位,如2BAAT,3BA-AT。图8所示为4BAAT查找表结构图。
    图8中位数B是4的倍数,SRL为移位寄存器。SRL中第1行从右边数第1列为数据的0位,第2列为数据的1位,第3列为数据的2位,第4列为数据的3位。类似地,第2行右数第1列为数据的4位,第2列为数据的5位,第3列为数据的6位,第4列为数据的7位。以后各行按相似的数位顺序排列。在第一个时钟周期,数据的0,4,…,B-4位同时进入查找表ROM中,查出所要的数据,第二个时钟周期,1,5,…,B-3位同时进入ROM中,查出所要的数据,所查得的数据传递给下一级累加器进行累加,这样依次对剩下的各数据位进行同样的操作。由于每个块之间相差4位,即16倍,为了对应位相加,所以乘16。FIR滤波器的分布式算法结构比单独用乘法器实现的速度快,特别是滤波阶数越高,其优势更加明显。分布式结构中,串行结构是1次查询1位,所以对B位的数据在不算上移位寄存等的时间,完成1次滤波需要B个时钟周期;而并行结构只需要1个时钟周期便完成滤波,所以并行结构是速度最优的结构,但是并行结构需要B个DA查找表,需要大量的ROM来储存,加大了硬件资源的消耗,特别是阶数越高,硬件规模将十分膨大;串并结构综合两种结构优势,实现在速度和规模上的协调。实际应用中。需根据系统的要求来选择合适的结构。

3 结语
    本文定性地分析了各种FIR滤波器的FPGA实现方法。对于低阶的FIR滤波器可采用串行结构、并行结构以及转置型结构来实现,而并行结构和转置型结构的FIR滤波器以牺牲资源损耗来实现了速度上优势;对于高阶的FIR滤波器,基于乘法器结构的串行结构、并行结构及转置型结构在速度上难以达到高速处理的要求,而分布式算法将乘法转换为查表和累加的结构,使得分布式结构的FIR滤波器在速度上得到了提高,但三种不同形式的分布式结构要在综合考虑资源以及速度的基础上进行合理选择;同样采用FFT实现的FIR滤波器以减少运算量来获得了速度上的提高,特别是滤波阶数越高其速度提升越明显。
    现代工程技术领域对滤波系统的带宽、高速、信号的实时性处理等方面要求越来越高,在运用FPGA来实现FIR滤波中,基于乘法器结构的FIR滤波器无法满足以上要求,而分布式结构的FIR滤波器巧妙地运用ROM查找表来实现固定系数的乘累加运算,避免了乘法运算,并且在随后的每级加法运算中引入流水线结构,提高了速度。因此采用分布式算法实现FIR滤波器是目前研究的热点,同时无论哪种分布式算法都要使用ROM来做查找表,但是随着滤波阶数的增加,ROM的数量将会增加,在进一步提高速度的情况下如何减少ROM的数量是今后亟待解决的问题。

关键字:FIR  FFT  FPGA 引用地址:FIR滤波器的FPGA实现方法

上一篇:FPGA电路动态老化技术研究
下一篇:FPGA设计频率的计算方法

推荐阅读最新更新时间:2024-05-02 21:19

基于FPGA的高速流水线浮点乘法器设计与实现
 1 引言   在数字化飞速发展的今天,人们对微处理器的性能要求也越来越高。作为衡量微处理器 性能的主要标准,主频和乘法器运行一次乘法的周期息息相关。因此,为了进一步提高微处 理器性能,开发高速高精度的乘法器势在必行。同时由于基于IEEE754 标准的浮点运算具 有动态范围大,可实现高精度,运算规律较定点运算更为简捷等特点,浮点运算单元的设计 研究已获得广泛的重视。 本文介绍了 32 位浮点乘法器的设计,采用了基4 布思算法,改进的4:2 压缩器及布思 编码算法,并结合FPGA 自身特点,使用流水线设计技术,在实现高速浮点乘法的同时,也 使是系统具有了高稳定性、规则的结构、易于FPGA 实现及ASIC 的HardCopy 等特
[嵌入式]
基于<font color='red'>FPGA</font>的高速流水线浮点乘法器设计与实现
FPGA驰援数据中心战场 英特尔、赛灵思2015后大事记
8月6日英特尔宣布推出基于Stratix 10 SX FPGA的D5005可编程加速卡,并已在HPE ProLiant DL3809 Gen10服务器中应用。仅仅不到24小时之后,赛灵思宣布推出 Alveo™U50,进一步扩展其Alveo 数据中心加速器卡产品组合。自从2015年英特尔收购Altera之后,此前FPGA市场的两大巨头赛灵思与Altera的竞争逐渐进入白热化阶段。同时双方的竞争逐渐从单一的FPGA市场,开始转向数据中心方面。 英特尔进入FPGA市场 2016 年英特尔信息技术峰会(IDF 2016)包括了一个首次亮相的活动——英特尔 SoC FPGA 开发者论坛(ISDF)。这个为期一天、与 IDF 在同一地
[嵌入式]
基于FPGA和SRAM的数控振荡器的设计与实现
1 引言   数控振荡器是数字通信中调制解调单元必不可少的部分,同时也是各种数字频率合成器和数字信号发生器的核心。随着数字通信技术的发展。对传送数据的精度和速率要求越来越高。如何得到可数控的高精度的高频载波信号是实现高速数字通信系统必须解决的问题。可编程逻辑器件和大容量存储器的发展为这一问题的解决带来了曙光。本文介绍如何用FPGA(现场可编程逻辑门阵列)和SRAM(静态随机存储器)实现高精度数控振荡器。 2 NCO概述    NCO(Numerical Controlled Oscillator)即数控振荡器用于产生可控的正弦波或余弦波。其实现的方法目前主要有计算法和查表法等。计算法以软件编程的方式通过实时计算产生正弦波样本.该
[应用]
FPGA拓展高端车载摄像功能市场
Altera公司宣布,三洋电子有限公司在其 CCA-BC200 汽车后视倒车摄像系统中采用了Cyclone ® II FPGA和Nios ® II 嵌入式处理器。Cyclone II FPGA的Nios II 嵌入式处理器为三洋公司提供了高性能图像处理解决方案,降低了广角和偏角失真。和数字信号处理器(DSP)方案相比,单芯片FPGA是更紧凑、更可靠的解决方案,而前者通常需要两个以上的器件。 CCA-BC200是业界的首款配件市场后视倒车摄像系统。该系统可以连接至所有汽车的视频监视系统,对图像进行数字校正,实现更清晰自然的图像。 三洋电子有限公司汽车高级技术中心经理Hitoshi Hongo评论说:“Cyclone II FPGA
[应用]
深绿H.264 HD编码器 IP亮相SSIP2009
---- 由100mW到5mW, 掀起移动世界里硅的能耗绿色波浪。 Jointwave公司总裁Thomas Wang 和全球首席市场营销官 Violiu携其最新推出的超级最低功耗针对移动&嵌入式应用的E2, E3, E4系列H.264 高清视频编码器ASIC IP产品悄悄亮相SSIP2009 。根据现有市场格局分析, 全球已有几家知名的移动设备视频IP供应商盘踞这个市场,其中一家在九十年代创立的公司,因为在视频领压缩域拥有低计算量及低功耗等关键技术已被全球极其著名的互联网公司看中且双方已达成收购意向。他们的720P H.264 编码器ASIC IP 运行在 180MHZ 实现 1280x720P@30fps 实时视频压缩功
[手机便携]
Arm/FPGA联手发威 研华生产线大步迈入AI时代
  人工智能(Artificial Intelligence, AI)无疑是近一两年来科技产业内最热门的话题,除了科技业巨头无不大力投入之外,金融等服务业者对导入人工智能,也展现出强烈兴趣。制造业对AI技术的关注,也不在话下,并且在相关关键技术逐渐到位的情况下,已开始有实际导入动作。下面就随嵌入式小编一起来了解一下相关内容吧。   倡导智能制造不遗余力的研华科技,除了为各行各业提供对应的先进解决方案外,在自家生产在线也开始逐步导入人工智能要素。比如机台设备的状态侦测/诊断、原物料/能源的使用状况,乃至产品的品管流程等,均已逐步导入人工智能。安谋( Arm )的硅智财(IP)与SoC及赛灵思(Xilinx)的现场可编程门阵列( FP
[嵌入式]
现场可编程门阵列实现的频率计
1 引言 数字频率计是通信设备、音、视频等科研生产领域不可缺少的测量仪器。采用Verilog HDL编程设计实现的数字频率计,除被测信号的整形部分、键输入部分和数码显示部分外,其余全部在一片FPGA芯片上实现。整个系统非常精简,且具有灵活的现场可更改性。 相比传统的电路系统设计方法,EDA技术采用VHDL语言描述电路系统,包括电路的结构、行为方式、逻辑功能及接口。Verilog HDL具有多层次描述系统硬件功能的能力,支持自顶向下的设计特点。设计者可不必了解硬件结构。从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用Ver-ilog HDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后
[测试测量]
用<font color='red'>现场可编程门阵列</font>实现的频率计
Efinix推出车规级集成RISC-V内核的FPGA
Efinix公司针对汽车行业推出了一系列具有32位RISC-V内核的FPGA器件,这些器件在多个方面展现出了其卓越的性能和适应性。 首先,Titanium Ti375 FPGA符合汽车标准,并已通过ISO26262认证,这是汽车制造商所重视的一项安全标准。它采用16纳米工艺制造,拥有高达100万个逻辑元件,以及一个四核32位RISC-V内核。这个内核具有一个强大的CPU,采用了具有多种扩展的ISA RISC-V 32,使得它在处理复杂任务时能够表现出色。此外,它还通过了AEC-Q100 1级认证,进一步证明了其在汽车应用中的可靠性和稳定性。 Titanium Ti375 FPGA还配备了多种接口和控制器,以满足汽车应用中的
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved