一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种Biquad数字滤波器装置及实现方法与流程

2022-05-08 05:22:13 来源:中国专利 TAG:

一种biquad数字滤波器装置及实现方法
技术领域
1.本发明涉及数字信号处理领域,尤其涉及一种biquad数字滤波器装置及实现方法。


背景技术:

2.双二阶滤波器(即biquad滤波器)是一种常见的滤波器,被广泛地应用于数字音频信号处理,以及其他工程控制领域,如飞行控制技术中的陀螺仪滤波,以及手机光学防抖等。
3.biquad数字滤波器是一种特殊的二阶iir滤波器(具有两个极点和两个零点),biquad数字滤波器有多种形式,其中最为常用的是二阶差分方程的方式:,也被称之为直接i型。在上述二阶差分方程中,b0、b1、b2、a1和a2为iir滤波器的系数,这些系数是提前由算法仿真确定;、和为输入信号,其中,为当前时刻的输入信号,为前一个时刻的输入信号,为前两个时刻的输入信号;、和为输出信号,为当前时刻的输出信号,为前一个时刻的输出信号,为前两个时刻的输出信号。
4.如图1中所示,为一个典型的biquad数字滤波器示意图,其表示直接i型的逻辑运算结构,该结构包含五个乘法器、四个延迟单元和一个加法器,该结构具有单个求和点的特性,因此,可易于实现在定点计算时的中间过程值的溢出控制。
5.此外,若需要设计一个截止频率更高的滤波器,可以采用两个或者多个biquad滤波器级联的方式,相比于单个多阶的iir滤波器,采用了级联方式的biquad滤波器结构将可以显著地降低滤波器对抽头系数的敏感性。例如,一个双二阶低通滤波器有12db/octave斜度的截止频点,可以用于音调控制;如果需要设计一个24db/octave的斜度,可以级联两个双二阶滤波器,这个结构比一个单4阶滤波器对参数更不敏感。因此,biquad滤波器还常被用作为更复杂滤波器的基本构建单元,如图2中所示,为一个四级biquad滤波器级联的滤波器结构。从图2中的四级biquad滤波器级联的滤波器结构可以看出,这样的结构中将存在大量的乘法器、延时单元和加法器,不利于硬件结构的小型化和集成化。目前,也有多级biquad滤波器复用一个biquad单元块的结构,如图3中所示,为两级单通道biquad运算结构,采用时分复用的方式,增加多路选择控制逻辑,选择当前通路的信号源、中间运算缓存以及滤波器的系数,图3中同时给出了相对于系统时钟clock,多路选择器输入信号q的状态信号时序图,多路选择器输入信号q的状态在系统时钟的每个周期之间在0和1之间交替。在图3中所示的结构中,包含有多个多路选择器及其控制逻辑,占用了较多的运算资源,且这样的结构中,其时序是固定的,仅适用于两级biquad滤波器的情况,并不适用于其他多级结构。
6.在很多应用场景中,通常需要多通道的并行滤波处理,例如,音频滤波时需要处理
左右声道(l/r-channel),陀螺仪(gyroscope)需要处理x、y以及z轴的信号。各通道的输入信号各不相同,各通道的滤波器系数也可能存在差异。以双通道滤波为例:通常的实现方式有两种,一种是采用并行的方式,即单独使用两个传统结构的biquad滤波器,如图4中所示,为典型的并行biquad双通道结构,这样并行的滤波器结构中,每增加一个通道,将需要相应地增加一个biquad滤波器,因此,这样的结构会随着通道数的增加,其硬件元件数量急剧增加,不利于硬件结构的小型化和集成化。另一种方式是采用时分复用的方式,增加多路选择控制逻辑,选择当前通路的信号源、中间运算缓存以及滤波器的滤波系数,如图5中所示,为一种常见的双通道复用biquad结构,多路选择器根据时钟顺序向乘法器提供两个不同系数中的其中之一,多路选择器具有两种功能,一是输入信号的数据选择,二是输出信号的数据保持。图5中同时给出了相对于系统时钟clock,多路选择器输入信号q的状态信号时序图,多路选择器输入信号q的状态在系统时钟的每个周期之间在0和1之间交替。在图5中所示的结构中,包含有多个多路选择器及其控制逻辑,占用了较多的运算资源,且这样的结构中,其时序是固定的,图5中所示的结构仅适用于x0通道和x1通道执行交替运算的形式,对于其他的顺序并不适用。
7.通过上述介绍可知,目前的多级biquad滤波器以及多通道biquad滤波器存在以下问题:(1)采用多个biquad单元进行级联或者并行工作,这样的结构中,每增加一级或者每增加一个通道将会增加相应的硬件和软件资源,所消耗的资源较多,不利于硬件结构的小型化和集成化;(2)采用分时复用结构的多级biquad滤波器或者多通道biquad滤波器,其中包含多个多路选择器以及多路选择器的控制逻辑,占用了较多的运算资源;此外,这样的结构只适用于特定级数的滤波器以及特定通道数量的滤波器,灵活性较差。
8.因此,亟需要设计一种biquad滤波器,其能减小对硬件资源的消耗,且具有较好的灵活性,能适用于不同级数以及不同通道数量的滤波器。


技术实现要素:

9.为了解决上述技术问题,本发明提供一种biquad数字滤波器装置,其特征在于,所述biquad数字滤波器装置包括数据输入存储模块、数据选择模块、biquad运算模块和控制模块,其中:所述数据输入存储模块用于接收和存储信号数据和滤波器系数,所述信号数据包括当前的输入信号数据、之前的输入信号数据以及之前biquad数字滤波器装置的输出信号数据;所述数据选择模块用于从数据输入存储模块中选择参与运算的信号数据和滤波器系数,并将该信号数据和滤波器系数传输到biquad运算模块;所述biquad运算模块用于进行滤波运算并将最终的滤波结果进行输出;所述biquad运算模块包括一个乘法器和一个加法器,滤波器系数与信号数据的乘法运算时分复用同一个乘法器,并通过加法器将乘法计算结果进行累加;所述控制模块用于控制所述数据输入存储模块、所述数据选择模块和所述biquad运算模块;所述控制模块控制所述数据输入存储模块进行信号数据和滤波器系数的读取与存储;所述控制模块控制所述数据选择模块选择每次参与运算的信号数据和滤波器系数;所述控制模块控制biquad运算模块进行乘累加运算,并将滤波结果输出。
10.采用本发明中提供的biquad数字滤波器装置,具有如下优势:(1)该biquad数字滤波器装置结构较为简单,其中的biquad运算模块只包括一个乘法器和一个加法器,通过时分复用同一个乘法器,即可实现biquad滤波运算的功能,减少了乘法器的资源;(2)可以通
过该biqaud数字滤波器装置实现多级biquad级联滤波器结构、实现多通道biquad滤波器结构甚至实现多通道多级级联的biquad数字滤波器结构,在实现多级biquad级联滤波器结构、实现多通道biquad滤波器结构甚至实现多通道多级级联的biquad数字滤波器结构时,只需要增加数据输入存储模块中的滤波器系数存储通路和信号数据的配置通路,不再需要增加额外的计算单元,硬件成本较低;(3)控制逻辑简单,实现多级biquad级联滤波器结构时,其控制逻辑与单级biquad滤波器基本相同;当实现多通道biquad滤波器结构时,通过分时复用同一个biquad数字滤波器装置,只是改变其中的参数,控制逻辑完全相同。因此,本发明中的biquad数字滤波器装置更接近于数字信号处理(dsp)的应用特性,其将biquad滤波模块例化成函数体的形式,可以实现自由灵活的调用实现不同的设计目的;(4)本发明中提供的biquad数字滤波器装置尤其适用于音频和传感器等低速率数据信号的处理,因为系统的运行频率将远高于一般音频和传感器等信号输入频率,采用本发明中提供的biquad数字滤波器装置,可以将对输入信号的乘累加运算分拆到几个系统时钟内完成,其对信号的处理速率与先前技术中提供的运用多个乘法器的结构相当。
11.优选地,所述控制模块在控制所述数据输入存储模块时,在每次滤波之前,控制所述数据输入存储模块获取信号数据和滤波器系数,在单次的biquad滤波运算完成时,所述控制模块控制所述数据输入存储模块更新信号数据。
12.优选地,所述数据选择模块包括若干个多路选择器,用于分别对信号数据和滤波器系数进行选择。
13.优选地,所述数据输入存储模块从外部存储器获取滤波器系数和缓存的信号数据,所述缓存的信号数据包括之前的输入信号数据和之前biquad数字滤波器装置的输出信号数据,所述数据输入存储模块通过输入接口获取当前的输入信号数据。
14.优选地,所述数据输入存储模块将滤波器的计算结果存储至外部存储器。
15.优选地,所述数据输入存储模块与外部存储器之间的数据传输由数据控制接口完成。
16.优选地,所述控制模块通过系统时钟和计时器对数据输入存储模块、数据选择模块和biquad运算模块进行控制。
17.优选地,所述控制模块控制所述数据选择模块在每个时钟周期内,选取一组对应的滤波器系数和信号数据。
18.优选地,所述控制模块控制所述biquad运算模块在每个时钟周期内对所述数据选择模块选取的滤波器系数和信号数据进行乘法运算,并在下一个时钟周期内将该乘法运算的结果与之前加法器的计算结果进行累加。
19.优选地,所述biquad数字滤波器装置用于构成多级biquad数字滤波器、多通道biquad数字滤波器以及多级多通道数字滤波器。
20.优选地,所述biquad数字滤波器装置用于处理以下信号其中之一:音频信号、传感器信号。
21.本发明的另一方面,提供一种biquad数字滤波器的实现方法,其特征在于,所述biquad数字滤波器的实现方法包含以下步骤:步骤s01:数据输入存储模块获取或更新滤波器系数以及信号数据,所述信号数据包括当前的输入信号数据、之前的输入信号数据以及之前biquad数字滤波器装置的输出信号数据;步骤s02:数据选择模块选择参与运算的滤波
器系数和信号数据;步骤s03:biquad运算模块进行乘法运算和累加运算;步骤s04:判断该单次滤波是否已经完成,若没有完成,则返回至步骤s02中;若已经完成,则执行步骤s05;步骤s05:判断所有的运算是否已经完成,若没有完成,则返回至步骤s01中更新数据输入存储模块中的信号数据;若已经完成,则执行步骤s06;步骤s06:更新数据输入存储模块中的信号数据,并输出滤波结果。
22.采用本发明中提供的biquad数字滤波器的实现方法,具有如下优势:(1)该方法具有很好的通用性,该实现方法可以用于实现多级级联的biquad数字滤波器结构、多通道的biquad数字滤波器结构甚至是多级级联的多通道biquad数字滤波器结构,采用该实现方法的biquad数字滤波器可以将biquad滤波模块例化成函数体,可以实现自由灵活的调用;(2)采用该实现方法的biquad数字滤波器硬件资源占用较少,其中的biquad运算模块只包含一个乘法器和一个加法器,通过时分复用的运算结构有效地减少了乘法器资源,减少了硬件资源的占用。
23.优选地,控制模块执行所述步骤s04和所述步骤s05中的判断操作。
附图说明
24.图1为一个典型的biquad数字滤波器示意图。
25.图2为一个四级biquad滤波器级联的滤波器结构。
26.图3为两级单通道biquad运算结构。
27.图4为典型的并行biquad双通道结构。
28.图5为一种常见的双通道复用biquad结构。
29.图6为本发明中提供的一种biquad数字滤波器装置示意图。
30.图7为本发明中单级biquad数字滤波器装置的运算流程图。
31.图8为本发明中的biquad数字滤波器装置实现2级biquad级联结构的运算控制示意图。
32.图9为本发明中2级biquad级联结构的运算硬件电路图。
33.图10为双通道、2级级联的biquad滤波器结构的数据存储通路示意图。
34.图11为本发明中一种biquad数字滤波器实现方法的流程图。
具体实施方式
35.以下配合图式及本发明的较佳实施例,进一步阐述本发明为达成预定发明目的所采取的技术手段。
36.如图6中所示,为本发明中提供的一种biquad数字滤波器装置,该装置包括数据输入存储模块、数据选择模块、biquad运算模块和控制模块。其中,数据输入存储模块用于接收和存储信号数据和滤波器系数,并将信号数据和滤波器系数通过数据选择模块输入至biquad运算模块。数据输入存储模块包括若干个输入接口和数据存储单元,若干个输入接口用于接收不同的信号数据和滤波器系数,并将这些输入信号和滤波器系数存储至数据存储单元。数据选择模块用于从数据输入存储单元中选择参与运算的信号数据和滤波器系数,并将其传输到biquad运算模块,数据选择模块包括若干个多路选择器,该若干个多路选择器与数据存储单元和控制模块相连接。biquad运算模块用于进行滤波运算并将最终的滤
波结果进行输出。在本实施例中,biquad运算模块包括一个加法器和一个乘法器,滤波器系数与信号数据的乘法运算时分复用同一个乘法器,在每一个时钟周期内,乘法器将输入信号和滤波器系数进行乘法运算,并在下一个时钟周期内将该乘法计算结果与之前的加法器的计算结果进行累加,将新的累加结果进行存储,当所有的结果计算完成时,biquad运算模块将累加结果进行输出。控制模块用于控制数据输入存储模块、数据选择模块和biquad运算模块。具体而言,控制模块根据biquad滤波器的结构,控制数据输入存储模块进行输入信号和滤波器系数的输入和存储,控制模块控制数据存储单元在单次biquad滤波运算完成时,开始进行信号数据的更新,此处所指的单次biquad滤波运算表示进行了一次单级biquad滤波运算;控制模块控制数据选择模块在每个时钟周期选择计算所需的滤波器系数和信号数据;控制模块用于控制biquad运算模块在每一个时钟周期内将多路选择器选择的滤波器系数和信号数据进行乘法运算,在下一个时钟周期内将该乘法计算结果与之前加法器的计算结果进行累加,并在所有的结果计算完成时,控制biquad运算模块将滤波结果进行输出。
37.如图7中所示,图7为本发明中提供的单级biquad数字滤波器装置的运算控制示意图。以一个单级biquad数字滤波器为例,说明单级biquad数字滤波器装置的运算过程,其中,滤波器系数与信号数据的对应关系与所有采用直接i型的biquad结构相同。首先,在开始进行计算之前,数据输入存储模块存储计算所需的参数,这些参数包括滤波器系数b0、b1、b2、a1和a2,以及信号数据x0、x0_d1、x0_d2、biquad_out_d1和biquad_out_d2,其中,x0表示输入信号,x0_d1表示上一次的输入信号,x0_d2表示上两次的输入信号,biquad_out_d1表示上一次的biquad输出信号,biquad_out_d2表示上两次的biquad输出信号。
38.在开始计算时,控制模块通过系统时钟和计时器对数据输入存储模块、数据选择模块和biquad运算模块进行控制,计时器用于在biquad数字滤波器装置开始工作后,对系统时钟进行计数。数据选择模块在每个时钟周期选择计算所需的参数输入到乘法器进行乘运算,乘运算在每个时钟周期计算所需的参数包括滤波器系数和信号数据,滤波器系数和信号数据两者一一对应,其对应关系如下:滤波器系数b0对应输入信号x0,滤波器系数b1对应上一次的输入信号x0_d1,滤波器系数b2对应上两次的输入信号x0_d2,滤波器系数a1对应上一次的biquad输出信号biquad_out_d1以及滤波器系数a2对应上两次的biquad输出信号biquad_out_d2。乘运算的结果进行自累加,即在每一个时钟周期内将数据选择模块选择的滤波器参数和信号数据进行乘法运算,并在下一个时钟周期内将该乘法运算结果与之前加法器的计算结果进行累加,该自累加运算受控于控制模块中的计时器calc_cnt。具体的计算过程如下:在第一个时钟周期内,即计时器calc_cnt=1时,滤波器系数b0与对应输入信号x0进行乘运算,得到乘运算结果mul_result。在第二个时钟周期内,即计时器calc_cnt=2时,将该乘运算结果mul_result与加法器的计算结果mul_sum进行累加,并将结果保存在mul_sum中,其中加法器的计算结果mul_sum的初始值为0;并同时进行第二组乘运算,即滤波器系数b1与对应的上一次输入信号x0_d1进行乘运算,得到乘运算结果mul_result。在第三个时钟周期内,即计时器calc_cnt=3时,将该乘运算结果mul_result与加法器的计算结果mul_sum进行累加,并将结果保存在mul_sum中;并同时进行第三组乘运算,即滤波器系数b2与对应的上两次输入信号x0_d2进行乘运算,得到乘运算结果mul_result。在第四个时钟周期内,即计时器calc_cnt=4时,将该乘运算结果mul_result与加法器的计算结果mul_sum
进行累加,并将结果保存在mul_sum中;并同时进行第四组乘运算,即滤波器系数a1与对应的上一次biquad输出信号biquad_out_d1进行乘运算,得到乘运算结果mul_result。在第五个时钟周期内,即计时器calc_cnt=5时,将该乘运算结果mul_result与加法器的计算结果mul_sum进行累加,并将结果保存在mul_sum中;并同时进行第五组乘运算,即滤波器系数a2与对应的上两次biquad输出信号biquad_out_d2进行乘运算,得到乘运算结果mul_result。在第六个时钟周期内,即计时器calc_cnt=6时,将该乘运算结果mul_result与加法器的计算结果mul_sum进行累加,并将结果保存在mul_sum中,此时,mul_sum的值即为该单级biquad数字滤波器的输出值,控制模块控制biquad运算模块将该输出值进行输出,并控制数据输入存储模块中的值进行更新,该运算周期结束。
39.采用本发明中提供的biquad数字滤波器装置具有如下优势:(1)本发明中提供的biquad数字滤波器装置结构较为简单,其中的biquad运算模块只包括一个乘法器和一个加法器,通过时分复用同一个乘法器,即可实现biquad滤波运算的功能,减少了乘法器的资源;(2)本发明中提供的biquad数字滤波器装置尤其适用于音频和传感器等信号的处理,因为系统的运行频率将远高于一般音频和传感器等信号输入频率,采用本发明中提供的biquad数字滤波器装置,可以将对输入信号的乘累加运算分拆到几个系统时钟内完成,其对信号的处理速率与先前技术中提供的运用多个乘法器的结构相当。
40.本发明中提供的biquad数字滤波器装置不仅适用于单级biquad数字滤波器,更可以使用该biquad数字滤波器装置实现多级biquad滤波器和多通道biquad滤波器。
41.如图8中所示,为采用本发明中的biquad数字滤波器装置实现2级biquad级联结构的运算控制示意图,其中,系数与数据的对应关系与所有采用直接i型的biquad结构相同。首先,在开始进行计算之前,数据输入存储模块存储计算所需的参数,这些参数包括第一级滤波器系数b0,0、b1,0、b2,0、a1,0和a2,0,第二级滤波器系数b3,0、b4,0、b5,0、a3,0和a4,0以及信号数据x0、x0_d1、x0_d2、biquad_1st _out_d1、biquad_1st_out_d2, biquad_1st_out,biquad_2nd_out_d1和biquad_2nd_out_d2,其中,x0表示输入信号,x0_d1表示上一次的输入信号,x0_d2表示上两次的输入信号,biquad_1st_out_d1表示上一次的第一级biquad输出信号,biquad_1st_out_d2表示上两次的第一级biquad输出信号,biquad_1st_out表示当前第一级biquad输出信号,biquad_2nd_out_d1表示上一次的第二级biquad输出信号,以及biquad_2nd_out_d2表示上两次的第二级biquad输出信号。
42.在开始计算时,数据选择模块在每个时钟周期选择计算所需的参数输入到乘法器进行乘运算,乘运算在每个时钟周期计算所需的参数包括滤波器系数和信号数据,滤波器系数和信号数据两者一一对应,其对应关系如下:滤波器系数b0,0对应输入信号x0;滤波器系数b1,0对应上一次的输入信号x0_d1;滤波器系数b2,0对应上两次的输入信号x0_d2;滤波器系数a1,0对应上一次的第一级biquad输出信号biquad_1st_out_d1;滤波器系数a2,0对应上两次的第一级biquad输出信号biquad_1st_out_d2;滤波器系数b3,0对应当前第一级biquad输出信号biquad_1st_out;滤波器系数b4,0对应上一次的第一级biquad输出信号biquad_1st_out_d1;滤波器系数b5,0对应上两次的第一级biquad输出信号biquad_1st_out_d2;滤波器系数a3,0对应上一次的第二级biquad输出信号biquad_2nd_out_d1以及滤波器系数a4,0对应上两次的第二级biquad输出信号biquad_2nd_out_d2。乘运算的结果进行自累加,即在每一个时钟周期内将数据选择模块选择的滤波器参数和信号数据进行乘法
运算,并在下一个时钟周期内将该乘法运算结果与之前加法器的计算结果进行累加,该自累加运算受控于控制模块中的计时器calc_cnt。具体的计算过程如下:在第一个时钟周期内,即计时器calc_cnt=1时,滤波器系数b0,0与对应输入信号x0进行乘运算,得到乘运算结果mul_result。在第二个时钟周期内,即计时器calc_cnt=2时,将该乘运算结果mul_result与加法器的计算结果mul_sum进行累加,并将结果保存在mul_sum中,其中加法器的计算结果mul_sum的初始值为0。此后的9组乘法运算结果mul_result都累加到mul_sum上,即在每个时钟周期内,均进行计算mul_sum=mul_sum mul_result。在第五个时钟周期内,即计时器calc_cnt=5时,得到滤波器系数a2,0与上两次的第一级biquad输出信号biquad_1st_out_d2的相乘结果mul_result,并在下一个时钟周期内,即计时器calc_cnt=6时,叠加到mul_sum,此时mul_sum的值即为第一级biquad滤波器的输出值。该输出值一方面是作为第二级滤波器的输入,与滤波器系数b3,0相乘,另一方面用于刷新数据输入存储模块中biquad_1st_out_d1的值。同理,在第十一个时钟周期内,即计时器calc_cnt=11时,当系数a4,0与上两次的第二级biquad输出信号biquad_2nd_out_d2的相乘结果mul_result叠加到mul_sum时,此时mul_sum的值即为第二级biquad滤波器的输出值,该值也用于刷新数据存储模块中biquad_2nd_out_d1的值。
43.图9为采用本发明中2级biquad级联结构的运算硬件电路图。如图9中所示,在该运算硬件电路图中,数据输入存储模块分为两部分,一部分用于存储滤波器系数,另一部分用于存储信号数据,因为信号数据中包含了一些滤波器运算的中间结果,因此,用于存储信号数据的硬件电路也在图9中表示出来。数据选择模块包括两个多路选择器,两个多路选择器分别用于选择滤波器系数和信号数据,在每个时钟周期内,多路选择器从数据存储单元中分别选择信号数据和与之对应的滤波器系数,并将这些数据传输到biquad运算模块。biquad运算模块中包括一个乘法器,一个加法器以及一个寄存器,乘法器用于将信号数据和与之对应的滤波器系数进行乘法运算,加法器和寄存器用于实现对上述乘法器的运算结果实现累加。在第六个时钟周期内,此时mul_sum的值即为第一级biquad滤波器的输出值。该输出值一方面是作为第二级滤波器的输入,与滤波器系数b3,0相乘,另一方面用于刷新数据输入存储模块中biquad_1st_out_d1的值。同理,在第十一个时钟周期内,即计时器calc_cnt=11时,当系数a4,0与上两次的第二级biquad输出信号biquad_2nd_out_d2的相乘结果mul_result叠加到mul_sum时,此时mul_sum的值即为第二级biquad滤波器的输出值,该值也用于刷新数据存储模块中biquad_2nd_out_d1的值。
44.从图9中2级biquad级联结构的运算硬件电路图可以看出,本发明中的biquad数字滤波器装置在实现多级biquad滤波器时,其只需要通过时分复用同一个乘法器即可以实现多级biquad滤波器的功能。本发明中提供的biquad数字滤波器装置不仅适用于2级biquad级联滤波器结构,也适用于多级biquad级联滤波器结构,只要相应地增加数据输入存储模块中的数据,并在得到每一级滤波器结果的输出时,刷新数据输入存储模块中的信号数据即可。
45.因此,本发明中提供的biquad数字滤波器装置可以在控制逻辑相同的条件下,增加数据输入存储模块中的滤波器系数存储通路和信号数据的配置通路,即可以实现多级biquad级联滤波器的功能。采用本发明中提供的biquad数字滤波器装置实现多级biquad级联滤波器结构时,具有如下优点:(1)硬件成本较小,在实现多级biquad级联滤波器结构时,
只需要增加数据输入存储模块中的滤波器系数存储通路和信号数据的配置通路,不再需要增加额外的计算单元;(2)控制逻辑简单,实现多级biquad级联滤波器结构时,其控制逻辑与单级biquad滤波器基本相同,因此,本发明中的biquad数字滤波器装置更接近于数字信号处理(dsp)的应用特性,其将biquad滤波模块例化成函数体的形式,可以实现自由灵活的调用。
46.进一步地,本发明中提供的biquad数字滤波器装置通过增加数据输入存储模块中的滤波器系数存储通路和信号数据的配置通路,即可以灵活地实现biquad滤波器的多通道、多级级联的运算结构。如图10中所示,为双通道、2级级联的biquad滤波器结构的数据存储通路示意图。在该双通道、2级级联的biquad滤波器结构的数据存储通路示意图中,biquad数字滤波器装置中的数据输入存储模块分别与输入信号x0和x1以及外部存储器相连接,外部存储器用于存储滤波器系数以及缓存的信号数据,缓存的信号数据包括之前的输入信号以及之前滤波器的输出信号。该双通道、2级级联的biquad滤波器的运算过程如下:(1)将输入信号数据x0更新到biquad数字滤波器装置中的输入信号x;(2)biquad数字滤波器装置中的数据输入存储模块向外部存储器获取通路0的滤波器系数和信号数据,通路0的滤波器系数包括:第一级滤波器系数b0,0、b1,0、b2,0、a1,0和a2,0;第二级滤波器系数b3,0、b4,0、b5,0、a3,0和a4,0;通路0的信号数据上一次的输入信号x0_d1、上两次的输入信号x0_d2、上一次通路0的第一级biquad输出信号x0_biquad_1st_out_d1、上两次通路0的第一级biquad输出信号x0_biquad_1st_out_d2、上一次通路0的第二级biquad输出信号x0_biquad_2nd_out_d1以及上两次通路0的第二级biquad输出信号x0_biquad_2nd_out_d2;(3)开始进行通路0中的时分复用累加运算,其运算过程如图8中所示,在此不进行赘述;(4)在通路0计算完成时,biquad数字滤波器装置中产生的新的缓存数据保存至外部存储器中,biquad数字滤波器装置中的数据输入存储模块对外部存储器中的以下数据进行更新:biquad数字滤波器装置中的第一级biquad的输出信号更新到外部存储器中的x0_biquad_1st_out_d1;biquad数字滤波器装置中的x0_biquad_1st_out_d1更新到外部存储器中的x0_biquad_1st_out_d2;biquad数字滤波器装置中的第二级biquad的输出信号y更新到外部存储器中的x0_biquad_2nd_out_d1以及biquad数字滤波器装置中的x0_biquad_2nd_out_d1更新到外部存储器中的x0_biquad_2nd_out_d2。此时,对于通道0的数据x0的2级biquad滤波过程已经完成,在以上滤波过程完成之后,再以同样的方式执行通道1中的数据x1的滤波,其运算过程如下:(5)将输入信号数据x1更新到biquad数字滤波器装置中的输入信号x;(2)biquad数字滤波器装置中的数据输入存储模块向外部存储器获取通路1的滤波器系数和信号数据,通路1的滤波器系数包括:第一级滤波器系数b0,1、b1,1、b2,1、a1,1和a2,1;第二级滤波器系数b3,1、b4,1、b5,1、a3,1和a4,1;通路1的信号数据上一次的输入信号x1_d1、上两次的输入信号x1_d2、上一次通路1的第一级biquad输出信号x1_biquad_1st_out_d1、上两次通路1的第一级biquad输出信号x1_biquad_1st_out_d2、上一次通路1的第二级biquad输出信号x1_biquad_2nd_out_d1以及上两次通路1的第二级biquad输出信号x1_biquad_2nd_out_d2;(3)开始进行通路1中的时分复用累加运算,其运算过程如图8中所示,在此不进行赘述;(4)在通路1计算完成时,biquad数字滤波器装置中产生的新的缓存数据保存至外部存储器中,biquad数字滤波器装置中的数据输入存储模块对外部存储器中的以下数据进行更新:biquad数字滤波器装置中的第一级biquad的输出信号更新到外部存储
器中的x1_biquad_1st_out_d1;biquad数字滤波器装置中的x1_biquad_1st_out_d1更新到外部存储器中的x1_biquad_1st_out_d2;biquad数字滤波器装置中的第二级biquad的输出信号y更新到外部存储器中的x1_biquad_2nd_out_d1以及biquad数字滤波器装置中的x1_biquad_2nd_out_d1更新到外部存储器中的x1_biquad_2nd_out_d2。此时,对于通道1中的数据x的2级biquad滤波过程已经完成。再重复上述对于输入x0和输入x1的运算,即可以通过本发明中的biquad数字滤波器装置实现双通道2级级联的biquad滤波运算。
47.在图10中,外部存储器的存储介质可以是flash存储器,静态随机读写存储器(sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、一级缓存(l1 cache)、二级缓存(l2 cache)、三级缓存(l3 cache)等中的一种或者多种,在此不进行限制,只要其能达到存储目的即可。外部存储器与biquad数字滤波器装置中的数据输入存储模块之间的数据传输由数据控制接口完成,该接口可以是ahb标准总线,也可以是自定义的传输协议。biquad数字滤波器装置中的数据输入存储模块向外部存储器读取数据,可以是由biquad数字滤波器装置自动发起,如biquad数字滤波器装置中的控制模块检测到输入信号中的x已经被更新,则biquad数字滤波器装置向外部存储器读取数据;也可以是响应软件指令。同样,biquad数字滤波器装置中的数据输入存储模块向外部存储器存储数据,可以是由biquad数字滤波器装置自动发起,如biquad数字滤波器装置中的控制模块已经控制biquad运算模块完成了所有的乘累加计算,则biquad数字滤波器装置向外部存储器存储数据;也可以是响应软件指令。
48.综上所述,本发明中提供的biquad数字滤波器装置具有如下优势:(1)该biquad数字滤波器装置结构较为简单,其中的biquad运算模块只包括一个乘法器和一个加法器,通过时分复用同一个乘法器,即可实现biquad滤波运算的功能,减少了乘法器的资源;(2)在实现多级biquad级联滤波器结构、实现多通道biquad滤波器结构甚至实现多通道多级级联的biquad数字滤波器结构时,只需要增加数据输入存储模块中的滤波器系数存储通路和信号数据的配置通路,不再需要增加额外的计算单元,硬件成本较低;(3)控制逻辑简单,实现多级biquad级联滤波器结构时,其控制逻辑与单级biquad滤波器基本相同;当实现多通道biquad滤波器结构时,通过分时复用同一个biquad数字滤波器装置,只是改变其中的参数,控制逻辑完全相同。因此,本发明中的biquad数字滤波器装置更接近于数字信号处理(dsp)的应用特性,其将biquad滤波模块例化成函数体的形式,可以实现自由灵活的调用实现不同的设计目的;(4)本发明中提供的biquad数字滤波器装置尤其适用于音频和传感器等低速率数据信号的处理,因为系统的运行频率将远高于一般音频和传感器等信号输入频率,采用本发明中提供的biquad数字滤波器装置,可以将对输入信号的乘累加运算分拆到几个系统时钟内完成,其对信号的处理速率与先前技术中提供的运用多个乘法器的结构相当。
49.本发明的另一方面,提供一种biquad数字滤波器的实现方法,如图11中所示,图11为本发明中一种biquad数字滤波器实现方法的流程图,该方法包含以下步骤:步骤s01:数据输入存储模块获取或更新滤波器系数以及信号数据,其中,信号数据包括输入信号数据、之前的输入信号以及之前滤波器的输出信号;步骤s02:数据选择模块选择参与运算的滤波器系数和信号数据,在每个时钟周期内,滤波器系数与信号数据一一对应,滤波器系数与信号数据的对应关系与所有采用直接i型的biquad结构相同;步骤s03:biquad运算模块进行乘法运算和累加运算,在该步骤中,将步骤s02中选择的滤波器系数和信号数据进行乘法运
算,并在下一个时钟周期内将该乘法运算结果与之前加法器的计算结果进行累加运算;步骤s04:判断该单次滤波是否已经完成,若没有完成,则返回至步骤s02中,继续选择滤波器系数和信号数据进行运算,若已经完成,则进行步骤s05,此处所指的单次滤波表示进行了一次单级biquad滤波运算;步骤s05:判断所有运算是否已经完成,若没有完成,则返回至步骤s01中更新滤波器系数及信号数据,若已经完成,则执行步骤s06,更新数据输入存储模块中的信号数据,并输出滤波结果。其中,控制模块执行步骤s04和步骤s05中的判断操作。
50.采用本发明中的biquad数字滤波器的实现方法,具有如下优势:(1)该方法具有很好的通用性,该实现方法可以用于实现多级级联的biquad数字滤波器结构、多通道的biquad数字滤波器结构甚至是多级级联的多通道biquad数字滤波器结构,采用该实现方法的biquad数字滤波器可以将biquad滤波模块例化成函数体,可以实现自由灵活的调用;(2)采用该实现方法的biquad数字滤波器硬件资源占用较少,其中的biquad运算模块只包含一个乘法器和一个加法器,通过时分复用的运算结构有效地减少了乘法器资源,减少了硬件资源的占用。
51.以上所述仅是本发明的优选实施例而已,并非对本发明做任何形式上的限制,虽然本发明已以优选实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案的范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本实用发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献