CN108900177B - 一种fir滤波器对数据进行滤波的方法 - Google Patents

一种fir滤波器对数据进行滤波的方法 Download PDF

Info

Publication number
CN108900177B
CN108900177B CN201810612763.XA CN201810612763A CN108900177B CN 108900177 B CN108900177 B CN 108900177B CN 201810612763 A CN201810612763 A CN 201810612763A CN 108900177 B CN108900177 B CN 108900177B
Authority
CN
China
Prior art keywords
ram
data
filtering
fir filter
clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810612763.XA
Other languages
English (en)
Other versions
CN108900177A (zh
Inventor
王玉珏
张晶骋
林煜
黄奇家
罗会敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Xinghai Communication Technology Co Ltd
Original Assignee
Fujian Xinghai Communication Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujian Xinghai Communication Technology Co Ltd filed Critical Fujian Xinghai Communication Technology Co Ltd
Priority to CN201810612763.XA priority Critical patent/CN108900177B/zh
Publication of CN108900177A publication Critical patent/CN108900177A/zh
Application granted granted Critical
Publication of CN108900177B publication Critical patent/CN108900177B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0223Computation saving measures; Accelerating measures
    • H03H17/0225Measures concerning the multipliers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters
    • H03H17/0607Non-recursive filters comprising a ROM addressed by the input data signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H2017/0072Theoretical filter design
    • H03H2017/0081Theoretical filter design of FIR filters

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Complex Calculations (AREA)
  • Filters That Use Time-Delay Elements (AREA)

Abstract

本发明公开一种FIR滤波器及其对数据进行滤波的方法,包括加法器、累加器和若干个滤波子组件;所述滤波子组件包括一个RAM、一个ROM和一个乘法器,所述RAM和所述ROM分别和所述乘法器的输入端连接;所述若干个滤波子组件中的RAM按顺序依次连接,首尾滤波子组件的RAM相连接;所述若干个滤波子组件中的乘法器的输出端分别与加法器的输入端连接;所述加法器的输出端与所述累加器的输入端连接,将逻辑资源的占用转换为存储资源的占用,充分利用FPGA的不同资源,使高阶FIR滤波器能根据需要调整资源占用,提高资源利用率。

Description

一种FIR滤波器对数据进行滤波的方法
技术领域
本发明涉及数字滤波器技术领域,具体涉及一种FIR滤波器对数据进行滤波的方法。
背景技术
目前,数字滤波在图像处理、语音识别和模式识别等数字信号处理中占有重要地位。与模拟滤波器相比,数字滤波器可以满足滤波器幅度和相位特性的严格要求,可以克服模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。数字滤波器包括有限长单位冲激响应(Finite Impulse Response,FIR)滤波器和无限冲激响应滤波器两大类,其中,FIR滤波器由于既可以在实现任意幅频特性的,又能够保证严格的线性相位,因此,具有广泛的应用前景。
FIR滤波器的基本公式为:y(n)=aN-1×x(n)+aN-2×x(n-1)+…+a0×x(n-N+1),按照上述公式,滤波器同时进行N个乘法和N个加法即可实现滤波,但由于FPGA硬件资源上的限制,若完全并行处理则会导致占用逻辑资源太大,因此,常规的FIR滤波器都需要进行结构的优化,一方面将处理时间拉长,分为几个时钟串行处理;另一方面减少运算量,比如,对于系数对称的滤波器可以进行折叠处理。QUARTUS自带的FIR的知识产权核(Intellectualproperty core,IP核)就是一个比较方便的选择。但是当阶数较高时,滤波器对于可编程门阵列(Field Programmable Gate Array,FPGA)的资源占用会成倍增大,且主要占用逻辑资源,使得逻辑资源占用饱和,而对于存储资源的占用却很小,大大降低了资源利用率。
发明内容
本发明所要解决的技术问题是:提供一种FIR滤波器对数据进行滤波的方法,能够合理利用资源,提高资源利用率。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种FIR滤波器,包括加法器、累加器和若干个滤波子组件;
所述滤波子组件包括一个RAM、一个ROM和一个乘法器,所述RAM和所述ROM分别和所述乘法器的输入端连接;
所述若干个滤波子组件中的RAM按顺序依次连接,首尾滤波子组件的RAM相连接;
所述若干个滤波子组件中的乘法器的输出端分别与加法器的输入端连接;
所述加法器的输出端与所述累加器的输入端连接。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种采用上述FIR滤波器对数据进行滤波的方法,包括步骤:
S1、当数据输入所述FIR滤波器时,将所有RAM中最高位的数据依次读出,分别与对应的ROM读出的数据通过乘法器相乘,将得到的D个相乘结果相加得到一次计算结果,将所述计算结果传输至累加器,D为滤波子组件的个数;
S2、除最后一个RAM外,将所述从RAM读出的数据分别写入后一个RAM的最低位地址,将从最后一个RAM读出的数据丢弃,并将所述输入的数据写入第一个RAM的最高位地址;
重复步骤S1-S2直至执行了N/D次计算结果,N表示FIR滤波器的阶数。
本发明的有益效果在于:根据FIR的原理和时分复用的思想,设计了一种由乘法器、ROM和RAM构成的FIR滤波器结构,将逻辑资源的占用转换为存储资源的占用,充分利用FPGA的不同资源,使高阶FIR滤波器能根据需要调整资源占用,提高资源利用率。
附图说明
图1为本发明实施例的FIR滤波器的结构示意图;
图2为本发明实施例的RAM的控制框图;
图3为本发明实施例的无滤波器时资源占用情况图;
图4为本发明实施例的使用本发明FIR滤波器的资源占用情况图;
图5为本发明实施例的使用自带FIR IP核的资源占用情况图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:设计了一种由乘法器、ROM和RAM构成的FIR滤波器结构,将逻辑资源的占用转换为存储资源的占用。
请参照图1,一种FIR滤波器,包括加法器、累加器和若干个滤波子组件;
所述滤波子组件包括一个RAM、一个ROM和一个乘法器,所述RAM和所述ROM分别和所述乘法器的输入端连接;
所述若干个滤波子组件中的RAM按顺序依次连接,首尾滤波子组件的RAM相连接;
所述若干个滤波子组件中的乘法器的输出端分别与加法器的输入端连接;
所述加法器的输出端与所述累加器的输入端连接。
由上述描述可知,本发明的有益效果在于:根据FIR的原理和时分复用的思想,设计了一种由乘法器、ROM和RAM构成的FIR滤波器结构,将逻辑资源的占用转换为存储资源的占用,充分利用FPGA的不同资源,使高阶FIR滤波器能根据需要调整资源占用,提高资源利用率。
进一步的,所述滤波子组件的个数可变。
由上述描述可知,滤波子组件的个数决定了占用的时间和面积,由于滤波子组件的个数可变,因此要用到的RAM和ROM的数量可变,从而可以简单地对速度与面积进行合理优化,并且由于滤波子组件的个数可变,提高了所述FIR滤波器的适用性,无论偶数还是奇数阶数均适用。
进一步的,还包括计数器,所述计数器与所述累加器连接。
由上述描述可知,通过计数器可以准确的确定累计的时分复用的次数,保证滤波结果的准确性。
进一步的,所述FIR滤波器的时钟CLK0满足以下关系:
CLK/CLK0>N/D
其中,CLK表示FIR滤波器所在的系统时钟,N表示FIR滤波器的阶数,D表示滤波子组件的个数。
由上述描述可知,由于利用了时分复用思想,设置FIR滤波器的时钟与系统时钟满足上述关系,保证了数据前端和后端的无缝接续。
一种采用上述FIR滤波器对数据进行滤波的方法,其特征在于,包括步骤:
S1、当数据输入所述FIR滤波器时,将所有RAM中最高位的数据依次读出,分别与对应的ROM读出的数据通过乘法器相乘,将得到的D个相乘结果相加得到一次计算结果,将所述计算结果传输至累加器,D为滤波子组件的个数;
S2、除最后一个RAM外,将所述从RAM读出的数据分别写入后一个RAM的最低位地址,将从最后一个RAM读出的数据丢弃,并将所述输入的数据写入第一个RAM的最高位地址;
重复步骤S1-S2直至执行了N/D次计算结果,N表示FIR滤波器的阶数。
进一步的,在步骤S1之前还包括步骤:
S0、初始化,设置所有RAM为读取数据状态,并设置第一个RAM同时处于写入数据状态。
进一步的,以数据率CLK0对输入的数据进行处理,所述CLK0满足以下关系:
CLK/CLK0>N/D
其中,CLK表示FIR滤波器所在的系统时钟,N表示FIR滤波器的阶数,D表示滤波子组件的个数。
从上述描述可知,本发明的有益效果在于:根据FIR的原理和时分复用的思想,设计了一种由乘法器、ROM和RAM构成的FIR滤波器结构,将逻辑资源的占用转换为存储资源的占用,充分利用FPGA的不同资源,使高阶FIR滤波器能根据需要调整资源占用,提高资源利用率。
实施例一
请参照图1,一种FIR滤波器,包括加法器、累加器和若干个滤波子组件;
所述滤波子组件包括一个RAM、一个ROM和一个乘法器,所述RAM和所述ROM分别和所述乘法器的输入端连接;
所述若干个滤波子组件中的RAM按顺序依次连接,首尾滤波子组件的RAM相连接;
所述若干个滤波子组件中的乘法器的输出端分别与加法器的输入端连接;
所述加法器的输出端与所述累加器的输入端连接;
所述滤波子组件的个数可变;
还包括计数器,所述计数器与所述累加器连接;
所述FIR滤波器的时钟CLK0满足以下关系:
CLK/CLK0>N/D
其中,CLK表示FIR滤波器所在的系统时钟,N表示FIR滤波器的阶数,D表示滤波子组件的个数。
实施例二
一种采用实施例一所述的FIR滤波器对数据进行滤波的方法,其特征在于,包括步骤:
S0、初始化,设置所有RAM为读取数据状态,并设置第一个RAM同时处于写入数据状态;
S1、当数据输入所述FIR滤波器时,将所有RAM中最高位的数据依次读出,分别与对应的ROM读出的数据通过乘法器相乘,将得到的D个相乘结果相加得到一次计算结果,将所述计算结果传输至累加器,D为滤波子组件的个数;
S2、除最后一个RAM外,将所述从RAM读出的数据分别写入后一个RAM的最低位地址,将从最后一个RAM读出的数据丢弃,并将所述输入的数据写入第一个RAM的最高位地址;
重复步骤S1-S2直至执行了N/D次计算结果,N表示FIR滤波器的阶数;
其中FIR滤波器以数据率CLK0对输入的数据进行处理,所述CLK0满足以下关系:
CLK/CLK0>N/D
其中,CLK表示FIR滤波器所在的系统时钟,N表示FIR滤波器的阶数,D表示滤波子组件的个数。
具体实现时,每当一个数据x(n)输入FIR滤波器时,先将所有RAM中最高位的数据依次读出,与ROM相应读出的数据进行相乘后,通过加法器得到该次计算的结果,同时,除最后一个RAM外,RAM读出的数据写入后一个RAM的最低位地址,并将新的数据存入第一个RAM的最高位地址,如此循环,加法器结果通过累加N/D次运算,得到滤波器输出y(n),该滤波器结构相当于通过对D组的乘法器、ROM和RAM进行N/D次的时分复用,得到最终的结果,其公式可表示为:
y1(n)=aD-1×x(n-N+D)+aD-2×x(n-N+D-1)+…+a0×x(n-N+1)
y2(n)=a2D-1×x(n-N+2D)+a2D-2×x(n-N+2D-1)+…+aD×x(n-N+D+1)
……
yN/D(n)=aN-1×x(n)+aN-2×x(n-1)+…+a0×x(n-D+1)
加法器在每个时钟输出一个ym(n),0<m<N/D,累加器计数累加所有的ym(n),完成后输出结果y(n),即
y(n)=y1(n)+y2(n)+…+yN/D(n)
图2所示为RAM的控制框图,在初始状态下,RDEN和WREN0始终为高电平,即所有RAM均在读取数据,并且RAMn同时处于写入数据状态,此时WRADDR0和WRADDR处于有效地址中的最高位,RDADDR处于最低位。当第一个INCLK产生时,从外部来的数据存入RAMn的高位地址中,此时WREN置为高电平,WRADDR置0,RDADDR置1,WRADDR0置n-1;第二个时钟时,除RAM1外所有RAM读出的最低位数据写入下一个RAM的的最低位,RAM1最低位的数据被写入到RAMn的无用位丢弃,同时RDADDR、WRADDR和WRADDR0均加1;第三个时钟时,除RAM1外所有RAM读出的数据写入下一个RAM的对应地址位,RAM1的数据写入RAMn低一位地址位丢弃;以此类推,在第n+2个时钟时,所有数据向前移动了一位,并且RAM1的最低位被丢弃,实现了n个RAM之间数据的移位,表1示出了前几个时钟的控制参数状态。
表1
Figure GDA0003325010230000061
Figure GDA0003325010230000071
在对RAM组进行控制的同时,ROM相对应地依次输出相应系数,通过乘法器与RAM输出的数据相乘,通过一个加法器将所有乘法器的输出相加后,进入累加器进行累加,直到所有数据完成移位相乘相加后输出累加数据,即为所需数据。
图3、4所示的分别是使用FPGA自带FIR IP核的资源占用情况和使用本发明的新型FIR滤波器的资源占用情况,通过比较自带IP核和该FIR结构算法综合的结果,该FIR结构可以节约88%左右的逻辑资源占用,即(16325-9308)/(16325-8392)=88%,转而使用嵌入式内存,大大增加了FPGA的资源利用率。
综上所述,本发明提供的一种FIR滤波器及其对数据进行滤波的方法,所述FIR滤波器包括个数可变的滤波子组件,所述滤波子组件包括一个RAM、一个ROM和一个乘法器,将逻辑资源的占用转换为存储资源的占用,充分利用FPGA的不同资源,使高阶FIR滤波器能根据需要调整资源占用,提高资源利用率,滤波子组件的个数决定了占用的时间和面积,由于滤波子组件的个数可变,因此要用到的RAM和ROM的数量可变,从而可以简单地对速度与面积进行合理优化,并且由于滤波子组件的个数可变,提高了所述FIR滤波器的适用性,无论偶数还是奇数阶数均适用。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (2)

1.一种FIR滤波器对数据进行滤波的方法,其特征在于,包括步骤:
S0、初始化,设置所有RAM为读取数据状态,并设置第一个RAM同时处于写入数据状态;
S1、当数据输入所述FIR滤波器时,将所有RAM中RDADDR位地址的数据依次读出,分别与对应的ROM读出的数据通过乘法器相乘,将得到的D个相乘结果相加得到一次计算结果,将所述计算结果传输至累加器,D为滤波子组件的个数;
S2、第一个时钟,将所述输入的数据写入第一个RAM的最高位地址;
第二个时钟,除最后一个RAM外,将从RAM读出的数据分别写入后一个RAM的最低位地址,将从最后一个RAM读出的数据丢弃,并将RDADDR加1;
第三个时钟,除最后一个RAM外,将所述从RAM读出的数据分别写入后一个RAM的对应地址位,将从最后一个RAM读出的数据写入第一个RAM的低一位地址位,并将RDADDR加1;
重复步骤S1和S2中第三个时钟直至执行了N/D次计算结果,N表示FIR滤波器的阶数。
2.根据权利要求1所述的对数据进行滤波的方法,其特征在于,
以数据率CLK0对输入的数据进行处理,所述CLK0满足以下关系:
CLK/CLK0>N/D
其中,CLK表示FIR滤波器所在的系统时钟,N表示FIR滤波器的阶数,D表示滤波子组件的个数。
CN201810612763.XA 2018-06-14 2018-06-14 一种fir滤波器对数据进行滤波的方法 Active CN108900177B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810612763.XA CN108900177B (zh) 2018-06-14 2018-06-14 一种fir滤波器对数据进行滤波的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810612763.XA CN108900177B (zh) 2018-06-14 2018-06-14 一种fir滤波器对数据进行滤波的方法

Publications (2)

Publication Number Publication Date
CN108900177A CN108900177A (zh) 2018-11-27
CN108900177B true CN108900177B (zh) 2022-08-02

Family

ID=64344906

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810612763.XA Active CN108900177B (zh) 2018-06-14 2018-06-14 一种fir滤波器对数据进行滤波的方法

Country Status (1)

Country Link
CN (1) CN108900177B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112596087B (zh) * 2021-03-04 2022-04-08 长沙海格北斗信息技术有限公司 用于卫星导航的fir数字滤波方法、导航芯片及接收机

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5541864A (en) * 1994-04-26 1996-07-30 Crystal Semiconductor Arithmetic-free digital interpolation filter architecture
US6438570B1 (en) * 1999-07-21 2002-08-20 Xilinx, Inc. FPGA implemented bit-serial multiplier and infinite impulse response
CN102739195A (zh) * 2012-06-06 2012-10-17 华为技术有限公司 一种fir滤波器的处理方法、装置和系统
CN106549650A (zh) * 2016-12-07 2017-03-29 西安电子科技大学 一种基于fpga的高阶fir滤波器的实现方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590065A (en) * 1994-08-10 1996-12-31 Crystal Semiconductor Corporation Digital decimation filter for delta sigma analog-to-digital conversion with reduced hardware compelexity
CN103269212B (zh) * 2013-05-14 2016-05-18 泉州市天龙电子科技有限公司 低成本低功耗可编程多级fir滤波器实现方法
CN104579240B (zh) * 2013-10-21 2017-12-01 京微雅格(北京)科技有限公司 一种基于fpga的可配置系数的滤波器、电子设备及滤波方法
CN104767703B (zh) * 2015-03-06 2018-08-21 东南大学 一种用于广播信号监测的数字信道化接收机系统
CN106803750B (zh) * 2017-01-12 2020-01-10 中国电子科技集团公司第十四研究所 一种多通道流水fir滤波器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5541864A (en) * 1994-04-26 1996-07-30 Crystal Semiconductor Arithmetic-free digital interpolation filter architecture
US6438570B1 (en) * 1999-07-21 2002-08-20 Xilinx, Inc. FPGA implemented bit-serial multiplier and infinite impulse response
CN102739195A (zh) * 2012-06-06 2012-10-17 华为技术有限公司 一种fir滤波器的处理方法、装置和系统
CN106549650A (zh) * 2016-12-07 2017-03-29 西安电子科技大学 一种基于fpga的高阶fir滤波器的实现方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A comparison of FIR filter implementations based on two"s complement and residue number arithmetic;H. Ho;《Proceedings of Eighth International Application Specific Integrated Circuits Conference》;20020806;全文 *
FPGA中FIR数字滤波器设计可采用的一种成倍减少硬件资源使用的方法;闫海刚等;《四川理工学院学报(自然科学版)》;20050325(第01期);全文 *
一种基于微程序的FIR滤波系统;周维;《微电子学》;20170630;全文 *

Also Published As

Publication number Publication date
CN108900177A (zh) 2018-11-27

Similar Documents

Publication Publication Date Title
CN108900177B (zh) 一种fir滤波器对数据进行滤波的方法
US4322810A (en) Digital filters with reduced multiplier circuitry
CN102811035B (zh) 有限冲击响应数字滤波器及其实现方法
CN100550622C (zh) 带有下采样功能的数字信号滤波装置及方法
WO2023134507A1 (zh) 随机计算方法、电路、芯片及设备
CN107786476B (zh) 一种滤波器、时域均衡器以及接收机
CN110677138A (zh) 基于无误差概率计算的fir滤波器
CN115549644A (zh) 一种fir滤波器
CN115640493A (zh) 基于fpga的分段线性分数阶运算ip核
CN101840322B (zh) 滤波器运算单元复用的方法和滤波器的运算系统
CN112491391B (zh) 一种音频dac的插值滤波器实现结构
JPH0767063B2 (ja) デジタル信号処理回路
CN114780057A (zh) 基于Saber密钥封装的多项式硬件乘法器及使用方法
CN206226390U (zh) 用于脉宽调制信号的数字滤波器
Raj et al. A paradigm of distributed arithmetic (DA) approaches for digital FIR filter
CN110247642A (zh) 一种fir滤波方法及滤波器
KR20160057590A (ko) 공통 부분식 소거 방법 및 이를 이용한 필터
KR100235537B1 (ko) 디지털 필터의 가변탭 구조 및 그의 곱셈회로
Bhukya et al. The design of high speed FIR filter using improved DA algorithm and it’s FPGA implementation
US20090300089A1 (en) Finite impulse response filter and method
CN113778940B (zh) 基于fpga的高精度可重构相位调整ip核
CN114675806B (zh) 一种脉动矩阵单元及脉动矩阵计算装置
JP4315352B2 (ja) ディジタルフィルタおよび情報通信機器
Prasanna et al. Area and speed efficient implementation of symmetric FIR digital filter through reduced parallel LUT decomposed DA approach
KR950003358B1 (ko) 디지탈 필터

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant