CN115102524B - 一种滤波器 - Google Patents
一种滤波器 Download PDFInfo
- Publication number
- CN115102524B CN115102524B CN202210804161.0A CN202210804161A CN115102524B CN 115102524 B CN115102524 B CN 115102524B CN 202210804161 A CN202210804161 A CN 202210804161A CN 115102524 B CN115102524 B CN 115102524B
- Authority
- CN
- China
- Prior art keywords
- filter
- memory
- signal
- digital input
- register
- 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
- 238000001914 filtration Methods 0.000 claims abstract description 129
- 230000015654 memory Effects 0.000 claims description 247
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 238000000034 method Methods 0.000 description 7
- 101100403145 Danio rerio mul1a gene Proteins 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E40/00—Technologies for an efficient electrical power generation, transmission or distribution
- Y02E40/40—Arrangements for reducing harmonics
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
Abstract
本公开实施例公开了一种滤波器,所述滤波器包括:存储单元、运算指示单元和运算单元;其中,所述运算指示单元,与所述存储单元电连接,用于接收滤波输入使能信号,根据所述滤波输入使能信号进行时钟计数,并根据计数结果向所述存储单元发送第一指示信号和第二指示信号;所述存储单元,与所述运算单元电连接,用于根据所述第一指示信号向所述运算单元输出存储的数字输入信号和滤波系数;所述运算单元,用于利用所述滤波系数对所述数字输入信号进行滤波后生成滤波结果并输出;所述存储单元,还用于根据所述第二指示信号,利用外部输入的数字输入信号或所述滤波结果更新存储所述数字输入信号的部分。
Description
技术领域
本公开涉及滤波器技术领域,尤其涉及一种滤波器。
背景技术
滤波器的传统实现方法是同时进行乘法以及加法等运算,虽然节省了算法处理的时间,但是需要多个乘法器、多个加法器以及多个寄存器,不仅增加了滤波器中器件占用的面积而且增加了滤波器中器件之间的复杂连线面积。
将该类寄存器应用于芯片时,需要极大的芯片面积,从而会导致芯片在市场上的竞争力下降,因此,如何减小滤波器的占用面积成为了亟待解决的问题。
发明内容
为解决现有存在的技术问题,本公开实施例提供一种滤波器。
为达到上述目的,本公开实施例的技术方案是这样实现的:
本公开实施例提供了一种滤波器,所述滤波器包括:存储单元、运算指示单元和运算单元;其中,
所述运算指示单元,与所述存储单元电连接,用于接收滤波输入使能信号,根据所述滤波输入使能信号进行时钟计数,并根据计数结果向所述存储单元发送第一指示信号和第二指示信号;
所述存储单元,与所述运算单元电连接,用于根据所述第一指示信号向所述运算单元输出存储的数字输入信号和滤波系数;
所述运算单元,用于利用所述滤波系数对所述数字输入信号进行滤波后生成滤波结果并输出;
所述存储单元,还用于根据所述第二指示信号,利用外部输入的数字输入信号或所述滤波结果更新存储所述数字输入信号的部分。
在一些实施例中,所述存储单元包括第一存储器以及第二存储器;
所述第一存储器,用于在所述滤波输入使能信号使能时,在一个计数周期内接收所述第一指示信号,并根据所述第一指示信号向所述运算单元输出存储的所述数字输入信号;还用于在一个计数周期内接收所述第二指示信号,并根据所述第二指示信号接收所述外部输入的数字输入信号并存储在第一目标存储地址;其中,一次计数输出一个所述第一存储器的存储地址中的所述数字输入信号或存储一个所述外部输入的数字输入信号;
所述第二存储器,用于在所述滤波输入使能信号使能时,在一个计数周期内的接收所述第一指示信号,并根据所述第一指示信号向所述运算单元输出存储的所述滤波系数;其中,一次计数输出一个所述第二存储器的存储地址中的所述滤波系数;
所述运算单元,用于在所述滤波输入使能信号使能时,在一个计数周期内利用当前次计数获取的所述滤波系数对所述外部输入的数字输入信号或所述第一存储器存储的数字输入信号进行滤波,并在一个计数周期结束时生成所述滤波结果。
在一些实施例中,所述第一存储器,还用于在下一个计数周期开始时,接收所述第二指示信号,并根据所述第二指示信号接收所述运算器输出的滤波结果并存储至所述第一目标存储地址之外的存储地址,以更新所述第一存储器中存储所述数字输入信号的部分。
在一些实施例中,所述滤波器还包括第一选择器;
所述第一选择器,与所述第一存储器以及所述运算单元进行电连接,用于在所述滤波输入使能信号使能时,在一个计数周期内选择接收所述外部输入的数字输入信号或所述第一存储器输出的所述数字信号,并将选择接收的数据传输给所述运算单元。
在一些实施例中,所述运算单元包括:第一乘法器、第一加法器和第一寄存器;
所述第一乘法器,第一输入端与所述第一选择器连接,第二输入端与所述第二存储器连接,输出端与所述第一加法器连接;用于通过所述第一输入端接收所述第一选择器输出的所述数字输入信号,以及通过所述第二输入端接收所述第二存储器输出的所述滤波系数,并将所述数字输入信号与所述滤波系数相乘后的结果通过所述输出端输出给所述第一加法器;
所述第一加法器,与所述第一寄存器电连接,用于将接收的所述数字输入信号与所述滤波系数相乘后的结果,与所述第一寄存器反馈的中间结果相加后发送给所述第一寄存器;其中,所述第一寄存器反馈的中间结果为前一次所述第一加法器输出的结果;
所述第一寄存器,用于寄存所述中间结果并将所述中间结果反馈给所述第一加法器;还用于将一个计数周期完成后的滤波结果输出;其中,所述滤波结果为所述第一加法器一个计数周期完成后输出的结果。
在一些实施例中,所述存储单元包括第三存储器以及第二寄存器和第三寄存器;
所述第三存储器,第一输出端与所述第二寄存器连接,第二输出端与所述第三寄存器连接;用于在所述滤波输入使能信号使能时,根据所述第一指示信号将存储的所述数字输入信号发送给所述第二寄存器;用于在一个计数周期内根据所述第二指示信号接收外部输入的所述数字输入信号并存储在第二目标存储地址;还用于根据所述第一指示信号将存储的所述滤波系数发送给所述第三寄存器。
在一些实施例中,所述第三存储器包括用于存储所述数字输入信号的第一存储部分、存储所述滤波系数的第二存储部分;
所述第三存储器,用于在一个计数周期内的第一预定类型次计数时,根据所述第一指示信号向所述第二寄存器输出所述第一存储部分存储的所述数字输入信号;其中,一次计数输出一个所述数字输入信号;
所述第二寄存器,用于在当前次计数的下一次计数时将寄存的所述数字输入信号输出给所述运算单元;
所述第三存储器,还用于在一个计数周期内的第二预定类型次计数时,根据所述第一指示信号向所述第三寄存器输出所述第二存储部分存储的所述滤波系数;其中,一次计数输出一个所述滤波系数;
所述第三寄存器,用于在当前次计数的下一次计数时将寄存的所述滤波系数输出给所述运算单元;
所述运算单元,用于在一个计数周期内利用当前次计数获得的所述滤波系数对所述数字输入信号进行滤波,生成所述滤波结果。
在一些实施例中,所述第三存储器,还用于在下一个计数周期开始时,接收所述第二指示信号,并根据所述第二指示信号接收所述运算单元输出的滤波结果并存储至所述第二目标存储地址之外的存储地址。
在一些实施例中,所述运算单元包括:第二乘法器、第二加法器和第四寄存器;
所述第二乘法器,第一输入端与所述第二寄存器连接,第二输入端与所述第三寄存器连接,输出端与所述第二加法器连接;用于通过所述第一输入端接收所述第二寄存器输出的所述数字输入信号,以及通过所述第二输入端接收所述第三寄存器输出的所述滤波系数,并将所述数字输入信号与所述滤波系数相乘后的结果通过所述输出端输出给所述第二加法器;
所述第二加法器,与所述第四寄存器电连接,用于将接收的所述数字输入信号与所述滤波系数相乘后的结果,与所述寄存器反馈的中间结果相加后发送给所述第四寄存器;其中,所述寄存器反馈的中间结果为前一次所述第二加法器输出的结果;
所述第四寄存器,用于寄存所述中间结果并将所述中间结果反馈给所述第二加法器;还用于将一个计数周期完成后的滤波结果输出;其中,所述滤波结果为所述第二加法器一个计数周期完成后输出的结果。
在一些实施例中,所述滤波器还包括:旁路选择单元;
所述旁路选择单元,与所述运算单元电连接,用于接收所述运算单元输出的所述滤波结果;并根据旁路使能信号,输出所述滤波结果。
在一些实施例中,所述滤波器还包括:第二选择器;
所述第二选择器,与所述存储单元以及所述运算单元进行电连接,用于接收所述外部输入的数字输入信号,以及所述运算单元输出的所述滤波结果,并将所述外部输入的数字输入信号或所述滤波结果传输给所述存储单元。
本公开的实施例提供的技术方案可以包括以下有益效果:
采用本公开实施例的技术方案,运算指示单元根据接收的滤波输入使能信号进行时钟计数,并根据计数结果向存储单元发送第一指示信号和第二指示信号;存储单元根据接收到的第一指示信号向运算单元输出数字输入信号和滤波系数;运算单元利用滤波系数对数字输入信号进行滤波生成滤波结果并输出;存储单元还根据第二指示信号,利用外部输入的数字输入信号或滤波结果更新存储数字输入信号的部分。滤波器利用存储单元存储数字输入信号和滤波系数,并通过运算指示单元发送指示信号的方式调用数字输入信号和滤波系数,不仅减少了滤波器中的元器件数量,还大大降低了滤波器中的元器件之间的连线面积,从而减小了滤波器占用芯片的面积,对芯片面积的减小具有贡献。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为相关技术中的一种滤波器的组成结构示意图;
图2为本公开实施例的一种滤波器的组成结构示意图一;
图3为本公开实施例的一种滤波器的组成结构示意图二;
图4为本公开实施例的一种时序示意图一;
图5为本公开实施例的一种时序示意图二;
图6为本公开实施例的一种滤波器的组成结构示意图三;
图7为本公开实施例的一种时序示意图三。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开的具体技术方案做进一步详细描述。以下实施例用于说明本公开,但不用来限制本公开的范围。
相关技术中,通过对滤波器函数的推导,可以得到输出信号与输入信号以及输出反馈的一组滤波器差分方程,如下所示:
y(n)=b0*x(n)+b1*x(n-1)+b2*x(n-2)-a1*y(n-1)-a2*y(n-2)(1)
其中,b0,b1,b2,-a1以及-a2是滤波系数,x(n)是外部输入的数字输入信号,x(n-1)是前一个计数周期外部输入的数字输入信号、x(n-2)是前两个计数周期外部输入的数字输入信号、y(n-1)是滤波器前一个计数周期的滤波结果以及y(n-2)是滤波器前两个计数周期的滤波结果。
图1为相关技术中的一种滤波器的组成结构示意图,如图1所示,图1中x(n)用din表示,y(n)用dout表示,b0,b1,b2,a1以及a2是滤波系数。图1中的滤波器包括5个乘法器、1个累加器、以及4个寄存器。将该滤波器封装到芯片中时需要占用较多的芯片资源,会导致芯片的面积过大,从而难以符合芯片小型化的要求。
相对的,本公开实施例提供一种滤波器,图2为本公开实施例的一种滤波器的组成结构示意图一;如图2所示,所述滤波器包括:存储单元101、运算指示单元102和运算单元103;其中,
所述运算指示单元102,与所述存储单元101电连接,用于接收滤波输入使能信号,根据所述滤波输入使能信号进行时钟计数,并根据计数结果向所述存储单元101发送第一指示信号和第二指示信号;
所述存储单元101,与所述运算单元103电连接,用于根据所述第一指示信号向所述运算单元103输出存储的数字输入信号和滤波系数;
所述运算单元103,用于利用所述滤波系数对所述数字输入信号进行滤波后生成滤波结果并输出;
所述存储单元101,还用于根据所述第二指示信号,利用外部输入的数字输入信号或所述滤波结果更新存储所述数字输入信号的部分。
需要说明的是,本公开实施例提出的滤波器可以应用于放大器、模数转换器、数模转换器、射频、传感器等任意需要滤波器的芯片中,在此不做限定。
还需要说明的是,本公开实施例中,滤波器的数字输入信号可以用din表示;时钟信号可以用clk表示;计数结果可以用calc_cnt表示;滤波输入使能信号可以用vld表示,vld可以在取值为0(低电平)时滤波使能,也可以在取值为1(高电平)时滤波使能,本公开实施例不做具体限定。示例性的,本公开的实施例中均以vld在取值为1(高电平)时滤波使能,当vld的取值为1(高电平)时,触发滤波计数,开始对滤波器的数字输入信号进行滤波;当vld的取值为0(低电平)时,输入信号无效,不会触发滤波。
本公开实施例中,运算指示单元102接收滤波输入使能信号vld和时钟信号clk,当滤波输入使能信号vld的取值为1时,触发运算指示单元102开始进行时钟计数,直到一个计数周期结束时,自动停止计数,等到下一次滤波输入使能信号vld的取值为1(高电平)时,再次触发运算指示单元102开始计数。
本公开实施例中,运算指示单元102与存储单元101电连接。运算指示单元102根据计数结果calc_cnt的值向存储单元101发送第一指示信号和第二指示信号。需要说明的是,本实施例中,第一指示信号可以为读使能信号,可以用rd_en表示;第二指示信号可以为写使能信号,可以用wr_en表示。
需要说明的是,本公开实施中,存储单元101可以是随机存取存储器(RandomAccess Memory,RAM)。
本公开实施例中,存储单元101中预先存储有数字输入信号和滤波系数。数字输入信号可以包括外部输入的数字输入信号x(n)、前一计数周期的外部输入的数字输入信号x(n-1)、前两计数周期的外部输入的数字输入信号x(n-2)、前一计数周期的滤波结果y(n-1)以及前两计数周期的滤波结果y(n-2);滤波系数可以包括第一滤波系数b0、第二滤波系数b1、第三滤波系数b2、第四滤波系数-a1以及第五滤波系数-a2。需要说明的是,外部输入的数字输入信号x(n)就是滤波器的数字输入信号din。
本公开实施例中,当存储单元101接收到运算指示单元102发送的第一指示信号rd_en后,根据第一指示信号rd_en向运算单元103输出数据rdata,其中,数据rdata包括数字输入信号x(n)、x(n-1)、x(n-2)、y(n-1)以及y(n-2)和滤波系数b0,b1,b2,-a1以及-a2。
本公开实施例中,运算单元103接收到存储单元101发送的数字输入信号x(n)、x(n-1)、x(n-2)、y(n-1)以及y(n-2),和滤波系数b0,b1,b2,-a1以及-a2,利用滤波系数b0,b1,b2,-a1以及-a2对数字输入信号x(n)、x(n-1)、x(n-2)、y(n-1)以及y(n-2)进行滤波生成滤波结果,然后可以将滤波结果发送给存储单元101,并将滤波结果输出,其中,发送给存储单元101的滤波结果可以用wdata表示,输出的滤波结果可以用dout表示。需要说明的,滤波结果可以为y(n)=b0*x(n)+b1*x(n-1)+b2*x(n-2)-a1*y(n-1)-a2*y(n-2)。
本公开实施例中,存储单元101还可以接收运算指示单元102发送的第二指示信号wr_en。当存储单元101接收到运算指示单元102发送的第二指示信号wr_en后,可以根据第二指示信号wr_en,利用外部输入的数字输入信号din或滤波结果wdata更新存储单元101中存储数字输入信号的部分。需要说明的是,外部输入的数字信号din和滤波结果wdata可以存储到存储单元101的任意一个存储地址,一个外部输入的数字信号占用一个存储地址,一个滤波结果占用一个存储地址。
可以理解的是,采用本公开实施例的技术方案,运算指示单元102根据接收的滤波输入使能信号进行时钟计数,并根据计数结果向存储单元101发送第一指示信号和第二指示信号;存储单元101根据接收到的第一指示信号向运算单元103输出数字输入信号和滤波系数;运算单元103利用滤波系数对数字输入信号进行滤波生成滤波结果并输出;存储单元101还根据第二指示信号,利用外部输入的数字输入信号或滤波结果更新存储数字输入信号的部分。滤波器利用存储单元101存储数字输入信号和滤波系数,并通过运算指示单元102发送指示信号的方式调用数字输入信号和滤波系数,不仅减少了滤波器中的元器件数量,还大大降低了滤波器中的元器件之间的连线面积,从而减小了滤波器占用芯片的面积,对芯片面积的减小具有贡献。
图3为本公开实施例的一种滤波器的组成结构示意图二,图4为本公开实施例的一种时序示意图一,图5为本公开实施例的一种时序示意图二;下面结合图3、图4和图5进行示例说明。
如图3所示,所述存储单元101包括第一存储器1011以及第二存储器1012;
所述第一存储器1011,用于在所述滤波输入使能信号使能时,在一个计数周期内接收所述第一指示信号,并根据所述第一指示信号向所述运算单元103输出存储的所述数字输入信号;还用于在一个计数周期内接收所述第二指示信号,并根据所述第二指示信号接收所述外部输入的数字输入信号并存储在第一目标存储地址;其中,一次计数输出一个所述第一存储器1011的存储地址中的所述数字输入信号或存储一个所述外部输入的数字输入信号;
所述第二存储器1012,用于在所述滤波输入使能信号使能时,在一个计数周期内接收所述第一指示信号,并根据所述第一指示信号向所述运算单元103输出存储的所述滤波系数;其中,一次计数输出一个所述第二存储器1012的存储地址中的所述滤波系数;
所述运算单元103,用于在所述滤波输入使能信号使能时,在一个计数周期利用当前次计数获取的所述滤波系数对所述当前次计数获取的所述外部输入的数字输入信号或所述第一存储器1011存储的数字输入信号进行滤波,并在一个计数周期结束时生成所述滤波结果。
本公开实施例中,存储单元101包括第一存储器1011和第二存储器1012,第一存储器1011可以是数据存储器,用于存储数字输入信号;第二存储器1012可以是系数存储器,用于存储滤波系数。需要说明的是,第一存储器1011和第二存储器1012均可以是RAM。
需要说明的是,本公开实施例中,一个计数周期的计数次数可以与第一存储器1011中存储的数字输入信号的数量以及第二存储器1012中存储的滤波系数的数量相关。示例性的,当第一存储器1011中存储的数字输入信号的数量为4,第二存储器1012中存储的滤波系数的数量为5时,一个计数周期的计数次数可以为5。
还需要说明的是,本公开实施例中,运算指示单元102的运算使能信号可以用calc_en表示,计数使能信号表示运算指示单元102是否开启时钟计数;示例性的,当calc_en的取值为1(高电平)时,表示开启时钟计数,当calc_en的取值为0(低电平)时,表示不进行时钟计数。当滤波输入使能信号vld的取值为1(高电平),触发运算使能信号calc_en的取值为1(高电平)时运算指示单元102开始计数,当第一次计数时,计数结果calc_cnt的值为0。
还需要说明的是,本公开实施例中,第一指示信号可以是读使能信号,用rd_en表示,示例性的,当rd_en的取值为1(高电平),表示开启输出数据功能,对存储器中存储的数据按存储地址的顺序依次进行输出,一次计数输出一个存储地址中的数据;rd_en的取值为0(低电平),表示无法输出存储器中存储的数据;其中,存储器的首地址设为0,存储地址可以用rd_addr表示,第一存储器1011输出的数据可以用rdata表示。
本公开实施例中,第一存储器1011在滤波输入使能信号vld使能时(vld的取值为1时),在一个计数周期内接收运算指示单元102发送的第一指示信号rd_en,并根据第一指示信号rd_en向运算单元103输出存储的数字输入信号rdata,按照存储地址rd_addr的顺序一次计数输出一个第一存储器1011的存储地址中的数字输入信号。
示例性的,第一存储器1011的存储地址可以为0至3,第一存储器1011根据第一指示信号rd_en,在第二次计数时(calc_cnt的值为1时)输出存储地址0中的数字输入信号x(n-1),在第三次计数时(calc_cnt的值为2时)输出存储地址1中的数字输入信号x(n-2),在第四次计数时(calc_cnt的值为3时)输出存储地址2中的数字输入信号y(n-1),在第五次计数时(calc_cnt的值为4时)输出存储地址3中的数字输入信号y(n-2)。
需要说明的是,本公开实施例中,第一目标存储地址可以为第一存储器1011存储前一计数周期外部输入的数字输入信号x(n-1)的存储地址或前两计数周期外部输入的数字输入信号x(n-2)的存储地址,第一目标存储地址可以用wr_addr表示;示例性的,第一目标存储地址可以为第一存储器1011中的存储地址0或存储地址1。
本公开实施例中,示例性的,当计数结果calc_cnt的值为3时,第一存储器1011接收运算指示单元102发送的第二指示信号wr_en,此时,第一存储器1011的存储地址0和存储地址1中存储的数据输入信号已经向运算单元103输出,且第二指示信号wr_en的取值为1(高电平),第一存储器1011根据第二指示信号wr_en接收外部输入的数字输入信号din(x(n))并存储在目标存储地址wr_addr的存储地址0或存储地址1中,一次计数存储一个外部输入的数字输入信号din(x(n))。本公开实施例中,rf_wr_en表示将滤波系数存入第二存储器1012使能信号,rf_addr表示将滤波系数存入第二存储器1012的地址,rf_wdata表示输入的滤波系数。在运算指示单元102进行时钟计数开始之前,首先需要根据rf_wr_en、rf_addr以及rf_wdata将滤波系数b0,b1,b2,-a1以及-a2存入第二存储器1012中。
本公开实施例,第二存储器1012在滤波输入使能信号vld使能时(vld的取值为1时),在一个计数周期内开始接收第一指示信号rd_en,在接收到第一指示信号rd_en后根据第一指示信号rd_en向运算单元103输出存储的滤波系数b0,b1,b2,-a1以及-a2,按照存储地址的顺序一次计数输出一个第二存储器1012的存储地址中的滤波系数。
示例性的,第二存储器1012的存储地址为0至4,第二存储器1012根据第一指示信号rd_en,在首次计数时(calc_cnt的值为1时)输出存储地址0中的数字输入信号b0,并在接下来的每一次计数输出一个存储地址中的数字输入信号,至到输出第二存储器1012的存储地址0至4中的所有滤波系数b1,b2,-a1以及-a2。
本公开实施例中,运算单元103接收到的数字输入信号用mul1表示,接收到的滤波系数用mul2表示。运算单元103在滤波输入使能信号vld使能时(vld的取值为1时),在一个计数周期内,利用当前次计数获取的滤波系数b0,b1,b2,-a1或-a2对当前次计数获取的外部输入的数字输入信号x(n)或第一存储器1011存储的数字输入信号x(n-1)、x(n-2)、y(n-1)或y(n-2)进行滤波,并在计数周期结束时输出滤波结果y(n)。
示例性,运算单元103在一个计数周期内的首次计数(calc_cnt的值为0时)开始,利用首次获得的滤波系数b0对所述外部输入的数字输入信号x(n)进行滤波;第二次计数时(calc_cnt的值为1时)利用b1对x(n-1)进行滤波,第三次计数时(calc_cnt的值为2时)利用b2对x(n-2)进行滤波,第四次计数时(calc_cnt的值为3时)利用a1对y(n-1)进行滤波,第五次计数时(calc_cnt的值为4时)利用a2对y(n-2)进行滤波,最终得到的滤波结果可以为y(n)=b0*x(n)+b1*x(n-1)+b2*x(n-2)-a1*y(n-1)-a2*y(n-2)。
可以理解的是,采用本公开实施例的技术方案,将数字输入信号存储在第一存储器1011中,将滤波系数存储在第二存储器1012中,即将数字输入信号和滤波系数存储在不同的存储器中。第一存储器1011和第二存储器1012分别根据第一指示信号输出数字输入信号和滤波系数,并且在一个计数周期的一次计数中输出一个数字输入信号和一个滤波系数,从而运算单元103可以在一次计数中利用滤波系数对一个输入信号进行滤波,可以提高运算单元103的滤波速度,同时还可以减少运算单元103由于输入信号过多而导致的运算混乱的问题;此外,本公开实施例基于运算指示单元102利用时序控制对存储器的反复读写,在数据量增大时,也无需增加元器件数量,因而在不增大滤波器尺寸的基础上便于数据扩展。
在一些实施例中,所述滤波器还包括:第二选择器106;
所述第二选择器106,与所述存储单元101以及所述运算单元103进行电连接,用于接收所述外部输入的数字输入信号,以及所述运算单元103输出的所述滤波结果,并将所述外部输入的数字输入信号或所述滤波结果传输给所述存储单元101。
需要说明的是,第二选择器106接收使能信号,并根据接收的使能信号的取值选择接入的信号,当使能信号的取值为0时,选择器接收输入端口0输入的信号并输出;当使能信号的取值为1时,选择器接收输入端口1输入的信号并输出。
本公开实施例中,第二选择器106与存储单元101以及所述运算单元103进行电连接。第二选择器106接收的使能信号为滤波输入使能信号vld,当vld的取值为1时(高电平时),第二选择器106接收输入端口1输入的数字输入信号也就是外部输入的数字输入信号,并将外部输入的数字输入信号din(x(n))传输给存储单元101;当vld的取值为0(低电平),第二选择器106接收输入端口0输入的滤波结果wdata,并将滤波结果wdata传输给存储单元101。
可以理解的是,采用本公开实施例的技术方案,使用第二选择器106选择接收外部输入的数字输入信号或滤波结果,并将外部输入的数字输入信号或滤波结果传输给存储单元101,可以通过一个选择器实现多个信号的传输,进一步简化了滤波器的结构,减小了滤波器的面积。
在一些实施例中,所述第一存储器1011,还用于在下一个计数周期开始时,接收所述第二指示信号,并根据所述第二指示信号接收所述运算单元103输出的滤波结果并存储至所述第一目标存储地址之外的存储地址。
需要说明的是,本公开实施例中,第一目标存储地址之外的存储地址可以为第一存储器1011存储前一计数周期滤波结果y(n-1)的存储地址或前两计数周期滤波结果y(n-2)的存储地址,可以用wr_addr表示;示例性的,第一目标存储地址之外的存储地址可以为第一存储器1011中的存储地址2或存储地址3。
本公开实施例中,当下一个计数周期开始,计数结果calc_cnt的值为0时,第一存储器1011的存储地址2和存储地址3中存储的数据输入信号已经向运算单元103输出,此时,第一存储器1011接收运算指示单元102发送的第二指示信号wr_en,且第二指示信号wr_en的取值为1(高电平)时,第一存储器1011根据第二指示信号wr_en接收运算单元103输出的滤波结果wdata(y(n))并存储在目标存储地址wr_addr的存储地址2和存储地址3中。
可以理解的是,采用本公开实施例的技术方案,根据第二指示信号,将本次滤波的滤波结果存入第一存储器1011,可以使第一存储器1011中存储的数字输入信号及时得到更新,以便于滤波器进行下一次滤波计算。
在一些实施例中,所述滤波器还包括第一选择器104;
所述第一选择器104,与所述第一存储器1011以及所述运算单元103进行电连接,用于在所述滤波输入使能信号使能时,在一个计数周期内选择接收所述外部输入的数字输入信号或所述第一存储器1011输出的所述数字信号,并将选择接收的数据传输给所述运算单元103。
需要说明的是,第一选择器104接收使能信号,并根据接收的使能信号的取值选择接入的信号,当使能信号的取值为0(低电平)时,第一选择器104接收输入端口0输入的信号并输出;当使能信号的取值为1(高电平)时,第一选择器104接收输入端口1输入的信号并输出。
本公开实施例中,第一选择器104与第一存储器1011以及运算单元103进行电连接。第一选择器104接收的使能信号为滤波输入使能信号vld,在滤波输入使能信号vld使能时(vld的取值为1时),在一个计数周期内根据接收的滤波输入使能信号vld选择接收外部输入的数字输入信号x(n)或第一存储器1011存储的数字输入信号x(n-1)、x(n-2)、y(n-1)和y(n-2),并将选择接收的x(n)、x(n-1)、x(n-2)、y(n-1)以及y(n-2)之中的任意一个数据传输给运算单元103。
示例性的,第一选择器104在一个计数周期内的首次计数时,也就是calc_cnt等于0时,vld的取值为1(高电平),第一选择器104接收输入端口1输入的数字输入信号也就是外部输入的数字输入信号din,并将外部输入的数字输入信号传输给运算单元103;当在一个计数周期内的第二次计数开始,也就是calc_cnt大于等于1时,vld的取值为0(低电平),第一选择器104接收输入端口0输入的数字输入信号也就是第一存储器1011输出的数字输入信号rdata,并将第一存储器1011输出的数字输入信号rdata传输给运算单元103;其中,一次计数输出一个第一存储器1011的存储地址中的数字输入信号。
可以理解的是,采用本公开实施例的技术方案,使用第一选择器104选择接收第一存储器1011输出的数字输入信号或外部输入的数字输入信号,减少数据存储单元101存储的数据的数量,同时外部输入的数字输入信号通过选择其就可以直接输出给运算单元103,使滤波器的电路结构更加简单。
在一些实施例中,所述运算单元103包括:第一乘法器1031、第一加法器1032和第一寄存器1033;
所述第一乘法器1031,第一输入端与所述第一选择器104连接,第二输入端与所述第二存储器1012连接,输出端与所述第一加法器1032连接;用于通过所述第一输入端接收所述第一选择器104输出的所述数字输入信号,以及通过所述第二输入端接收所述第二存储器1012输出的所述滤波系数,并将所述数字输入信号与所述滤波系数相乘后的结果通过所述输出端输出给所述第一加法器1032;
所述第一加法器1032,与所述第一寄存器1033电连接,用于将接收的所述数字输入信号与所述滤波系数相乘后的结果,与所述第一寄存器1033反馈的中间结果相加后发送给所述第一寄存器1033;其中,所述第一寄存器1033反馈的中间结果为前一次所述第一加法器1032输出的结果;
所述第一寄存器1033,用于寄存所述中间结果并将所述中间结果反馈给所述第一加法器1032;还用于将一个计数周期完成后的滤波结果输出;其中,所述滤波结果为所述第一加法器1032一个计数周期完成后输出的结果。
本公开实施例中,第一乘法器1031的第一输入端与第一选择器104连接,接收第一选择器104输出的数字输入信号mul1,第一选择器104输出的数字输入信号mul1包括外部输入的数字输入信号x(n)和第一存储器1011输出的数字输入信号x(n-1)、x(n-2)、y(n-1)以及y(n-2)。
本公开实施例中,第一乘法器1031在一个计数周期内的首次计数(calc_cnt等于0时)接收外部输入的数字输入信号x(n),在一个计数周期内的第二次计数开始(calc_cnt大于等于1时)接收第一存储器1011输出的数字输入信号x(n-1)、x(n-2)、y(n-1)以及y(n-2),一次计数接收一个第一存储器1011的存储地址中的数字输入信号。
本公开实施例中,第一乘法器1031的第二输入端与第二存储器1012连接,接收第二存储器1012输出的滤波系数mul2,第二存储器1012输出的滤波系数mul2包括b0,b1,b2,-a1以及-a2。
本公开实施例中,第一乘法器1031在一个计数周期内的首次计数(calc_cnt等于0时)开始接收滤波系数;其中,一次计数接收一个第二存储器1012的存储地址中的滤波系数。
本公开实施例中,第一乘法器1031在一个计数周期内的首次计数(calc_cnt等于0时)开始,将当次接收到的数字输入信号与当次接收到的滤波系数相乘,得到一个相乘结果,并将当次计数相乘后的结果通过输出端输出给第一加法器1032。示例性的,首次计数(calc_cnt等于0时)相乘结果为b0*x(n),第二次计数(calc_cnt等于1时)相乘结果为b1*x(n-1),第三次计数(calc_cnt等于2时)相乘结果为b2*x(n-2),第四次计数(calc_cnt等于3时)相乘结果-a1*y(n-1),以及第五次计数(calc_cnt等于4时)相乘结果为-a2*y(n-2)。
本公开实施例中,第一加法器1032与第一寄存器1033电连接,首次计数时(calc_cnt等于0时)第一寄存器1033反馈的中间结果为0,第一加法器1032向第一寄存器1033输出的结果为result1=b0*x(n),第一寄存器1033寄存中间结果result1=b0*x(n);第二次计数时(calc_cnt等于1时),第一加法器1032接收第一乘法器1031发送的第二次计数相乘结果b1*x(n-1)以及第一寄存器1033反馈的中间结果result1=b0*x(n),并将result2=b0*x(n)+b1*x(n-1)发送给第一寄存器1033;第三次计数时(calc_cnt等于2时),第一加法器1032接收第一乘法器1031发送的第三次计数相乘结果b2*x(n-2)以及第一寄存器1033反馈的中间结果result2=b0*x(n)+b1*x(n-1),并将result3=b0*x(n)+b1*x(n-1)+b2*x(n-2)发送给第一寄存器1033;第四次计数时(calc_cnt等于3时),第一加法器1032接收第一乘法器1031发送的第四次计数相乘结果-a1*y(n-1)以及第一寄存器1033反馈的中间结果result3=b0*x(n)+b1*x(n-1)+b2*x(n-2),并将result4=b0*x(n)+b1*x(n-1)+b2*x(n-2)-a1*y(n-1)发送给第一寄存器1033;第五次计数时(calc_cnt等于4时),第一加法器1032接收第一乘法器1031发送的第五次计数相乘结果-a2*y(n-2)以及第一寄存器1033反馈的中间结果result4=b0*x(n)+b1*x(n-1)+b2*x(n-2)-a1*y(n-1),并将result5=b0*x(n)+b1*x(n-1)+b2*x(n-2)-a1*y(n-1)-a2*y(n-2)发送给第一寄存器1033。
本公开实施例中,一个计数周期总共进行5次计数,一个计数周期完成后的滤波结果为y(n)=b0*x(n)+b1*x(n-1)+b2*x(n-2)-a1*y(n-1)-a2*y(n-2)。
可以理解的是,采用本公开实施例的技术方案,通过第一乘法器1031将数字输入信号与滤波系数进行相乘,第一寄存器1033寄存中间结果,第一加法器1032将第一寄存器1033反馈的中间结果与第一乘法器1031输出的数字输入信号与所述滤波系数相乘后的结果进行相加,得到滤波结果并输出。通过第一乘法器1031、第一加法器1032以及第一寄存器1033的相互作用完成了滤波运算,可以在一个计数周期内完成滤波,提高了滤波器的滤波效率。
在一些实施例中,图6为本公开实施例的一种滤波器的组成结构示意图三;图7为本公开实施例的一种时序示意图三。下面结合图6和图7进行示例说明。所述存储单元101包括第三存储器1013以及第二寄存器1014和第三寄存器1015;
所述第三存储器1013,第一输出端与所述第二寄存器1014连接,第二输出端与所述第三寄存器1015连接;用于在所述滤波输入使能信号使能时,根据所述第一指示信号将存储的所述数字输入信号发送给所述第二寄存器1014;用于在一个计数周期内根据所述第二指示信号接收外部输入的所述数字输入信号并在所述第二目标存储地址;还用于根据所述第一指示信号将存储的所述滤波系数发送给所述第三寄存器1015。
本公开实施例中,存储单元101包括第三存储器1013以及第二寄存器1014和第三寄存器1015,第三存储器1013的第一输出端与第二寄存器1014连接,第二输出端与第三寄存器1015连接;第二寄存器1014用于寄存第三存储器1013输出的数字输入信号,第三寄存器1015用于寄存第三存储器1013输出的滤波系数。
需要说明的是,本公开实施例中,第一指示信号可以是读使能信号,用rd_en表示,示例性的,当rd_en的取值为1(高电平),表示开启输出数据功能,对存储器中存储的数据按存储地址的顺序依次进行输出,一次计数输出一个存储地址中的数据;rd_en的取值为0(低电平),表示无法输出存储器中存储的数据;其中,第三存储器1013的首地址设为0,存储地址可以用rd_addr表示,第三存储器1013输出的数据可以用rdata表示。
本公开实施例中,第三存储器1013在滤波输入使能信号vld使能时,在一个计数周期内接收运算指示单元102发送的第一指示信号rd_en,然后根据第一指示信号rd_en向第二寄存器1014发送存储的数字输入信号,或向第三寄存器1015发送滤波系数。
需要说明的是,本公开实施例中,第二目标存储地址可以为第三存储器1013存储前一计数周期外部输入的数字输入信号x(n-1)的存储地址或前两计数周期外部输入的数字输入信号x(n-2)的存储地址,第二目标存储地址可以用wr_addr表示;示例性的,第二目标存储地址可以为第三存储器1013中的存储地址0或存储地址1。
本公开实施例中,示例性的,当计数结果calc_cnt的值为7时,第三存储器1013接收运算指示单元102发送的第二指示信号wr_en,此时第三存储器1013的存储地址0和存储地址1中存储的数据输入信号已经输出,且第二指示信号wr_en的取值为1(高电平),第三存储器1013根据第二指示信号wr_en接收外部输入的数字输入信号din(x(n))并存储在第二目标存储地址wr_addr的存储地址0或存储地址1中。
可以理解的是,采用本公开实施例的技术方案,基于运算指示单元102输出的第一指示信号利用时序控制对第三存储器1013的反复读写,在数据量增大时,也无需增加元器件数量,因而在不增大滤波器尺寸的基础上便于数据扩展。
在一些实施例中,所述第三存储器1013包括用于存储所述数字输入信号的第一存储部分10131、存储所述滤波系数的第二存储部分10132;
所述第三存储器1013,用于在一个计数周期内的第一预定类型次计数时,根据所述第一指示信号向所述第二寄存器1014输出所述第一存储部分10131存储的所述数字输入信号;其中,一次计数输出一个所述数字输入信号;
所述第二寄存器1014,用于在当前次计数的下一次计数时将寄存的所述数字输入信号输出给所述运算单元103;
所述第三存储器1013,还用于在一个计数周期内的第二预定类型次计数时,根据所述第一指示信号向所述第三寄存器1015输出所述第二存储部分10132存储的所述滤波系数;其中,一次计数输出一个所述滤波系数;
所述第三寄存器1015,用于在当前次计数的下一次计数时将寄存的所述滤波系数输出给所述运算单元103;
所述运算单元103,用于在一个计数周期内利用当前次计数获得的所述滤波系数对所述数字输入信号进行滤波,生成所述滤波结果。
本公开实施例中,第三存储器1013包括第一存储部分10131和第二存储部分10132,第一存储部分10131可以是数据存储部分,用于存储数字输入信号,第二存储部分10132可以是系数存储部分,用于存储滤波系数。
需要说明的是,本公开实施例中,一个计数周期的计数次数可以与存储器中第一存储部分10131中存储的数字输入信号的数量以及第二存储部分10132中存储的滤波系数的数量相关。示例性的,当第一存储部分10131中存储的数字输入信号的数量为5,第二存储部分10132中存储的滤波系数的数量为5时,一个计数周期的计数次数可以为10。
还需要说明的是,本公开实施例中,运算指示单元102的运算使能信号可以用calc_en表示,计数使能信号表示运算指示单元102是否开启时钟计数,示例性的,当calc_cnt的取值为1(高电平)时,表示开启时钟计数,当calc_en的取值为0(低电平)时,表示不进行时钟计数。当滤波输入使能信号vld的取值为1(高电平),且运算使能信号calc_en的取值为1(高电平)时运算指示单元102开始计数,当第一次计数时,计数结果calc_cnt的值为0。
还需要说明的是,本公开实施例中,第一指示信号可以是读使能信号,用rd_en表示,示例性的,当rd_en的取值为1(高电平),表示开启输出数据功能,一次计数输出一个存储地址中的数据;rd_en的取值为0(低电平),表示无法输出存储单元101中存储的数据;其中,第三存储器1013的首地址设为0,存储地址可以用rd_addr表示。
还需要说明的是,本公开实施例中,第一预定类型次计数可以是奇数次计数也可以是偶数次计数;同样的,第二预定类型次计数可以是奇数次计数也可以是偶数次计数;在此不做限定。本公开实施例中,当第一预定类型次计数是奇数次计数时,第三存储器1013在一个计数周期内的第一次计数开始(calc_cnt的值为0时)的奇数次计数(calc_cnt的值为0、2、4、6以及8时)接收运算指示单元102发送的第一指示信号rd_en,根据第一指示信号rd_en向第二寄存器1014输出存储的数字输入信号,按照存储地址rd_addr的顺序一次计数输出一个第一存储部分10131的存储地址中的数字输入信号。
示例性的,第三存储器1013中第一存储部分10131的存储地址为0至4,第三存储器1013根据第一指示信号rd_en,在第一次计数时(calc_cnt的值为0时)向第二寄存器1014输出存储地址0中的数字输入信号x(n),在第三次计数时(calc_cnt的值为2时)向第二寄存器1014输出存储地址1中的数字输入信号x(n-1),在第五次计数时(calc_cnt的值为4时)向第二寄存器1014输出存储地址2中的数字输入信号x(n-2),在第七次计数时(calc_cnt的值为6时)向第二寄存器1014输出存储地址3中的数字输入信号y(n-1),在第九次计数时(calc_cnt的值为8时)向第二寄存器1014输出存储地址4中的数字输入信号y(n-2)。
需要说明的是,本公开实施例中,第二寄存器1014可以根据使能信号data_en写入第三存储器1013输出的数字输入信号,示例性的,当data_en的取值为1(高电平),表示开启写入数据功能,一次计数写入一个第三存储器1013输出的数字输入信号;data_en的取值为0(低电平),表示无法将第三存储器1013输出的数字输入信号写入第二寄存器1014中。
本公开是实施例中,第二寄存器1014(对应图6中的data_reg)在当前次计数的下一次计数时将寄存的所述数字输入信号输出给所述运算单元103。
示例性的,第二寄存器1014在第二次计数时(calc_cnt的值为1时)将数字输入信号x(n)输出给运算单元103,在第四次计数时(calc_cnt的值为3时)将数字输入信号x(n-1)输出给运算单元103,在第六次计数时(calc_cnt的值为5时)将数字输入信号x(n-2)输出给运算单元103,在第八次计数时(calc_cnt的值为7时)将数字输入信号y(n-1)输出给运算单元103,在第十次计数时(calc_cnt的值为9时)将数字输入信号y(n-2)输出给运算单元103。
本公开实施例中,rf_wr_en表示将滤波系数存入第二存储部分10132的使能信号,rf_addr表示将滤波系数存入第二存储部分10132的地址,rf_wdata表示滤波系数。在运算指示单元102进行时钟计数开始之前,首先需要根据rf_wr_en、rf_addr以及rf_wdata将滤波系数b0,b1,b2,-a1以及-a2存入第二存储部分10132中在第三存储器1013中的存储地址5至9。
本公开实施例,当第二预定类型次计数是偶数次计数时,第三存储器1013在一个计数周期内的第一次计数(calc_cnt的值为0时)开始接收第一指示信号rd_en,在接收到第一指示信号rd_en后,在一个计数周期内的第一次计数开始的偶数次计数时(calc_cnt的值为1、3、5、7以及9时)根据第一指示信号rd_en向第三寄存器1015输出存储的滤波系数b0,b1,b2,-a1以及-a2,按照存储地址的顺序一次计数输出一个第二存储部分10132的存储地址中的滤波系数。
示例性的,第三存储器1013中第二存储部分10132的存储地址为5至9,第二存储部分10132根据第一指示信号rd_en,在第二次计数时(calc_cnt的值为1时)向第三寄存器1015输出存储地址5中的数字输入信号b0,在第四次计数时(calc_cnt的值为3时)向第三寄存器1015输出存储地址6中的数字输入信号b1,在第六次计数时(calc_cnt的值为5时)向第三寄存器1015输出存储地址7中的数字输入信号b2,在第八次计数时(calc_cnt的值为7时)向第三寄存器1015输出存储地址8中的数字输入信号-a1,在第十次计数时(calc_cnt的值为9时)向第三寄存器1015输出存储地址9中的数字输入信号-a2。
需要说明的是,本公开实施例中,第三寄存器1015可以根据使能信号coeff_en写入第三存储器1013输出的滤波系数,示例性的,当coeff_en的取值为1(高电平),表示开启写入数据功能,一次计数写入一个第三存储器1013输出的滤波系数;coeff_en的取值为0(低电平),表示无法将第三存储器1013输出的滤波系数写入第二寄存器1014中。
本公开是实施例中,第三寄存器1015(对应于图6中的coeff_reg)在当前次计数的下一次计数时将寄存的滤波系数输出给运算单元103。
示例性的,第三寄存器1015在第三次计数时(calc_cnt的值为2时)将滤波系数b0(对应于图7中的coeff1)输出给运算单元103,在第五次计数时(calc_cnt的值为4时)将滤波系数b1(对应于图7中的coeff2)输出给运算单元103,在第七次计数时(calc_cnt的值为6时)将滤波系数b2(对应于图7中的coeff3)输出给运算单元103,在第九次计数时(calc_cnt的值为8时)将滤波系数-a1(对应于图7中的coeff4)输出给运算单元103,在下一计数周期开始计数时(calc_cnt的值为0时)将滤波系数-a2(对应于图7中的coeff5)输出给运算单元103。
本公开实施例中,运算单元103,在一个计数周期内的利用当次获得的滤波系数对数字输入信号进行滤波。
示例性的,当calc_cnt的值为2时,运算单元103利用b0对数字输入信号x(n)进行滤波,当calc_cnt的值为4时,运算单元103利用b1对x(n-1)进行滤波,当calc_cnt的值为6时,运算单元103利用b2对x(n-2)进行滤波,当calc_cnt的值为8时,运算单元103利用a1对y(n-1)进行滤波以及本次计数结束,calc_cnt的值为0时,运算单元103利用a2对y(n-2)进行滤波,生成的滤波结果可以为y(n)=b0*x(n)+b1*x(n-1)+b2*x(n-2)-a1*y(n-1)-a2*y(n-2)。
可以理解的是,采用本公开实施例的技术方案,利用第二寄存器1014和第三寄存器1015分别对数字输入信号和滤波系数进行寄存,可以使存储在第三存储器1013中的数字输入信号和滤波系数按照计数顺序输出,从而运算单元103可以在一次计数中利用滤波系数对一个数据输入信号进行滤波,可以避免由于输入信号过多而导致的运算混乱,并及时对数字输入信号进行滤波。
在一些实施例中,所述第三存储器1013,还用于在下一个计数周期开始时,接收所述第二指示信号,并根据所述第二指示信号接收所述运算单元103输出的滤波结果并存储至所述第二目标存储地址之外的存储地址。
需要说明的是,本公开实施例中,第二目标存储地址之外的地址可以为第三存储器1013存储前一计数周期滤波结果y(n-1)的存储地址或前两计数周期滤波结果y(n-2)的存储地址,目标存储地址可以用wr_addr表示;示例性的,第二目标存储地址之外的地址可以为第一存储部分10131中的存储地址2或存储地址3。
本公开实施例中,当下一个计数周期开始,计数结果calc_cnt的值为0时,第三存储器1013的存储地址2和存储地址3中存储的数据输入信号已经向运算单元103输出,此时,第三存储器1013接收接收运算指示单元102发送的第二指示信号wr_en,且第二指示信号wr_en的取值为1(高电平),第一存储器1011根据第二指示信号wr_en接收运算单元103输出的滤波结果wdata(y(n))并存储在目标存储地址wr_addr的存储地址2和存储地址3中。
可以理解的是,采用本公开实施例的技术方案,根据第二指示信号,将外部输入的数字输入信号和本次滤波的滤波结果写入第三存储器1013,使第三存储器1013中存储的数字输入信号及时得到更新,以便于滤波器进行下一次滤波计算。
在一些实施例中,所述运算单元103包括:第二乘法器1034、第二加法器1035和第四寄存器1036;
所述第二乘法器1034,第一输入端与所述第二寄存器1014连接,第二输入端与所述第三寄存器1015连接,输出端与所述第二加法器1035连接;用于通过所述第一输入端接收所述第二寄存器1014输出的所述数字输入信号,以及通过所述第二输入端接收所述第三寄存器1015输出的所述滤波系数,并将所述数字输入信号与所述滤波系数相乘后的结果通过所述输出端输出给所述第二加法器1035;
所述第二加法器1035,与所述第四寄存器1036电连接,用于将接收的所述数字输入信号与所述滤波系数相乘后的结果,与所述寄存器反馈的中间结果相加后发送给所述第四寄存器1036;其中,所述寄存器反馈的中间结果为前一次所述第二加法器1035输出的结果;
所述第四寄存器1036,用于寄存所述中间结果并将所述中间结果反馈给所述第二加法器1035;还用于将一个计数周期完成后的滤波结果输出;其中,所述滤波结果为所述第二加法器1035一个计数周期完成后输出的结果。
需要说明的是,本公开实施例中,第四寄存器1036可以根据使能信号result_en进行累加运算。示例性的,当result_en的取值为1(高电平),表示开启累加功能,一次计数进行一次累加运算;data_en的取值为0(低电平),表示不进行累加运算。
本公开实施例中,第二乘法器1034的第一输入端与第二寄存器1014连接,接收第二寄存器1014输出的数字输入信号mul1,选择器输出的数字输入信号mul1包括数字输入信号x(n)、x(n-1)、x(n-2)、y(n-1)以及y(n-2)。
本公开实施例中,第二乘法器1034在一个计数周期内的首次计数(calc_cnt等于0时)的偶数次计数(calc_cnt的值为1、3、5、7以及9时),接收第二寄存器1014输出的数字输入信号mul1。
示例性的,第二乘法器1034在第二次计数时(calc_cnt的值为1时)接收数字输入信号x(n),在第四次计数时(calc_cnt的值为3时)接收数字输入信号x(n-1),在第六次计数时(calc_cnt的值为5时)接收数字输入信号x(n-2),在第八次计数时(calc_cnt的值为7时)接收数字输入信号y(n-1),在第十次计数时(calc_cnt的值为9时)接收数字输入信号y(n-2)。
本公开实施例中,第二乘法器1034的第二输入端与第四寄存器1036(图6中的result_reg)连接,接收第四寄存器1036输出的滤波系数mul2,第四寄存器1036输出的滤波系数mul2包括b0,b1,b2,-a1以及-a2。
本公开实施例中,第二乘法器1034在一个计数周期内的第三次计数(calc_cnt等于0时)开始奇数次计数(calc_cnt的值为2、4、6、8以及下一个技术周期calc_cnt的值为0时),接收第三寄存器1015输出的数字输入信号mul2。
示例性的,第二乘法器1034在第三次计数时(calc_cnt的值为2时)接收滤波系数b0,在第五次计数时(calc_cnt的值为4时)接收滤波系数b1,在第七次计数时(calc_cnt的值为6时)接收滤波系数b2,在第九次计数时(calc_cnt的值为8时)接收滤波系数a1,在下一计数周期开始计数时(calc_cnt的值为0时)接收滤波系数a2。
本公开实施例中,第二乘法器1034在一个计数周期内的第三次计数(calc_cnt等于2时)开始,将当次接收到的数字输入信号与当次接收到的滤波系数相乘,得到一个相乘结果,并将当次计数相乘后的结果通过输出端输出给第二加法器1035。示例性的,第三次计数时(calc_cnt等于2时)相乘结果为b0*x(n),第五次计数时(calc_cnt等于4时)相乘结果为b1*x(n-1),第七次计数时(calc_cnt等于6时)相乘结果为b2*x(n-2),第九次计数时(calc_cnt等于8时)相乘结果-a1*y(n-1),以及下一计数周期开始计数时(calc_cnt的值为0时)相乘结果为-a2*y(n-2)。
本公开实施例中,第二加法器1035与第四寄存器1036电连接,第三次计数时(calc_cnt等于2时)第四寄存器1036反馈的中间结果为0,第二加法器1035向第四寄存器1036输出的结果为result1=b0*x(n),第四寄存器1036寄存中间结果result1=b0*x(n);第五次计数时(calc_cnt等于4时),第二加法器1035接收第二乘法器1034发送的第二次计数相乘结果b1*x(n-1)以及第四寄存器1036反馈的中间结果result1=b0*x(n),并将result2=b0*x(n)+b1*x(n-1)发送给第四寄存器1036;第七次计数时(calc_cnt等于6时),第二加法器1035接收第二乘法器1034发送的第三次计数相乘结果b2*x(n-2)以及第四寄存器1036反馈的中间结果result2=b0*x(n)+b1*x(n-1),并将result3=b0*x(n)+b1*x(n-1)+b2*x(n-2)发送给第四寄存器1036;第九次计数时(calc_cnt等于8时),第二加法器1035接收第二乘法器1034发送的第四次计数相乘结果-a1*y(n-1)以及第四寄存器1036反馈的中间结果result3=b0*x(n)+b1*x(n-1)+b2*x(n-2),并将result4=b0*x(n)+b1*x(n-1)+b2*x(n-2)-a1*y(n-1)发送给第四寄存器1036;下一周期开始计数(calc_cnt等于0时),第二加法器1035接收第二乘法器1034发送的第五次计数相乘结果-a2*y(n-2)以及第四寄存器1036反馈的中间结果result4=b0*x(n)+b1*x(n-1)+b2*x(n-2)-a1*y(n-1),并将result5=b0*x(n)+b1*x(n-1)+b2*x(n-2)-a1*y(n-1)-a2*y(n-2)发送给第四寄存器1036。
本公开实施例中,一个计数周期总共进行10次计数,一个计数周期完成后的滤波结果为y(n)=b0*x(n)+b1*x(n-1)+b2*x(n-2)-a1*y(n-1)-a2*y(n-2)。
可以理解的是,采用本公开实施例的技术方案,通过第二乘法器1034将数字输入信号与滤波系数进行相乘,第四寄存器1036寄存中间结果,第二加法器1035将第四寄存器1036反馈的中间结果与第二乘法器1034输出的数字输入信号与所述滤波系数相乘后的结果进行相加,得到滤波结果并输出。通过第二乘法器1034、第二加法器1035以及第二寄存器1014的相互作用完成了滤波运算,可以在一个计数周期内完成滤波,提高了滤波器的滤波效率。
在一些实施例中,所述滤波器还包括:旁路选择单元105;
所述旁路选择单元105,与所述运算单元103电连接,用于接收所述运算单元103输出的所述滤波结果;并根据旁路使能信号,输出所述滤波结果。
本公开实施例中,旁路使能信号用enable表示;当enable的取值为0(低电平)时,选择器接收输入端口0输入的数字输入信号并输出;当enable的取值为1(高电平)时,选择器接收输入端口1输入的滤波结果并输出。
可以理解的是,采用本公开实施例的技术方案,旁路选择单元105根据旁路使能信号选择输出数字输入信号或滤波结果,可以根据实际是否需要对输入信号进行滤波输出数据,使滤波器可以完成是否进行滤波的功能的转换,使滤波器除了滤波功能还具有了数据转发功能,增加了滤波器的功能。
本公开所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本公开所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本公开所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本公开各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种滤波器,其特征在于,所述滤波器包括:存储单元、运算指示单元和运算单元;其中,
所述运算指示单元,与所述存储单元电连接,用于接收滤波输入使能信号,根据所述滤波输入使能信号进行时钟计数,并根据计数结果向所述存储单元发送第一指示信号和第二指示信号;
所述存储单元,与所述运算单元电连接,用于根据所述第一指示信号向所述运算单元输出存储的数字输入信号和滤波系数;
所述运算单元,用于利用所述滤波系数对所述数字输入信号进行滤波后生成滤波结果并输出;
所述存储单元,还用于根据所述第二指示信号,利用外部输入的数字输入信号或所述滤波结果更新存储所述数字输入信号的部分;
其中,所述存储单元包括第三存储器以及第二寄存器和第三寄存器;所述第三存储器,第一输出端与所述第二寄存器连接,第二输出端与所述第三寄存器连接;用于在所述滤波输入使能信号使能时,根据所述第一指示信号将存储的所述数字输入信号发送给所述第二寄存器;用于在一个计数周期内根据所述第二指示信号接收外部输入的所述数字输入信号并存储在第二目标存储地址;还用于根据所述第一指示信号将存储的所述滤波系数发送给所述第三寄存器。
2.根据权利要求1所述的滤波器,其特征在于,所述存储单元包括第一存储器以及第二存储器;
所述第一存储器,用于在所述滤波输入使能信号使能时,在一个计数周期内接收所述第一指示信号,并根据所述第一指示信号向所述运算单元输出存储的所述数字输入信号;还用于在一个计数周期内接收所述第二指示信号,并根据所述第二指示信号接收所述外部输入的数字输入信号并存储在第一目标存储地址;其中,一次计数输出一个所述第一存储器的存储地址中的所述数字输入信号或存储一个所述外部输入的数字输入信号;
所述第二存储器,用于在所述滤波输入使能信号使能时,在一个计数周期内接收所述第一指示信号,并根据所述第一指示信号向所述运算单元输出存储的所述滤波系数;其中,一次计数输出一个所述第二存储器的存储地址中的所述滤波系数;
所述运算单元,用于在所述滤波输入使能信号使能时,在一个计数周期内利用当前次计数获取的所述滤波系数对所述当前次计数获取的所述外部输入的数字输入信号或所述第一存储器存储的数字输入信号进行滤波,并在一个计数周期结束时生成所述滤波结果。
3.根据权利要求2所述的滤波器,其特征在于,
所述第一存储器,还用于在下一个计数周期开始时,接收所述第二指示信号,并根据所述第二指示信号接收运算器输出的滤波结果并存储至所述第一目标存储地址之外的存储地址,以更新所述第一存储器中存储所述数字输入信号的部分。
4.根据权利要求2所述的滤波器,其特征在于,所述滤波器还包括第一选择器;
所述第一选择器,与所述第一存储器以及所述运算单元进行电连接,用于在所述滤波输入使能信号使能时,在一个计数周期内选择接收所述外部输入的数字输入信号或所述第一存储器输出的所述数字输入信号,并将选择接收的数据传输给所述运算单元。
5.根据权利要求4所述的滤波器,其特征在于,所述运算单元包括:第一乘法器、第一加法器和第一寄存器;
所述第一乘法器,第一输入端与所述第一选择器连接,第二输入端与所述第二存储器连接,输出端与所述第一加法器连接;用于通过所述第一输入端接收所述选择器输出的所述数字输入信号,以及通过所述第二输入端接收所述第二存储器输出的所述滤波系数,并将所述数字输入信号与所述滤波系数相乘后的结果通过所述输出端输出给所述第一加法器;
所述第一加法器,与所述第一寄存器电连接,用于将接收的所述数字输入信号与所述滤波系数相乘后的结果,与所述第一寄存器反馈的中间结果相加后发送给所述第一寄存器;其中,所述第一寄存器反馈的中间结果为前一次所述第一加法器输出的结果;
所述第一寄存器,用于寄存所述中间结果并将所述中间结果反馈给所述第一加法器;还用于将一个计数周期完成后的滤波结果输出;其中,所述滤波结果为所述第一加法器一个计数周期完成后输出的结果。
6.根据权利要求1所述的滤波器,其特征在于,所述第三存储器包括用于存储所述数字输入信号的第一存储部分、存储所述滤波系数的第二存储部分;
所述第三存储器,用于在一个计数周期内的第一预定类型次计数时,根据所述第一指示信号向所述第二寄存器输出所述第一存储部分存储的所述数字输入信号;其中,一次计数输出一个所述数字输入信号;
所述第二寄存器,用于在当前次计数的下一次计数时将寄存的所述数字输入信号输出给所述运算单元;
所述第三存储器,还用于在一个计数周期内的第二预定类型次计数时,根据所述第一指示信号向所述第三寄存器输出所述第二存储部分存储的所述滤波系数;其中,一次计数输出一个所述滤波系数;
所述第三寄存器,用于在当前次计数的下一次计数时将寄存的所述滤波系数输出给所述运算单元;
所述运算单元,用于在一个计数周期内利用当前次计数获得的所述滤波系数对所述数字输入信号进行滤波,生成所述滤波结果。
7.根据权利要求6所述的滤波器,其特征在于,
所述第三存储器,还用于在下一个计数周期开始时,接收所述第二指示信号,并根据所述第二指示信号接收所述运算单元输出的滤波结果并存储至所述第二目标存储地址之外的存储地址。
8.根据权利要求7所述的滤波器,其特征在于,所述运算单元包括:第二乘法器、第二加法器和第四寄存器;
所述第二乘法器,第一输入端与所述第二寄存器连接,第二输入端与所述第三寄存器连接,输出端与所述第二加法器连接;用于通过所述第一输入端接收所述第二寄存器输出的所述数字输入信号,以及通过所述第二输入端接收所述第三寄存器输出的所述滤波系数,并将所述数字输入信号与所述滤波系数相乘后的结果通过所述输出端输出给所述第二加法器;
所述第二加法器,与所述第四寄存器电连接,用于将接收的所述数字输入信号与所述滤波系数相乘后的结果,与所述寄存器反馈的中间结果相加后发送给所述第四寄存器;其中,所述寄存器反馈的中间结果为前一次所述第二加法器输出的结果;
所述第四寄存器,用于寄存所述中间结果并将所述中间结果反馈给所述第二加法器;还用于将一个计数周期完成后的滤波结果输出;其中,所述滤波结果为所述第二加法器一个计数周期完成后输出的结果。
9.根据权利要求1所述的滤波器,其特征在于,所述滤波器还包括:旁路选择单元;
所述旁路选择单元,与所述运算单元电连接,用于接收所述运算单元输出的所述滤波结果;并根据旁路使能信号,输出所述滤波结果。
10.根据权利要求1所述的滤波器,其特征在于,所述滤波器还包括:第二选择器;
所述第二选择器,与所述存储单元以及所述运算单元进行电连接,用于接收所述外部输入的数字输入信号,以及所述运算单元输出的所述滤波结果,并将所述外部输入的数字输入信号或所述滤波结果传输给所述存储单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210804161.0A CN115102524B (zh) | 2022-07-07 | 2022-07-07 | 一种滤波器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210804161.0A CN115102524B (zh) | 2022-07-07 | 2022-07-07 | 一种滤波器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115102524A CN115102524A (zh) | 2022-09-23 |
CN115102524B true CN115102524B (zh) | 2023-08-08 |
Family
ID=83296143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210804161.0A Active CN115102524B (zh) | 2022-07-07 | 2022-07-07 | 一种滤波器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115102524B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154937A (zh) * | 2006-09-28 | 2008-04-02 | 雅马哈株式会社 | 数字滤波器 |
CN101174822A (zh) * | 2007-09-11 | 2008-05-07 | 上海广电(集团)有限公司中央研究院 | 一种半并行滤波器及其实现方法 |
CN201122938Y (zh) * | 2007-11-05 | 2008-09-24 | 深圳艾科创新微电子有限公司 | 一种音频增量总和dac中插零数字滤波器的结构 |
CN101350683A (zh) * | 2008-09-22 | 2009-01-21 | 北京理工大学 | 一种数字方法实现的预加重滤波器 |
CN202385063U (zh) * | 2011-09-27 | 2012-08-15 | 深圳市蓝韵实业有限公司 | 基于fpga实现的数字滤波器 |
CN102739195A (zh) * | 2012-06-06 | 2012-10-17 | 华为技术有限公司 | 一种fir滤波器的处理方法、装置和系统 |
CN105245202A (zh) * | 2015-10-23 | 2016-01-13 | 厦门科灿信息技术有限公司 | 一种数字滑动平均低通滤波器及其滤波方法 |
CN106549650A (zh) * | 2016-12-07 | 2017-03-29 | 西安电子科技大学 | 一种基于fpga的高阶fir滤波器的实现方法 |
CN114142831A (zh) * | 2021-11-30 | 2022-03-04 | 珠海一微半导体股份有限公司 | 一种具备计数功能的fir滤波器 |
CN114448390A (zh) * | 2022-04-02 | 2022-05-06 | 浙江芯昇电子技术有限公司 | 一种Biquad数字滤波器装置及实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110492867B (zh) * | 2019-09-27 | 2020-06-05 | 珠海市一微半导体有限公司 | 一种用数字电路实现的插值滤波器系统 |
-
2022
- 2022-07-07 CN CN202210804161.0A patent/CN115102524B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154937A (zh) * | 2006-09-28 | 2008-04-02 | 雅马哈株式会社 | 数字滤波器 |
CN101174822A (zh) * | 2007-09-11 | 2008-05-07 | 上海广电(集团)有限公司中央研究院 | 一种半并行滤波器及其实现方法 |
CN201122938Y (zh) * | 2007-11-05 | 2008-09-24 | 深圳艾科创新微电子有限公司 | 一种音频增量总和dac中插零数字滤波器的结构 |
CN101350683A (zh) * | 2008-09-22 | 2009-01-21 | 北京理工大学 | 一种数字方法实现的预加重滤波器 |
CN202385063U (zh) * | 2011-09-27 | 2012-08-15 | 深圳市蓝韵实业有限公司 | 基于fpga实现的数字滤波器 |
CN102739195A (zh) * | 2012-06-06 | 2012-10-17 | 华为技术有限公司 | 一种fir滤波器的处理方法、装置和系统 |
CN105245202A (zh) * | 2015-10-23 | 2016-01-13 | 厦门科灿信息技术有限公司 | 一种数字滑动平均低通滤波器及其滤波方法 |
CN106549650A (zh) * | 2016-12-07 | 2017-03-29 | 西安电子科技大学 | 一种基于fpga的高阶fir滤波器的实现方法 |
CN114142831A (zh) * | 2021-11-30 | 2022-03-04 | 珠海一微半导体股份有限公司 | 一种具备计数功能的fir滤波器 |
CN114448390A (zh) * | 2022-04-02 | 2022-05-06 | 浙江芯昇电子技术有限公司 | 一种Biquad数字滤波器装置及实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115102524A (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102739195B (zh) | 一种fir滤波器的处理方法、装置和系统 | |
CN111337890B (zh) | 一种lfmcw雷达目标回波信号模拟方法 | |
US20070052557A1 (en) | Shared memory and shared multiplier programmable digital-filter implementation | |
JPH01310433A (ja) | 倍密度走査用ラインメモリ | |
CN115102524B (zh) | 一种滤波器 | |
CN109976660A (zh) | 基于线性插值的任意重采样算法和数据采样系统 | |
CN203617974U (zh) | 一种基于fpga的可配置系数的滤波器及电子设备 | |
CN100550622C (zh) | 带有下采样功能的数字信号滤波装置及方法 | |
US6282623B1 (en) | Method for digital signal processing, DSP, mobile communication and audi o-device | |
CN110968538B (zh) | 一种数据缓冲方法和装置 | |
JPH07253965A (ja) | 積和演算器 | |
US7072998B2 (en) | Method and system for optimized FIFO full conduction control | |
CN115640048A (zh) | 基于双口ram实现抽头移位寄存器的方法及相关设备 | |
CN112035391B (zh) | 用于串行通信的接口装置、方法、电子设备 | |
CN114142831A (zh) | 一种具备计数功能的fir滤波器 | |
CN103853675B (zh) | 一种访问内存的方法和设备 | |
JP2856064B2 (ja) | ディジタルフィルタ | |
US6065127A (en) | Multi-mode buffer for digital signal processor | |
US20130100757A1 (en) | Dual-Port Memory and a Method Thereof | |
US20090300089A1 (en) | Finite impulse response filter and method | |
CN108900177A (zh) | 一种fir滤波器及其对数据进行滤波的方法 | |
CN117420342B (zh) | 多通道采集方法、装置、系统、fpga及采样示波器 | |
CN117997311A (zh) | Fir滤波器的滤波方法、fir滤波器及电子设备 | |
US6101583A (en) | Digital signal processor for delayed signal processing using memory shared with another device | |
JP2000347929A (ja) | メモリic |
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 |