本发明专利技术公开了一种基于FPGA实现单路数字FIR滤波器的方法及装置,该方法包括:FIR滤波器在计算时钟周期为采样时钟周期的整数倍时,获取每一乘法单元在采样时钟周期内串行计算的预设数量;根据预设数量对输入数据进行分组,向每一乘法单元输入预设数量的输入数据,以使每一乘法单元对预设数量的输入数据进行乘累加计算;采用级联加法的方式通过乘法单元将乘累加计算后的数据相加,并输出相加后的数据。通过对输入数据进行分组,减少了每一乘法单元的存储数据的存储空间,另外通过先对每一分组的输入数据进行乘累加计算,然后再将乘累加计算后的数据采用级联加法的方式相加,输出相加后的数据,减少了加法所需求的FPGA的资源,提高了FPGA的运行效率。
【技术实现步骤摘要】
基于FPGA实现单路数字FIR滤波器的方法及装置
本专利技术涉及通信
,具体涉及一种基于FPGA实现单路数字FIR滤波器的方法及装置。
技术介绍
在无线通信系统中,经常使用数字FIR滤波器对输入信号进行滤波,抑制带外干扰,以获取高质量的信号。而FPGA可以很好地解决并行性和速度问题,并且有配置灵活、易于升级等特点,是常用的实现数字FIR滤波器的方法。例如,Xilinx的Virtex6系列芯片在FPGA内部,不仅提供了多个称为DSPSlices的计算单元,还提供了可读写的LUT单元、双端口RAM单元。设滤波器阶数为2M(滤波器系数对称),输入为X(n),输出为Y(n),则此滤波器的计算公式为:其中,i为变量,变量的取值范围为0~滤波器的阶数,M为滤波器阶数/2,n为采样点。常用FPGA内部的计算单元进行级联来实现FIR滤波器,实现方法,如图所示,采用这种级联方式有个前提条件:FPGA的计算时钟同FIR滤波器的采样时钟一致。如FIR的采样时钟为30.72M,那么FPGA的计算时钟也为30.72M。但当前FPGA的工艺,FPGA的计算时钟可以达到200M~300M,甚至更高的频率,在FPGA高时钟的运行条件下,可以极大的节省FPGA的资源使用。另一方面,通常设计的FIR滤波器,系数都是对称的,滤波器的计算公式可以修改为:可以看出,采用对称的实现方式,乘法器的资源也将节省一半。若FPGA的计算时钟高于采样时钟(通常计算时钟和采样时钟设计为倍数关系)的条件下,通常FIR滤波器采用并行多路的方法实现,设FPGA的计算时钟为FPGA的采样时钟的L倍,那么FPGA可以同时进行L路FIR滤波器计算,其结构图如图2所示,通过并行级联的实现方式,若滤波器并行路数不多,则要浪费一些延时资源和乘法器资源。对于单路的滤波器设计,当前主要为分组相加的方式。如图3所示,设计滤波器的阶数M为时钟倍数L的正数倍,则把滤波器分组进行计算后相加。这种方式通过控制乘累加RAM的读写信号进行数据对齐,并且把最终数据相加得到滤波器的输出,这种方案预存RAM要存储所有需要进行计算的数据,当滤波器阶数较高时,需要预存RAM的空间较大;分组计算后,要进行相加模式,当滤波器精度要求较高时(或阶数比较高时),此处加法所需要的资源也较大。
技术实现思路
针对现有技术中的缺陷,本专利技术提供了一种基于FPGA实现单路数字FIR滤波器的方法及装置。第一方面,本专利技术提供一种基于FPGA实现单路数字FIR滤波器的方法,包括:FIR滤波器在计算时钟周期为采样时钟周期的整数倍时,获取每一乘法单元在采样时钟周期内串行计算的预设数量;所述FIR滤波器根据所述预设数量对输入数据进行分组,向每一所述乘法单元输入预设数量的输入数据,以使所述每一乘法单元对预设数量的输入数据进行乘累加计算;所述FIR滤波器采用级联加法的方式通过所述乘法单元将乘累加计算后的数据相加,并输出相加后的数据。可选的,所述FIR滤波器在计算时钟周期为采样时钟周期的整数倍时,获取每一乘法单元在采样时钟周期内串行计算的预设数量,包括:所述FIR滤波器获取所述计算时钟周期为采样时钟周期的倍数,将所述倍数作为所述每一乘法单元在采样时钟周期内串行计算的预设数量。可选的,所述FIR滤波器采用级联加法的方式通过所述乘法单元将乘累加计算后的数据相加,包括:所述FIR滤波器将所述第一乘法单元乘累加计算的数据作为第二乘法单元累加的输入数据,并将所述第二乘法单元的输入数据与所述第二乘法单元乘累加计算的数据相加作为第三乘法单元累加的输入数据,直到将第A乘法单元的输入数据与第A乘法单元乘累加计算的数据相加;其中,A为乘法单元的数量。可选的,所述FIR滤波器在获取每一乘法单元在采样时钟周期内串行计算的预设数量之后,所述方法还包括:所述FIR滤波器在系数对称时,将两倍预设数量的输入数据分为一组,向每一所述乘法单元输入两倍预设数量的输入数据,以使所述每一乘法单元对两倍预设数量的输入数据进行乘累加计算。可选的,所述将两倍预设数量的输入数据分为一组,包括:将系数相同的输入数据分为一组。第二方面,本专利技术还提供了一种基于FPGA实现单路数字FIR滤波器的装置,包括:获取模块,用于在计算时钟周期为采样时钟周期的整数倍时,获取每一乘法单元在采样时钟周期内串行计算的预设数量;第一数据输入模块,用于根据所述预设数量对输入数据进行分组,向每一所述乘法单元输入预设数量的输入数据,以使所述每一乘法单元对预设数量的输入数据进行乘累加计算;计算模块,用于采用级联加法的方式通过所述乘法单元将乘累加计算后的数据相加;输入模块,用于输出相加后的数据。可选的,所述获取模块,用于:所述FIR滤波器获取所述计算时钟周期为采样时钟周期的倍数,将所述倍数作为所述每一乘法单元在采样时钟周期内串行计算的预设数量。可选的,所述计算模块,用于:将所述第一乘法单元乘累加计算的数据作为第二乘法单元累加的输入数据,并将所述第二乘法单元的输入数据与所述第二乘法单元乘累加计算的数据相加作为第三乘法单元累加的输入数据,直到将第A乘法单元的输入数据与第A乘法单元乘累加计算的数据相加;其中,A为乘法单元的数量。可选的,所述装置还包括,第二数据输入模块,用于在系数对称时,将两倍预设数量的输入数据分为一组,向每一所述乘法单元输入两倍预设数量的输入数据,以使所述每一乘法单元对两倍预设数量的输入数据进行乘累加计算。可选的,所述第二数据输入模块,用于:将系数相同的输入数据分为一组。由上述技术方案可知,本专利技术提供的基于FPGA实现单路数字FIR滤波器的方法及装置,通过对输入数据进行分组,减少了每一乘法单元的存储数据的存储空间,另外通过先对每一分组的输入数据进行乘累加计算,然后再将乘累加计算后的数据采用级联加法的方式相加,输出相加后的数据,减少了加法所需求的FPGA的资源,提高了FPGA的运行效率。附图说明图1为现有技术中FPGA实现单路数字FIR滤波器的级联示意图;图2为现有技术中另一实施例提供的FPGA实现多路数字FIR滤波器的级联示意图;图3为现有技术中另一实施例提供的FPGA实现单路数字FIR滤波器的示意图;图4为本专利技术一实施例提供的基于FPGA实现单路数字FIR滤波器的方法的流程示意图;图5为本专利技术一实施例提供的FPGA实现单路数字FIR滤波器的级联示意图;图6为本专利技术一实施例提供的FPGA实现单路数字FIR滤波器的级联时序示意图;图7为本专利技术一实施例提供的基于FPGA实现单路数字FIR滤波器的装置的结构示意图。具体实施方式下面结合附图,对专利技术的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本专利技术的技术方案,而不能以此来限制本专利技术的保护范围。图4示出了本专利技术一实施例提供的一种基于FPGA实现单路数字FIR滤波器的方法的流程示意图,如图4所示,该方法包括以下步骤:101、FIR滤波器在计算时钟周期为采样时钟周期的整数倍时,获取每一乘法单元在采样时钟周期内串行计算的预设数量;102、所述FIR滤波器根据所述预设数量对输入数据进行分组,向每一所述乘法单元输入预设数量的输入数据,以使所述每一乘法单元对预设数量的输入数据进行乘累加计算;103、所述FIR滤波器采用级联加法的方式通过所述本文档来自技高网...
【技术保护点】
一种基于FPGA实现单路数字FIR滤波器的方法,其特征在于,包括:FIR滤波器在计算时钟周期为采样时钟周期的整数倍时,获取每一乘法单元在采样时钟周期内串行计算的预设数量;所述FIR滤波器根据所述预设数量对输入数据进行分组,向每一所述乘法单元输入预设数量的输入数据,以使所述每一乘法单元对预设数量的输入数据进行乘累加计算;所述FIR滤波器采用级联加法的方式通过所述乘法单元将乘累加计算后的数据相加,并输出相加后的数据。
【技术特征摘要】
1.一种基于FPGA实现单路数字FIR滤波器的方法,其特征在于,包括:FIR滤波器在计算时钟周期为采样时钟周期的整数倍时,获取每一乘法单元在采样时钟周期内串行计算的预设数量;所述FIR滤波器根据所述预设数量对输入数据进行分组,向每一所述乘法单元输入预设数量的输入数据,以使所述每一乘法单元对预设数量的输入数据进行乘累加计算;所述FIR滤波器采用级联加法的方式通过所述乘法单元将乘累加计算后的数据相加,并输出相加后的数据。2.根据权利要求1所述的方法,其特征在于,所述FIR滤波器在计算时钟周期为采样时钟周期的整数倍时,获取每一乘法单元在采样时钟周期内串行计算的预设数量,包括:所述FIR滤波器获取所述计算时钟周期为采样时钟周期的倍数,将所述倍数作为所述每一乘法单元在采样时钟周期内串行计算的预设数量。3.根据权利要求1所述的方法,其特征在于,所述FIR滤波器采用级联加法的方式通过所述乘法单元将乘累加计算后的数据相加,包括:所述FIR滤波器将所述第一乘法单元乘累加计算的数据作为第二乘法单元累加的输入数据,并将所述第二乘法单元的输入数据与所述第二乘法单元乘累加计算的数据相加作为第三乘法单元累加的输入数据,直到将第A乘法单元的输入数据与第A乘法单元乘累加计算的数据相加;其中,A为乘法单元的数量。4.根据权利要求1所述的方法,其特征在于,所述FIR滤波器在获取每一乘法单元在采样时钟周期内串行计算的预设数量之后,所述方法还包括:所述FIR滤波器在系数对称时,将两倍预设数量的输入数据分为一组,向每一所述乘法单元输入两倍预设数量的输入数据,以使所述每一乘法单元对两倍预设数量的输入数据进行乘累加计算...
【专利技术属性】
技术研发人员:张慧欣,
申请(专利权)人:普天信息技术有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。