CN117997311A - Fir滤波器的滤波方法、fir滤波器及电子设备 - Google Patents
Fir滤波器的滤波方法、fir滤波器及电子设备 Download PDFInfo
- Publication number
- CN117997311A CN117997311A CN202211352515.9A CN202211352515A CN117997311A CN 117997311 A CN117997311 A CN 117997311A CN 202211352515 A CN202211352515 A CN 202211352515A CN 117997311 A CN117997311 A CN 117997311A
- Authority
- CN
- China
- Prior art keywords
- address
- result
- data corresponding
- previous
- filtering 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.)
- Pending
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 277
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000009825 accumulation Methods 0.000 claims abstract description 75
- 230000004044 response Effects 0.000 claims abstract description 16
- 238000005070 sampling Methods 0.000 claims description 14
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Landscapes
- Filters That Use Time-Delay Elements (AREA)
Abstract
本公开涉及一种FIR滤波器的滤波方法、FIR滤波器及电子设备,以降低FIR滤波器的滤波延时,提高滤波效率。方法包括:响应于接收到当前滤波数据,则分别获取FIR滤波器中每一地址对应的系数值和每一地址的上一地址对应的前一滤波数据的累加结果,并根据每一地址对应的系数值和每一地址的上一地址对应的前一滤波数据的累加结果,确定每一地址对应的所述当前滤波数据的累加结果,其中,FIR滤波器的地址的取值范围为[n,0],n为所述FIR滤波器的阶数;将地址n对应的当前滤波数据的累加结果作为当前滤波数据的滤波结果,并输出滤波结果;以及存储FIR滤波器的的每一地址对应的当前滤波数据的累加结果。
Description
技术领域
本公开涉及数字信号处理技术领域,具体地,涉及一种FIR滤波器的滤波方法、FIR滤波器及电子设备。
背景技术
有限冲击响应FIR(FiniteImpulseResponse)滤波器由于其优良的线性相位特性和无条件稳定的特点,在现代无线、微波、光通信和卫星通信等领域得到了广泛的应用。近几年来由于人们对数据通信带宽越来越高的要求,为了提高数据的吞吐量,并行FIR滤波器在数字通信系统得到了越来越广泛的应用。
目前,在数字通话降噪(ENC)、主动降噪(ANC)、低延时蓝牙通话及多媒体应用中,对数据处理延时的要求越来越高。目前,例如一些蓝牙耳机要求整个音频数据路径延时在40毫秒或20毫秒以内,留给硬件的延时更加苛刻,传统FIR滤波器结构带来的1个采样点延时已经超过滤波器延时的10%,对数据处理会有明显的影响。
发明内容
本公开的目的是提供一种FIR滤波器的滤波方法、FIR滤波器及电子设备。
为了实现上述目的,本公开第一方面提供一种FIR滤波器的滤波方法,所述方法包括:
响应于接收到当前滤波数据,则分别获取FIR滤波器中每一地址对应的系数值和每一地址的上一地址对应的前一滤波数据的累加结果,并根据每一地址对应的系数值和每一地址的上一地址对应的前一滤波数据的累加结果,确定每一地址对应的所述当前滤波数据的累加结果,其中,所述FIR滤波器的地址的取值范围为[n,0],n为所述FIR滤波器的阶数,且n为大于1的整数;
将地址n对应的所述当前滤波数据的累加结果作为所述当前滤波数据的滤波结果,并输出所述滤波结果;以及
存储所述FIR滤波器的所述每一地址对应的所述当前滤波数据的累加结果。
可选地,所述响应于接收到当前滤波数据,则分别获取所述FIR滤波器中每一地址对应的系数值和每一地址的上一地址对应的前一滤波数据的累加结果,并根据所述每一地址对应的系数值和所述每一地址的上一地址对应的前一滤波数据的累加结果,确定每一地址对应的所述当前滤波数据的累加结果,包括:
响应于接收到当前滤波数据,则按照FIR滤波器中地址的大小顺序,依次将每一地址作为第一目标地址,针对每一所述第一目标地址,获取所述第一目标地址对应的系数值以及所述第一目标地址的上一地址对应的前一滤波数据的累加结果,并根据所述第一目标地址对应的系数值和所述第一目标地址的上一地址对应的前一滤波数据的累加结果,确定所述第一目标地址对应的所述当前滤波数据的累加结果。
可选地,所述响应于接收到当前滤波数据,则按照FIR滤波器中地址的大小顺序,依次将每一地址作为第一目标地址,针对每一所述第一目标地址,获取所述第一目标地址对应的系数值以及所述第一目标地址的上一地址对应的前一滤波数据的累加结果,并根据所述第一目标地址对应的系数值和所述第一目标地址的上一地址对应的前一滤波数据的累加结果,确定所述第一目标地址对应的所述当前滤波数据的累加结果,包括:
响应于接收到当前滤波数据,从系数存储器和累加器寄存器中,获取地址i对应的系数值以及地址i-1对应的前一滤波数据的累加结果,并根据所述地址i对应的系数值和地址i-1对应的所述前一滤波数据的累加结果,确定所述地址i对应的所述当前滤波数据的累加结果;
令i=i-1,并返回获取地址i对应的系数值以及地址i-1对应的前一滤波数据的累加结果,并根据所述地址i对应的系数值和地址i-1对应的所述前一滤波数据的累加结果,确定所述地址i对应的所述当前滤波数据的累加结果的步骤,直到i小于0为止,其中,i的初始值为n。
可选地,所述FIR滤波器为具有系数对称性的滤波器,所述响应于接收到当前滤波数据,则分别获取所述FIR滤波器中每一地址对应的系数和每一地址的上一地址对应的前一滤波数据的累加结果,并根据所述每一地址对应的系数值和所述每一地址的上一地址对应的前一滤波数据的累加结果,确定每一地址对应的所述当前滤波数据的累加结果,包括:
响应于接收到当前滤波数据,针对所述FIR滤波器中地址n至地址k中每一地址,获取该地址对应的系数值和该地址的上一地址对应的前一滤波数据的累加结果,将该地址对应的系数值与所述当前滤波数据相乘,得到该地址对应的乘积结果,并将该地址对应的乘积结果与该地址的上一地址对应的前一滤波数据的累加结果之和确定为该地址对应的所述当前滤波数据的累加结果,以及,在地址k-1至地址0中确定与该地址对称的第二目标地址,并获取该第二目标地址的上一地址对应的前一滤波数据的累加结果,将该地址对应的乘积结果与该第二目标地址的上一地址对应的前一滤波数据的累加结果之和确定为该第二目标地址对应的所述当前滤波数据的累加结果,其中,若n为偶数则k为n/2,若n为奇数则k为(n+1)/2;
相应地,所述FIR滤波器包括暂存器和n+1个累加器寄存器;所述存储所述FIR滤波器的所述每一地址对应的所述当前滤波数据的累加结果,包括:
针对地址n至地址k中每一地址,将该地址对应的所述当前滤波数据的累加结果存储在该地址对应的累加器寄存器中;以及
针对地址k-1至地址0中的每一地址,将该地址对应的所述当前滤波数据的累加结果暂存在暂存器中,并在确定出该地址的上一地址对应的所述当前滤波数据的累加结果之后,将所述暂存器中暂存的该地址对应的所述当前滤波数据的累加结果存放在该地址对应的累加器寄存器中。
本公开第二方面提供一种FIR滤波器,所述FIR滤波器包括:地址发生器、系数存储器、乘法器和累加器,且所述累加器包括n+1个累加器寄存器,n为所述FIR滤波器的阶数,且n为大于1的整数;
所述地址发生器,用于向所述系数存储器和所述累加器输出地址;
所述系数存储器存储有n+1个系数值,且所述n+1个系数值与所述FIR滤波器中n+1个地址一一对应,所述系数存储器用于在接收到所述地址发生器输出的地址时,向所述乘法器输出与该地址对应的系数值;
所述乘法器,用于将获取的当前滤波数据和所述系数值相乘,得到所述地址对应的乘积结果,并将所述地址对应的乘积结果输入所述累加器;
所述累加器,用于根据所述地址发生器输出的地址确定所述地址的上一地址对应的累加器寄存器,并将所述地址对应的乘积结果和所述地址的上一地址对应的累加器寄存器中存储的前一滤波数据的累加结果之和作为所述地址对应的所述当前滤波数据的累加结果,并将该累加结果存储在所述地址对应的累加器寄存器中;
所述累加器,还用于在确定出地址n对应的所述当前滤波数据的累加结果时,将所述累加结果作为所述当前滤波数据的滤波结果,并输出所述滤波结果。
可选地,所述地址发生器用于按照所述FIR滤波器中地址的大小顺序,依次将每一地址作为第一目标地址,并向所述系数存储器和所述累加器发送所述第一目标地址。
可选地,所述FIR滤波器还包括:初始化控制器;
所述初始化控制器与所述地址发生器相连,用于在每一采样周期的初始时刻将所述地址发生器的地址初始化为n;以及
所述初始化控制器与所述累加器相连,用于在所述FIR滤波器运行初始将所述累加器中每一所述累加器寄存器中存储的累加结果初始化为0。
可选地,所述FIR滤波器为具有系数对称性的滤波器,所述FIR滤波器还包括暂存器;
所述累加器,用于针对地址n至地址k中每一地址,将该地址对应的乘积结果与该地址的上一地址对应的前一滤波数据的累加结果之和确定为该地址对应的所述当前滤波数据的累加结果,将所述地址对应的所述当前滤波数据的累加结果存储在该地址对应的累加器寄存器中,以及,在地址k-1至地址0中确定与该地址对称的第二目标地址,并获取该第二目标地址的上一地址对应的前一滤波数据的累加结果,将该地址对应的乘积结果与该第二目标地址的上一地址对应的前一滤波数据的累加结果之和确定为所述第二目标地址对应的所述当前滤波数据的累加结果,将所述第二目标地址对应的所述当前滤波数据的累加结果暂存在暂存器中,并在确定出所述第二目标地址的上一地址对应的所述当前滤波数据的累加结果之后,将所述暂存器中暂存的所述第二目标地址对应的所述当前滤波数据的累加结果存放在所述第二目标地址对应的累加器寄存器中,其中,若n为偶数则k为n/2,若n为奇数则k为(n+1)/2。
可选地,所述FIR滤波器还包括数据保持寄存器;
所述数据保持寄存器,用于存储接收到的当前滤波数据,并在一个采样周期内向所述乘法器输出不变的滤波数据。
本公开第三方面提供一种电子设备,包括:本公开第二方面所述的FIR滤波器。
通过上述技术方案,在接收到当前滤波数据时,根据地址n对应的系数值和地址n-1对应的前一滤波数据的累加结果,即可得到地址n对应的当前滤波数据的累加结果,如此,在接收到一个当前滤波数据之后,只需等待一个时钟周期即可输出当前滤波数据的滤波结果,相较于相关技术中需要等待n+1个时钟周期才能输出当前滤波数据的滤波结果的技术方案,本方案可以有效降低FIR滤波器的滤波延时,提高了滤波效率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的传统FIR滤波器输出数据的时延示意图。
图2是根据一示例性实施例示出的一种FIR滤波器的滤波方法的流程图。
图3是根据一示例性实施例示出的一种FIR滤波器的结构示意图。
图4是根据一示例性实施例示出的另一种FIR滤波器的结构示意图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
需要说明的是,本公开中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
图1是根据一示例性实施例示出的传统FIR滤波器输出数据的时延示意图。假设FIR滤波器的阶数为n,在第一采样周期内向FIR滤波器输入滤波数据D0,在第二采样周期内向FIR滤波器输入第二个滤波数据D1,在第n个采样周期内向FIR滤波器输入第n个滤波数据Dn-1,以及,在第n+1个采样周期内向FIR滤波器输入第n+1个滤波数据Dn。针对滤波数据Dn,当FIR滤波器接收到滤波数据Dn之后,会通过该FIR滤波器包括的乘法器在该采样周期内的第1个时钟周期将FIR滤波器的第1个系数值C0与滤波数据D0相乘,得到C0*D0,在第二时钟周期将第2个系数值C1与第二个滤波数据D1相乘,得到C1*D1,依次类推,直到第n+1个时钟周期,将第n+1个系数值Cn,与滤波数据Dn相乘,得到Cn*Dn,之后对乘积结果进行累加,得到C0*D0+C1*D1+…+Cn*Dn,将累加结果作为滤波数据Cn*Dn的滤波结果进行输出。
由上述计算可以看出,图1中传统的FIR滤波器在接收到滤波数据Dn之后,需要经过n+1个时钟周期才能输出该滤波数据Dn的滤波结果,即,滤波延时为n+1个时钟周期,导致滤波延时较长,使得滤波效率较差。
有鉴于此,本公开提供一种FIR滤波器的滤波方法、FIR滤波器及电子设备,以减低滤波延时,提高滤波效率。
图2是根据一示例性实施例示出的一种FIR滤波器的滤波方法的流程图。如图2所示,该方法可以包括以下步骤。
在步骤S21中,响应于接收到当前滤波数据,则分别获取FIR滤波器中每一地址对应的系数值和每一地址的上一地址对应的前一滤波数据的累加结果,并根据每一地址对应的系数值和每一地址的上一地址对应的前一滤波数据的累加结果,确定每一地址对应的当前滤波数据的累加结果。
其中,FIR滤波器的地址的取值范围为[n,0],n为FIR滤波器的阶数,且n为大于1的整数。此外,在本公开中,滤波数据是指输出FIR滤波器且需要进行滤波处理的数据。
应当理解的是,若FIR滤波器为n阶滤波器,则FIR滤波器中存在n+1个地址,以及n+1个系数值。此外,每一地址的上一地址对应的前一滤波数据的累加结果是对前一滤波数据进行滤波处理时计算得到并保存下来的,在对当前滤波数据进行滤波处理时可以直接获取前一滤波数据的累加结果。其中,FIR滤波器的运行初始时的每一地址对应的前一滤波数据的累加结果是预先定义的,例如每一地址对应的前一滤波数据的累加结果初始值均为0。
在获取到每一地址对应的系数值和每一地址的上一地址对应的前一滤波数据的累加结果,根据每一地址对应的系数值和每一地址的上一地址对应的前一滤波数据的累加结果,确定每一地址对应的当前滤波数据的累加结果。示例地,针对每一地址,将当前滤波数据与该地址对应的系数值相乘得到乘积结果,之后,将该乘积结果与该地址的上一地址对应的前一滤波数据的累加结果之和确定为该地址对应的当前滤波数据的累加结果。
例如,针对地址n,将当前滤波数据与地址n-1对应的前一滤波数据的累加结果之和确定为地址n对应的当前滤波数据的累加结果。针对地址n-1,将当前滤波数据与地址n-2对应的前一滤波数据的累加结果之和确定为地址n对应的当前滤波数据的累加结果,等等。
在步骤S22中,将地址n对应的当前滤波数据的累加结果作为当前滤波数据的滤波结果,并输出滤波结果。
按照步骤S21中的步骤,可以分别确定出地址n、地址n-1、……、地址0各自对应的当前滤波数据的累加结果。之后,直接将地址n对应的当前滤波数据的累加结果作为当前滤波数据的滤波结果,并输出滤波结果。如此,在接收到当前滤波数据时无需读取该当前滤波数据之前的多个历史数据,也无需进行每一历史数据与系数的乘累加的过程,只需要将当前滤波数据与地址n对应的系数值的乘积与地址n-1对应的前一滤波数据的累加结果作为当前滤波数据的滤波结果并输出。如此,在接收到一个当前滤波数据之后,只需等待一个时钟周期即可输出当前滤波数据的滤波结果,相较于相关技术中需要等待n+1个时钟周期才能输出当前滤波数据的滤波结果的技术方案,本方案可以有效降低FIR滤波器的滤波延时,提高了滤波效率。
在步骤S23中,存储FIR滤波器的每一地址对应的当前滤波数据的累加结果。
如步骤S21所述,在确定每一地址对应的当前滤波数据的累加结果时,需要用到前一滤波数据的累加结果,因此,为了便于计算下一个采样周期内获取到的滤波数据的累加结果,还需要存储FIR滤波器的除地址n之外的其他地址对应的当前滤波数据的累加结果。此外,考虑到当前滤波数据的滤波结果可能需要被其他处理模块使用,需要在下一个滤波数据的滤波结果输出之前使当前滤波数据的滤波结果保持稳定,因此,在确定出下一个滤波数据的滤波结果之前,需要存储地址n对应的当前滤波数据的累加结果。
应当理解的是,本公开对步骤S22和步骤S23的执行顺序不作具体限定。示例地,可以先执行步骤S22再执行步骤S23,也可以先执行步骤S23再执行步骤S22,还可以同时执行步骤S22和步骤S23。图2以先执行步骤S22再执行步骤S23为例进行说明。
采用上述技术方案,在接收到当前滤波数据时,根据地址n对应的系数值和地址n-1对应的前一滤波数据的累加结果,即可得到地址n对应的当前滤波数据的累加结果,如此,在接收到一个当前滤波数据之后,只需等待一个时钟周期即可输出当前滤波数据的滤波结果,相较于相关技术中需要等待n+1个时钟周期才能输出当前滤波数据的滤波结果的技术方案,本方案可以有效降低FIR滤波器的滤波延时,提高了滤波效率。
在一种可能的实施方式中,在接收到当前滤波数据时,首先,获取地址n对应的系数值和地址n-1对应的前一滤波数据的累加结果,并将当前滤波数据与地址n对应的系数值相乘得到乘积结果,并将该乘积结果与地址n-1对应的前一滤波数据的累加结果相加,得到地址n对应的当前滤波数据的滤波结果,将该结果作为当前滤波数据的滤波结果,并输出该滤波结果。之后,针对地址n-1至地址0,采用并行计算方式,同时计算地址n-1至地址0各自对应的当前滤波数据的滤波结果。
然而,在FIR滤波器中是通过FIR滤波器中的乘法器将滤波数据与系数值进行相乘的,因此,在上述实施方式中,FIR滤波器中需要设置有至少n个乘法器,如此,使得FIR滤波器结构较为复杂,且增加了FIPR滤波器的成本。
此外,考虑到在计算每一地址对应的当前滤波数据的累加结果时需要上一地址对应的前一滤波数据的累加结果,并且,在计算得到每一地址对应的当前滤波数据的累加结果时需要保存该结果,因此,在另一种可能的实施方式中,可以按照FIR滤波器中地址的大小顺序,依次计算每一地址对应的当前滤波数据的累加结果。相应地,上述步骤S21的具体实施方式可以为:响应于接收到当前滤波数据,则按照FIR滤波器中地址的大小顺序,依次将每一地址作为第一目标地址,针对每一第一目标地址,获取第一目标地址对应的系数值以及第一目标地址的上一地址对应的前一滤波数据的累加结果,并根据第一目标地址对应的系数值和第一目标地址的上一地址对应的前一滤波数据的累加结果,确定第一目标地址对应的当前滤波数据的累加结果。
示例地,响应于接收到当前滤波数据,从系数存储器和累加器寄存器中,获取地址i对应的系数值以及地址i-1对应的前一滤波数据的累加结果,并根据地址i对应的系数值和地址i-1对应的前一滤波数据的累加结果,确定地址i对应的所述当前滤波数据的累加结果;
令i=i-1,并返回获取地址i对应的系数值以及地址i-1对应的前一滤波数据的累加结果,并根据地址i对应的系数值和地址i-1对应的前一滤波数据的累加结果,确定地址i对应的当前滤波数据的累加结果的步骤,直到i小于0为止,其中,i的初始值为n。
例如,FIR滤波器的阶数为n阶,当前滤波数据为D2,首先,获取地址n对应的系数值Cn和地址n-1对应的前一滤波数据D1的累加结果A1,n-1,并计算Cn*D2+A1,n-1得到地址n对应的滤波数据D2的累加结果A2,n,并将A2,n作为滤波数据D2的滤波结果进行输出。接着,获取地址n-1对应的系数值Cn-1和地址n-2对应的前一滤波数据D1的累加结果A1,n-2,并计算Cn-1*D2+A1,n-2得到地址n-1对应的滤波数据D2的累加结果A2,n-1,并存储A2,n-1。接着,获取地址n-2对应的系数值Cn-2和地址n-3对应的前一滤波数据D1的累加结果A1,n-3,并计算Cn-2*D2+A1,n-3得到地址n-2对应的滤波数据D2的累加结果A2,n-2,并存储A2,n-2。以此类推,最后获取到地址0对应的出系数C0,地址-1对应的前一滤波数据D1的累加结果A1,-1,计算C0*D2+A1,-1得到地址0对应的滤波数据D2的累加结果A2,0,并存储A2,0。应当说明的是,地址-1对应的任一滤波数据的累加结果均为0。
采用上述技术方案,在接收到当前滤波数据时,在第一个时钟周期内即可确定出地址n对应的当前滤波数据的累加结果,即,在第一个时钟周期内即可输出该当前滤波数据的滤波结果,有效降低了FIR滤波器的延时。此外,在确定出滤波结果之后,再针对除地址n之外的其他地址,依次计算出每一地址对应的当前滤波数据的累加结果,便于在下一个采样周期内确定每一地址对应的下一滤波数据的累加结果,并且,避免了FIPR滤波器的成本的增加。
在一种实施例中,FIR滤波器为具有系数对称性的滤波器,即,地址n对应的系数值Cn与地址0对应的系数值C0相同,地址n-1对应的系数值Cn-1与地址1对应的系数值C1相同,地址n-2对应的系数值Cn-2与地址2对应的系数值C2相同,等等。其中,FIR type 0和FIR type1型FIR滤波器为具有系数对称性的滤波器。在该实施例中,图1中步骤S21的具体实施方式为:
响应于接收到当前滤波数据,针对FIR滤波器中地址n至地址k中每一地址,获取该地址对应的系数值和该地址的上一地址对应的前一滤波数据的累加结果,将该地址对应的系数值与当前滤波数据相乘,得到该地址对应的乘积结果,并将该地址对应的乘积结果与该地址的上一地址对应的前一滤波数据的累加结果之和确定为该地址对应的当前滤波数据的累加结果,以及,在地址k-1至地址0中确定与该地址对称的第二目标地址,并获取该第二目标地址的上一地址对应的前一滤波数据的累加结果,将第二目标地址对应的乘积结果与该第二目标地址的上一地址对应的前一滤波数据的累加结果之和确定为该第二目标地址对应的当前滤波数据的累加结果,其中,若n为偶数则k为n/2,若n为奇数则k为(n+1)/2。
示例地,若n=4,则地址4对应的系数值C4与地址0对应的系数值C0相同,地址3对应的系数值C3与地址1对应的系数值C1相同。在获取到当前滤波数据时,获取地址4对应的系数值C4,将系数值C4与当前滤波数据相连,得到地址4对应的乘积结果。其中,地址4对应的乘积结果与地址0对应的乘积结果相同,因此,在计算到地址0时无需再计算一次乘积。类似地,地址3对应的乘积结果与地址1对应的乘积结果也是相同的,在计算到地址1时也无需再计算一次乘积。
如此,在该实施例中,仅需要计算部分地址对应的乘积结果即可,有效减少了乘法器的计算工作量。
沿用上述例子,在确定出地址4对应的乘积结果时,一方面可以按照上述方式确定出地址4对应的当前滤波数据的累加结果,另一方面还可以获取与地址4对称的地址0的上一地址对应的前一滤波数据的累加结果(地址0的上一地址对应的前一滤波数据的累加结果为0),并确定出地址0对应的当前滤波数据的累加结果。类似地,在确定出地址3对应的乘积结果时,一方面可以按照上述方式确定出地址3对应的当前滤波数据的累加结果,另一方面还可以获取与地址3对称的地址1的上一地址对应的前一滤波数据的累加结果,并确定出地址1对应的当前滤波数据的累加结果。
此外,在实际应用中,FIR滤波器中包括与地址一一对应的累加器寄存器,用于实现累加运算以及保存地址对应的当前滤波数据的累加结果。应当理解的是,若当前滤波数据为D1,则累加器寄存器保存的滤波数据D1的累加结果,若当前滤波数据为D2,则累加器寄存器保存的滤波数据D2的累加结果,也即是说,某一地址对应的累加器寄存器中包括的数据随着滤波数据的更新而更新。
在得到地址4对应的乘积结果的同时或之后,即可得到地址0对应的当前滤波数据的累加结果,此时,如果将地址0对应的当前滤波数据的累加结果更新到地址0对应的累加器寄存器中,将会删除该累加器寄存器中包括的地址0对应的前一滤波数据的累加结果。但是,在计算地址1对应的当前滤波数据的累加结果时又需要用到址0对应的前一滤波数据的累加结果,从而会导致无法计算地址1对应的当前滤波数据的累加结果的问题。因此,在该实施例中,FIR滤波器还可以包括暂存器。
相应地,图2中步骤S23的具体实施方式为:针对地址n-1至地址k中每一地址,将该地址对应的当前滤波数据的累加结果存储在该地址对应的累加器寄存器中;以及,针对地址k-1至地址0中的每一地址,将该地址对应的当前滤波数据的累加结果暂存在暂存器中,并在确定出该地址的上一地址对应的当前滤波数据的累加结果之后,将暂存器中暂存的该地址对应的当前滤波数据的累加结果存放在该地址对应的累加器寄存器中。
沿用上述例子,在得到地址4对应的当前滤波数据的累加结果的同时或之后,得到地址0对应的当前滤波数据的累加结果,并将该结果存储在暂存器中。接着,在得到地址3对应的乘积结果的同时或之后,除了可以确定出地址3对应的当前滤波数据的累加结果之外,还可以获取地址0对应的累加器寄存器中存储的前一滤波数据的累加结果,并确定出地址1对应的当前滤波数据的累加结果,此时,将暂存器中存储的地址0对应的当前滤波数据的累加结果更新到地址0对应的累加器寄存器中,同时将上述确定的地址1对应的当前滤波数据的累加结果存储在暂存器中,直到确定出地址2对应的当前滤波数据的累加结果时再将地址1对应的当前滤波数据更新到地址1对应的累加器寄存器中。
如此,既可以减小乘法器的计算量,还可以确保每一地址的当前滤波数据的累加结果的确定过程正常。
基于同一发明构思,本公开提供一种FIR滤波器。图3是根据一示例性实施例示出的一种FIR滤波器的结构示意图。如图3所示,该FIR滤波器可以包括:地址发生器、系数存储器、乘法器和累加器。其中,累加器包括n+1个累加器寄存器,n为FIR滤波器的阶数,且n为大于1的整数。
其中,地址发生器分别与系数存储器和累加器相连,用于向系数存储器和累加器输出地址。示例地,地址发生器在每一个时钟周期向系数存储器和累加器输出一个地址。系数存储器中存储有n+1个系数值,且n+1个系数值与FIR滤波器中n+1个地址一一对应,系数存储器用于在接收到地址发生器输出的地址时,向乘法器输出与该地址对应的系数值。乘法器用于将获取的当前滤波数据和系数值相乘,得到地址对应的乘积结果,并将地址对应的乘积结果输入累加器。
累加器用于根据地址发生器输出的地址确定地址的上一地址对应的累加器寄存器,并将地址对应的乘积结果和地址的上一地址对应的累加器寄存器中存储的前一滤波数据的累加结果之和作为地址对应的当前滤波数据的累加结果,并将该累加结果存储在地址对应的累加器寄存器中。此外,累加器还用于在确定出地址n对应的当前滤波数据的累加结果时,将累加结果作为当前滤波数据的滤波结果,并输出滤波结果。
采用上述技术方案,在接收到当前滤波数据时,根据地址n对应的系数值和地址n-1对应的前一滤波数据的累加结果,即可得到地址n对应的当前滤波数据的累加结果,如此,在接收到一个当前滤波数据之后,只需等待一个时钟周期即可输出当前滤波数据的滤波结果。相较于相关技术中,需要等待n+1个时钟周期才能输出当前滤波数据的滤波结果的技术方案,本公开可以有效降低FIR滤波器的滤波延时,提高了滤波效率。
在一种实施方式中,地址发生器按照FIR滤波器中地址的大小顺序,依次将每一地址作为第一目标地址,并向系数存储器和累加器发送第一目标地址。即,地址发生器按照FIR滤波器中地址的大小顺序,依次将每一地址作为第一目标地址,并在每一时钟周期内向系数存储器和累加器发送一个第一目标地址。这样,针对每一目标地址,系数存储器在接收到地址发生器输出该第一目标地址时,向乘法器输出与该第一目标地址对应的系数值。乘法器将获取的当前滤波数据和第一目标地址对应的系数值相乘,得到第一目标地址对应的乘积结果,并将所第一目标地址对应的乘积结果输入累加器。累加器根据第一目标地址确定第一目标地址的上一地址对应的累加器寄存器,并将第一目标地址对应的乘积结果与第一目标地址的上一地址对应的累加器寄存器中存储的前一滤波数据的累加结果之和作为第一目标地址对应的当前滤波数据的累加结果,并将该累加结果存储在第一目标地址对应的累加器寄存器中。
图4是根据一示例性实施例示出的另一种FIR滤波器的结构示意图。如图4所示,该FIR滤波器还包括:初始化控制器。该初始化控制器与地址发生器相连,用于在每一采样周期的初始时刻将地址发生器的地址初始化为n;以及初始化控制器与累加器相连,用于在FIR滤波器运行初始将累加器中每一累加器寄存器中存储的累加结果初始化为0。
示例地,首先,在接收到当前采样周期的初始,将地址发生器的地址初始化为n。在接收到当前滤波数据时,地址发生器向系数存储器和累加器输出地址n。系数存储器将地址n对应的系数值Cn输入乘法器中,乘法器将当前滤波数据和系数值Cn相乘得到地址n对应的乘积结果。之后,将地址n对应的乘积结果输入累加器,累加器确定地址n-1对应的累加器寄存器,并将地址n对应的乘积结果与地址n-1对应的累加器寄存器中存储的前一滤波数据的累加结果之和作为地址n对应的当前滤波数据的累加结果,将该累加结果存储在地址n对应的累加器寄存器中。接着,将地址发生器的地址设为n-1,并参照上述方式确定地址n-1对应的当前滤波数据的累加结果。以此类推,确定出每一地址对应的当前滤波数据的累加结果。
如图4所示,该FIR滤波器为具有系数对称性的滤波器,FIR滤波器还包括暂存器。具体地,累加器用于针对地址n至地址k中每一地址,将该地址对应的乘积结果与该地址的上一地址对应的前一滤波数据的累加结果之和确定为该地址对应的当前滤波数据的累加结果,将地址对应的当前滤波数据的累加结果存储在该地址对应的累加器寄存器中,以及,在地址k-1至地址0中确定与该地址对称的第二目标地址,并获取该第二目标地址的上一地址对应的前一滤波数据的累加结果,将该地址对应的乘积结果与该第二目标地址的上一地址对应的前一滤波数据的累加结果之和确定为该第二目标地址对应的当前滤波数据的累加结果,将该第二目标地址对应的当前滤波数据的累加结果暂存在暂存器中,并在确定出该第二目标地址的上一地址对应的当前滤波数据的累加结果之后,将暂存器中暂存的该第二目标地址对应的当前滤波数据的累加结果存放在该第二目标地址对应的累加器寄存器中,其中,若n为偶数则k为n/2,若n为奇数则k为(n+1)/2。
此外,如图4所示,该FIR滤波器还包括数据保持寄存器,该数据保持寄存器用于存储接收到的当前滤波数据,并在一个采样周期内向乘法器输出不变的滤波数据。
基于同一发明构思,本公开还提供一种电子设备,包括:如本公开所提供的FIR滤波器。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种FIR滤波器的滤波方法,其特征在于,所述方法包括:
响应于接收到当前滤波数据,则分别获取FIR滤波器中每一地址对应的系数值和每一地址的上一地址对应的前一滤波数据的累加结果,并根据所述每一地址对应的系数值和所述每一地址的上一地址对应的前一滤波数据的累加结果,确定每一地址对应的所述当前滤波数据的累加结果,其中,所述FIR滤波器的地址的取值范围为[n,0],n为所述FIR滤波器的阶数,且n为大于1的整数;
将地址n对应的所述当前滤波数据的累加结果作为所述当前滤波数据的滤波结果,并输出所述滤波结果;以及
存储所述FIR滤波器的所述每一地址对应的所述当前滤波数据的累加结果。
2.根据权利要求1所述的方法,其特征在于,所述响应于接收到当前滤波数据,则分别获取所述FIR滤波器中每一地址对应的系数值和每一地址的上一地址对应的前一滤波数据的累加结果,并根据所述每一地址对应的系数值和所述每一地址的上一地址对应的前一滤波数据的累加结果,确定每一地址对应的所述当前滤波数据的累加结果,包括:
响应于接收到当前滤波数据,则按照FIR滤波器中地址的大小顺序,依次将每一地址作为第一目标地址,针对每一所述第一目标地址,获取所述第一目标地址对应的系数值以及所述第一目标地址的上一地址对应的前一滤波数据的累加结果,并根据所述第一目标地址对应的系数值和所述第一目标地址的上一地址对应的前一滤波数据的累加结果,确定所述第一目标地址对应的所述当前滤波数据的累加结果。
3.根据权利要求2所述的方法,其特征在于,所述响应于接收到当前滤波数据,则按照FIR滤波器中地址的大小顺序,依次将每一地址作为第一目标地址,针对每一所述第一目标地址,获取所述第一目标地址对应的系数值以及所述第一目标地址的上一地址对应的前一滤波数据的累加结果,并根据所述第一目标地址对应的系数值和所述第一目标地址的上一地址对应的前一滤波数据的累加结果,确定所述第一目标地址对应的所述当前滤波数据的累加结果,包括:
响应于接收到当前滤波数据,从系数存储器和累加器寄存器中,获取地址i对应的系数值以及地址i-1对应的前一滤波数据的累加结果,并根据所述地址i对应的系数值和地址i-1对应的所述前一滤波数据的累加结果,确定所述地址i对应的所述当前滤波数据的累加结果;
令i=i-1,并返回获取地址i对应的系数值以及地址i-1对应的前一滤波数据的累加结果,并根据所述地址i对应的系数值和地址i-1对应的所述前一滤波数据的累加结果,确定所述地址i对应的所述当前滤波数据的累加结果的步骤,直到i小于0为止,其中,i的初始值为n。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述FIR滤波器为具有系数对称性的滤波器,所述响应于接收到当前滤波数据,则分别获取所述FIR滤波器中每一地址对应的系数和每一地址的上一地址对应的前一滤波数据的累加结果,并根据所述每一地址对应的系数值和所述每一地址的上一地址对应的前一滤波数据的累加结果,确定每一地址对应的所述当前滤波数据的累加结果,包括:
响应于接收到当前滤波数据,针对所述FIR滤波器中地址n至地址k中每一地址,获取该地址对应的系数值和该地址的上一地址对应的前一滤波数据的累加结果,将该地址对应的系数值与所述当前滤波数据相乘,得到该地址对应的乘积结果,并将该地址对应的乘积结果与该地址的上一地址对应的前一滤波数据的累加结果之和确定为该地址对应的所述当前滤波数据的累加结果,以及,在地址k-1至地址0中确定与该地址对称的第二目标地址,并获取该第二目标地址的上一地址对应的前一滤波数据的累加结果,将该地址对应的乘积结果与该第二目标地址的上一地址对应的前一滤波数据的累加结果之和确定为该第二目标地址对应的所述当前滤波数据的累加结果,其中,若n为偶数则k为n/2,若n为奇数则k为(n+1)/2;
相应地,所述FIR滤波器包括暂存器和n+1个累加器寄存器;所述存储所述FIR滤波器的所述每一地址对应的所述当前滤波数据的累加结果,包括:
针对地址n至地址k中每一地址,将该地址对应的所述当前滤波数据的累加结果存储在该地址对应的累加器寄存器中;以及
针对地址k-1至地址0中的每一地址,将该地址对应的所述当前滤波数据的累加结果暂存在暂存器中,并在确定出该地址的上一地址对应的所述当前滤波数据的累加结果之后,将所述暂存器中暂存的该地址对应的所述当前滤波数据的累加结果存放在该地址对应的累加器寄存器中。
5.一种FIR滤波器,其特征在于,所述FIR滤波器包括:地址发生器、系数存储器、乘法器和累加器,且所述累加器包括n+1个累加器寄存器,n为所述FIR滤波器的阶数,且n为大于1的整数;
所述地址发生器,用于向所述系数存储器和所述累加器输出地址;
所述系数存储器存储有n+1个系数值,且所述n+1个系数值与所述FIR滤波器中n+1个地址一一对应,所述系数存储器用于在接收到所述地址发生器输出的地址时,向所述乘法器输出与该地址对应的系数值;
所述乘法器,用于将获取的当前滤波数据和所述系数值相乘,得到所述地址对应的乘积结果,并将所述地址对应的乘积结果输入所述累加器;
所述累加器,用于根据所述地址发生器输出的地址确定所述地址的上一地址对应的累加器寄存器,并将所述地址对应的乘积结果和所述地址的上一地址对应的累加器寄存器中存储的前一滤波数据的累加结果之和作为所述地址对应的所述当前滤波数据的累加结果,并将该累加结果存储在所述地址对应的累加器寄存器中;
所述累加器,还用于在确定出地址n对应的所述当前滤波数据的累加结果时,将所述累加结果作为所述当前滤波数据的滤波结果,并输出所述滤波结果。
6.根据权利要求5所述的FIR滤波器,其特征在于,所述地址发生器用于按照所述FIR滤波器中地址的大小顺序,依次将每一地址作为第一目标地址,并向所述系数存储器和所述累加器发送所述第一目标地址。
7.根据权利要求6所述的FIR滤波器,其特征在于,所述FIR滤波器还包括:初始化控制器;
所述初始化控制器与所述地址发生器相连,用于在每一采样周期的初始时刻将所述地址发生器的地址初始化为n;以及
所述初始化控制器与所述累加器相连,用于在所述FIR滤波器运行初始将所述累加器中每一所述累加器寄存器中存储的累加结果初始化为0。
8.根据权利要求5-7中任一项所述的FIR滤波器,其特征在于,所述FIR滤波器为具有系数对称性的滤波器,所述FIR滤波器还包括暂存器;
所述累加器,用于针对地址n至地址k中每一地址,将该地址对应的乘积结果与该地址的上一地址对应的前一滤波数据的累加结果之和确定为该地址对应的所述当前滤波数据的累加结果,将所述地址对应的所述当前滤波数据的累加结果存储在该地址对应的累加器寄存器中,以及,在地址k-1至地址0中确定与该地址对称的第二目标地址,并获取该第二目标地址的上一地址对应的前一滤波数据的累加结果,将该地址对应的乘积结果与该第二目标地址的上一地址对应的前一滤波数据的累加结果之和确定为所述第二目标地址对应的所述当前滤波数据的累加结果,将所述第二目标地址对应的所述当前滤波数据的累加结果暂存在暂存器中,并在确定出所述第二目标地址的上一地址对应的所述当前滤波数据的累加结果之后,将所述暂存器中暂存的所述第二目标地址对应的所述当前滤波数据的累加结果存放在所述第二目标地址对应的累加器寄存器中,其中,若n为偶数则k为n/2,若n为奇数则k为(n+1)/2。
9.根据权利要求5-7中任一项所述的FIR滤波器,其特征在于,所述FIR滤波器还包括数据保持寄存器;
所述数据保持寄存器,用于存储接收到的当前滤波数据,并在一个采样周期内向所述乘法器输出不变的滤波数据。
10.一种电子设备,其特征在于,包括:如权利要求5-9中任一项所述的FIR滤波器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211352515.9A CN117997311A (zh) | 2022-10-31 | 2022-10-31 | Fir滤波器的滤波方法、fir滤波器及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211352515.9A CN117997311A (zh) | 2022-10-31 | 2022-10-31 | Fir滤波器的滤波方法、fir滤波器及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117997311A true CN117997311A (zh) | 2024-05-07 |
Family
ID=90895932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211352515.9A Pending CN117997311A (zh) | 2022-10-31 | 2022-10-31 | Fir滤波器的滤波方法、fir滤波器及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117997311A (zh) |
-
2022
- 2022-10-31 CN CN202211352515.9A patent/CN117997311A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050201457A1 (en) | Distributed arithmetic adaptive filter and method | |
US9015219B2 (en) | Apparatus for signal processing | |
JP3135902B2 (ja) | 自動等化器及び半導体集積回路 | |
US3872290A (en) | Finite impulse response digital filter with reduced storage | |
CN109976660B (zh) | 基于线性插值的任意信号采样率重构方法和数据采样系统 | |
WO2000008756A1 (en) | Multiplierless digital filtering | |
CN113630212A (zh) | 一种数字信号的降采样方法及降采样装置 | |
CN117997311A (zh) | Fir滤波器的滤波方法、fir滤波器及电子设备 | |
CN100550622C (zh) | 带有下采样功能的数字信号滤波装置及方法 | |
US10908880B2 (en) | Audio signal circuit with in-place bit-reversal | |
CN110677138B (zh) | 基于无误差概率计算的fir滤波器 | |
CN114448390A (zh) | 一种Biquad数字滤波器装置及实现方法 | |
US9673780B2 (en) | Multi-stage filter processing device and method | |
US5701262A (en) | Tab coefficient updating device of finite impulse-responding adaptive digital filter | |
CN112491391A (zh) | 一种音频dac的插值滤波器实现结构 | |
JPH10322168A (ja) | 適応有限インパルス応答フィルタ集積回路 | |
CN115102524B (zh) | 一种滤波器 | |
US8761916B2 (en) | High-performance tone detection using a digital signal processor (DSP) having multiple arithmetic logic units (ALUs) | |
JP3479617B2 (ja) | 移動平均フィルタ | |
Mottaghi-Kashtiban et al. | FIR filters involving shifts and only two additions, efficient for short word-length signal processing | |
CN111613238B (zh) | 信号之间延时的确定方法、装置、设备以及存储介质 | |
US11658643B2 (en) | Configurable multiplier-free multirate filter | |
CN217037149U (zh) | 一种基于fpga的fir滤波器 | |
CN115865044A (zh) | 支持浮点系数的定点iir滤波器和电子设备 | |
CN112491392A (zh) | 窗函数分数延时滤波器设计方法、装置及其存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |