低复杂度非线性滤波器的制作方法

文档序号:6655847阅读:601来源:国知局
专利名称:低复杂度非线性滤波器的制作方法
技术领域
本发明一般涉及数字信号处理。更具体地,公开了非线性系统的数字信号处理。
背景技术
在数字信号处理系统中,通常需要描述和实现非线性函数。一种用于描述非线性函数的传统方法是Volterra非线性展开式。令信道输入信号矢量为Vn=[vnvn-1... vn-N],信道输出为yn。Volterra函数的一个例子为yn=a0vn+a1vn-1+a2vn2+a3vnvn-1+a4vn2vn-1]]>(等式1) Volterra函数描述了一种非线性函数,该函数具有一组与输入数据的较高次幂相乘的固定系数。在实践中,由于高阶项的缘故,通常难以使用Volterra传递函数来实现非线性滤波器。
在2003年4月18日提交的美国专利申请10/418944(卷宗号为OPTIP002)中,描述了一般的非线性滤波器结构,此处通过引用将其全部内容包含于本文之中。可以用不同的形式表达同一滤波器函数。一种通式的例子是
yn=ATVn+b+Σj=1Kcj|α→jVn+βj|]]>(等式2) 根据该通式来实现非线性滤波器一般比实现Volterra函数容易。然而,尽管使用非线性要素(如绝对值算子和最小-最大运算子)可以更容易地实现非线性滤波器,但由于使用一般形式实现非线性函数所需的乘法运算数目的缘故,导致实现成本仍然很高。使用成本效率更高的方法来实现非线性滤波器将是有用的。也希望成本的节省不会对滤波器的性能造成严重影响。


在以下详细说明和附图中公开了本发明的各种实施例。
图1A-1B示出了非线性滤波器的应用实例。
图1C示出了几种对非线性滤波器的响应函数进行近似的方法。
图2的流程图示出了根据一些实施例而对输入信号进行的处理。
图3的框图示出了一阶低复杂度非线性滤波器的实施例。
图4示出了一阶非线性滤波器实施例的输出信号的3维流形。
图5的框图示出了二阶低复杂度非线性滤波器的实施例。
图6示出了二阶低复杂度非线性滤波器实施例的输出信号的3维流形。
图7的框图示出了N阶非线性滤波器的实施例。
图8A和8B的框图示出了非线性滤波器的实施例。
图9示出了用于计算非线性滤波器系数的一种运算模块的实施例。
图10的框图示出了根据另一实施例的、用于计算非线性滤波器系数的另一运算模块。
具体实施例方式本发明可通过多种方式来实施,该发明包括过程、装置、系统、实体构成、计算机可读介质(如计算机可读存储介质)或计算机网络,在该网络中,通过光或电子通信链路发送程序指令。在本说明书中,可将这些实施方式或本发明可采用的任何其它形式称为技术。配置成执行某一任务的部件(如处理器或存储器)包括临时配置成用来在某一给定时刻执行该任务的通用部件或专为执行该任务而制造的特定部件。一般而言,在本发明的范围内,可以改变所公开的过程的步骤次序。
以下,提供了对本发明的一个或多个实施例的详细说明与说明本发明原理的附图。结合这些实施例对本发明进行了说明,但本发明不限于任何实施例。本发明的范围仅由权利要求进行限定,并且,本发明包含了许多替代方案、修改和等价物。在以下描述中,阐述了大量具体细节来使读者透彻理解本发明。提供的这些细节用于举例,且不具备某些或所有这些具体细节也可以根据权利要求来实施本发明。为简明起见,未详细描述涉及本发明的技术领域内所熟知的技术资料,以防止不必要地干扰对本发明的说明。
公开了一种用于非线性系统的改进的信号处理技术。在一些实施例中,将一个或多个输入变量与一组有序常数进行比较,以确定这些输入变量在可能的输入范围内的相对位置。使用这些相对位置确定了非线性滤波器的一个或多个滤波器系数。不使用乘法运算便可确定这些滤波器系数。在一些实施例中,在合适的时候,预先计算、存储和获取了零阶、一阶、二阶和/或更高阶的滤波器的滤波器系数。可通过嵌套低阶滤波器来形成高阶滤波器。
图1A-1B示出了非线性滤波器的一个应用实例。在图1A中,输入模拟信号120被送至模数转换器(ADC)122,以转换为数字信号124。由于部件不匹配和其它系统特性的缘故,ADC122产生了存在某些失真的输出124。可以将信号124看作分量126(基于输入的理想的数字化输出)和数字失真分量的组合。数字失真分量与量化误差不同,后者等于模拟信号的低于ADC的最细量化等级的部分,且对具有预定数目的位的ADC而言,通常不能减小该误差。如果失真模型已知,则可以对失真分量进行预测和修正。
在图1B中,训练非线性滤波器130来对ADC122的特性进行建模。组合器132从ADC输出中减去失真分量,以产生失真得到校正的输出134,该输出近似等于理想的数字输出。
图1C示出了对非线性滤波器的响应函数进行近似的几种方法。在所示实例中,输出依赖于一维输入。所示技术也适用于多维空间输入。在该实例中,可以用零阶函数104、一阶函数106或二阶函数108来对非线性函数102进行近似。在本文中,将N阶函数表示为yn=Σj=0Ncjvj]]>(等式3)其中cj为系数。
在所示实例中,输入范围被分为几个离散部分,并使用一组有序常数β0至β7来标记。离散部分的数目取决于一些因素(如性能要求),且对不同实施例而言,该数目可能不同。取决于系统的实施方式,β在输入范围内的分布可以是均匀的,也可以是非均匀的。通过使用线性的零阶函数来对输入范围的各个部分(如β0与β1之间的输入范围,β1与β2之间的输入范围,等等)中的传递函数进行近似,然后合并这些函数,确定了零阶函数104。可使用最小均方误差或其它合适的技术来进行近似,以确定合适的系数。类似地,一阶近似函数106由输入范围的各个部分中的线性一阶近似函数组成,二阶近似函数108由输入范围的各个部分中的非线性二阶近似函数组成。也可以进行更高阶的近似。
可以对等式2的非线性函数通式进行变换,并可基于变换后的函数进行近似。该非线性函数通式的绝对值部分可以写成
|α→jVn+βj|=sign(α→jVn+βj){α→jVn+βj}=λjn{α→jVn+βj}]]>(等式4)其中sign=(α→jVn+βj)=λjn]]>(等式5) 因此,非线性滤波器的通式可以写成yn=(a0+Σj=1Kcjα0jλjn)vn+···+(a2N-2+Σj=1Kcjα2N-2jλjn)vn-2N+2+(b+Σj=1Kcjβjλjn)]]>(等式6)它与下式等同yn=a~0,n(Vn)vn+···+a~2N-2,n(Vn)vn-2N+2+b~n(Vn)]]>(等式7) 可以将以上等式视为输入变量与非线性系数之间的“线性”卷积,而这些系数是输入信号的时变非线性函数。输入Vn在多维输入空间中的相对位置确定了元素λjn的值,并因此确定了系数 和 滤波器系数的值取决于输入信号矢量,这一点为滤波器赋予了非线性特性。有时将该函数称为一阶非线性滤波器,因为各个变量的系数均为不依赖于该变量本身的函数。在这种情况下,上述系数是变量vn-j的函数的符号(sign)的函数。
等式6可写成矢量形式yn=ATVn+b+c1λ1nc2λ2n···cKλKn{α0,1α1,1···α2N-2,1α0,2α1,2α2N-2,2···α0,Kα1,K···α2N-2,Kvnvn-1···vn-2N+2+β1β2···βK}]]>(等式8)该等式示出了上述系数与λjn的相关性。
一旦写成矢量形式,则可以对滤波器进行进一步的变换,以减少运算量。例如,可以将上述矢量形式写成
(等式9)而该式可进一步化简为 (等式10)这便将原始等式化简为yn=ATVn+b+Σj=1K1cj|vn+βj|+Σj=K1+1K2cj|vn-1+βj|···+Σj=K2N-3+1K2N-2cj|vn-2N+2+βj|]]>=ATVn+b+Σj=1K1cjλj,n(vn+βj)+Σj=K1+1K2cjλj,n(vn-1+βj)···+Σj=K2N-3+1K2N-2cjλj,n(vn-2N+2+βj)]]>(等式11)这意味着yn=(a0+Σj=1K1cjλjn)vn+···+(a2n-2+Σj=K2N-3+1K2N-2cjλjn)vn-2N+2+(b+Σj=1Kcjβjλjn)]]>(等式12) 正如以下要详细阐述的,等式12减少了运算量,因为λj的计算不需要任何乘法运算。与滤波器函数通式相比,该函数节约了较多的计算量,其中,在计算λj之前进行线性卷积 由于与输入的相关为一阶的,因而化简后的非线性滤波器函数可称为一阶低复杂度滤波器函数。
也可以使用矢量变换来进行其它简化。例如, (等式13)这产生了非线性滤波器yn=a~0,n(vn,vn-1)vn+a~1,n(vn,vn-1)vn-1+···+a~2N-2,n(vn-2N+2)vn-2N+2+b~n(Vn)]]>(等式14)其中,前两个变量的各个系数对应于这两个变量的函数,而剩下的各个系数是与它们相乘的变量的函数。
图2的流程图示出了根据某些实施例对输入信号进行的处理。过程200适用于各种非线性滤波器实施例,下面,更详细地示出了其中的一些实施例。将输入信号的输入变量与一组有序常数进行比较(202)。在某些实施例中,这些有序常数是β常数,它们将输入范围划分成多个部分。确定输入变量在可能的输入范围内的相对位置(204)。在某些实施例中,使用λj的值来确定该相对位置。使用该相对位置,确定了非线性滤波器的一个或多个滤波器系数(206)。这些与输入相关的系数可能随时间变化。不需进行乘法运算便可确定这些系数,这便允许滤波器能有效地处理它的输入。在某些实施例中,非线性滤波器用于处理输入和产生输出。在某些实施例中,将具有所得系数的非线性滤波器用作更高阶非线性滤波器的系数,然后,用该更高阶滤波器来对输入进行滤波和产生输出。
图3的框图示出了一阶低复杂度非线性滤波器的实施例。该实例中所示的滤波器300具有与等式12等同的传递函数。将输入矢量Vn送入符号处理器(sign processor)302,以生成λjn。常量系数,包括cj、aj、cjβj,被保存在存储器304中,该存储器可通过使用寄存器或其它合适的数据存储部件来实现。通过将λ与相应的cj或βj相乘,然后将所得结果相加,再将其与相应的常数aj相加,得到了等式12的一阶系数。然后,在合适的时候将这些系数与输入变量v相乘。组合各个一阶滤波器的结果,以产生非线性输出yn。
图4示出了一阶非线性滤波器实施例的输出的3维流形。在该实例中,滤波器函数400是两个输入变量的函数。其一阶项形成了该流形的平面部分。可以用函数400来对连续的3维非线性函数进行近似。类似地,也可以对涉及更高维的函数进行近似。
如前所示,可以将等式2的非线性滤波器函数通式变换成如等式7所示的一阶非线性滤波器。对该非线性滤波器变换进行进一步推广可得出另一非线性滤波器表达式yn=f0,n(Vn)vn+···+f2N-2,n(Vn)vn-2N+2+a~0,n(Vn)vn+···+a~2N-2,n(Vn)vn-2N+2+b~n(Vn)]]>(等式15)其中,各个fk,n(Vn)均为一阶非线性函数fk,n(Vn)=AkTVn+bk+Σj=1Kcjk|α→jkVn+βjk|=a~0,nk(Vn)vn+···+a~2N-2,nk(Vn)vn-2N+2+b~nk(Vn)]]>(等式16)从而,将fk,n(Vn)作为其系数的等式15中的各项是输入变量的二阶函数(在本文中,二阶函数至少包括一项输入变量的的二次幂或输入变量的叉积)。在不同的实施例中,系数可以分别与输入变量、经过延迟的输入变量、输入的导数或输入的其它适当特性相乘。
图5的框图示出了二阶低复杂度非线性滤波器的实施例。在该实例中,使用多个一阶低复杂度滤波器来实现二阶低复杂度滤波器500。使用诸如最小均方误差的技术计算了一阶低复杂度滤波器的系数。将输入矢量送至各个一阶低复杂度滤波器,且各个滤波器输出与相应的输入变量相乘。将所得结果进行组合,以产生输出yn。
图6示出了二阶非线性滤波器实施例的输出的3维流形。在该实例中,滤波器函数600是两个输入变量的函数。其二阶项形成了流形的抛物面部分。有时,可以用类似于该二阶滤波器的高阶滤波器来更好地对定义所希望的非线性函数(如系统的实际传递函数、误差函数,等等)的多维流形进行近似。
可以将上述方法进一步推广为形成三阶或更高阶的非线性滤波器。图7的框图示出了N阶非线性滤波器的实施例。在所示的实例中,通过嵌套较低阶滤波器实现了N(N>2)阶滤波器。N阶低复杂度滤波器700包括多个(N-1)阶低复杂度滤波器。将N-1阶滤波器的输出与输入变量相乘。从而,N-1阶滤波器用作N阶滤波器的输入系数。而各个N-1阶滤波器又可通过将多个N-2阶低复杂度滤波器用作输入系数来实现。总之,嵌套使得较高阶的滤波器更易于实现。
在某些实施例中,用零阶非线性滤波器来实现非线性滤波器,其中,各个离散域中的滤波器的传递函数为常数。在图1C中,用104表示零阶滤波器响应的一个实例。由于其滤波器响应不连续,因而有时将零阶滤波器称为“灾难”结构。零阶非线性滤波器的通式可表示成yn=a0+a1+···+a2N-2+b+Σj=1Kcj0λj0+Σj=1Kcj1λj1+···+Σj=1Kcj2N-2λj2N-2]]>(等式17) 在某些实施例中,除省略含有vn、vn-1等的乘积项,以及将输出 等直接相加外,以类似于图3的滤波器300的方式来实现基于等式17的零阶非线性滤波器。
可以将不同阶的非线性滤波器组合来形成具有所希望的传递函数的新滤波器。图8A和8B的框图示出了非线性滤波器的实施例。在所示实例中,使用零阶非线性滤波器804、一阶非线性滤波器806、二阶非线性滤波器808、以及其它达到N阶的高阶非线性滤波器来实现非线性滤波器802。可使用多个某一阶次的滤波器。可省略一个或多个阶次的滤波器。N的选择取决于对滤波器802的要求,且对不同的实施例而言,N可以是不同的。对某些应用而言,单一的零阶非线性滤波器便已足够,而对另一些应用而言,N可能应大于3。通过组合不同阶的非线性滤波器而构建的非线性滤波器可实现所希望的滤波器性能,且其运算效率也得到了提高。
在某些实施例中,可进一步降低非线性滤波器的复杂度。以下面的一阶滤波器为例yn=a0vn+a1vn-1+b+Σj=1Kcj0|vn+βj0|+Σj=1Kcj1|vn-1+βj1|]]>=(a0+Σj=1Kcj0λj0)vn+(a1+Σj=1Kcj1λj1)vn-1+(b+Σj=1Kcj0λj0βj0+Σj=1Kcj1λj1βj1)]]>=a~0,nvn+a~1,nvn-1+b~n]]>(等式18)其中λjm=sign(vn+βjm)]]>(等式19) 由于λj1=±1,]]>因而无需任何乘法运算就能得到系数 类似地,由于在需要时可预先计算、存储和查找乘积cjmβjm,因而无需乘法运算也可计算 从而,可以将等式18的非线性滤波器实施为仅需两次乘法运算的一阶滤波器。
图9示出了用于计算非线性滤波器系数的计算模块的实施例。在该实例中,计算了等式18中所示的滤波器的系数。不同的输入范围导致了不同的λjm,这些λjm可能为1或-1。预先计算了与不同的输入范围对应的可能系数值 与 并将它们存储在寄存器中。接收输入后,将该输入与的一组βjm值进行比较,以确定它在输入范围中的相对位置以及与该特定位置对应的预先计算的系数值。
图10的框图示出了根据另一个实施例的、用来计算非线性滤波器系数的另一个计算模决。在该实例中,使用指明输入在可能的输入范围内的相对位置的指示来确定系数值。在这种情况下使用的指示为“温度计码”,该温度计码是一种矢量,该矢量在任意两个相邻变量之间最多存在一次符号变化。在所示实例中,温度计码的每一项的幅值均为1。
以下面的二阶函数为例yn=a0vn+a1vn-1+b+Σj=1Kcj0|vn+βj0|vn+Σj=1Kcj1|vn-1+βj1|vn]]>=(Σj=1Kcj0λj0)vn2+(Σj=1Kcj1λj1)vnvn-1+(a0+Σj=1Kcj0λj0βj0+Σj=1Kcj1λj1βj1)vn+a1vn-1+b]]>=a~01,nvn2+a^1,nvnvn-1+a~0,nvn+a1,nvn-1+b]]>(等式20). 将输入与βjk的一组值进行比较,以确定输入变量在可能的输入范围内的相对位置与由λj,n构成的矢量(表示为Λn)。取决于输入,Λn可以是这样的矢量它的各项仅为1,仅为-1,或前k项均为-1,其余项均为+1。换言之,Λn是温度计码,该码的各项中最多包含一次符号变化。例如,假设常数βjk分布在动态范围vn∈(-1,1)内,且βjk存在8个值,即βjk∈(-47-37-27-1717273747).]]>如果vn<-47,]]>则Λn=[-1-1-1-1-1-1-1-1]。如果vn>47,]]>则Λn=[+1+1+1+1+1+1+1+1]。如果vn介于上述两值之间,则Λn可能会存在符号变化。例如,如果vn=-3.57,]]>则Λn=[-1-1-1-1-1-1-1+1]。如果vn=1.57,]]>则Λn=[-1-1-1+1+1+1+1+1]。由于温度计码仅有8个值,因而a~01,n=Σj=1Kcj0λj0]]>仅存在8个可能值,a^1,n=Σj=1Kcj1λj,n1]]>仅存在8个可能值,a~0,n=a0+Σj=1Kcj0λj0βj0+Σj=1Kcj1λj1βj1]]>存在64个可能值。
通过预先计算系数 等的可能值和将它们保存在存储器中,可以减少加法运算的次数。在该实例中,系数的地址存储在查找表1002中,该表存储了温度计码Λn的8种可能形式以及预先计算的系数的相应地址。通过访问与适当的温度计码条目对应的存储器地址,可以获得这些系数值。一旦从存储器中读出系数 则可将滤波器输出计算为yn=a~01,nvn2+a^1,nvnvn-1+a~0,nvn+a1,nvn-1+b]]>(等式21)也可以将所述技术用于零阶、一阶或更高阶的滤波器。
已公开了一种用于非线性系统信号处理的技术。通过使用预先计算的滤波器系数与嵌套的非线性滤波器,降低了计算与滤波器实现方面的复杂度。
尽管为方便理解而相当详细地描述了前述的实施例,但本发明并不限于所提供的这些细节。可存在许多种实现本发明的方法。且已公开的实施例是说明性的而非限制性的。
权利要求
1.一种处理包括输入变量的输入信号的方法包括将所述输入变量与一组有序常数进行比较;确定所述输入变量在可能的输入范围内的相对位置;使用所述输入变量的所述相对位置来确定非线性滤波器的滤波器系数。
2.如权利要求1所述的方法,还包括通过使用所述非线性滤波器对所述输入信号进行滤波来产生输出。
3.如权利要求1所述的方法,其中,所述一组有序常数是划分所述可能的输入范围的常数。
4.如权利要求1所述的方法,其中,确定所述输入变量的所述相对位置包括从所述比较确定指明所述输入变量的所述相对位置的指示。
5.如权利要求1所述的方法,其中,确定所述输入变量的所述相对位置包括从所述比较确定指明所述输入变量的所述相对位置的指示,且所述指示包括温度计码。
6.如权利要求1所述的方法,其中,无需使用乘法运算即可确定所述滤波器系数。
7.如权利要求1所述的方法,其中,所述滤波器系数是保存在某一存储器位置中的预先计算的值。
8.如权利要求1所述的方法,其中预先计算了所述滤波器系数,并将其保存在某一存储器位置;确定所述输入变量在可能的输入范围内的所述相对位置包括从所述比较确定指明所述输入变量的所述存储器位置的指示,并访问所述存储器位置。
9.如权利要求1所述的方法,还包括将所述非线性滤波器用作高阶非线性滤波器的高阶系数。
10.如权利要求1所述的方法,还包括将所述非线性滤波器用作高阶非线性滤波器的高阶系数,并通过使用所述高阶非线性滤波器对所述输入信号进行滤波来产生输出。
11.如权利要求1所述的方法,其中,所述滤波器系数为常数。
12.如权利要求1所述的方法,其中,所述滤波器系数与所述输入信号的某一特性相乘。
13.如权利要求1所述的方法,其中,所述滤波器系数为低阶滤波器系数,且所述方法还包括将所述低阶滤波器系数与所述输入信号的某一特性相乘,以得到高阶滤波器的高阶滤波器系数。
14.如权利要求1所述的方法,其中所述非线性滤波器为低阶非线性滤波器;所述滤波器系数为低阶滤波器系数;并且所述方法还包括将所述低阶滤波器系数与所述输入信号的某一特性相乘来得到高阶非线性滤波器的高阶滤波器系数;并且发送将由所述高阶滤波器进行处理的所述低阶滤波器的输出。
15.如权利要求1所述的方法,其中,所述非线性滤波器在所述确定的相对位置处具有线性传递函数。
16.如权利要求1所述的方法,其中,所述非线性滤波器在所述确定的相对位置处具有非线性传递函数。
17.一种可配置滤波器包括接口,配置成接收包括输入变量的输入信号;耦合到所述接口的非线性滤波器,配置成处理所述输入信号;和耦合到所述非线性滤波器的处理器,配置成确定所述输入变量在可能的输入范围内的相对位置,并使用所述输入变量的所述相对位置来确定所述非线性滤波器的滤波器系数。
18.如权利要求17所述的可配置滤波器,其中,所述的一组有序常数是划分所述可能的输入范围的常数。
19.如权利要求17所述的可配置滤波器,其中,所述处理器配置成通过从所述比较确定指明所述输入变量的所述相对位置的指示来确定所述输入变量的所述相对位置。
20.如权利要求17所述的可配置滤波器,其中,无需使用乘法运算即可确定所述滤波器系数。
21.如权利要求17所述的可配置滤波器,其中,所述滤波器系数是存储在某一存储器位置中的预先计算的值。
22.如权利要求17所述的可配置滤波器,其中,所述非线性滤波器为零阶滤波器。
23.如权利要求17所述的可配置滤波器,其中,所述非线性滤波器是高阶非线性滤波器的系数。
24.一种用于处理包括输入变量的输入信号的计算机程序产品,所述计算机程序产品包含在计算机可读介质中,并包括用于以下目的计算机指令将所述输入变量与一组有序常数进行比较;确定所述输入变量在可能的输入范围内的所述相对位置;使用所述输入变量的所述相对位置来确定非线性滤波器的滤波器系数。
全文摘要
公开了一种处理包括输入变量的输入信号的方法。该方法包括将上述输入变量与一组有序常数进行比较,确定该输入变量在可能的输入范围内的相对位置和使用该输入变量的相对位置确定非线性滤波器的滤波器系数。一种可配置的滤波器包括配置成接收包括输入变量的输入信号的接口,耦合到该接口的、配置成用来处理上述输入信号的非线性滤波器,以及耦合到该非线性滤波器的、配置成确定上述输入变量在可能的输入范围内的相对位置和使用该输入变量的相对位置确定非线性滤波器的滤波器系数的处理器。
文档编号G06F17/10GK101061473SQ200580016131
公开日2007年10月24日 申请日期2005年2月18日 优先权日2004年3月25日
发明者R·G·巴特鲁尼 申请人:奥普蒂科伦公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1