CN116961621B - 一种可动态调整计算速度的fir滤波器 - Google Patents
一种可动态调整计算速度的fir滤波器 Download PDFInfo
- Publication number
- CN116961621B CN116961621B CN202311220928.6A CN202311220928A CN116961621B CN 116961621 B CN116961621 B CN 116961621B CN 202311220928 A CN202311220928 A CN 202311220928A CN 116961621 B CN116961621 B CN 116961621B
- Authority
- CN
- China
- Prior art keywords
- operation unit
- accumulator
- auxiliary
- multiplier
- data
- 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
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 30
- 238000013500 data storage Methods 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000001914 filtration Methods 0.000 claims description 4
- 238000009825 accumulation Methods 0.000 claims description 3
- 238000004904 shortening Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种可动态调整计算速度的FIR滤波器,涉及FIR滤波器领域,其技术方案要点包括:控制器,用于产生读写控制信号和运算控制信号;数据存储模块,用于存储输入的数据样本和运算中间结果的数据。一种可动态调整计算速度的FIR滤波器,本发明通过设置FIR运算模块,主要是利用复用芯片内部的乘法器以及累加器资源,并在面积不变的前提下,通过设置副累加器运算单元和副乘法器运算单元,并利用数据存储模块动态调整副乘法器运算单元以及副累加器运算单元的数量,能够有效的缩短节拍数量,从而实现缩短计算时间,加快数据的处理速度的目的。
Description
技术领域
本发明涉及FIR滤波器技术领域,更具体地说,它涉及一种可动态调整计算速度的FIR滤波器。
背景技术
FIR滤波器即有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
相关技术中,现有的FIR滤波器采用的滤波方程为目前基于上述方程硬件实现的方法主要包括以下两种:串行方法,内部存在一套乘法器与累加器的运算单元,每次计算y[n]都需要N个节拍;该方法由于计算时间长,处理速度是主要瓶颈,尤其当N较大时。并行方法,内部存在N套乘法器与累加器的运算单元。每次计算y[n]只需要1个节拍,该方法除了第一次取数据需要等待输入N节拍,此后每次进入1个新数据都可以与之前输入的后N-1个数据组成一个N数据的并行运算单元,该方法每个节拍都可以计算出1个y值,加快处理速度。但该方法在实现过程中,由于需要N个乘法器与累加器,会造成极大的资源开销。因此需要提供一种计算时间短、数据处理速度快的FIR滤波器。
发明内容
针对现有技术存在的不足,本发明的目的在于提供一种可动态调整计算速度的FIR滤波器。
为实现上述目的,本发明提供了如下技术方案,包括:
控制器,用于产生读写控制信号和运算控制信号;
数据存储模块,用于存储输入的数据样本和运算中间结果的数据;
总线模块,用于对输入和输出的信号进行模数转换;
FIR运算模块,用于读出数据样本并进行FIR滤波运算,所述乘法器运算单元、累加器运算单元、副乘法器运算单元和副累加器运算单元;
其中,所述乘法器运算单元用于将从所述存储器中读取的数据进行数据相乘处理;所述累加器运算单元用于对运算的中间结果进行累加或累减处理;所述副乘法器运算单元和所述副累加器运算单元用于在计算前数据y[n]的同时,提前对未来M个y值进行运算。
优选地,所述副累加器运算单元和所述副乘法器运算单元在进行运算时的具体过程为:根据求卷积在硬件中实现的特性,求y[n]需要用到的x的范围为(x[n-N],x[n]),其中(x[n-N+1],x[n])会在下次求y[n+1]时被用到,以此类推,(x[n-N+2],x[n])会在求y[n+2]时被使用,因此,当使用乘法器运算单元进行x[n]与h[0]进行乘法运算时,通过副累加器运算单元提前将x[n]与h[1]运算好并进入所述累加器运算单元中等待与下一拍数x[n-1]*h[2]进行累加,在计算完成y[n]后,只需要在下一节拍中利用所述副累加器运算单元累加上x[n+1]*h[0],即可完成对y[n+1]的计算。
优选地,所述副乘法器运算单元和所述副累加器运算单元的数量是通过所述寄存器进行动态选择配置。
优选地,所述数据存储模块为存储器,所述存储器包括数据样本和运算中间结果两个不同的存储区域。
优选地,所述总线模块包括信号输入单元、信号输出单元,所述信号输入单元设置为A/D信号转换器件,所述信号输出单元设置为D/A信号转换器件。
与现有技术相比,本发明具备以下有益效果:
本发明通过设置FIR运算模块,主要是利用复用芯片内部的乘法器以及累加器资源,并在面积不变的前提下,通过设置副累加器运算单元和副乘法器运算单元,并利用数据存储模块动态调整副乘法器运算单元以及副累加器运算单元的数量,能够有效的缩短节拍数量,从而实现缩短计算时间,加快数据的处理速度的目的。
附图说明
图1为现有的FIR滤波器的采用的主流信号图;
图2为现有的FIR滤波器的硬件结构框图;
图3为本发明提供的一种可动态调整计算速度的FIR滤波器的硬件结构框图;
图4为本发明提供的一种可动态调整计算速度的FIR滤波器在计算N=6,M=3的节拍时序图。
具体实施方式
以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。
参照图1至图4对本发明一种可动态调整计算速度的FIR滤波器实施例做进一步说明。
一种可动态调整计算速度的FIR滤波器,包括:
控制器,用于产生读写控制信号和运算控制信号;
数据存储模块,用于存储输入的数据样本和运算中间结果的数据;所述数据存储模块为存储器,所述存储器包括数据样本和运算中间结果两个不同的存储区域;
总线模块,用于对输入和输出的信号进行模数转换;所述总线模块包括信号输入单元、信号输出单元,所述信号输入单元设置为A/D信号转换器件,所述信号输出单元设置为D/A信号转换器件;
FIR运算模块,用于读出数据样本并进行FIR滤波运算,所述乘法器运算单元、累加器运算单元、副乘法器运算单元和副累加器运算单元;
其中,所述乘法器运算单元用于将从所述存储器中读取的数据进行数据相乘处理;所述累加器运算单元用于对运算的中间结果进行累加或累减处理;所述副乘法器运算单元和所述副累加器运算单元用于在计算前数据y[n]的同时,提前对未来M个y值进行运算所述副乘法器运算单元和所述副累加器运算单元的数量是通过所述寄存器进行动态选择配置。
所述副累加器运算单元和所述副乘法器运算单元在进行运算时的具体过程为:根据求卷积在硬件中实现的特性,求y[n]需要用到的x的范围为(x[n-N],x[n]),其中(x[n-N+1],x[n])会在下次求y[n+1]时被用到,以此类推,(x[n-N+2],x[n])会在求y[n+2]时被使用,因此,当使用乘法器运算单元进行x[n]与h[0]进行乘法运算时,通过副累加器运算单元提前将x[n]与h[1]运算好并进入所述累加器运算单元中等待与下一拍数x[n-1]*h[2]进行累加,在计算完成y[n]后,只需要在下一节拍中利用所述副累加器运算单元累加上x[n+1]*h[0],即可完成对y[n+1]的计算。
作为本发明的一种实施例,以一个N=6阶的FIR滤波器为例,需要计算的次数以及结果如表一所示,采用串行的方式进行计算,每次完成一个y数据的计算,需要的节拍为6拍,例如求y[5]时,需要计算的步骤为:
读取x[0],计算h[5]*x[0],并在累加器中进行存储。
读取x[1],计算h[4]*x[1],并与步骤1的结果进行累加存储。
读取x[2],计算h[3]*x[2].并与步骤2的结果进行累加存储。
读取x[3],计算h[2]*x[3].并与步骤3的结果进行累加存储。
读取x[4],计算h[1]*x[4].并与步骤4的结果进行累加存储。
读取x[5],计算h[0]*x[5].并与步骤5的结果进行累加存储,完成y[n]的计算。
表一
而采用本发明设计的FIR滤波器进行计算时,假设目前硬件中可以使用1个副乘法器和1个副累加器,则计算的步骤变为:
读取x[0],计算h[5]*x[0],并在主累加器中进行存储。
读取x[1],计算h[4]*x[1],并在主累加器中与步骤1的主累加器结果进行累加存储。同时计算h[5]*x[1]并在副累加器中进行存储。
读取x[2],计算h[3]*x[2],并在主累加器中与步骤2的主累加器结果进行累加存储。同时计算h[4]*x[2]并在副累加器中与步骤2的副累加器结果进行累加存储。
读取x[3],计算h[2]*x[3],并在主累加器中与步骤3的主累加器结果进行累加存储。同时计算h[3]*x[3]并在副累加器中与步骤3的副累加器结果进行累加存储。
读取x[4],计算h[1]*x[4],并在主累加器中与步骤4的主累加器结果进行累加存储。同时计算h[2]*x[4]并在副累加器中与步骤4的副累加器结果进行累加存储。
读取x[5],计算h[0]*x[5],并在主累加器中与步骤5的主累加器结果进行累加,最终求得y[5]。同时计算h[1]*x[5]并在副累加器中与步骤5的副累加器结果进行累加存储。
读取x[6],计算h[0]*x[6]并在副累加器中与步骤6的副累加器结果进行累加,最终求得y[6]。
通过上述计算步骤可以看出,原本串行计算y[5]以及y[6]需要的节拍总数为12个节拍,采用新的结构后,计算上面两个数据总节拍数变为7个节拍;本例只是增加了一个副乘法器以及副累加器,减少了5个节拍,因此,如果在硬件资源富裕的情况下,选择更多的副乘法器以及副累加器,将会更多的提高计算速度。而本发明通过设置FIR运算模块,主要是利用复用芯片内部的乘法器以及累加器资源,并在面积不变的前提下,通过设置副累加器运算单元和副乘法器运算单元,并利用数据存储模块动态调整副乘法器运算单元以及副累加器运算单元的数量,能够有效的缩短节拍数量,从而实现缩短计算时间,加快数据的处理速度的目的。
在本发明的描述中,需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (2)
1.一种可动态调整计算速度的FIR滤波器,其特征在于,包括:
控制器,用于产生读写控制信号和运算控制信号;
数据存储模块,用于存储输入的数据样本和运算中间结果的数据;
总线模块,用于对输入和输出的信号进行模数转换;
FIR运算模块,用于读出数据样本并进行FIR滤波运算,所述乘法器运算单元、累加器运算单元、副乘法器运算单元和副累加器运算单元;
其中,所述乘法器运算单元用于将从存储器中读取的数据进行数据相乘处理;所述累加器运算单元用于对运算的中间结果进行累加或累减处理;所述副乘法器运算单元和所述副累加器运算单元用于在计算前数据y[n]的同时,提前对未来M个y值进行运算;
新增所述副累加器运算单元和所述副乘法器运算单元在进行运算时的具体过程为:根据求卷积在硬件中实现的特性,求y[n]需要用到的x的范围为(x[n-N],x[n]),其中(x[n-N+1],x[n])会在下次求y[n+1]时被用到,以此类推,(x[n-N+2],x[n])会在求y[n+2]时被使用,因此,当使用乘法器运算单元进行x[n]与h[0]进行乘法运算时,通过副累加器运算单元提前将x[n]与h[1]运算好并进入所述累加器运算单元中等待与下一拍数x[n-1]*h[2]进行累加,在计算完成y[n]后,只需要在下一节拍中利用所述副累加器运算单元累加上x[n+1]*h[0],即可完成对y[n+1]的计算;
所述副乘法器运算单元和所述副累加器运算单元的数量是通过寄存器进行动态选择配置;
所述数据存储模块为存储器,所述存储器包括数据样本和运算中间结果两个不同的存储区域。
2.根据权利要求1所述的可动态调整计算速度的FIR滤波器,其特征在于,所述总线模块包括信号输入单元、信号输出单元,所述信号输入单元设置为A/D信号转换器件,所述信号输出单元设置为D/A信号转换器件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311220928.6A CN116961621B (zh) | 2023-09-21 | 2023-09-21 | 一种可动态调整计算速度的fir滤波器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311220928.6A CN116961621B (zh) | 2023-09-21 | 2023-09-21 | 一种可动态调整计算速度的fir滤波器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116961621A CN116961621A (zh) | 2023-10-27 |
CN116961621B true CN116961621B (zh) | 2024-03-22 |
Family
ID=88458778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311220928.6A Active CN116961621B (zh) | 2023-09-21 | 2023-09-21 | 一种可动态调整计算速度的fir滤波器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116961621B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101494506A (zh) * | 2009-03-10 | 2009-07-29 | 北京科技大学 | 一种流水结构的水声扩频通信带通信号捕获电路 |
CN106849908A (zh) * | 2016-11-29 | 2017-06-13 | 西安空间无线电技术研究所 | 一种星上可重构fir滤波器的抗辐照加固方法 |
CN113890508A (zh) * | 2021-09-28 | 2022-01-04 | 南京宁麒智能计算芯片研究院有限公司 | 一种批处理fir算法的硬件实现方法和硬件系统 |
CN115549644A (zh) * | 2022-10-21 | 2022-12-30 | 中科芯集成电路有限公司 | 一种fir滤波器 |
-
2023
- 2023-09-21 CN CN202311220928.6A patent/CN116961621B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101494506A (zh) * | 2009-03-10 | 2009-07-29 | 北京科技大学 | 一种流水结构的水声扩频通信带通信号捕获电路 |
CN106849908A (zh) * | 2016-11-29 | 2017-06-13 | 西安空间无线电技术研究所 | 一种星上可重构fir滤波器的抗辐照加固方法 |
CN113890508A (zh) * | 2021-09-28 | 2022-01-04 | 南京宁麒智能计算芯片研究院有限公司 | 一种批处理fir算法的硬件实现方法和硬件系统 |
CN115549644A (zh) * | 2022-10-21 | 2022-12-30 | 中科芯集成电路有限公司 | 一种fir滤波器 |
Non-Patent Citations (1)
Title |
---|
基于AlteraFPGA的部分串行 FIR 滤波器;郭雨梅等;沈阳工业大学学报;第31卷(第5期);第577-581页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116961621A (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391527A (zh) | 一种基于区块链的数据处理方法及设备 | |
CN108521547A (zh) | 图像处理方法、装置及设备 | |
CN116961621B (zh) | 一种可动态调整计算速度的fir滤波器 | |
CN102170678A (zh) | 一种峰值搜索方法及装置 | |
CN102510325B (zh) | 一种数字分路系统 | |
CN109976660A (zh) | 基于线性插值的任意重采样算法和数据采样系统 | |
CN104765792A (zh) | 一种维度数据存储的方法、装置及系统 | |
WO2024087869A1 (zh) | 示波器及数据处理方法 | |
CN100508395C (zh) | 加减计数电路和加减计数方法 | |
US5537402A (en) | ATM switch | |
CN107359868A (zh) | 脉冲密度调制转换电路及方法 | |
CN116961622B (zh) | 一种可动态调整计算速度的iir滤波器 | |
CN110399977A (zh) | 池化运算装置 | |
CN100550622C (zh) | 带有下采样功能的数字信号滤波装置及方法 | |
US4791596A (en) | Method of linear filtering | |
CN108832908A (zh) | 基于fpga的多路高速滤波器实现方法 | |
CN101989350A (zh) | 图像增强方法、图像增强装置及图像处理电路 | |
CN115632632A (zh) | 一种采用并行流水设计的fir通用滤波器及方法 | |
CN1330089C (zh) | 有限脉冲响应滤波与欠采样相结合的方法 | |
CN115102524B (zh) | 一种滤波器 | |
CN218450071U (zh) | 一种并行iir通用滤波器的实现装置 | |
CN117196931B (zh) | 面向传感器阵列的数据处理方法、fpga及电子设备 | |
JPH04220826A (ja) | 転送データ格納方式 | |
CN117420342B (zh) | 多通道采集方法、装置、系统、fpga及采样示波器 | |
CN110209373A (zh) | 实现复数乘法的方法及装置 |
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 |