一种实现FIR滤波的方法和滤波装置制造方法及图纸

技术编号:11032174 阅读:85 留言:0更新日期:2015-02-11 18:03
本发明专利技术实施例提供一种实现FIR滤波的方法和滤波装置,将FPGA的α个RAM进行级联,将各个RAM与FIR滤波器连接;设置一个复用周期包括多个时钟周期,每一个RAM在该复用周期的不同时钟周期内均输出一个延迟数据,延迟数据在FIR滤波器中参与滤波运算,前(α-1)个RAM输出的延迟数据允许分别输入到级联的下一个RAM中;在滤波运算中,当至少两个延迟数据的FIR滤波器系数相同时,将至少两个延迟数据相加得到延迟和值,将延迟和值与FIR滤波器系数相乘得到乘积,将所有的乘积求和得到当前的复用周期的滤波结果。滤波运算是将至少两个延迟数据相加后再进行乘法运算得到乘积,因此减少了执行乘法运算的乘法器单元的数量。

【技术实现步骤摘要】
一种实现FIR滤波的方法和滤波装置
本专利技术涉及FIR滤波技术,特别是指一种实现FIR滤波的方法和滤波装置。
技术介绍
数字中频处理技术中,FIR滤波器是不可缺少的重要组成部分,大量的FIR滤波器用FPGA等器件实现,FIR滤波器的数学方程是实现过程中,需要对输入数据进行延迟,得到滤波器阶数N个延迟数据来进行运算,多是采用IPCORE生成工具生成移位寄存器来实现延迟。开发工具生成的移位寄存器是通用器件,没有根据FIR滤波器的运算方法和结构特点进行优化,适用于在滤波器阶数较低的情况下使用。现有技术存在如下问题:当滤波器阶数较高时,根据所选用的资源类型不同,利用开发工具生成的移位寄存器会消耗FPGA内部大量的存储器资源或寄存器资源,容易造成设计资源和时序紧张。FIR滤波器的工作频率始终远高于FIR滤波器的数据输入速率,在这种情况下采用IPCORE生成工具生成的移位寄存器对资源产生了很大的浪费。
技术实现思路
本专利技术要解决的技术问题是提供一种实现FIR滤波的方法和滤波装置,解决现有技术中,FIR滤波器的工作频率始终远高于FIR滤波器的数据输入速率,采用IPCORE生成的移位寄存器对FPGA资源产生很大的浪费的缺陷。为解决上述技术问题,本专利技术的实施例提供一种实现FIR滤波的方法,应用于FPGA,方法包括:将FPGA上的α个RAM进行级联,将各个RAM与FIR滤波器连接;设置一个复用周期包括多个时钟周期,每一个RAM在该复用周期的不同时钟周期内均输出一个延迟数据,延迟数据在FIR滤波器中参与滤波运算,并且前(α-1)个RAM输出的延迟数据允许分别输入到级联的下一个RAM中;在滤波运算中,当至少两个延迟数据的FIR滤波器系数相同时,将至少两个延迟数据相加得到延迟和值,将所述延迟和值与所述FIR滤波器系数相乘得到乘积,将所有的乘积求和得到当前的复用周期的滤波结果。所述的方法中,FIR滤波器的时钟频率fc,输入数据速率fd,所述设置一个复用周期包括多个时钟周期具体包括:复用周期倍数k=fc/fd,一个复用周期内包括复用周期倍数个时钟周期。所述的方法中,每一个RAM在该复用周期的不同时钟周期内均输出一个延迟数据,具体包括:在每一个复用周期开始时更新各RAM的读地址,各RAM的读地址在该复用周期内是递增或递减的;第一部分的β个RAM按照递增顺序输出延迟数据,则第二部分的γ个RAM按照递减顺序输出延迟数据,当α是偶数时,β=γ=(1/2)*α;当α是奇数时,α=2*β-1=2*γ+1。所述的方法中,还包括:在一个时钟周期内,与各个延迟数据匹配的各个FIR滤波器系数具有中心对称性,当α是偶数时,FIR滤波器系数中,前α/2个FIR滤波器系数与后α/2个FIR滤波器系数呈中心对称,当α是奇数时,FIR滤波器系数中,前(α-1)/2个FIR滤波器系数与后(α-1)/2个FIR滤波器系数呈中心对称。所述的方法中,将至少两个延迟数据相加得到延迟和值,具体包括:当α是偶数时,β=γ,在一个时钟周期内,第一部分的β个RAM输出的延迟数据分别顺序地与第二部分的γ个RAM输出的延迟数据逆序地相加得到所述延迟和值,当α是奇数时,β=γ+1,在一个时钟周期内,第一部分的前γ个RAM输出的延迟数据分别顺序地与第二部分的γ个RAM输出的延迟数据逆序地相加得到所述延迟和值。所述的方法中,前(α-1)个RAM输出的延迟数据允许分别输入到级联的下一个RAM中具体包括:设置前一个RAM输出的每个延迟数据在该前一个RAM的倒数第二个时钟周期写入后一个RAM。所述的方法中,还包括:根据复用周期计数,在不同的复用周期中,使能不同的RAM的写使能,向该RAM中写入延迟数据。一种滤波装置,包括:RAM级联单元,将FPGA上的α个RAM进行级联,将各个RAM与FIR滤波器连接;复用单元,用于设置一个复用周期包括多个时钟周期,每一个RAM在该复用周期的不同时钟周期内均输出一个延迟数据,延迟数据参与滤波运算,并且延迟数据允许被输入到级联的下一个RAM中;滤波运算单元,用于在滤波运算中,当至少两个延迟数据的FIR滤波器系数相同时,将至少一个延迟数据相加得到延迟和值,将所述延迟和值与所述FIR滤波器系数相乘得到乘积,将所有的乘积求和得到当前的复用周期的滤波结果。所述的装置,复用单元包括:地址控制模块,用于在每一个复用周期开始时更新各RAM的读地址,各RAM的读地址是递增或递减的;RAM控制模块,用于控制第一部分的β个RAM按照递增顺序输出延迟数据,则第二部分的γ个RAM按照递减顺序输出延迟数据,当α是偶数时,β=γ=(1/2)*α;当α是奇数时,α=2*β-1=2*γ+1。所述的装置,还包括:系数控制单元,用于在一个时钟周期内,与各个延迟数据匹配的各个FIR滤波器系数具有中心对称性,当α是偶数时,FIR滤波器系数中,前α/2个FIR滤波器系数与后α/2个FIR滤波器系数中心对称,当α是奇数时,FIR滤波器系数中,前(α-1)/2个FIR滤波器系数与后(α-1)/2个FIR滤波器系数中心对称。所述的装置,滤波运算单元包括:偶数运算模块,用于当α是偶数时,β=γ,在一个时钟周期内,第一部分的β个RAM输出的延迟数据分别顺序地与第二部分的γ个RAM输出的延迟数据逆序地相加得到所述延迟和值,奇数运算模块,用于当α是奇数时,β=γ+1,在一个时钟周期内,第一部分的前γ个RAM输出的延迟数据分别顺序地与第二部分的γ个RAM输出的延迟数据逆序地相加得到所述延迟和值。本专利技术的上述技术方案的有益效果如下:在FIR滤波器工作时钟频率高于且为FIR滤波器输入数据速率整数倍的情形下,多个RAM的级联结构,在每一个复用周期存储采集到的相对缓慢的延迟数据,以及,在复用周期的每一个时钟周期内向FIR滤波器快速地输出延迟数据,以满足FIR滤波器的运算速度,占用资源少;又,FIR滤波器中,滤波运算是将至少两个延迟数据相加后再进行乘法运算得到乘积,因此减少了执行乘法运算的乘法器单元的数量,提高了资源使用率。附图说明图1表示一种实现FIR滤波的方法的结构示意图;图2表示FPGA中节约资源的FIR滤波器设计方法结构示意图。具体实施方式为使本专利技术要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。本专利技术中,利用FPGA中FIR滤波器的时钟频率高于FIR滤波器数据输入速率的特点,将FPGA内部的RAM级联,利用各RAM读写地址和写使能的变化实现对各RAM内部数据的选择性写入和读取,实现FIR滤波器延时数据的输出。其中,根据FIR滤波器的时钟频率能够计算出FIR滤波器的时钟周期。本专利技术实施例提供一种实现FIR滤波的方法,如图1所示,应用于FPGA,方法包括:步骤101,将FPGA上的α个RAM进行级联,将各个RAM与FIR滤波器连接;步骤102,设置一个复用周期包括多个时钟周期,每一个RAM在该复用周期的不同时钟周期内均输出一个延迟数据,各延迟数据在FIR滤波器中参与滤波运算,并且前(α-1)个RAM输出的延迟数据分别输入到级联的下一个RAM中;步骤103,在所述滤波运算中,当至少两个延迟数据的FIR滤波器系数相同时,将至少两个延迟数据相加得到延迟和值,将所述延迟和值与所述FIR滤波本文档来自技高网...
一种实现FIR滤波的方法和滤波装置

【技术保护点】
一种实现FIR滤波的方法,其特征在于,应用于FPGA,方法包括:将FPGA上的α个RAM进行级联,将各个RAM与FIR滤波器连接;设置一个复用周期包括多个时钟周期,每一个RAM在该复用周期的不同时钟周期内均输出一个延迟数据,延迟数据在FIR滤波器中参与滤波运算,并且前(α‑1)个RAM输出的延迟数据允许分别输入到级联的下一个RAM中;在滤波运算中,当至少两个延迟数据的FIR滤波器系数相同时,将至少两个延迟数据相加得到延迟和值,将所述延迟和值与所述FIR滤波器系数相乘得到乘积,将所有的乘积求和得到当前的复用周期的滤波结果。

【技术特征摘要】
1.一种实现FIR滤波的方法,其特征在于,应用于FPGA,方法包括:将FPGA上的α个RAM进行级联,将各个RAM与FIR滤波器连接;设置一个复用周期包括多个时钟周期,每一个RAM在该复用周期的不同时钟周期内均输出一个延迟数据,延迟数据在FIR滤波器中参与滤波运算,并且前(α-1)个RAM输出的延迟数据允许分别输入到级联的下一个RAM中;在滤波运算中,当至少两个延迟数据的FIR滤波器系数相同时,将至少两个延迟数据相加得到延迟和值,将所述延迟和值与所述FIR滤波器系数相乘得到乘积,将所有的乘积求和得到当前的复用周期的滤波结果;根据复用周期计数,在不同的复用周期中,使能不同的RAM的写使能,向该RAM中写入延迟数据。2.根据权利要求1所述的方法,其特征在于,FIR滤波器的时钟频率fc,输入数据速率fd,所述设置一个复用周期包括多个时钟周期具体包括:复用周期倍数k=fc/fd,一个复用周期内包括复用周期倍数个时钟周期。3.根据权利要求1所述的方法,其特征在于,每一个RAM在该复用周期的不同时钟周期内均输出一个延迟数据,具体包括:在每一个复用周期开始时更新各RAM的读地址,各RAM的读地址在该复用周期内是递增或递减的;第一部分的β个RAM按照递增顺序输出延迟数据,则第二部分的γ个RAM按照递减顺序输出延迟数据,当α是偶数时,β=γ=(1/2)*α;当α是奇数时,α=2*β-1=2*γ+1。4.根据权利要求3所述的方法,其特征在于,还包括:在一个时钟周期内,与各个延迟数据匹配的各个FIR滤波器系数具有中心对称性,当α是偶数时,FIR滤波器系数中,前α/2个FIR滤波器系数与后α/2个FIR滤波器系数呈中心对称,当α是奇数时,FIR滤波器系数中,前(α-1)/2个FIR滤波器系数与后(α-1)/2个FIR滤波器系数呈中心对称。5.根据权利要求4所述的方法,其特征在于,将至少两个延迟数据相加得到延迟和值,具体包括:当α是偶数时,β=γ,在一个时钟周期内,第一部分的β个RAM输出的延迟数据分别顺序地与第二部分的γ个RAM输出的延迟数据逆序地相加得到所述延迟和值,当α是奇数时,β=γ+1,在一个时钟周期内,第一部分的前γ个RAM输出的延迟数据分别顺序地与第二部分的γ个RAM输出的延迟数据逆序地相加得到所...

【专利技术属性】
技术研发人员:刘少聪
申请(专利权)人:中国移动通信集团广东有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1