CN102739195B - 一种fir滤波器的处理方法、装置和系统 - Google Patents
一种fir滤波器的处理方法、装置和系统 Download PDFInfo
- Publication number
- CN102739195B CN102739195B CN201210184133.XA CN201210184133A CN102739195B CN 102739195 B CN102739195 B CN 102739195B CN 201210184133 A CN201210184133 A CN 201210184133A CN 102739195 B CN102739195 B CN 102739195B
- Authority
- CN
- China
- Prior art keywords
- input signal
- signal data
- read
- filter
- fir filter
- 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.)
- Expired - Fee Related
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000001914 filtration Methods 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims abstract description 19
- 238000009825 accumulation Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Landscapes
- Filters That Use Time-Delay Elements (AREA)
Abstract
本发明实施例公开了一种FIR滤波器的处理方法、装置和系统。本发明实施例方法包括:获取输入信号,将输入信号储存在FIR滤波器的SRAM中,使得每一个输入信号得到N+1个信号数据,然后从SRAM中依次读出一个输入信号所对应的N+1个信号数据,并在每读出一个信号数据时更新一次读标识,然后根据该读标识获取当前信号数据所对应的滤波器系数,将当前信号数据和获取到的滤波器系数进行乘法运算,得到当前信号数据的乘法运算结果,再将一个输入信号所对应的N+1个信号数据所得到的乘法运算结果进行累加,得到加法运算结果并输出,可以高效、实时地滤波,节约资源,降低功耗。
Description
技术领域
本发明涉及通信领域,尤其涉及一种FIR滤波器的处理方法、装置和系统。
背景技术
有限冲击响应(FIR,FiniteImpulseResponse)滤波器,是数字信号处理系统中最基本的元件,目前,在数字通信系统中,越来越多的采用FIR滤波器实现数字信号滤波,FIR滤波器具有稳定及具有严格的线性相频特性等明显的优势,其传递函数可表示为:
其中,bi为滤波器系数,N为滤波器的阶数,z-i为输入的信号数据。
目前,FIR滤波器一般由多个寄存器、多个乘法器和多个加法器构成,主要根据FIR滤波器幅频(FIR滤波器通带类型、截止频率、通带增益和阻带增益)或相频响应要求等通过计算得到滤波器系数bi和滤波器的阶数N。
如图1所示,图1是现有技术中的FIR滤波器的实现结构,其中,寄存器用于缓存输入数据,乘法器用于将输入数据与滤波器系数相乘,加法器用于将乘法器的输出结果进行累加。滤波时,对于一个N阶滤波器,需要N+1乘法器和N+1个加法器并行地进行加法运算和乘法运算。其中,对于一个N阶,输入数据为M比特,滤波器系数bi的量化精度为X比特的FIR滤波器,需要N×M比特的存储单元,N+1个2输入乘法单元,N个2输入加法单元。
在对现有技术的研究和实践过程中,本发明的发明人发现,现有技术中的FIR滤波器需要对输入数据进行缓存,并且乘法器和加法器是并行地对输入信号进行滤波,当输入信号位宽较大,阶数较多时,处理效率低,并且需要占用大量逻辑,成本和功耗都很高。
发明内容
本发明实施例提供了一种FIR滤波器的处理方法、装置和系统,可以高效、实时地滤波,节约资源,降低功耗。
一种FIR滤波器的处理方法,包括:
获取输入信号;
将输入信号储存在FIR滤波器的存储器SRAM中,使得每一个输入信号得到N+1个信号数据,N为FIR滤波器的最大阶数;
从SRAM中依次读出一个输入信号所对应的N+1个信号数据,并在每读出一个信号数据时更新一次读标识;
根据读标识获取当前信号数据所对应的滤波器系数;
将当前信号数据和获取到的滤波器系数进行乘法运算,得到当前信号数据的乘法运算结果;
将一个输入信号所对应的N+1个信号数据所得到的乘法运算结果进行累加,得到加法运算结果;
输出加法运算结果。
一种滤波装置,包括:
第一获取单元,用于获取输入信号;
储存单元,用于将第一获取单元获取到的输入信号储存在FIR滤波器的存储器SRAM中,使得每一个输入信号得到N+1个信号数据,N为FIR滤波器的最大阶数;
读取单元,用于从SRAM中依次读出一个输入信号所对应的N+1个信号数据,并在每读出一个信号数据时更新一次读标识;
第二获取单元,用于根据读取单元更新的读标识获取当前信号数据所对应的滤波器系数;
乘法运算单元,用于将读取单元读取到的当前信号数据和第二获取单元获取到的滤波器系数进行乘法运算,得到当前信号数据的乘法运算结果;
加法运算单元,用于将一个输入信号所对应的N+1个信号数据通过乘法运算单元得到的乘法运算结果进行累加,得到加法运算结果;
输出单元,用于输出加法运算单元得到的加法运算结果。
一种滤波系统,包括:上述任一种滤波装置。
一种FIR滤波器,包括:
SRAM,用于获取输入信号,并将输入信号储存,使得每一个输入信号得到N+1个信号数据,N为FIR滤波器的最大阶数,并依次读出一个输入信号所对应的N+1个信号数据,在每读出一个信号数据时更新一次读标识;
MUX,用于根据SRAM更新的读标识输出与SRAM读出的当前信号数据所对应的滤波器系数;
乘法器,用于将SRAM读出的当前信号数据和MUX输出的滤波器系数进行乘法运算,得到当前信号数据的乘法运算结果;
加法器,用于将一个输入信号所对应的N+1个信号数据通过乘法器得到的乘法运算结果进行累加,得到加法运算结果,并输出加法运算结果。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例采用先获取输入信号,将获取到的输入信号储存在FIR滤波器的SRAM中,使得每一个输入信号得到N+1个信号数据,N为FIR滤波器的最大阶数,然后从SRAM中依次读出一个输入信号所对应的N+1个信号数据,并在每读出一个信号数据时更新一次读标识,然后根据该读标识获取当前信号数据所对应的滤波器系数,将当前信号数据和获取到的滤波器系数进行乘法运算,得到当前信号数据的乘法运算结果,再将一个输入信号所对应的N+1个信号数据所得到的乘法运算结果进行累加,得到加法运算结果并输出。本实施例由于将获取的输入信号储存在密度很高的SRAM中,并可以从SRAM中依次读出一个输入信号所对应的N+1个信号数据,并在每读出一个信号数据时更新一次读标识来获取当前信号数据所对应的滤波器系数,可以避免缓存导致的滤波效率低,可以高效、实时地滤波;本实施例中将当前信号数据和获取到的滤波器系数进行乘法运算,再将一个输入信号所对应的N+1个信号数据所得到的乘法运算结果进行累加,是通过分时复用一个加法器和一个乘法器进行滤波处理,可以节约资源,降低功耗。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中FIR滤波器的实现结构示意图;
图2是本发明实施例中FIR滤波器的处理方法的流程图;
图3是本发明实施例中滤波装置的一个示意图;
图4是本发明实施例中滤波装置的另一个示意图;
图5是本发明实施例中FIR滤波器的一个示意图;
图6是本发明实施例中FIR滤波器的另一个示意图;
图7是本发明实施例中FIR滤波器的实现结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种FIR滤波器的处理方法,用于高效、实时地滤波,还可以节约资源,降低功耗。本发明实施例还提供相应的滤波装置,以及滤波系统。以下分别详细说明。
实施例一
本实施例将从滤波装置的角度进行描述,其中,该滤波装置可以是一个N阶,输入信号为M比特,滤波器系数bi的量化精度为X比特的FIR滤波器(以下简称FIR滤波器)。需说明的是,本实施例中的FIR滤波器的传递函数可表示为:
其中,bi为滤波器系数,N为FIR滤波器的阶数,z-i为输入的信号数据。
一种FIR滤波器的处理方法,包括:
先获取输入信号,将获取到的输入信号储存在FIR滤波器的储存器(SRAM,StaticRandomAccessMemory)中,使得每一个输入信号得到N+1个信号数据,N为FIR滤波器的最大阶数,然后从SRAM中依次读出一个输入信号所对应的N+1个信号数据,并在每读出一个信号数据时更新一次读标识,然后根据该读标识获取当前信号数据所对应的滤波器系数,将当前信号数据和获取到的滤波器系数进行乘法运算,得到当前信号数据的乘法运算结果,再将一个输入信号所对应的N+1个信号数据所得到的乘法运算结果进行累加,得到加法运算结果并输出。
如图2所示,具体流程可以如下:
101、获取输入信号;
其中,本实施例中的滤波装置一般有两个端口,一个端口用于获取输入信号,一个端口用于输出信号。
其中,对于一个N阶FIR滤波器,一个输入信号包括N+1个信号数据。例如,对于一个3阶FIR滤波器,一个输入信号包括4个信号数据。
102、将步骤101中获取到的输入信号储存在FIR滤波器的存储器SRAM中,使得每一个输入信号得到N+1个信号数据;例如,具体可以如下:
可选的,将输入信号储存在FIR滤波器的存储器SRAM中,具体可以通过以下步骤实现:当步骤101中获取到的输入信号有效时,获取该输入信号的写地址,然后根据该输入信号的写地址将输入信号写入SRAM中。
由此,每一个输入信号可以得到N+1个信号数据,其中,N为FIR滤波器的最大阶数。例如,一个3阶FIR滤波器,每一输入信号包括有4个信号数据。
需说明的是,下一个有效输入信号的写地址为前一个输入信号的写地址加1,以此类推,从而将所有输入信号依次写入SRAM中。同理,每一个输入信号都可以得到N+1个信号数据。
其中,SRAM是静态随机存储器,该SRAM是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据,密度高,速度快,性能好。相比现有技术,本实施例中的信号数据储存在SRAM中,避免了使用寄存器进行缓存导致的滤波效率低等问题。
应当理解的是,对于一个N阶,输入信号为M比特,滤波器系数bi的量化精度为X比特的FIR滤波器,FIR滤波器的SRAM的尺寸为(N+1)×M。
103、从SRAM中依次读出一个输入信号所对应的N+1个信号数据,并在每读出一个信号数据时更新一次读标识;例如,具体可以如下:
首先,确定当前需要读取的输入信号,并获得当前需要读取的输入信号的读地址。
其中,假设获取到10个输入信号时,需要将这10个输入信号依次进行滤波并输出。例如,当前需要读取的输入信号为第二个,首先确定当前需要读取的输入信号,首先确定当前需要读取的输入信号,并获得当前需要读取的输入信号的读地址。
优选的,获得当前需要读取的输入信号的读地址,具体可以根据输入信号的写地址给当前需要读取的输入信号赋值,得到当前需要读取的输入信号的读地址。其中,由步骤102可知,每当一个输入信号有效时,可以得到N+1个信号数据,这N+1个信号数据储存在SRAM的某个地址中,其中,该输入信号的储存地址即是该信号数据的写地址。
然后,可以根据输入信号的读地址从SRAM中依次读出当前需要读取的输入信号所对应的N+1个信号数据,并启动用于指示读标识的计数器。
其中,获得当前需要读取的输入信号的读地址后,便可以根据其读地址将当前需要读取的输入信号对应的N+1个信号数据依次读出来,并以此将所有需要读取的输入信号对应的每一个信号数据读出。
与此同时,可以启动一个用于指示读标识的计数器,该计数器用于对读出的信号数据进行计数,每读出一个信号数据时,该计数器加1,直到N+1个信号数据读出。
优选的,可以启动一个0至N的计数器对读出的信号数据进行计数。当N+1个信号数据读出后,可以将计数器复位为0。
其中,读标识可以反映当前信号数据所对应的FIR滤波器的阶数,因此,根据读标识可以确定当前信号数据所对应的FIR滤波器的阶数。应当理解的是,不同的FIR滤波器的阶数对应不同的信号数据,FIR滤波器的阶数与信号数据的对应关系可通过读标识反映。
例如,对于一个3阶FIR滤波器,该FIR滤波器的一个输入信号有效时包括4个信号数据,分别可以为Z-0、Z-1、Z-2和Z-3。其中,读出的第一个信号数据是Z-0,需说明的是,该Z-0为当前输入信号数据,此时计数器为0;当输入信号经过FIR滤波器的第1阶时,读出第二个信号数据是Z-1,此时更新读标识为1;当输入信号经过FIR滤波器的第2阶时,读出第三个信号数据是Z-2,此时计数器为1,并更新读标识为2;当输入信号经过FIR滤波器的第3阶时,读出第四个信号数据是Z-3,此时计数器为2,并更新读标识为3。对于其他阶数的FIR滤波器,以此类推,此处不再赘述。
104、根据读标识获取当前信号数据所对应的滤波器系数;
可选的,首先可以将滤波器系数储存在多路复用器(MUX,multiplexer)中。应当理解的是,MUX可以根据需要将输入其中的数据依次输出,方便传输。
应当理解的是,FIR滤波器的阶数对应滤波器系数,对于一个N阶FIR滤波器,其滤波器系数有N+1个。例如,对于一个3阶FIR滤波器,滤波器系数有4个,分别可以为b0、b1、b2和b3。
其中,读标识可以反映当前信号数据所对应的FIR滤波器的阶数。因此,根据读标识可以确定当前信号数据所对应的FIR滤波器的阶数,然后可以根据确定的FIR滤波器的阶数获取当前信号数据所对应的滤波器系数。而计数器可以指示读标识。例如,读出第一个信号数据是Z-0时,计数器为0,对应的读标识可以是0,对应FIR滤波器的0阶,此时滤波器系数为b0,需说明的是,该Z-0为当前输入信号数据;读出第二个信号数据是Z-1时,计数器为1时,对应的读标识可以是1,对应FIR滤波器的1阶,此时滤波器系数为b1,以此类推,此处不再赘述。应当理解的是,读标识与FIR滤波器的阶数还可以是其他方式的对应,此处不一一举例。
可选的,也可以通过对应关系表根据读标识从MUX中获取相应的滤波器系数。其中,该对应关系表通过读标识将信号数据、FIR滤波器的阶数和滤波器系数一一对应起来,则每读出一个信号数据,可根据对应关系表,获得相应的滤波器系数。
105、将步骤103中读出的当前信号数据和步骤104中获取到的滤波器系数进行乘法运算,得到当前信号数据的乘法运算结果;
其中,由前可知,当一个输入信号有效时,可以读出N+1个信号数据,可选的,每读出一个信号数据,可以先将该读出的信号数据输入FIR滤波器的乘法器中。并且由于每读出一个信号数据会更新一次读标识,可通过更新读标识获取当前读出的信号数据所对应的滤波器系数,然后将获取到的与当前读取的信号数据对应的滤波器系数输入FIR滤波器的乘法器中,与已经输入到乘法器中的信号数据进行乘法运算。例如,当读出信号数据Z-1时,首先将Z-1输入乘法器中,并启动一个计数器,此时该计数器为1,并更新读标识为1,可通过读标识1获得相应的滤波器系数为b1,并将b1输入到乘法器中进行乘法运算,得到乘法运算结果为Z-1×b1,最后将该乘法运算结果Z-1×b1输入加法器中;当读出信号数据Z-2时,首先将Z-2输入到乘法器中,此时计数器为2,并更新读标识为2,可通过读标识21获得相应的滤波器系数为b2,并将b2输入到乘法器中进行乘法运算,得到乘法运算结果为Z-2×b2,最后将该乘法运算结果Z-2×b2输入加法器中,以此类推,直到N+1个信号数据输入到乘法器中并完成乘法运算。
需说明的是,本实施例中的一个输入信号包括N+1个信号数据,对应有N+1个滤波器系数,需要执行N+1次乘法运算。
其中,由于滤波器系数bi为小数,并且有:
可选的,一般将滤波器系数乘以增益2M,以将滤波器系数化为整数,以方便逻辑运算,然后在最终的输出结果中除以增益2M,以保证FIR滤波器的中心频点增益为0dB。
106、对步骤105中一个输入信号所对应的N+1个信号数据所得到的乘法运算结果进行累加,得到加法运算结果;
本实施例通过串行的进行乘法运算和加法运算来进行滤波。其中,一个输入信号对应N+1个信号数据,可根据步骤105依次得到乘法运算结果,并将乘法运算结果依次输入FIR滤波器的加法器中进行累加。这种先通过一个乘法器进行乘法运算,再通过一个加法器将乘法运算的结果进行累加的方法称为分时复用加法器和乘法器的滤波方法,通过分时复用一个加法器和一个乘法器来实现滤波,可以降低功耗,提高滤波效率。
例如,先将得到的第一个信号数据的乘法运算结果输入加法器中,当得到下一个信号数据的乘法运算结果时,再将下一个信号数据的乘法运算结果输入加法器中与前一次的乘法运算结果进行累加,直到将一个输入信号的N+1个信号数据输出。
例如,可根据步骤105得到一个输入信号对应的N+1个信号数据的乘法运算结果,得到的乘法运算结果依次是:b0×Z-0、Z-1×b1、Z-2×b2……Z-N×bN,并将该乘法运算结果依次输入加法器中进行累加,得到累加结果为:b0×Z-0+Z-1×b1+Z-2×b2+……+Z-N×bN。
需说明的是,本实施例中的一个输入信号包括N+1个信号数据,对应有N+1个滤波器系数,需要执行N+1次乘法运算,并需要执行N+1次加法运算。
107、输出步骤106中的加法运算结果。
其中,本实施例中的滤波装置的输出信号为步骤106中的加法运算结果,即为:b0×Z-0+Z-1×b1+Z-2×b2+……+Z-N×bN。
可选的,如果在步骤104、根据读标识获取当前信号数据所对应的滤波器系数的步骤之后将滤波器系数乘以增益2M,使得滤波器系数化为整数,则步骤107具体为:
将步骤106中的加法运算结果输入FIR滤波器的除法器中除以增益2M,使FIR滤波器中心频点增益为0dB,然后输出除法运算的商。
其中,如果该除法运算不是整除,则将该除法运算的余数输入加法器中,使该余数与下一次输入加法器中的乘法运算结果进行累加。
由上可知,本发明采用先获取输入信号,将输入信号储存在FIR滤波器的SRAM中,使得每一个输入信号得到N+1个信号数据,N为FIR滤波器的最大阶数,然后从SRAM中依次读出一个输入信号所对应的N+1个信号数据,并在每读出一个信号数据时更新一次读标识,然后根据该读标识获取当前信号数据所对应的滤波器系数,将当前信号数据和获取到的滤波器系数进行乘法运算,得到当前信号数据的乘法运算结果,再将一个输入信号所对应的N+1个信号数据所得到的乘法运算结果进行累加,得到加法运算结果并输出。本实施例由于将输入信号储存在密度很高的SRAM中并可以依次读出每个输入信号所对应的信号数据,可以避免缓存导致的滤波效率低,可以高效、实时地滤波,并且本实施例可以根据读标识获取当前信号数据所对应的滤波器系数,由此可以通过分时复用一个加法器和一个乘法器进行滤波处理,可以节约资源,降低功耗。
实施例二
为了更好的实施以上方法,本发明实施例还提供了相应的滤波装置,作为本发明实施例中实现该方法的装置,该滤波装置具体可以包括第一获取单元201、储存单元202、读取单元203、第二获取单元204、乘法运算单元205、加法运算单元206和输出单元207。请参阅图3:
第一获取单元201,用于获取输入信号。其中,本实施例中的滤波装置一般有两个端口,一个端口用于获取输入信号,一个端口用于输出信号,因此,可由该滤波装置的一个端口来获取输入信号。
储存单元202,用于将第一获取单元201获取到的输入信号储存在FIR滤波器的存储器SRAM中,使得每一个输入信号得到N+1个信号数据,N为FIR滤波器的最大阶数。
其中,储存单元202,具体用于当输入信号有效时,获取单元获取到的输入信号的写地址,并根据输入信号的写地址将输入信号写入SRAM中。
读取单元203,用于从SRAM中依次读出一个输入信号所对应的N+1个信号数据,并在每读出一个信号数据时更新一次读标识;
其中,读取单元203,具体用于确定当前需要读取的输入信号,并获得当前需要读取的输入信号的读地址,并根据输入信号的读地址从SRAM中依次读出当前需要读取的输入信号所对应的N+1个信号数据。
第二获取单元204,用于根据读取单元203更新的读标识获取当前信号数据所对应的滤波器系数。
其中,第二获取单元204,具体用于根据读标识确定当前信号数据所对应的FIR滤波器的阶数,根据确定的FIR滤波器的阶数获取当前信号数据所对应的滤波器系数。
乘法运算单元205,用于将读取单元203读取到的当前信号数据和第二获取单元204获取到的滤波器系数进行乘法运算,得到当前信号数据的乘法运算结果。
加法运算单元206,用于将一个输入信号所对应的N+1个信号数据通过乘法运算单元得到的所有乘法运算结果进行累加,得到加法运算结果。
输出单元207,用于输出加法运算单元206得到的加法运算结果。其中,可由该滤波装置的一个端口来输出加法运算结果。
本实施例中先通过乘法运算单元205进行乘法运算,再通过加法运算单元206将乘法运算的结果进行累加的来获得输出结果,即通过分时复用乘法运算单元205和加法运算单元206,可以降低功耗,提高滤波效率。
优选的,为了更好的实现本实施例中滤波装置的功能,本实施例中的滤波装置,还包括:计数单元208和复位单元209。具体可参阅图4:
其中,计数单元208,用于指示读标识,当读取单元203每读取一个信号数据时,计数单元208加1。
复位单元209,用于当输出单元207输出加法运算结果之后将计数单元208复位为0。
除此之外,乘法运算单元205,还用于将滤波器系数乘以增益2M,使得滤波器系数化为整数;则滤波装置,还包括:除法运算单元210。除法运算单元210,用于将加法运算结果除以增益2M,得到除法运算的商和余数,并将除法运算的余数输入FIR滤波器的加法器中与下一个输入信号的乘法运算结果进行累加。
需说明的是,具体实施可参阅实施例一,此处不再赘述。
由上可知,本发明采用第一获取单元201先获取输入信号,并由储存单元202将第一获取单元201获取到的输入信号储存在FIR滤波器的存储器SRAM中,使得每一个输入信号得到N+1个信号数据,然后由读取单元203从SRAM中依次读出一个输入信号所对应的N+1个信号数据,并在每读出一个信号数据时更新一次读标识,再由第二获取单元204根据读取单元203更新的读标识获取当前信号数据所对应的滤波器系数,然后将读取单元203读取到的当前信号数据和第二获取单元204获取到的滤波器系数分别输入乘法运算单元205中进行乘法运算,并将乘法运算的结果输入加法运算单元206中进行累加,最后由输出单元207输入累加结果。本实施例中由于储存单元202可以将输入信号储存在密度很高的SRAM中并可以由读取单元203依次读出每个输入信号所对应的信号数据,可以避免缓存导致的滤波效率低,可以高效、实时地滤波,并且本实施例可以根据读标识由第二获取单元204获取当前信号数据所对应的滤波器系数,由此可以通过分时复用一个加法运算单元和一个乘法运算单元进行滤波处理,可以节约资源,降低功耗。
实施例三
相应的,本发明实施例还提供了一种滤波系统,其中,该滤波系统包括滤波装置。
其中,该滤波装置用于获取输入信号,将输入信号储存在FIR滤波器的SRAM中,使得每一个输入信号得到N+1个信号数据,N为FIR滤波器的最大阶数,从SRAM中依次读出一个输入信号所对应的N+1个信号数据,并在每读出一个信号数据时更新一次读标识,根据该读标识获取当前信号数据所对应的滤波器系数,将当前信号数据和获取到的滤波器系数进行乘法运算,得到当前信号数据的乘法运算结果,将一个输入信号所对应的N+1个信号数据所得到的乘法运算结果进行累加,得到加法运算结果并输出。
需说明的是,本实施例的滤波装置可以是实施例二中的任一种滤波装置,具体实施可参见前述实施例二,本实施例不再赘述。
实施例四
本实施例还提供了一种FIR滤波器,该FIR滤波器具体可以包括SRAM401、MUX402、乘法器403和加法器404。具体可请参阅图5:
SRAM401,用于获取输入信号,并将输入信号储存,使得每一个输入信号得到N+1个信号数据,N为FIR滤波器的最大阶数,并依次读出一个输入信号所对应的N+1个信号数据,在每读出一个信号数据时更新一次读标识。
其中,SRAM401,具体用于当输入信号有效时,获取输入信号的写地址,并根据输入信号的写地址写入输入信号,确定当前需要读取的输入信号,并获得当前需要读取的输入信号的读地址,根据输入信号的读地址依次读出当前需要读取的输入信号所对应的N+1个信号数据。
MUX402,用于根据SRAM更新的读标识输出与SRAM读出的当前信号数据所对应的滤波器系数。
其中,MUX402,具体用于根据SRAM更新的读标识确定当前信号数据所对应的FIR滤波器的阶数,根据确定的FIR滤波器的阶数输出当前信号数据所对应的滤波器系数。
乘法器403,用于将SRAM读出的当前信号数据和MUX输出的滤波器系数进行乘法运算,得到当前信号数据的乘法运算结果。其中,该乘法器403即为滤波装置中的乘法运算单元。
加法器404,用于将一个输入信号所对应的N+1个信号数据通过乘法器得到的乘法运算结果进行累加,得到加法运算结果,并输出加法运算结果。其中,该加法器404即为滤波装置中的加法运算单元。
其中,本实施例中先通过乘法器403进行乘法运算,再通过加法器404将乘法运算的结果进行累加的来获得输出结果,即通过分时复用乘法器403和加法器404,可以降低功耗,提高滤波效率。
为了更好的实现本实施例中FIR滤波器的功能,本实施例中的FIR滤波器,还包括:计数器405和复位器406,具体可请参阅图6:
计数器405,用于指示读标识,当SRAM每读出一个信号数据时,计数器加1;其中,计数器405可以从0至N计数,其中,N为FIR滤波器的阶数。其中,该计数器405即为滤波装置中的计数单元。
复位器406,用于当加法器输出加法运算结果之后将计数器复位为0。其中,该复位器406即为滤波装置中的复位单元。
除此之外,乘法器403,还用于将滤波器系数乘以增益2M,使得滤波器系数化为整数。与此同时,本实施例中的FIR滤波器还包括:除法器407。除法器407,用于将加法运算结果除以增益2M,得到除法运算的商和余数,将除法运算的余数输入加法器中与下一个输入信号的乘法运算结果进行累加,并输出除法运算的商。其中,该除法器407即为滤波装置中的除法运算单元。
由上可知,本发明由于SRAM401可以获取输入信号,并将获取到的输入信号储存,并可以依次读出每个输入信号所对应的N+1个信号数据,可以避免缓存导致的滤波效率低,可以高效、实时地滤波,降低功耗,并且本实施例中的MUX402可以根据SRAM401更新的读标识输出与SRAM读出的当前信号数据所对应的滤波器系数,由此可以通过分时复用一个加法器403和一个乘法器404进行滤波处理,可以节约资源。
实施例五
下面以一个具体应用例对本发明实施例进行详细描述,请参阅图7,图7是本发明实施例中FIR滤波器的实现结构示意图:
其中,本发明实施例的FIR滤波器可以是一个N阶,输入信号为M比特,滤波器系数bi的量化精度为X比特的FIR滤波器(以下简称FIR滤波器)。
其中,本实施例完成一次乘法运算或加法运算需要Min(M,X)个系统时钟周期,由当输入信号有效一次,可以读出N+1个信号数据可知,FIR滤波器输入数据间隔需要大于(N+1)Min(M,X)个系统时钟周期。
其中,请参阅图7,data_in为输入信号,din_vld为有效的输入信号,wr_cnt为写操作计数器,rd_cnt为读操作计数器,wr_addr为写地址,rd_addr为读地址,divider为除法器,data_out为输出信号,gain为FIR滤波器的增益。
下面以输入信号data_in中的其中一个有效输入信号din_vld为例进行说明:
首先,由SRAM获取输入信号,其中,din_vld是当din_in有效时的一个输入信号,SRAM获取到din_vld,并将din_vld储存;具体的,SRAM可以先获得din_vld的写地址wr_addr,然后根据wr_addr将din_vld写入SRAM中。由此可以获得din_vld的N+1个信号数据,以及这N+1个信号数据的wr_addr,然后可以通过将din_vld的wr_addr赋值给rd_addr以获得din_vld的rd_addr,然后根据din_vld的rd_addr依次读出这N+1个信号数据。其中,这N+1个信号数据分别为:Z-0、Z-1、Z-2、Z-3……Z-N。
其次,根据din_vld的rd_addr依次读出din_vld的N+1个信号数据。其中,在读出信号数据时,可以启动一个0至N的用于指示读标识的计数器rd_cnt,对读出的信号数据进行计数,每读出一个信号数据,更新一次读标识,并将rd_cnt加1,直到N+1个信号数据读出。
然后,可根据读标识获得din_vld的N+1个信号数据所对应的滤波器系数。其中,读标识可以反映当前信号数据所对应的FIR滤波器的阶数,因此可以根据确定的FIR滤波器的阶数获取当前信号数据所对应的滤波器系数,而用于对读出的信号数据进行计数的rd_cnt可以指示读标识。因此,依次读出的信号数据:1、Z-1、Z-2、Z-3……Z-N分别对应的滤波器系数为:b0、b1、b2、b3……bN。每读出一个信号数据,将该读出的信号数据输入乘法器中与对应的滤波器系数进行乘法运算,依次得到乘法运算结果为:b0×Z-0、Z-1×b1、Z-2×b2……Z-N×bN。
然后,每得到一个乘法运算结果,将该结果输入加法器中进行累加,因此,得到累加结果为:b0×Z-0+Z-1×b1+Z-2×b2+……+Z-N×bN。
最后,将该累加结果作为输出信号data_out输出。
需说明的是,乘法器和加法器可分时复用,即每得到一个乘法运算结果,会进行一次加法运算,并且,乘法运算与加法运算可以同时进行,可以节约资源,减低功耗,提高滤波效率。
需说明的是,当增益时,最后除以增益gain,将增益为0dB的信号输出。
需说明的是,由于滤波器系数bi为小数,一般将bi乘以增益gain,以将bi化为整数,则在得到累加结果之后,将该累加结果除以增益gain,以保证FIR滤波器增益为0dB,最后输出结构为除法运算的商。需说明的是,当如果该除法运算不是整除,则将该除法运算的余数输入加法器中,使该余数与下一个输入信号中的乘法运算结果进行累加。
同理,当下一个输入信号输入时,先获取该输入信号并将其储存在SRAM中,然后从SRAM中依次读出该输入信号对应的N+1个信号数据,并在每读出一个信号数据时更新一次读标识,通过读标识获取当前需要读取的信号数据对应的滤波器系数,然后将当前读出的信号数据和与其对应的滤波器系数进行乘法运算,并将乘法运算结果进行累加,得到累加结果并输出,直到将所有需要滤波的输入信号输出。
需说明的是,具体实施可参见上述实施例,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种FIR滤波器的处理方法、装置和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (17)
1.一种FIR滤波器的处理方法,其特征在于,包括:
获取输入信号;
将所述输入信号储存在所述FIR滤波器的存储器SRAM中,使得每一个输入信号得到N+1个信号数据,N为所述FIR滤波器的最大阶数;
从SRAM中依次读出一个输入信号所对应的N+1个信号数据,并在每读出一个信号数据时更新一次读标识,所述读标识用于确定当前信号数据所对应的FIR滤波器的阶数;
根据所述读标识获取当前信号数据所对应的滤波器系数;
将所述当前信号数据和获取到的滤波器系数进行乘法运算,得到当前信号数据的乘法运算结果;
将一个输入信号所对应的N+1个信号数据所得到的乘法运算结果进行累加,得到加法运算结果;
输出所述加法运算结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述输入信号储存在所述FIR滤波器的存储器SRAM中,包括:
当所述输入信号有效时,获取所述输入信号的写地址;
根据所述输入信号的写地址将所述输入信号写入所述SRAM中。
3.根据权利要求2所述的方法,其特征在于,所述从SRAM中依次读出一个输入信号所对应的N+1个信号数据,并在每读出一个信号数据时更新一次读标识,包括:
确定当前需要读取的输入信号,并获得所述当前需要读取的输入信号的读地址;
根据所述输入信号的读地址从所述SRAM中依次读出所述当前需要读取的输入信号所对应的N+1个信号数据,并启动用于指示读标识的计数器;
每读出一个信号数据时,将所述计数器加1。
4.根据权利要求3所述的方法,其特征在于,所述获得所述当前需要读取的输入信号的读地址,包括:
根据所述输入信号的写地址给所述当前需要读取的输入信号赋值,得到所述当前需要读取的输入信号的读地址。
5.根据权利要求3或4所述的方法,其特征在于,所述输出所述加法运算结果之后,还包括:
将所述计数器复位为0。
6.根据权利要求1至4中任一项所述的方法,其特征在于,
所述读标识反映当前信号数据所对应的FIR滤波器的阶数,则所述根据所述读标识获取当前信号数据所对应的滤波器系数,包括:
根据所述读标识确定当前信号数据所对应的FIR滤波器的阶数;
根据确定的FIR滤波器的阶数获取当前信号数据所对应的滤波器系数。
7.根据权利要求1至4中任一项所述的方法,其特征在于,所述将所述当前信号数据和获取到的滤波器系数进行乘法运算的步骤之前,还包括:
将所述滤波器系数乘以增益2M,使得所述滤波器系数化为整数,根据所述滤波器所需的增益确定所述M。
8.根据权利要求7所述的方法,其特征在于,所述输出所述加法运算结果,包括:
将所述加法运算结果除以增益2M,得到除法运算的商和余数,其中,将所述除法运算的余数输入所述FIR滤波器的加法器中与下一个输入信号的信号数据的乘法运算结果进行累加;
输出所述除法运算的商。
9.一种滤波装置,其特征在于,包括:
第一获取单元,用于获取输入信号;
储存单元,用于将所述第一获取单元获取到的输入信号储存在FIR滤波器的存储器SRAM中,使得每一个输入信号得到N+1个信号数据,N为所述FIR滤波器的最大阶数;
读取单元,用于从SRAM中依次读出一个输入信号所对应的N+1个信号数据,并在每读出一个信号数据时更新一次读标识,所述读标识用于确定当前信号数据所对应的FIR滤波器的阶数;
第二获取单元,用于根据所述读取单元更新的读标识获取当前信号数据所对应的滤波器系数;
乘法运算单元,用于将所述读取单元读取到的当前信号数据和所述第二获取单元获取到的滤波器系数进行乘法运算,得到当前信号数据的乘法运算结果;
加法运算单元,用于将一个输入信号所对应的N+1个信号数据通过所述乘法运算单元得到的乘法运算结果进行累加,得到加法运算结果;
输出单元,用于输出所述加法运算单元得到的加法运算结果。
10.根据权利要求9所述的滤波装置,其特征在于,
所述储存单元,用于当输入信号有效时,获取所述获取单元获取到的输入信号的写地址,并根据所述输入信号的写地址将所述输入信号写入SRAM中;
所述读取单元,用于确定当前需要读取的输入信号,并获得所述当前需要读取的输入信号的读地址,并根据所述输入信号的读地址从SRAM中依次读出所述当前需要读取的输入信号所对应的N+1个信号数据;
所述第二获取单元,用于根据所述读标识确定当前信号数据所对应的FIR滤波器的阶数,根据确定的FIR滤波器的阶数获取当前信号数据所对应的滤波器系数。
11.根据权利要求9或10所述的滤波装置,其特征在于,还包括:
计数单元,用于指示读标识,当读取单元每读取一个信号数据时,所述计数单元加1;
复位单元,用于当输出单元输出加法运算结果之后将所述计数单元复位为0。
12.根据权利要求9或10所述的滤波装置,其特征在于,
所述乘法运算单元,还用于将所述滤波器系数乘以增益2M,使得所述滤波器系数化为整数,根据所述滤波器所需的增益确定所述M;则所述滤波装置,还包括:
除法运算单元,用于将所述加法运算结果除以增益2M,得到除法运算的商和余数,并将所述除法运算的余数输入所述加法运算单元中与下一个输入信号的乘法运算结果进行累加。
13.一种滤波系统,其特征在于,包括:
如权利要求9至12中任一项所述的滤波装置。
14.一种FIR滤波器,其特征在于,包括:
SRAM,用于获取输入信号,并将所述输入信号储存,使得每一个输入信号得到N+1个信号数据,所述N为所述FIR滤波器的最大阶数,并依次读出一个输入信号所对应的N+1个信号数据,在每读出一个信号数据时更新一次读标识,所述读标识用于确定当前信号数据所对应的FIR滤波器的阶数;
MUX,用于根据所述SRAM更新的读标识输出与所述SRAM读出的当前信号数据所对应的滤波器系数;
乘法器,用于将所述SRAM读出的当前信号数据和所述MUX输出的滤波器系数进行乘法运算,得到当前信号数据的乘法运算结果;
加法器,用于将一个输入信号所对应的N+1个信号数据通过所述乘法器得到的乘法运算结果进行累加,得到加法运算结果,并输出所述加法运算结果。
15.根据权利要求14所述的FIR滤波器,其特征在于,
所述SRAM,用于当输入信号有效时,获取输入信号的写地址,并根据所述输入信号的写地址写入所述输入信号,确定当前需要读取的输入信号,并获得所述当前需要读取的输入信号的读地址,根据所述输入信号的读地址依次读出所述当前需要读取的输入信号所对应的N+1个信号数据;
所述MUX,用于根据所述SRAM更新的读标识确定当前信号数据所对应的FIR滤波器的阶数,根据确定的FIR滤波器的阶数输出当前信号数据所对应的滤波器系数。
16.根据权利要求14或15所述的FIR滤波器,其特征在于,还包括:
计数器,用于指示读标识,当所述SRAM每读出一个信号数据时,所述计数器加1;
复位器,用于当所述加法器输出加法运算结果之后将所述计数器复位为0。
17.根据权利要求14或15所述的FIR滤波器,其特征在于,
所述乘法器,还用于将所述滤波器系数乘以增益2M,使得所述滤波器系数化为整数,根据所述滤波器所需的增益确定所述M;则所述FIR滤波器,还包括:
除法器,用于将所述加法运算结果除以增益2M,得到除法运算的商和余数,将所述除法运算的余数输入所述加法器中与下一个输入信号的乘法运算结果进行累加,并输出除法运算的商。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210184133.XA CN102739195B (zh) | 2012-06-06 | 2012-06-06 | 一种fir滤波器的处理方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210184133.XA CN102739195B (zh) | 2012-06-06 | 2012-06-06 | 一种fir滤波器的处理方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102739195A CN102739195A (zh) | 2012-10-17 |
CN102739195B true CN102739195B (zh) | 2015-12-09 |
Family
ID=46994101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210184133.XA Expired - Fee Related CN102739195B (zh) | 2012-06-06 | 2012-06-06 | 一种fir滤波器的处理方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102739195B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106301285A (zh) * | 2016-08-03 | 2017-01-04 | 深圳大学 | 基于重定时的固定系数有限冲击响应滤波器结构 |
JP6724828B2 (ja) * | 2017-03-15 | 2020-07-15 | カシオ計算機株式会社 | フィルタ演算処理装置、フィルタ演算方法、及び効果付与装置 |
CN108627575B (zh) * | 2017-03-23 | 2021-06-22 | 深圳开立生物医疗科技股份有限公司 | 分数倍抽选滤波方法和分数倍抽选滤波装置 |
CN107592093A (zh) * | 2017-08-18 | 2018-01-16 | 深圳大学 | 一种fir数字滤波器电路 |
CN108900177B (zh) * | 2018-06-14 | 2022-08-02 | 福建星海通信科技有限公司 | 一种fir滤波器对数据进行滤波的方法 |
CN112334915B (zh) * | 2018-06-25 | 2024-11-12 | 奥林巴斯株式会社 | 运算处理装置 |
CN109194307B (zh) * | 2018-08-01 | 2022-05-27 | 南京中感微电子有限公司 | 数据处理方法及系统 |
CN110808935B (zh) * | 2019-10-31 | 2022-03-25 | 中国电子科技集团公司第二十九研究所 | 线性调频信号自相关运算的精确高效实现方法及装置 |
CN115102524B (zh) * | 2022-07-07 | 2023-08-08 | 武汉市聚芯微电子有限责任公司 | 一种滤波器 |
CN117991243B (zh) * | 2024-04-03 | 2024-07-02 | 海底鹰深海科技股份有限公司 | 一种基于fpga的声纳信号匹配滤波处理方法及其系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1862961A (zh) * | 2006-03-20 | 2006-11-15 | 华为技术有限公司 | 一种有限脉冲响应fir滤波器 |
CN102035502A (zh) * | 2009-09-28 | 2011-04-27 | 联芯科技有限公司 | 一种fir滤波器的实现结构 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2427093A (en) * | 2004-02-17 | 2006-12-13 | Neuro Solution Corp | Digital filter design method and device, digital filter design program, and digital filter |
-
2012
- 2012-06-06 CN CN201210184133.XA patent/CN102739195B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1862961A (zh) * | 2006-03-20 | 2006-11-15 | 华为技术有限公司 | 一种有限脉冲响应fir滤波器 |
CN102035502A (zh) * | 2009-09-28 | 2011-04-27 | 联芯科技有限公司 | 一种fir滤波器的实现结构 |
Also Published As
Publication number | Publication date |
---|---|
CN102739195A (zh) | 2012-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102739195B (zh) | 一种fir滤波器的处理方法、装置和系统 | |
TWI731543B (zh) | 計算機資料處理方法及裝置 | |
CN102412808B (zh) | 一种基于fpga的高性能多路fir数字抽取滤波器及其读写方法 | |
CN103269212B (zh) | 低成本低功耗可编程多级fir滤波器实现方法 | |
CN101944364B (zh) | 音频处理方法及音频系统 | |
CN104579240B (zh) | 一种基于fpga的可配置系数的滤波器、电子设备及滤波方法 | |
CN102508631B (zh) | 用于写入任意字节数据的fifo的写入数据处理装置 | |
CN103956991B (zh) | 一种基于cpu/gpu异构平台的fir滤波并行实现方法 | |
CN102279728B (zh) | 数据存储设备及数据计算方法 | |
CN203617974U (zh) | 一种基于fpga的可配置系数的滤波器及电子设备 | |
CN105720944A (zh) | 通用fir滤波器及其配置方法 | |
CN106796505A (zh) | 指令执行的方法及处理器 | |
CN110968538B (zh) | 一种数据缓冲方法和装置 | |
CN103488597A (zh) | 一种先进先出缓存器及其读写数据的方法 | |
CN109558073A (zh) | 一种基于教育系统的磁盘延长寿命的方法及电子设备 | |
CN109635929B (zh) | 基于fpga的卷积实现方法及卷积器 | |
CN114995770A (zh) | 一种数据处理方法、装置、设备、系统及可读存储介质 | |
CN104734668B (zh) | 一种插值滤波器 | |
CN103293373A (zh) | 电能计量装置及其电能计量芯片 | |
CN115102524B (zh) | 一种滤波器 | |
CN203241983U (zh) | 用于执行信号处理操作的装置 | |
CN107577438B (zh) | 现场可编程门阵列中闪存的存储空间的划分方法及装置 | |
CN108228480B (zh) | 一种数字滤波器及数据处理方法 | |
CN117194281B (zh) | 一种用于asic中不定长数据的非对称存取方法 | |
US9740428B1 (en) | Circular buffer descriptor for describing and/or accessing a circular buffer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151209 Termination date: 20180606 |
|
CF01 | Termination of patent right due to non-payment of annual fee |