数字滤波器电路的实现方法及系统

文档序号:1469673 发布日期:2020-02-21 浏览:37次 >En<

阅读说明:本技术 数字滤波器电路的实现方法及系统 (Method and system for implementing digital filter circuit ) 是由 钟燕清 田易 孟真 李继秀 刘谋 张兴成 阎跃鹏 于 2019-11-13 设计创作,主要内容包括:本发明提供一种数字滤波器电路的实现方法及系统。所述方法包括:获取滤波器系数;采用CSD码表示滤波器系数,以得到CSD系数;根据CSD系数,生成CSD矩阵,每一个CSD系数单独作为CSD矩阵中一行的元素;提取CSD矩阵中的行公共项和列公共项;分别统计不同的行公共项和不同的列公共项的出现次数;根据不同的行公共项和不同的列公共项的出现次数,确定最优行公共项和最优列公共项;根据最优行公共项和最优列公共项,对CSD矩阵进行分解;在分解后的CSD矩阵属于阈值矩阵情况下,将分解后的CSD矩阵作为最优系数矩阵,以使所述数字滤波器根据所述最优系数矩阵进行滤波处理。本发明能够降低数字滤波器对加法器资源的使用频率,减少数字滤波器的空间占用面积。(The invention provides a method and a system for realizing a digital filter circuit. The method comprises the following steps: obtaining a filter coefficient; representing the filter coefficient by using a CSD code to obtain a CSD coefficient; generating a CSD matrix according to the CSD coefficients, wherein each CSD coefficient is independently used as an element of one row in the CSD matrix; extracting row public items and column public items in the CSD matrix; respectively counting the occurrence times of different row public items and different column public items; determining an optimal row public item and an optimal column public item according to the occurrence times of different row public items and different column public items; decomposing the CSD matrix according to the optimal row public item and the optimal column public item; and under the condition that the decomposed CSD matrix belongs to the threshold matrix, taking the decomposed CSD matrix as an optimal coefficient matrix so that the digital filter carries out filtering processing according to the optimal coefficient matrix. The invention can reduce the use frequency of the digital filter to the adder resource and reduce the space occupation area of the digital filter.)

数字滤波器电路的实现方法及系统

技术领域

本发明涉及数字信号处理技术领域,尤其涉及一种数字滤波器电路的实现方法及系统。

背景技术

数字滤波器是现代数字电路不可或缺的一种重要模块,而FIR数字滤波器因为采用线性相位且稳定性高而广受青睐。但是,高阶数和高运算复杂度限制了FIR数字滤波器的应用范围。

为了扩大FIR数字滤波器的应用范围,通常采用加法器和移位器代替FIR数字滤波器中乘法器的方法,其中,加法器的个数取决于FIR数字滤波器系数中非零位的个数,然而FIR数字滤波器系数中非零位的个数通常都比较多,如此使得FIR数字滤波器中包含很多个加法器,进而增加了FIR数字滤波器的空间占用面积。

发明内容

为解决上述问题,本发明提供的数字滤波器电路的实现方法及系统,能够降低数字滤波器对加法器资源的使用频率,进而能够减少数字滤波器的空间占用面积。

第一方面,本发明提供一种数字滤波器电路的实现方法,包括:

获取数字滤波器的滤波器系数;

采用CSD码表示所述滤波器系数,以得到CSD系数;

根据所述CSD系数,生成CSD矩阵,其中,每一个CSD系数单独作为CSD矩阵中一行的元素,且所述CSD系数中的每一位数单独作为所述CSD矩阵的一个元素;

提取所述CSD矩阵中的行公共项和列公共项;

分别统计不同的行公共项和不同的列公共项的出现次数;

根据不同的行公共项和不同的列公共项的出现次数,确定最优行公共项和最优列公共项;

根据所述最优行公共项和所述最优列公共项,对所述CSD矩阵进行分解;

在分解后的CSD矩阵属于阈值矩阵情况下,将分解后的CSD矩阵作为最优系数矩阵,以使所述数字滤波器根据所述最优系数矩阵、所述最优行公共项和所述最优列公共项进行滤波处理;

其中,所述行公共项为所述CSD矩阵任意一行中两个非零元素组成的行数组,且所述两个非零元素分别位于所述行数组中的两端,所述两个非零元素之间是数值均为零,所述两个非零元素之间零的个数由所述两个非零元素在所述CSD矩阵中列的位置确定;所述列公共项为所述CSD矩阵任意一列中两个非零元素组成的列数组,且所述两个非零元素分别位于所述列数组中的两端,所述两个非零元素之间是数值均为零,所述两个非零元素之间零的个数由所述两个非零元素在所述CSD矩阵中行的位置确定。

可选地,所述阈值矩阵包括:第一阈值矩阵和第二阈值矩阵;

所述提取所述CSD矩阵中的行公共项和列公共项,分别统计不同的行公共项和不同的列公共项的出现次数,根据不同的行公共项和不同的列公共项的出现次数,确定最优行公共项和最优列公共项,根据所述最优行公共项和所述最优列公共项,对所述CSD矩阵进行分解,在分解后的CSD矩阵为阈值矩阵情况下,将分解后的CSD矩阵作为最优系数矩阵,包括:

提取所述CSD矩阵中的行公共项;

统计不同的行公共项的出现次数;

根据不同的行公共项的出现次数,确定最优行公共项;

根据所述最优行公共项,对所述CSD矩阵进行分解,以得到行残余系数矩阵;

在行残余系数矩阵属于第一阈值矩阵情况下,提取所述行残余系数矩阵中的列公共项;

统计不同的列公共项的出现次数;

根据不同的列公共项的出现次数,确定最优列公共项;

根据所述最优列公共项,对所述行残余系数矩阵进行列分解,以得到列残余系数矩阵;

在列残余系数矩阵属于第二阈值矩阵的情况下,将所述列残余系数矩阵作为所述最优系数矩阵。

可选地,在所述提取所述行残余系数矩阵中的列公共项的步骤之前,所述方法还包括:

判断所述行残余系数矩阵是否属于第一阈值矩阵;

在行残余系数矩阵不属于第一阈值矩阵的情况下,重复执行以下步骤:

提取行残余系数矩阵中的行公共项;

统计不同的行公共项的出现次数;

根据不同的行公共项的出现次数,确定最优行公共项;

根据所述最优行公共项,对行残余系数矩阵进行分解,以得到新的行残余系数矩阵。

可选地,所述根据不同的行公共项的出现次数,确定最优行公共项,包括:

根据不同的行公共项的出现次数,构建行公共项矩阵,其中,所述不同的行公共项的出现次数作为所述行公共矩阵中的不同元素;

选定所述行公共项矩阵中数值最大的元素所对应的行公共项作为最优行公共项。

可选地,所述根据所述最优行公共项,对所述CSD矩阵进行分解,包括:

根据最优行公共项中首尾两端的非零数的间隔,将所述CSD矩阵每一行中对应的非零元素进行归零处理;

所述根据所述最优行公共项,对行残余系数矩阵进行分解,包括:

根据最优行公共项中首尾两端的非零数的间隔,将所述行残余系数矩阵每一行中对应的非零元素进行归零处理。

可选地,在所述将所述列残余系数矩阵作为所述最优系数矩阵的步骤之前,所述方法还包括:

判断所述列残余系数矩阵是否属于第二阈值矩阵;

在行残余系数矩阵不属于第一阈值矩阵的情况下,重复执行以下步骤:

提取列残余系数矩阵中的列公共项;

统计不同的列公共项的出现次数;

根据不同的列公共项的出现次数,确定最优列公共项;

根据所述最优列公共项,对所述列残余系数矩阵进行列分解,以得到新的列残余系数矩阵。

可选地,所述根据不同的列公共项的出现次数,确定最优列公共项,包括:

根据不同的列公共项的出现次数,构建列公共项矩阵,其中,所述不同的列公共项的出现次数作为所述列公共矩阵中的不同元素;

选定所述列公共项矩阵中数值最大的元素所对应的列公共项作为最优列公共项。

可选地,所述根据所述最优列公共项,对所述行残余系数矩阵进行分解,包括:

根据最优列公共项中首尾两端的非零数的间隔,将所述行残余系数矩阵每一列中对应的非零元素进行归零处理;

所述根据所述最优列公共项,对列残余系数矩阵进行分解,包括:

根据最优列公共项中首尾两端的非零数的间隔,将所述列残余系数矩阵每一列中对应的非零元素进行归零处理。

第二方面,本发明提供一种数字滤波器电路的实现系统,包括:

系数获取模块,被配置为获取数字滤波器的滤波器系数;

系数转换模块,被配置为采用CSD码表示所述滤波器系数,以得到CSD系数;

矩阵生成模块,被配置为根据所述CSD系数,生成CSD矩阵,其中,每一个CSD系数单独作为CSD矩阵中一行的元素,且所述CSD系数中的每一位数单独作为所述CSD矩阵的一个元素;

提取模块,被配置为提取所述CSD矩阵中的行公共项和列公共项;

统计模块,被配置为分别统计不同的行公共项和不同的列公共项的出现次数;

公共项确定模块,被配置为根据不同的行公共项和不同的列公共项的出现次数,确定最优行公共项和最优列公共项;

分解模块,被配置为根据所述最优行公共项和所述最优列公共项,对所述CSD矩阵进行分解;

矩阵确定模块,被配置为在分解后的CSD矩阵属于阈值矩阵情况下,将分解后的CSD矩阵作为最优系数矩阵,以使所述数字滤波器根据所述最优系数矩阵、所述最优行公共项和所述最优列公共项进行滤波处理;

其中,所述行公共项为所述CSD矩阵任意一行中两个非零元素组成的行数组,且所述两个非零元素分别位于所述行数组中的两端,所述两个非零元素之间是数值均为零,所述两个非零元素之间零的个数由所述两个非零元素在所述CSD矩阵中列的位置确定;所述列公共项为所述CSD矩阵任意一列中两个非零元素组成的列数组,且所述两个非零元素分别位于所述列数组中的两端,所述两个非零元素之间是数值均为零,所述两个非零元素之间零的个数由所述两个非零元素在所述CSD矩阵中行的位置确定。

可选地,所述阈值矩阵包括:第一阈值矩阵和第二阈值矩阵;

所述提取模块进一步被配置为提取所述CSD矩阵中的行公共项;

所述统计模块进一步被配置为在提取所述CSD矩阵中的行公共项后,统计不同的行公共项的出现次数;

所述公共项确定模块进一步被配置为在统计不同的行公共项的出现次数后,根据不同的行公共项的出现次数,确定最优行公共项;

所述分解模块进一步被配置为在确定最优行公共项后,根据所述最优行公共项,对所述CSD矩阵进行分解,以得到行残余系数矩阵;

所述提取模块进一步被配置为在行残余系数矩阵属于第一阈值矩阵情况下,提取所述行残余系数矩阵中的列公共项;

所述统计模块进一步被配置为在提取所述行残余系数矩阵中的列公共项后,统计不同的列公共项的出现次数;

所述公共项确定模块进一步被配置为在统计不同的列公共项的出现次数后,根据不同的列公共项的出现次数,确定最优列公共项;

所述分解模块进一步被配置为在确定最优列公共项后,根据所述最优列公共项,对所述行残余系数矩阵进行列分解,以得到列残余系数矩阵;

所述提取模块进一步被配置为在列残余系数矩阵属于第二阈值矩阵的情况下,将所述列残余系数矩阵作为所述最优系数矩阵。

本发明实施例提供的数字滤波器电路的实现方法及系统,能够采用CSD码表示滤波器系数;并在CSD矩阵的基础上,通过提取所述CSD矩阵中的行公共项和列公共项,即提取CSD系数内和CSD系数间的公共项,从而使得数字滤波器无需乘法器,只需要加法器和移位寄存器的方法,即可保证数字滤波器的最优逻辑深度、最少加法器资源,从而能够降低数字滤波器对加法器资源的使用频率,进而能够减少数字滤波器的空间占用面积。

附图说明

图1为本申请实施例的数字滤波器电路的实现方法的示意性流程图;

图2为本申请实施例的数字滤波器电路的实现方法的示意性流程图;

图3为本申请实施例的数字滤波器电路的实现系统的示意性结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

首先对本发明中的专有名词进行解释。

系数矩阵:

算法采用系数矩阵的方式表示滤波器的系数,记为Hx,其中下标x代表第x次迭代,H0为初始化系数矩阵;

假定一N阶滤波器系数为[h0 h1 … hN-2 hN-1],则初始化系数矩阵为:H0=[h0 h1… hm-2 hm-1]T

系数矩阵的维度为m*b,b为系数的量化位宽,m=N/2(以滤波器为偶数阶为例)。以H0为例,H0(i,:)对应FIR滤波器的第i个系数hi,后文称为第i行;H0(:,j)对应FIR滤波器的第h1~hn的第j bit,后文称为第j列。

迭代:

特指分解最优公共项的操作,即将CSD矩阵或行残余系数矩阵中的最优行公共项进行消去,得到的结果是行残余系数矩阵;如H0的最优行公共项为101,则迭代为消去H0中所有的101/-10-1项,经过迭代后得到行残余系数矩阵H1;同样的,假定Hi的最优列公共项为11,则迭代为消去Hi第1~b列中所有的11/-1-1项,经过迭代后得到列残余系数矩阵Hi+1

残余系数矩阵:

系数矩阵H_i,为第i次迭代后残余的系数矩阵,i∈[1,x],x为最终的迭代次数;具体的,包括行残余矩阵和列残余矩阵。

行公共项:

系数内不同非零项(101,10-1,1……1,1……-1),记录为行公共项{s,d},其中s代表2个非零项的符号是否相同,s=1符号相同,s=2符号相反,d为2个非零项中0的个数,如101记为{1,1},10-1记为{2,1}。

列公共项:

统计系数间同bit位置的非零项(11,1-1,101,10-1,1……1,1……-1),记为列公共项{vs,vd},统计列公共项的出现次数。其中vs代表2个非零项的符号是否相同,vs=1符号相同,vs=2符号相反,vd为2个非零项间隔,如11记为{1,1},1-1记为{2,1}。

行公共项矩阵(HSMM,horizontal sub-expressionmodel matrix):

与行公共项{s,d}对应,用于记录行公共项出现的次数,为2*(b-2)矩阵。HSMM(s,d)的值对应CSD系数中{s,d}公共项出现的总次数,如HSMM(1,1)=3表示系数矩阵中101/-10-1出现的次数为3。

列公共项矩阵(VSMM,Vertical sub-expressionmodel matrix)

与列公共项对应,用于记录列公共项出现的次数,为2*(m-1)矩阵。VSMM(vs,vd)的值对应CSD系数中列公共项出现的总次数;如VSMM(1,1)对应系数矩阵每一列出现11/-1-1的次数,VSMM(2,1)对应系数矩阵每一列出现出现1-1/-11的次数。

行公共项分解

一个非递归的迭代过程,假定已经进行了j-1次行公共项分解,则第j次行迭代过程如下:

a)、对行残余系数矩阵Hj-1(H0=Hcsd)中的系数h0~hm进行公共项统计,记录每一个系数中公共项{s,d|s∈[1,2],d∈[1,m-1]}出现的次数。中,i代表第i个系数,j代表第j次公共项统计。如8比特系数h0=010-10101中101出现了一次,10-1出现了2次(第一次10-1,第2次-101),10001出现了1次,1000001出现了1次,-10001出现了1次;

Figure BDA0002271871910000082

因此有

Figure BDA0002271871910000083

b)、依次统计行残余系数矩阵的行公共项,得到

Figure BDA0002271871910000084

并将结果进行累加,得到行公共项的次数总和矩阵

Figure BDA0002271871910000085

矩阵中最大的元素max{HSMMj},其对应的下标{s,d}即为本次迭代统计到的最优行公共项{Ss Dd};如果max{HSMMj}<1,行系数优化终止,并将该行残余矩阵作为首个的列残余矩阵进入列系数优化;

c)、如果max{HSMMj}>或=1,从行残余系数矩阵Hj-1中消去最优行公共项,得到Hj,返回步骤a)。系数中第k(1<k<b)bit出现的公共项项表示为(Xi+Xi<<Dd)<<k。

列公共项分解:

在本实施例中,列公共项分解发生在行公共项分解之后,假定所述列残余系数矩阵进行了q-1次迭代,得到了残余系数矩阵Hq-1,则第q次列迭代过程如下:

a)、依次对列残余系数矩阵Hq-1中系数的第1~b列进行列公共项统计,如果有2个项非0则统计1次列公共项,将VSMM矩阵中对应的列公共项次数加一。如出现11/-1-1则VSMM(1,1)+1,出现1-1/-11则VSMM(2,1)+1;同理出现101/-10-1则VSMM(1,2)+1,出现101/-10-1则VSMM(2,2)+1,直到全部b列的列公共项中均统计完毕;

b)、对VSMM矩阵中出现次数大于1的列公共项进行排序,值最大项对应的公共项max{VSMMq}对应的列公共项{vs,vd}为消去项。在Hq-1中进行列公共项消除,得到列残余系数矩阵Hq。相应的,第i行第j列出现的1……1/-1……-1替换为(Xi+Xi[-vd])<<j,1……-1/-1……1替换为(Xi-Xi[-vd])<<j,vd为两非零项的距离;

返回a)直到VSMM矩阵所有项均<1,算法结束。

第一方面,本发明提供一种数字滤波器电路的实现方法,所述数字滤波器为FIR(Finite Impulse Response,有限长单位冲激响应)滤波器,即非递归型滤波器。参见图1,图1示出了根据本申请一实施例的数字滤波器电路的实现方法的示意性流程图,所述方法包括:

步骤S101:获取数字滤波器的滤波器系数。

步骤S102:采用CSD码表示所述滤波器系数,以得到CSD系数。

步骤S103:根据所述CSD系数,生成CSD矩阵,其中,每一个CSD系数单独作为CSD矩阵中一行的元素,且所述CSD系数中的每一位数单独作为所述CSD矩阵的一个元素。

步骤S104:提取所述CSD矩阵中的行公共项和列公共项。

步骤S105:分别统计不同的行公共项和不同的列公共项的出现次数。

步骤S106:根据不同的行公共项和不同的列公共项的出现次数,确定最优行公共项和最优列公共项。

步骤S107:根据所述最优行公共项和所述最优列公共项,对所述CSD矩阵进行分解。

步骤S108:在分解后的CSD矩阵属于阈值矩阵情况下,将分解后的CSD矩阵作为最优系数矩阵,以使所述数字滤波器根据所述最优系数矩阵、所述最优行公共项和所述最优列公共项进行滤波处理。

其中,所述行公共项为所述CSD矩阵任意一行中两个非零元素组成的行数组,且所述两个非零元素分别位于所述行数组中的两端,所述两个非零元素之间是数值均为零,所述两个非零元素之间零的个数由所述两个非零元素在所述CSD矩阵中列的位置确定。所述列公共项为所述CSD矩阵任意一列中两个非零元素组成的列数组,且所述两个非零元素分别位于所述列数组中的两端,所述两个非零元素之间是数值均为零,所述两个非零元素之间零的个数由所述两个非零元素在所述CSD矩阵中行的位置确定。

所述数字滤波器电路的实现方法能够采用CSD码表示滤波器系数;并在CSD矩阵的基础上,通过提取所述CSD矩阵中的行公共项和列公共项,即提取CSD系数内和CSD系数间的公共项,从而使得数字滤波器无需乘法器,只需要加法器和移位寄存器的方法,即可保证数字滤波器的最优逻辑深度、最少加法器资源,从而能够降低数字滤波器对加法器资源的使用频率,进而能够减少数字滤波器的空间占用面积。

在一种可选的实施例中,所述阈值矩阵包括:第一阈值矩阵和第二阈值矩阵。

所述提取所述CSD矩阵中的行公共项和列公共项,分别统计不同的行公共项和不同的列公共项的出现次数,根据不同的行公共项和不同的列公共项的出现次数,确定最优行公共项和最优列公共项,根据所述最优行公共项和所述最优列公共项,对所述CSD矩阵进行分解,在分解后的CSD矩阵为阈值矩阵情况下,将分解后的CSD矩阵作为最优系数矩阵,包括:

提取所述CSD矩阵中的行公共项,统计不同的行公共项的出现次数,根据不同的行公共项的出现次数,确定最优行公共项,根据所述最优行公共项,对所述CSD矩阵进行分解,以得到行残余系数矩阵,在行残余系数矩阵属于第一阈值矩阵情况下,提取所述行残余系数矩阵中的列公共项,统计不同的列公共项的出现次数,根据不同的列公共项的出现次数,确定最优列公共项,根据所述最优列公共项,对所述行残余系数矩阵进行列分解,以得到列残余系数矩阵,在列残余系数矩阵属于第二阈值矩阵的情况下,将所述列残余系数矩阵作为所述最优系数矩阵。

在本实施例中,采用行公共项矩阵用于统计不同的行公共项的出现次数;即通过HSMM(s,d)统计不同的行公共项的出现次数,并作为行公共项矩阵的元素;如在第i次迭代中,HSMM(1,1)=3表示对应的系数矩阵中101/-10-1出现的次数为3,则第i次迭代对应的行公共项矩阵对应的第一行第一列的元素为3。采用列公共项矩阵用于统计不同的列公共项的出现次数,并作为列公共项矩阵的元素;即通过VSMM(vs,vd)统计不同的列公共项的出现次数;如在第i次迭代中,VSMM(1,1)=2表示对应的系数矩阵中1-1/-11出现的次数为2,则第i次迭代对应的列公共项矩阵对应的第一行第一列的元素为2。

在本实施例中,所述第一阈值矩阵为行公共项矩阵中最大元素的数值小于1的一类矩阵,但并不限于此,所述第一阈值矩阵为行公共项矩阵中最大元素的数值也可以小于2、3或4等大于1的一类矩阵。在本实施例中,所述第二阈值矩阵为列公共项矩阵中最大元素的数值等于0的一类矩阵,但不限于此,所述第二阈值矩阵为列公共项矩阵中最大元素的数值也可以等于0、1或2等大于零的一类矩阵。通过先采用行公共项进行分解再采用列公共项分解的方式对相应的系数矩阵进行分解不但能够减少数字滤波器对加法器资源的使用,同时还能够提高数字滤波器的优化效果,并保证数字滤波器算法的唯一性。

在一种可选的实施例中,在所述提取所述行残余系数矩阵中的列公共项的步骤之前,所述方法还包括:

判断所述行残余系数矩阵是否属于第一阈值矩阵。

在行残余系数矩阵不属于第一阈值矩阵的情况下,重复执行以下步骤:

提取行残余系数矩阵中的行公共项。

统计不同的行公共项的出现次数。

根据不同的行公共项的出现次数,确定最优行公共项。

根据所述最优行公共项,对行残余系数矩阵进行分解,以得到新的行残余系数矩阵。

通过对所述行残余系数矩阵进行判断处理,并在不符合条件的情况下进行迭代处理,能够对所述行残余系数矩阵做进一步优化,从而能够降低数字滤波器对加法器资源的使用频率,进而能够减少数字滤波器的空间占用面积。

在一种可选的实施例中,所述根据不同的行公共项的出现次数,确定最优行公共项,包括:

根据不同的行公共项的出现次数,构建行公共项矩阵,其中,所述不同的行公共项的出现次数作为所述行公共矩阵中的不同元素。

选定所述行公共项矩阵中数值最大的元素所对应的行公共项作为最优行公共项。

通过行公共项矩阵对不同的行公共项的出现次数进行统计,能够便于确定最优行公共项。

在一种可选的实施例中,所述根据所述最优行公共项,对所述CSD矩阵进行分解,包括:

根据最优行公共项中首尾两端的非零数的间隔,将所述CSD矩阵每一行中对应的非零元素进行归零处理。

所述根据所述最优行公共项,对行残余系数矩阵进行分解,包括:

根据最优行公共项中首尾两端的非零数的间隔,将所述行残余系数矩阵每一行中对应的非零元素进行归零处理。

通过最优行公共项对相应的CSD矩阵和行残余系数矩阵进行分解,能够对CSD矩阵和行残余系数中的元素进行优化,从而能够进一步降低数字滤波器对加法器资源的使用频率,进而能够进一步减少数字滤波器的空间占用面积。

在一种可选的实施例中,在所述将所述列残余系数矩阵作为所述最优系数矩阵的步骤之前,所述方法还包括:

判断所述列残余系数矩阵是否属于第二阈值矩阵。

在行残余系数矩阵不属于第一阈值矩阵的情况下,重复执行以下步骤:

提取列残余系数矩阵中的列公共项。

统计不同的列公共项的出现次数。

根据不同的列公共项的出现次数,确定最优列公共项。

根据所述最优列公共项,对所述列残余系数矩阵进行列分解,以得到新的列残余系数矩阵。

通过对所述列残余系数矩阵进行判断处理,并在不符合条件的情况下进行迭代处理,能够对所述列残余系数矩阵做进一步优化,从而能够进一步降低数字滤波器对加法器资源的使用频率,进而能够进一步减少数字滤波器的空间占用面积。

在一种可选的实施例中,所述根据不同的列公共项的出现次数,确定最优列公共项,包括:

根据不同的列公共项的出现次数,构建列公共项矩阵,其中,所述不同的列公共项的出现次数作为所述列公共矩阵中的不同元素。

选定所述列公共项矩阵中数值最大的元素所对应的列公共项作为最优列公共项。

通过列公共项矩阵对不同的列公共项的出现次数进行统计,能够便于确定最优列公共项。

在一种可选的实施例中,所述根据所述最优列公共项,对所述行残余系数矩阵进行分解,包括:

根据最优列公共项中首尾两端的非零数的间隔,将所述行残余系数矩阵每一列中对应的非零元素进行归零处理。

所述根据所述最优列公共项,对列残余系数矩阵进行分解,包括:

根据最优列公共项中首尾两端的非零数的间隔,将所述列残余系数矩阵每一列中对应的非零元素进行归零处理。

通过最优列公共项对相应的CSD矩阵和列残余系数矩阵进行分解,能够对CSD矩阵和列残余系数中的元素进行优化,从而能够进一步降低数字滤波器对加法器资源的使用频率,进而能够进一步减少数字滤波器的空间占用面积。

第二方面,本发明提供一种数字滤波器电路的实现方法,参见图2,图2示出了根据本申请一实施例的数字滤波器电路的实现方法的示意性流程图,所述方法包括:

步骤S201:获取数字滤波器的滤波器系数。

步骤S202:采用CSD码表示所述滤波器系数,以得到CSD系数。

步骤S203:根据所述CSD系数,生成CSD矩阵,其中,每一个CSD系数单独作为CSD矩阵中一行的元素,且所述CSD系数中的每一位数单独作为所述CSD矩阵的一个元素。

步骤S204:提取所述CSD矩阵中的行公共项。

步骤S205:统计不同的行公共项的出现次数。

步骤S206:根据不同的行公共项的出现次数,构建行公共项矩阵,其中,所述不同的行公共项的出现次数作为所述行公共矩阵中的不同元素。

步骤S207:选定所述行公共项矩阵中数值最大的元素所对应的行公共项作为最优行公共项。

步骤S208:根据最优行公共项中首尾两端的非零数的间隔,将所述CSD矩阵每一行中对应的非零元素进行归零处理,以得到行残余系数矩阵。

步骤S209:判断所述行残余系数矩阵是否属于第一阈值矩阵,若是,执行步骤S215,若否,执行步骤S210。

步骤S210:提取行残余系数矩阵中的行公共项。

步骤S211:统计不同的行公共项的出现次数。

步骤S212:根据不同的行公共项的出现次数,构建行公共项矩阵,其中,所述不同的行公共项的出现次数作为所述行公共矩阵中的不同元素。

步骤S213:选定所述行公共项矩阵中数值最大的元素所对应的行公共项作为最优行公共项。

步骤S214:根据最优行公共项中首尾两端的非零数的间隔,将所述行残余系数矩阵每一行中对应的非零元素进行归零处理,以得到新的行残余系数矩阵,并执行步骤S209。

步骤S215:提取所述行残余系数矩阵中的列公共项。

步骤S216:统计不同的列公共项的出现次数。

步骤S217:根据不同的列公共项的出现次数,构建列公共项矩阵,其中,所述不同的列公共项的出现次数作为所述列公共矩阵中的不同元素。

步骤S218:选定所述列公共项矩阵中数值最大的元素所对应的列公共项作为最优列公共项。

步骤S219:根据最优列公共项中首尾两端的非零数的间隔,将所述行残余系数矩阵每一列中对应的非零元素进行归零处理。

步骤S220:判断所述列残余系数矩阵是否属于第二阈值矩阵,若是,执行步骤S226,若否,执行步骤S221。

步骤S221:提取列残余系数矩阵中的列公共项。

步骤S222:统计不同的列公共项的出现次数。

步骤S223:根据不同的列公共项的出现次数,构建列公共项矩阵,其中,所述不同的列公共项的出现次数作为所述列公共矩阵中的不同元素。

步骤S224:选定所述列公共项矩阵中数值最大的元素所对应的列公共项作为最优列公共项。

步骤S225:根据最优列公共项中首尾两端的非零数的间隔,将所述列残余系数矩阵每一列中对应的非零元素进行归零处理,以得到新的列残余系数矩阵,并执行步骤S220。

步骤S226:将列残余系数矩阵作为最优系数矩阵,以使所述数字滤波器根据所述最优系数矩阵、所述最优行公共项和所述最优列公共项进行滤波处理。

所述数字滤波器电路的实现方法能够采用CSD码表示滤波器系数。并在CSD矩阵的基础上,通过提取所述CSD矩阵中的行公共项和列公共项,即提取CSD系数内和CSD系数间的公共项,从而使得数字滤波器无需乘法器,只需要加法器和移位寄存器的方法,即可保证数字滤波器的最优逻辑深度、最少加法器资源,从而能够降低数字滤波器对加法器资源的使用频率,进而能够减少数字滤波器的空间占用面积。

第三方面,本发明提供一种数字滤波器电路的实现方法,在本实施例中,所述数字滤波器包括4个滤波器系数,分别为:

H(0)=1288,h(1)=776,h(2)=1077,h(3)=1189;系数优化步骤如下:

1、将4个滤波器系数表示为CSD形式,得到CSD矩阵;

1.1、将表示为12bit的CSD数后,4个滤波器系数如下:

H(0)=0x508=(010100001000)csd

H(1)=0x308=(010-100001000)csd

H(2)=0x435=(0100010-10101)csd

H(3)=0x4a5=(010010100101)csd

1.2、列出CSD矩阵为:

Figure BDA0002271871910000161

假定输入为x0,数字滤波器对应的输出为y0,则y0=H0*x0*[z0 z-1 z-2 z-3]。其中z-n表示对数字滤波器接收的信号进行n个时钟单位的延时,如z0表示1,z-1表示对数字滤波器接收的信号进行1个时钟单位的延时。

2、对列出的CSD矩阵进行行公共项消去;

2.1、首先进行行公共项统计,具体的,统计行公共项的出现频率,得到行公共项的出现频率,取最大出现次数的行公共项为最优行公共项,进行系数消去,得到当前的最优行公共项和行残余系数矩阵。

例如:统计CSD矩阵H0中行公共项的出现频率,得到

最优行公共项为{1,1},出现频次为4,因此取最优行公共项为101。假定数字滤波器的输入为x0,则最优行公共项与输入的乘积可以记为S0=[101]*x0=x0<<2+x0,迭代后得到:

Figure BDA0002271871910000172

即根据S0=[101]*x0=x0<<2+x0

Figure BDA0002271871910000173

2.2、对H1进行第二次行公共项统计,得到:

Figure BDA0002271871910000174

得到最优公共项为{2,1},出现频次为2,因此最优行公共项为10-1。假定数字滤波器的输入为x0,则最优行公共项与输入的乘积可以记为S1=x0<<2-x0,消去最优行公共项后得到

即根据S1=x0<<2-x0

Figure BDA0002271871910000182

Figure BDA0002271871910000183

2.3、统计到HSMM2=0,符合结束行迭代的条件,开始对行残余系数矩阵

Figure BDA0002271871910000184

进行列公共项统计,得到

Figure BDA0002271871910000185

最优列公共项为

Figure BDA0002271871910000186

则最优列公共项与输入x0的乘积可以记为S2=x0+x0[-1],[-1],表示对数字滤波器接收的信号进行1个时钟单位的延时,即对应z-1。采用列公共项消去后,得到最终的列残余系数矩阵为0,采用表达式表示为:

Figure BDA0002271871910000187

H2对应的输出为:

Figure BDA0002271871910000191

2.4、用最终的列残余矩阵与公共项相加的方式还原初始矩阵,得到初始矩阵的公共项表示式。

Figure BDA0002271871910000192

根据数字滤波器的优化过程,可将其输出为y0表示为:

Figure BDA0002271871910000193

完成优化后,所述数字滤波器的加法器深度为2,即最多两层加法器。具体的,使用加法器个数为7个,包括S0、S1、S2中的各1个加法器,以及矩阵间乘加用的4个加法器,如此比原有进行采用CSD表示法进行优化能够降低一半以上对加法器资源的使用频率,从而能够进一步减少数字滤波器的空间占用面积。

所述方法采用该系数表示法与输入进行卷积,同时也不需要更换滤波器系数值,因此运算结果与传统的CSD表示法没有区别,但是能够更好的降低加法器资源的使用频率,从而能够减少数字滤波器的空间占用面积。

对于本实施例所描述的方法,简要概括为:先依次对滤波器系数进行行公共项或列公共项的统计,同时并依次把每次的残余矩阵中的出现次数最多的行公共项或列公共项提取出来,计算出系数矩阵和提取公共项后的行残余系数矩阵或列残余系数矩阵;然后继续进行行公共项或列公共项的提取,如此即可将初始的滤波器系数表示成“所有的最优行公共项+所有的列公共项+最优系数矩阵”的形式;数字滤波器的输出矩阵=初始的滤波器系数矩阵*数字滤波器的输入矩阵=(所有的最优行公共项+所有的列公共项+最优系数矩阵)*输入矩阵。

第四方面,本发明提供一种数字滤波器电路的实现系统300,参见图3,图3示出了根据本申请一实施例的数字滤波器电路的实现系统的示意性结构图,所述系统300包括:

系数获取模块301,被配置为获取数字滤波器的滤波器系数。

系数转换模块302,被配置为采用CSD码表示所述滤波器系数,以得到CSD系数。

矩阵生成模块303,被配置为根据所述CSD系数,生成CSD矩阵,其中,每一个CSD系数单独作为CSD矩阵中一行的元素,且所述CSD系数中的每一位数单独作为所述CSD矩阵的一个元素。

提取模块304,被配置为提取所述CSD矩阵中的行公共项和列公共项。

统计模块305,被配置为分别统计不同的行公共项和不同的列公共项的出现次数。

公共项确定模块306,被配置为根据不同的行公共项和不同的列公共项的出现次数,确定最优行公共项和最优列公共项。

分解模块307,被配置为根据所述最优行公共项和所述最优列公共项,对所述CSD矩阵进行分解。

矩阵确定模块308,被配置为在分解后的CSD矩阵属于阈值矩阵情况下,将分解后的CSD矩阵作为最优系数矩阵,以使所述数字滤波器根据所述最优系数矩阵、所述最优行公共项和所述最优列公共项进行滤波处理。

其中,所述行公共项为所述CSD矩阵任意一行中两个非零元素组成的行数组,且所述两个非零元素分别位于所述行数组中的两端,所述两个非零元素之间是数值均为零,所述两个非零元素之间零的个数由所述两个非零元素在所述CSD矩阵中列的位置确定。所述列公共项为所述CSD矩阵任意一列中两个非零元素组成的列数组,且所述两个非零元素分别位于所述列数组中的两端,所述两个非零元素之间是数值均为零,所述两个非零元素之间零的个数由所述两个非零元素在所述CSD矩阵中行的位置确定。

在一种可选的实施例中,所述阈值矩阵包括:第一阈值矩阵和第二阈值矩阵。

所述提取模块304进一步被配置为提取所述CSD矩阵中的行公共项。

所述统计模块305进一步被配置为在提取所述CSD矩阵中的行公共项后,统计不同的行公共项的出现次数。

所述公共项确定模块306进一步被配置为在统计不同的行公共项的出现次数后,根据不同的行公共项的出现次数,确定最优行公共项。

所述分解模块307进一步被配置为在确定最优行公共项后,根据所述最优行公共项,对所述CSD矩阵进行分解,以得到行残余系数矩阵。

所述提取模块304进一步被配置为在行残余系数矩阵属于第一阈值矩阵情况下,提取所述行残余系数矩阵中的列公共项。

所述统计模块305进一步被配置为在提取所述行残余系数矩阵中的列公共项后,统计不同的列公共项的出现次数。

所述公共项确定模块306进一步被配置为在统计不同的列公共项的出现次数后,根据不同的列公共项的出现次数,确定最优列公共项。

所述分解模块307进一步被配置为在确定最优列公共项后,根据所述最优列公共项,对所述行残余系数矩阵进行列分解,以得到列残余系数矩阵。

所述提取模块304进一步被配置为在列残余系数矩阵属于第二阈值矩阵的情况下,将所述列残余系数矩阵作为所述最优系数矩阵。

在一种可选的实施例中,所述系统300还包括:

第一判断模块,被配置为判断所述行残余系数矩阵是否属于第一阈值矩阵;

所述提取模块304,进一步被配置为在行残余系数矩阵不属于第一阈值矩阵的情况下,提取行残余系数矩阵中的行公共项;

所述统计模块305,进一步被配置为统计不同的行公共项的出现次数;

所述公共项确认模块,进一步被配置为根据不同的行公共项的出现次数,确定最优行公共项;

所述分解模块307,进一步被配置为根据所述最优行公共项,对行残余系数矩阵进行分解,以得到新的行残余系数矩阵。

在一种可选的实施例中,所述公共项确认模块包括:

行矩阵构建子模块,被配置为根据不同的行公共项的出现次数,构建行公共项矩阵,其中,所述不同的行公共项的出现次数作为所述行公共矩阵中的不同元素;

第一选定子模块,被配置为选定所述行公共项矩阵中数值最大的元素所对应的行公共项作为最优行公共项。

在一种可选的实施例中,所述分解模块307,进一步被配置为根据最优行公共项中首尾两端的非零数的间隔,将所述CSD矩阵每一行中对应的非零元素进行归零处理;

所述分解模块307,进一步还被配置为根据最优行公共项中首尾两端的非零数的间隔,将所述行残余系数矩阵每一行中对应的非零元素进行归零处理。

在一种可选的实施例中,所述系统300还包括:

第二判断模块,被配置为判断所述列残余系数矩阵是否属于第二阈值矩阵;

所述提取模块304,进一步被配置为在行残余系数矩阵不属于第一阈值矩阵的情况下,提取列残余系数矩阵中的列公共项;

所述统计模块305,进一步被配置为统计不同的列公共项的出现次数;

所述公共项确认模块,进一步被配置为根据不同的列公共项的出现次数,确定最优列公共项;

所述分解模块307,进一步被配置为根据所述最优列公共项,对所述列残余系数矩阵进行列分解,以得到新的列残余系数矩阵。

在一种可选的实施例中,所述公共项确认模块包括:

列矩阵构建子模块,被配置为根据不同的列公共项的出现次数,构建列公共项矩阵,其中,所述不同的列公共项的出现次数作为所述列公共矩阵中的不同元素;

第二选定子模块,被配置为选定所述列公共项矩阵中数值最大的元素所对应的列公共项作为最优列公共项。

在一种可选的实施例中,所述分解模块307,进一步被配置为根据最优列公共项中首尾两端的非零数的间隔,将所述行残余系数矩阵每一列中对应的非零元素进行归零处理;

所述分解模块307,进一步还被配置为根据最优列公共项中首尾两端的非零数的间隔,将所述列残余系数矩阵每一列中对应的非零元素进行归零处理。

所述数字滤波器电路的实现系统300能够采用CSD码表示滤波器系数;并在CSD矩阵的基础上,通过提取所述CSD矩阵中的行公共项和列公共项,即提取CSD系数内和CSD系数间的公共项,从而使得数字滤波器无需乘法器,只需要加法器和移位寄存器的方法,即可保证数字滤波器的最优逻辑深度、最少加法器资源,从而能够降低数字滤波器对加法器资源的使用频率,进而能够减少数字滤波器的空间占用面积。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

24页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:脉冲时钟产生电路、集成电路及脉冲时钟产生方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!