[发明专利]基于FPGA实现单路数字FIR滤波器的方法及装置在审
申请号: | 201511021023.1 | 申请日: | 2015-12-30 |
公开(公告)号: | CN106936405A | 公开(公告)日: | 2017-07-07 |
发明(设计)人: | 张慧欣 | 申请(专利权)人: | 普天信息技术有限公司 |
主分类号: | H03H17/00 | 分类号: | H03H17/00 |
代理公司: | 北京路浩知识产权代理有限公司11002 | 代理人: | 李相雨 |
地址: | 100080 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 实现 路数 fir 滤波器 方法 装置 | ||
技术领域
本发明涉及通信技术领域,具体涉及一种基于FPGA实现单路数字FIR滤波器的方法及装置。
背景技术
在无线通信系统中,经常使用数字FIR滤波器对输入信号进行滤波,抑制带外干扰,以获取高质量的信号。而FPGA可以很好地解决并行性和速度问题,并且有配置灵活、易于升级等特点,是常用的实现数字FIR滤波器的方法。例如,Xilinx的Virtex6系列芯片在FPGA内部,不仅提供了多个称为DSP Slices的计算单元,还提供了可读写的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滤波器的装置,包括:
获取模块,用于在计算时钟周期为采样时钟周期的整数倍时,获取每一乘法单元在采样时钟周期内串行计算的预设数量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于普天信息技术有限公司,未经普天信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201511021023.1/2.html,转载请声明来源钻瓜专利网。