CN110247642B - 一种fir滤波方法及滤波器 - Google Patents

一种fir滤波方法及滤波器 Download PDF

Info

Publication number
CN110247642B
CN110247642B CN201910511708.6A CN201910511708A CN110247642B CN 110247642 B CN110247642 B CN 110247642B CN 201910511708 A CN201910511708 A CN 201910511708A CN 110247642 B CN110247642 B CN 110247642B
Authority
CN
China
Prior art keywords
output
sub
tap coefficient
fir filter
sequence
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
CN201910511708.6A
Other languages
English (en)
Other versions
CN110247642A (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.)
Maxscend Microelectronics Co ltd
Original Assignee
Maxscend Microelectronics 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 Maxscend Microelectronics Co ltd filed Critical Maxscend Microelectronics Co ltd
Priority to CN201910511708.6A priority Critical patent/CN110247642B/zh
Publication of CN110247642A publication Critical patent/CN110247642A/zh
Application granted granted Critical
Publication of CN110247642B publication Critical patent/CN110247642B/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
    • 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

  • Filters That Use Time-Delay Elements (AREA)
  • Complex Calculations (AREA)

Abstract

本发明实施例公开了一种FIR滤波方法及滤波器,所述方法包括:将FIR滤波器的抽头系数划分为至少两个子抽头系数组;将输入数据用至少两个子抽头系数组的有限冲激响应序列进行滤波处理,滤波输出作为第一输出,其中,至少两个子抽头系数组按照倒序的方式排列;对第一输出进行并串转换,得到第二输出;对第二输出从基准样点序列开始,按照设定的样点间隔抽取设定数量的样点进行累加输出,将累加输出作为FIR滤波器的输出,其中,基准样点序列为第一抽头系数组的滤波输出样点序列。本发明实施例通过上述方法使得FIR滤波器的移位寄存器单元的数量得以大大减少,从而降低了硬件资源的使用数量。

Description

一种FIR滤波方法及滤波器
技术领域
本发明实施例涉及数字信号处理技术,尤其涉及一种FIR滤波方法及滤波器。
背景技术
数字滤波器有无限冲激响应IIR(Infinite Impulse Response)和有限冲激响应FIR(Finite Impulse Response)两种。有限冲激响应滤波器FIR,由于可以有严格的线性相位特性,在应用上极为常用。
在存在MCU的集成电路芯片(System-on-a-Chip,SoC)中,若完全用硬件实现,将相当占用硬件资源,尤其FIR滤波器中必不可少的移位寄存器单元存储部分,占有主要的面积分量。而硬件资源本身就是成本,对于消费电子器件而言,更多的硬件资源将会使得消费类器件的成本增加。若完全通过MCU由软件实现,则会由于复杂度太高,需要处理能力很强的MCU,而且会占用太多的MCU资源。
发明内容
本发明提供一种FIR滤波方法及滤波器,以实现在不损失滤波性能的前提下,通过对FIR滤波器的抽头系数进行合理划分,提供一种硬件资源占用少的FIR滤波器,以降低FIR滤波器的成本。
第一方面,本发明实施例提供了一种FIR滤波方法,包括:
将FIR滤波器的抽头系数划分为至少两个子抽头系数组;
将输入数据用所述至少两个子抽头系数组的有限冲激响应序列进行滤波处理,滤波输出作为第一输出,其中,所述至少两个子抽头系数组按照倒序的方式排列;
对所述第一输出进行并串转换,得到第二输出;
对所述第二输出从基准样点序列开始,按照设定的样点间隔抽取设定数量的样点进行累加输出,将所述累加输出作为所述FIR滤波器的输出,其中,所述基准样点序列为第一抽头系数组的滤波输出样点序列。
第二方面,本发明实施例还提供了一种FIR滤波器,包括:
子抽头系数组划分模块,用于将FIR滤波器的抽头系数划分为至少两个子抽头系数组;
第一输出模块,用于将输入数据用所述至少两个子抽头系数组的有限冲激响应序列进行滤波处理,滤波输出作为第一输出,其中,所述至少两个子抽头系数组按照倒序的方式排列;
并串转换模块,用于对所述第一输出进行并串转换,得到第二输出;
累加输出模块,用于对所述第二输出从基准样点序列开始,按照设定的样点间隔抽取设定数量的样点进行累加输出,将所述累加输出作为所述FIR滤波器的输出,其中,所述基准样点序列为第一抽头系数组的滤波输出样点序列。
本发明实施例通过对FIR滤波器的抽头系数进行分段处理,使得FIR滤波器的移位寄存器单元的数量得以大大减少,从而降低了硬件资源的使用数量,进而降低了FIR滤波器的成本;通过对FIR滤波器的硬件和软件资源进行合理的划分,使得FIR滤波器的滤波性能并没有受到影响,达到了在不影响FIR滤波器的滤波性能的前提下,以较低的运行成本实现对信号的滤波处理。
附图说明
图1是本发明实施例一中的一种FIR滤波方法的流程图;
图2是本发明实施例二中的一种FIR滤波方法的流程图;
图3是本发明实施例三中的一种FIR滤波方法的流程图;
图4是本发明实施例四中的一种FIR滤波器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种FIR滤波方法的流程图,本实施例可适用于对音频信号进行滤波的情况,该方法可以由FIR滤波器来执行,具体包括如下步骤:
S110、将FIR滤波器的抽头系数划分为至少两个子抽头系数组。
其中,至少两个意指多个,也就是将抽头系数划分为多个子抽头系数组,每个子抽头系数组的长度可以相同,也可以不同,其中,子抽头系数组的长度为子抽头系数组所包含的抽头系数的数量。例如,假设FIR滤波器原始的抽头系数的个数为N,可以按照每个抽头系数组的长度相同的原则划分子抽头系数组,将该N个抽头系数划分为等长的M段,即每个子抽头系数组的长度为L=N/M。需要注意的是,在进行子抽头系数组的划分时,长度不足的子抽头系数组可以补零处理。可选的,为了最大化利用资源,在设计的时候选择N是M的整数倍。当然,也可以按照长度不等的方式进行子抽头系数组的划分,这时移位储存部分的大小由最长抽头系数组的长度减一决定,这完全取决于用户的需求,本实施例对此不作限定。
S120、将输入数据用该至少两个子抽头系数组的有限冲激响应序列进行滤波处理,滤波输出作为第一输出,其中,该至少两个子抽头系数组按照倒序的方式排列。
其中,至少两个子抽头系数组是指所划分的抽头系数组的数量为多个。多个子抽头系数组构成了多个子滤波器,输入数据用该至少两个子抽头系数组的有限冲激响应序列进行滤波处理即为所划分的子抽头系数组构成的各个子滤波器对输入数据分别进行滤波处理。
至少两个子抽头系数组按照倒序的方式排列是指所划分的各个子抽头系数组按照倒序的方式排列,倒序是指各个抽头系数组的排列顺序与子抽头系数组在原始的抽头系数中的顺序相反,但是各个子抽头系数组内部的抽头系数的顺序并不发生改变。例如,将原先64抽头的系数划分为等长的4段后,
第一子抽头系数组为:h48,h49,h50……,h63;
第二子抽头系数组为:h32,h33,h34……,h47;
第三子抽头系数组为:h16,h17,h18……,h31;
第四子抽头系数组为:h0,h1,h2……,h15;
其中,h0为原64抽头系数的第一个系数,h1为原64抽头系数的第二个抽头系数,以此类推,h63为原64抽头系数的最后一个抽头系数。
此过程中的滤波处理由硬件完成,输入数据顺序通过所设置的移位寄存器单元进行暂时存储,其中移位寄存器的数量按照子抽头系数组的长度减一进行设定,例如,将N个抽头系数划分为等长的M段,这样每个抽头系数组中所包含的抽头系数的数量L=N/M,此时,移位寄存器单元的长度即为L-1,此过程实际上即为将M段抽头作为M个长度为L-1的移位寄存器单元共用的滤波器,利用移位寄存器单元的进出特性,可以实现将对移位寄存器单元的硬件需求降低到L-1个,相比于划分抽头系数之前需要使用N-1个移位寄存器单元,此时,对移位寄存器单元的需求大大降低。
下面以常用的输入位宽为16,抽头系数个数为64的FIR滤波器为例对移位寄存器单元的占用数量进行对比说明,该64抽头的滤波器中,需要63个移位寄存器来实现样点数据的存储,在将64个抽头系数划分为4段后,每段包括16个抽头系数,这样,利用移位寄存器对数据进行动态存储的特性,就只需要同时对16个抽头系数对应的样点数据进行存储,因而对移位寄存器的数量的需求就相应地降为15个,在进行系数划分前,所需要的移位寄存器的存储单元为:63*16=1008个D触发器;在使用本实施例方法对抽头系数进行划分4组后,所需要的移位寄存器单元为:15*16=240个D触发器,可以看出,在进行系数划分后,所需要的移位寄存器单元比原先的1/4还少了12个D触发器,因而大大降低了对硬件的需求。
各个子抽头系数组对输入数据的滤波处理的速率f按照下述方法确定,
f=fs/D (1)
其中,fs为FIR滤波器的输入采样率;
D为FIR滤波器的下采样因子。
具体地,各个子抽头系数组构成的子滤波器对输入数据的滤波处理可以采用乘法器来实现,也就是通过乘加单元完成输入数据与子抽头系数组中的抽头系数的乘加计算。每个子抽头系数组中的抽头系数,硬件中用代价很小的ROM储存即可。当然,对于抽头系数固定的滤波器,也可以采用组合逻辑通过移位加的方式来实现。
可选的,将输入数据用该至少两个子抽头系数组的有限冲激响应序列进行滤波处理,滤波输出作为第一输出,包括:
S121、将输入数据与该至少两个子抽头系数组中的抽头系数进行对应乘加计算,得到至少两个卷积离散值,其中,同一个子抽头系数组中的抽头系数按照串行的方式与输入数据进行乘加计算。
其中,滤波器的工作过程实际上就是通过将输入数据与滤波器的系数进行卷积计算得到相应的输出结果。这里,因为对FIR滤波器的抽头系数进行了分段处理,使得每个子抽头系数组构成一个子滤波器,各个子滤波器中的抽头系数分别与相应的输入数据进行乘加计算,得到与子抽头系数组的数量相同的多个离散的样点值。
至少两个卷积离散值是指各个子抽头系数组中的抽头系数分别与输入数据进行乘加计算后得到的离散样点。
每个子抽头系数组中又包含有多个抽头系数,而同一个子抽头系数组中的抽头系数是串行的结构,这些抽头系数相当于一个个单抽头的滤波器,因而这些单独的滤波器就相当于组成了串联的滤波器组合,实现对输入数据按照串行的方式进行乘加计算。
例如,当FIR滤波器的抽头系数的个数为64时,将该64个抽头系数划分为长度相同的4段,则每段都包括16个抽头系数,这样在某一时刻每段的子抽头系数与输入数据进行相应地乘积计算后便会得到16个样点值,同一个系数组内乘积算出的16个样点值按照串行的顺序进行累加输出,即:
H0S00,H0S01,H0S02,HOS03……
H1S00,H1S01,H1S02,H1S03……
H2S00,H2S01,H2S02,H2S03……
H3S00,H3S01,H3S02,H3S03……
其中,Sxx为相应子滤波器Hx滤波输出的样点顺序,例如H0S00表示第0个子滤波器的第0个样点输出,以此类推,每个抽头系数组内的样点都按照这样的顺序输出。
S122、按照子抽头系数组与输入数据进行乘加计算的顺序,并行输出至少两个卷积离散值,得到第一输出。
其中,子抽头系数组与输入数据进行乘加计算的顺序是指各个子抽头系数组构成的子滤波器响应各自的时钟进行滤波的顺序。这里的时钟为一个高频时钟,在划分为长度相等的至少两个子抽头系数组情形下,其频率可以按照如下公式确定:
Δf≥fs*N/(D*K) (2)
其中,Δf为设定的时钟频率,fs为FIR滤波器的输入采样率,N为FIR滤波器的抽头系数的数量,D为下采样因子,K为乘加单元的个数,乘加单元为单个乘法器和单个累加器构成的乘加运算单元。例如,在上述示例中,N为64,D为2,FIR滤波器的输入采样率为32KHz,K为1,相应地,高频时钟Δf≥32*64/(2*1),即该高频时钟至少为1024KHz。即在不小于1024KHz的高频时钟下完成一个子滤波器对输入数据的滤波处理。
将各个子抽头系数组与输入数据进行乘加计算得到的样点输出,即为第一输出。例如,在上述步骤的示例中,4个抽头系数组分别与输入数据进行乘加计算后,4个抽头系数组按照如下的方式并行输出相应的样点至处理单元:
H0S00,H0S01,H0S02,HOS03……H0S15……
H1S00,H1S01,H1S02,H1S03……H1S15……
H2S00,H2S01,H2S02,H2S03……H2S15……
H3S00,H3S01,H3S02,H3S03……H3S15……
S130、对第一输出进行并串转换,得到第二输出。
其中,并串转换是指将并行输出的数据转换为串行方式输出,例如,在上述示例中,在进行并串转换后FIR滤波器按照如下的方式对滤波生成的样点进行输出:
H0S00,H1S00,H2S00,H3S00,H0S01,H1S01,H2S01,H3S01,H0S02,H1S02,H2S02,H3S02,……,H0S15,H1S15,H2S15,H3S15……
可以看出,经过并串转换后,四路的并行数据被按照一路的串行数据输出。其中,第二输出被输送至软件进行暂时存储,例如通过软件的SRAM(Static Random-AccessMemory,静态随机存取存储器)单元对第二输出进行暂时存储,再由软件完成后续的样点抽取和累加计算。
S140、对所述第二输出从基准样点序列开始,按照设定的样点间隔抽取设定数量的样点进行累加输出,将所述累加输出作为所述FIR滤波器的输出,其中,所述基准样点序列为第一抽头系数组的滤波输出样点序列。
其中,第一抽头系数组的滤波输出样点序列是指按照倒序方式排列后的子抽头系数组的滤波输出样点序列。
按照设定的样点间隔抽取设定数量的样点进行累加输出是指以基准样点开始按照设定的样点间隔抽取样点,将抽取到的样点进行累加输出,其中,设定数量按照子抽头系数组的数量减一的方法进行确定。因为在进行抽头系数划分前,所有的抽头系数实际上构成了串行的子滤波器对输入数据进行滤波处理,在划分抽头系数之后,多组子抽头系数相当于构成了多路并行的子滤波器,相应地,样点的输出是按照各个抽头系数组构成的子滤波器为单元进行样点输出的,其输出样点的顺序已经被调整,因而,需要对当前的样点输出顺序进行重新编排,使得样点输出的顺序按照划分前的原始的样点输出顺序进行输出。需要注意的是,当子抽头系数组是按照非等长的方式进行系数划分时,这里设定的样点间隔为不规则的间隔,需要结合各个子抽头系数组所分别包含的抽头系数的数量进行相应的样点抽取。为了实现方便,通常将子抽头系数组按照长度相等的原则进行划分,此时,设定的样点间隔按照如下方式进行计算得到:
Figure BDA0002093705010000091
其中,ΔL为设定的样点间隔;
L为子抽头系数组中所包含的抽头系数的数量;
M为子抽头系数组的个数;
D为下采样因子。
例如,在上述的示例中个,设定的样点间隔即为
Figure BDA0002093705010000092
即从基准序列开始每隔32个样点抽取一个样点,抽取出4个样点进行累加计算,得到对应于该点的累加值。这样,在经过样点的抽取和累加后,滤波处理的样点按照如下的方式输出:Z0,Z1,Z2,……,Zk,……,
Z0=H0S00+H1S08+H2S16+H3S24,
Z1=H0S01+H1S09+H2S17+H3S25,
Z2=H0S02+H1S10+H2S18+H3S26,
……
Zk=H0Skk+H1Sxx+H2Syy+H3Szz
……
其中,xx=kk+8,yy=kk+16,zz=kk+24,Zk为第k个输出的累加样点,显然,通过对各个滤波样点的输出顺序进行调整,实现了输出样点按照划分系数前的顺序进行输出。
本实施例一种FIR滤波方法的原理是:通过对FIR滤波器的抽头系数进行划分,将原始串行的抽头系数转换成几个并行的抽头系数组,而并行的抽头系数组按照系统配置的高速时钟分段对输入数据进行滤波处理,因而在时间上便对输出结果进行了错开输出,这样便减少了同时进行滤波操作的资源,使得用于暂时存储数据的移位寄存器单元的数量得以减少,从而大大降低了移位寄存器单元的消耗,使得FIR滤波器的硬件成本大大降低;同时,因为对滤波器的乘法运算都是由硬件实现,软件部分只需进行极少量的有限几个值的累加运算,从而完全实现了原始FIR滤波器的滤波性能。
本实施例的技术方案,通过对FIR滤波器的抽头系数进行分段处理,使得FIR滤波器的移位寄存器单元的数量得以大大减少,从而降低了硬件资源的使用数量,进而降低了FIR滤波器的成本;通过对FIR滤波器的硬件和软件资源进行合理的划分,使得FIR滤波器的滤波性能并没有受到影响,达到了在不影响FIR滤波器的滤波性能的前提下,以较低的运行成本实现对信号的滤波处理。
实施例二
图2为本发明实施例二提供的一种FIR滤波方法的流程图,本实施例在上述实施例的基础上进行了优化,本实施例方法可适用于对音频信号进行滤波的情况,该方法可以由FIR滤波器来执行,该方法具体包括如下步骤:
S210、将FIR滤波器的抽头系数划分为至少两个子抽头系数组。
S220、将输入数据用该至少两个子抽头系数组的有限冲激响应序列进行滤波处理,滤波输出作为第一输出,其中,该至少两个子抽头系数组按照倒序的方式排列。
S230、将第一抽头系数组的滤波输出样点序列作为基准样点序列。
其中,基准样点序列中的各个样点作为并串转换后的串行输出的起始样点。起始样点可以通过对相应的数据标识位进行标识来实现,例如,可以将第一抽头系数组与输入数据的卷积计算得到的各个离散样点的最低位作为数据标识位设为1,将其他的子抽头系数组中的抽头系数与输入数据的卷积计算得到的离散样点的最低位作为数据标识位设为0,其中,所有数据标识位为1的样点即为基准样点,这样软件通过对滤波输出样点的数据标识位进行识别,便可以确定出相应的基准样点。例如,在上述步骤的示例中,第一抽头系数组的滤波输出样点按照如下顺序排序,构成基准样点序列:H0S00,H0S01,H0S02,HOS03……H0S15……
S240、按照输入数据用该至少两个子抽头系数组的有限冲激响应序列进行滤波处理的顺序,将该至少两个子抽头系数组的滤波输出样点序列按照串行的方式输出,得到第二输出。
其中,输入数据用该至少两个子抽头系数组的有限冲激响应序列进行滤波处理的顺序是指各个子抽头系数组构成的多个子滤波器对输入数据进行滤波的顺序。串行输出就是将多路的并行信号转换成一路的串行信号输出。例如,在上述的示例中,第二输出中各个滤波样点的输出顺序为:
H0S00,H1S00,H2S00,H3S00,H0S01,H1S01,H2S01,H3S01,H0S02,H1S02,H2S02,H3S02,……,H0S15,H1S15,H2S15,H3S15……
S250、根据设定的样点间隔,确定每一基准样点关联的其他样点,其中,所述每一基准样点关联的其他样点的数量为抽头系数组的数量减一。
其中,设定的样点间隔是指对分段划分后的子抽头系数组的输出样点进行重新的顺序编排时抽取样点的间隔,即相隔多少个样点抽取一个样点。基准样点关联的其他样点是指以该基准样点为起始样点,按照设定的样点间隔依次从其他子抽头系数组构成的子滤波器的滤波输出样点中进行样点抽取而得到的样点。例如,在上述步骤的示例中,按照每个子抽头系数组的长度相同的方式划分抽头系数,当设定的样点间隔为32时,与基准样点序列中的第一个基准样点H0S00相关的其他的三个样点依次为:H1S08,H2S16,H3S24,同样地,依次确定出其他各个基准样点的关联样点。
S260、从第二输出中顺序获取基准样点序列中每一基准样点,以及该基准样点关联的其他样点。
其中,顺序获取是指按照基准样点序列中的每个基准样点的排列顺序依次获取相应的被重新关联后的滤波样点子序列。
S270、将每一基准样点以及与该基准样点关联的其他样点进行累加计算,得到对应的累加样点。
其中,通过对获取的基准样点以及与该基准样点相关联的其他样点进行累加计算,得到对应的累加样点。例如,在上述示例中,每个基准样点都有3个关联样点,累加计算即为将每个基准样点与相对应的3个关联样点相加,得到一个对应的累加样点。
S280、按照基准样点序列中样点的输出顺序,输出累加样点,作为FIR滤波器的输出。
本发明实施例提供的一种FIR滤波方法,通过确定基准样点,并按照设定的样点间隔将与各个基准样点相关联的其他样点进行重新组合,使得第一输出中的样点数据是被按照基准样点的顺序分成的若干个单元,且每个单元中的样点顺序按照设定的样点间隔被重新编排,从而完成了对第一输出的并串转换以及对并串转换后的第二输出进行相应的样点抽取,实现了将第一输出中的所有样点按照划分系数前的原始的样点输出顺序进行输出,从而实现了对原始数据不失真的输出,保证了输出结果的准确性。
实施例三
图3为本发明实施例三提供的一种FIR滤波方法的流程图,本实施例在上述实施例的基础上进行了优化,本实施例方法可适用于对音频信号进行滤波的情况,该方法可以由FIR滤波器来执行,该方法具体包括如下步骤:
S310、将FIR滤波器的抽头系数划分为至少两个子抽头系数组。
S320、将输入数据用该至少两个子抽头系数组的有限冲激响应序列进行滤波处理,滤波输出作为第一输出,其中,该至少两个子抽头系数组按照倒序的方式排列。
S330、对第一输出中样点进行位宽调整。
其中,第一输出的位宽与输入数据的位宽以及各个抽头系数的位宽相关,具体地,可以按照如下公式确定第一输出的中间位宽:
W=P+Q-1 (4)
其中,W为FIR滤波器的中间位宽;
P为FIR滤波器的输入位宽;
Q为抽头系数的位宽。
通过上述方法确定第一输出的中间位宽,可以无失真地保留中间精度。需要注意的是,根据有符号数的特点,每个子滤波器的累加输出采用溢出处理,不影响最终结果。可选的,在不损失性能前提下,还可以右移若干比特以降低传输带宽。例如,在上述示例中,为方便实现,可以将所有系数之和设计为2^14-1=32767,比理论值小1,对结果无影响。这样理论上中间位宽为16+14=30比特时,将无失真地保留了中间精度。
S340、对第一输出进行并串转换,得到第二输出。
S350、对第二输出从基准样点序列开始,按照设定的样点间隔抽取设定数量的样点进行累加输出。
S360、对累加输出的数据进行低位截位处理和高位饱和处理,以得到期望位宽的输出结果。
其中,低位截位处理是指对低位的数据作去除处理,高位饱和处理是指对高位的数据作饱和处理。例如,想要输出16的滤波结果,对滤波抽取出的4个32比特数进行溢出累加处理,累加结果低位右移14比特进行直接截位处理或将右移掉的14比特的最高位加之右移后数据的最低位进行四舍五入处理,区别在于后者不会引入直流,最高2位做饱和处理;注意作为标识位的最低位包含在14比特中已被去除,由于连续4个标识位中,除第一个为1外,其余三个为0,累加不会产生进位,因而对结果没有任何影响。当然,该步骤也可以用如下完全等价的方式实现:先移去最低位标识位,然后将累加结果右移13比特,本实施例对此不作限定。
S370、将期望位宽的输出结果作为FIR滤波器的输出。
本实施例通过对第一输出的样点进行位宽调整,保证了输出的样点的精度,通过对并串转换后的输出进行低位截位处理和高位饱和处理,使得FIR滤波器的最终输出满足了精度要求。从而实现了在不影响精度的情况下,合理地调整数据的位宽,降低了数据传输的带宽。
实施例四
图4为本发明实施例四提供的一种FIR滤波器的结构示意图,如图4所示,该FIR滤波器包括:子抽头系数组划分模块410,第一输出模块420和并串转换模块430,其中,
子抽头系数组划分模块410,用于将FIR滤波器的抽头系数划分为至少两个子抽头系数组。
第一输出模块420,用于将输入数据用所述至少两个子抽头系数组的有限冲激响应序列进行滤波处理,滤波输出作为第一输出,其中,所述至少两个子抽头系数组按照倒序的方式排列。
并串转换模块430,用于对所述第一输出进行并串转换,得到第二输出。
累加输出模块440,用于对所述第二输出从基准样点序列开始,按照设定的样点间隔取分段个数个样点进行累加输出,将所述累加输出作为所述FIR滤波器的输出,其中,所述基准样点序列为第一抽头系数组的滤波输出样点序列。
可选的,第一输出模块420包括:
第一乘加计算单元,用于将输入数据与至少两个子抽头系数组中的抽头系数进行对应乘加计算,得到至少两个卷积离散值,其中,同一个子抽头系数组中的抽头系数按照串行的方式与输入数据进行乘加计算;
卷积离散值输出单元,用于按照子抽头系数组与输入数据进行乘加计算的顺序,并行输出至少两个卷积离散值,得到第一输出。
可选的,第一输出模块420还包括:
第二乘加计算单元,用于至少两个子抽头系数组按照设定的时钟频率分别与输入数据进行乘加计算。
可选的,并串转换模块430包括:
基准样点序列确定单元,用于将第一抽头系数组的滤波输出样点序列作为基准样点序列;
滤波输出样点串行输出单元,用于按照输入数据用至少两个子抽头系数组的有限冲激响应序列进行滤波处理的顺序,将至少两个子抽头系数组的滤波输出样点序列按照串行的方式输出,得到第二输出。
可选的,累加输出模块440包括:
关联样点确定单元,用于根据设定的样点间隔,确定每一基准样点关联的其他样点;
基准样点及关联样点获取单元,用于从第二输出中顺序获取基准样点序列中每一基准样点,以及该基准样点关联的其他样点;
累加计算单元,用于将每一基准样点以及与该基准样点关联的其他样点进行累加计算,得到对应的累加样点;
累加样点输出单元,用于按照基准样点序列中样点的输出顺序,输出累加样点,作为FIR滤波器的输出。
可选的,该FIR滤波器还包括:
中间位宽调整模块,用于对第一输出中样点进行位宽调整。
期望位宽调整模块,用于对累加输出的数据进行低位截位处理和高位饱和处理,以得到期望位宽的输出结果。
其中,第一输出模块420包括至少一个乘法器和至少一个加法器,通过乘法器实现在各个子抽头系数组中输入数据与各个抽头系数的乘积计算,通过加法器实现将各个子抽头系数组中的各个乘积计算的样点值进行累加得到卷积结果,并将卷积结果进行输出。
例如,当子滤波器输出为16KHZ的数据,每个子滤波器包括16个抽头系数时,则此时可以用一个16位x16位=32位的乘法器完成4个子滤波器的分段滤波以及对分段滤波的结果进行并串转换后输出。
可选的,在抽头系数固定的FIR滤波器中,第一输出模块420还可以用组合逻辑实现,通过组合逻辑以移位加方式对各个子滤波器的进行乘加运算,完成滤波处理,输出样点按照规定顺序输出。
可选的,该FIR滤波器还包括多个移位寄存器单元,移位寄存器单元用于暂时存储输入数据的样点值,其中,移位寄存器单元的数量为子抽头系数组的数量减一。移位寄存器单元对本次的子抽头系数组对应的输入数据进行暂时存储,滤波结果直接输出至软件进行计算。
可选的,该FIR滤波器还包括数据处理模块,该数据处理模块一方面接收来自累加输出模块440的输出,对该输出样点进行低位截位处理和高位饱和处理,使得滤波结果按照设定的位宽被输出。例如,当第一输出模块420采用乘法器和加法器的方式实现时,此时,该数据处理模块接收来自加法器的累加结果,并对该累加结果按照要求进行软件处理后输出,该输出即作为该FIR滤波器的最终输出。该数据处理模块可以为一个运行有设定算法的单片机,该单片机上存储有应用程序,单片机中的微处理器通过执行所存储的应用程序,对加法器输出的滤波结果进行软件处理后的数据即为该FIR滤波器的最终输出。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (11)

1.一种FIR滤波方法,其特征在于,包括:
将FIR滤波器的抽头系数划分为至少两个子抽头系数组;
将输入数据用所述至少两个子抽头系数组的有限冲激响应序列进行滤波处理,滤波输出作为第一输出,其中,所述至少两个子抽头系数组按照倒序的方式排列;
对所述第一输出进行并串转换,得到第二输出;
对所述第二输出从基准样点序列开始,按照设定的样点间隔抽取设定数量的样点进行累加输出,将所述累加输出作为所述FIR滤波器的输出,其中,所述基准样点序列为第一抽头系数组的滤波输出样点序列。
2.根据权利要求1所述的方法,其特在于,将输入数据用所述至少两个子抽头系数组的有限冲激响应序列进行滤波处理,滤波输出作为第一输出,包括:
将输入数据与所述至少两个子抽头系数组中的抽头系数进行对应乘加计算,得到至少两个卷积离散值,其中,同一个子抽头系数组中的抽头系数按照串行的方式与输入数据进行乘加计算;
按照子抽头系数组与输入数据进行乘加计算的顺序,并行输出所述至少两个卷积离散值,得到所述第一输出。
3.根据权利要求1所述的方法,其特征在于,对所述第一输出进行并串转换,得到第二输出,包括:
将第一抽头系数组的滤波输出样点序列作为基准样点序列;
按照输入数据用所述至少两个子抽头系数组的有限冲激响应序列进行滤波处理的顺序,将所述至少两个子抽头系数组的滤波输出样点序列按照串行的方式输出,得到所述第二输出。
4.根据权利要求1所述的方法,其特征在于,对所述第二输出从基准样点序列开始,按照设定的样点间隔抽取设定数量的样点进行累加输出,将所述累加输出作为所述FIR滤波器的输出,包括:
根据设定的样点间隔,确定每一基准样点关联的其他样点,其中,所述每一基准样点关联的其他样点的数量为抽头系数组的数量减一;
从所述第二输出中顺序获取基准样点序列中每一基准样点,以及该基准样点关联的其他样点;
将每一基准样点以及与该基准样点关联的其他样点进行累加计算,得到对应的累加样点;
按照基准样点序列中样点的输出顺序,输出所述累加样点,作为所述FIR滤波器的输出。
5.根据权利要求1所述的方法,其特征在于,所述至少两个子抽头系数组具有相同数量的抽头系数。
6.根据权利要求5所述的方法,其特征在于,所述设定的样点间隔通过如下公式确定:
Figure FDA0002093703000000021
其中,ΔL为设定的样点间隔;
L为子抽头系数组中所包含的抽头系数的数量;
M为子抽头系数组的个数;
D为下采样因子。
7.根据权利要求1所述的方法,其特征在于,将输入数据用所述至少两个子抽头系数组的有限冲激响应序列进行滤波处理,滤波输出作为第一输出之后,还包括:按照如下公式对所述第一输出中样点进行位宽调整,
W=P+Q-1 (2)
其中,W为FIR滤波器的中间位宽;
P为FIR滤波器的输入位宽;
Q为抽头系数的位宽。
8.根据权利要求1所述的方法,其特征在于,对所述第二输出从基准样点序列开始,按照设定的样点间隔进行累加输出之后,还包括:
对累加输出的数据进行低位截位处理和高位饱和处理,以得到期望位宽的输出结果;
相应地,将所述累加输出作为所述FIR滤波器的输出包括:
将所述期望位宽的输出结果作为所述FIR滤波器的输出。
9.根据权利要求1所述的方法,其特征在于,所述将输入数据用所述至少两个子抽头系数组的有限冲激响应序列进行滤波处理,滤波输出作为第一输出,包括:
所述至少两个子抽头系数组按照设定的时钟频率分别与输入数据进行乘加计算,其中,所述设定的时钟频率按照如下公式确定:
Δf≥fs*N/(D*K) (3)
其中,Δf为设定的时钟频率,fs为FIR滤波器的输入采样率,N为FIR滤波器的抽头系数的数量,D为下采样因子,K为乘加单元的个数,所述乘加单元为单个乘法器和单个累加器构成的乘加运算单元。
10.一种FIR滤波器,其特征在于,包括:
子抽头系数组划分模块,用于将FIR滤波器的抽头系数划分为至少两个子抽头系数组;
第一输出模块,用于将输入数据用所述至少两个子抽头系数组的有限冲激响应序列进行滤波处理,滤波输出作为第一输出,其中,所述至少两个子抽头系数组按照倒序的方式排列;
并串转换模块,用于对所述第一输出进行并串转换,得到第二输出;
累加输出模块,用于对所述第二输出从基准样点序列开始,按照设定的样点间隔抽取设定数量的样点进行累加输出,将所述累加输出作为所述FIR滤波器的输出,其中,所述基准样点序列为第一抽头系数组的滤波输出样点序列。
11.根据权利要求10所述的滤波器,其特征在于,所述第一输出模块至少包括一个乘法器和一个加法器,所述累加输出模块包括数据处理单元,其中,
所述乘法器用于实现在各个子抽头系数组中输入数据与各个抽头系数的乘积计算,所述加法器用于将各个子抽头系数组中的各个乘积计算的样点值进行累加得到卷积结果;
所述数据处理单元用于对所述并串转换模块的输出进行位宽处理,并输出期望位宽的滤波器结果。
CN201910511708.6A 2019-06-13 2019-06-13 一种fir滤波方法及滤波器 Active CN110247642B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910511708.6A CN110247642B (zh) 2019-06-13 2019-06-13 一种fir滤波方法及滤波器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910511708.6A CN110247642B (zh) 2019-06-13 2019-06-13 一种fir滤波方法及滤波器

Publications (2)

Publication Number Publication Date
CN110247642A CN110247642A (zh) 2019-09-17
CN110247642B true CN110247642B (zh) 2023-07-11

Family

ID=67887066

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910511708.6A Active CN110247642B (zh) 2019-06-13 2019-06-13 一种fir滤波方法及滤波器

Country Status (1)

Country Link
CN (1) CN110247642B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116257207B (zh) * 2022-09-08 2023-10-03 重庆位图信息技术有限公司 一种数据截位方法、模块、计算机设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1223723A (zh) * 1996-04-25 1999-07-21 SiRF技术公司 具有多比特相关器的扩频接收机
CN1455572A (zh) * 2002-04-30 2003-11-12 英诺媒迪亚Pte有限公司 改进的声回波消除
CN101022433A (zh) * 2007-03-02 2007-08-22 清华大学 高速数字接收机并行自适应盲均衡方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MY111506A (en) * 1992-07-29 2000-07-31 Thomson Consumer Electronics Inc Fir filter apparatus for processing of time division multiplexed signals
US5548541A (en) * 1994-08-08 1996-08-20 Interstate Electronics Corporation Finite impulse response filter for modulator in digital data transmission system
KR100378592B1 (ko) * 2000-07-31 2003-03-31 한국전자통신연구원 디지털 이동 통신용 108 탭 1대4 인터폴레이션유한임펄스응답 필터장치
CN100557971C (zh) * 2007-10-12 2009-11-04 清华大学 用于简单系数fir滤波器的时域实现方法
CN101640522B (zh) * 2008-07-31 2015-10-21 中兴通讯股份有限公司 一种适用于抽取滤波器的数据抽取方法及装置
CN101789858B (zh) * 2010-01-07 2012-09-05 北京理工大学 一种用于高速数字通信系统的位同步与滤波联合实现方法
CN102201797B (zh) * 2010-03-23 2013-11-06 卓胜微电子(上海)有限公司 数字滤波器装置
CN101834582B (zh) * 2010-05-28 2013-09-11 华为技术有限公司 一种优化fir滤波器的方法及装置
CN101958697B (zh) * 2010-09-30 2012-11-14 电子科技大学 一种多相滤波结构的实现方法及装置
CN105720944B (zh) * 2016-01-22 2019-04-12 深圳市紫光同创电子有限公司 通用fir滤波器及其配置方法
JP6571133B2 (ja) * 2017-06-19 2019-09-04 アンリツ株式会社 信号発生装置および信号発生方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1223723A (zh) * 1996-04-25 1999-07-21 SiRF技术公司 具有多比特相关器的扩频接收机
CN1455572A (zh) * 2002-04-30 2003-11-12 英诺媒迪亚Pte有限公司 改进的声回波消除
CN101022433A (zh) * 2007-03-02 2007-08-22 清华大学 高速数字接收机并行自适应盲均衡方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
项家伟 ; 韦志棉 ; 熊小军 ; .适用于短码捕获的匹配滤波器的实现结构.无线电工程.61-64. *

Also Published As

Publication number Publication date
CN110247642A (zh) 2019-09-17

Similar Documents

Publication Publication Date Title
KR100893740B1 (ko) 데시메이션 필터
US10050607B2 (en) Polyphase decimation FIR filters and methods
CN110247642B (zh) 一种fir滤波方法及滤波器
CN113556101B (zh) Iir滤波器及其数据处理方法
JP2000504540A (ja) デシメーション方法及びデシメーションフィルタ
KR100377197B1 (ko) 다중 캐리어 무선통신 수신 시스템의 캐리어 분리 장치 및그 방법
US6593805B2 (en) Demodulation apparatus
US20090150468A1 (en) Digital filter
GB2382506A (en) Communications receiver data processing for quadrature modulated data
CN108900177B (zh) 一种fir滤波器对数据进行滤波的方法
US9893714B2 (en) Configurable FIR filter with segmented cells
US7412471B2 (en) Discrete filter having a tap selection circuit
CN103078606A (zh) 多通道的cic内插滤波器系统及其实现方法
EP1469601A2 (en) Limit-cycle free FIR/IIR halfband digital filter
US8380772B2 (en) Multi-rate filter bank
Kuzhaloli et al. FIR filter design for advanced audio/video processing applications
JPH0555875A (ja) デイジタルフイルタ
EP1458097A1 (en) Arbitrary sampling rate conversion
JP3243831B2 (ja) Fir型フィルタ
US10050606B2 (en) Decimation FIR filters and methods
US20090300089A1 (en) Finite impulse response filter and method
CN116781041B (zh) 一种具有高资源利用率的多速率变换滤波器
CN116132866B (zh) 一种pdm数字麦克风解码装置和芯片
JP2012085177A (ja) デシメータ回路及びデシメータ回路の演算方法
Robles et al. FPGA implementation of comb-based decimation filter with improved frequency characteristic for SD A/D converters application

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