[0001]该申请要求基于美国临时专利申请60/556654(卷宗号OPTIP006+)的优先权,该申请题为“低复杂度滤波器”,于2004年3月25日提交,此处通过引用将其全部内容包含于本文之中。
具体实施方式
[0019]本发明可通过多种方式来实施,该发明包括过程、装置、系统、实体构成、计算机可读介质(如计算机可读存储介质)或计算机网络,在该网络中,通过光或电子通信链路发送程序指令。在本说明书中,可将这些实施方式或本发明可采用的任何其它形式称为技术。配置成执行某一任务的部件(如处理器或存储器)包括临时配置成用来在某一给定时刻执行该任务的通用部件或专为执行该任务而制造的特定部件。一般而言,在本发明的范围内,可以改变所公开的过程的步骤次序。
[0020]以下,提供了对本发明的一个或多个实施例的详细说明与说明本发明原理的附图。结合这些实施例对本发明进行了说明,但本发明不限于任何实施例。本发明的范围仅由权利要求进行限定,并且,本发明包含了许多替代方案、修改和等价物。在以下描述中,阐述了大量具体细节来使读者透彻理解本发明。提供的这些细节用于举例,且不具备某些或所有这些具体细节也可以根据权利要求来实施本发明。为简明起见,未详细描述涉及本发明的技术领域内所熟知的技术资料,以防止不必要地干扰对本发明的说明。
[0021]公开了一种用于非线性系统的改进的信号处理技术。在一些实施例中,将一个或多个输入变量与一组有序常数进行比较,以确定这些输入变量在可能的输入范围内的相对位置。使用这些相对位置确定了非线性滤波器的一个或多个滤波器系数。不使用乘法运算便可确定这些滤波器系数。在一些实施例中,在合适的时候,预先计算、存储和获取了零阶、一阶、二阶和/或更高阶的滤波器的滤波器系数。可通过嵌套低阶滤波器来形成高阶滤波器。
[0022]图1A-1B示出了非线性滤波器的一个应用实例。在图1A中,输入模拟信号120被送至模数转换器(ADC)122,以转换为数字信号124。由于部件不匹配和其它系统特性的缘故,ADC122产生了存在某些失真的输出124。可以将信号124看作分量126(基于输入的理想的数字化输出)和数字失真分量的组合。数字失真分量与量化误差不同,后者等于模拟信号的低于ADC的最细量化等级的部分,且对具有预定数目的位的ADC而言,通常不能减小该误差。如果失真模型已知,则可以对失真分量进行预测和修正。
[0023]在图1B中,训练非线性滤波器130来对ADC122的特性进行建模。组合器132从ADC输出中减去失真分量,以产生失真得到校正的输出134,该输出近似等于理想的数字输出。
[0024]图1C示出了对非线性滤波器的响应函数进行近似的几种方法。在所示实例中,输出依赖于一维输入。所示技术也适用于多维空间输入。在该实例中,可以用零阶函数104、一阶函数106或二阶函数108来对非线性函数102进行近似。在本文中,将N阶函数表示为
(等式3)
其中cj为系数。
[0025]在所示实例中,输入范围被分为几个离散部分,并使用一组有序常数β0至β7来标记。离散部分的数目取决于一些因素(如性能要求),且对不同实施例而言,该数目可能不同。取决于系统的实施方式,β在输入范围内的分布可以是均匀的,也可以是非均匀的。通过使用线性的零阶函数来对输入范围的各个部分(如β0与β1之间的输入范围,β1与β2之间的输入范围,等等)中的传递函数进行近似,然后合并这些函数,确定了零阶函数104。可使用最小均方误差或其它合适的技术来进行近似,以确定合适的系数。类似地,一阶近似函数106由输入范围的各个部分中的线性一阶近似函数组成,二阶近似函数108由输入范围的各个部分中的非线性二阶近似函数组成。也可以进行更高阶的近似。
[0026]可以对等式2的非线性函数通式进行变换,并可基于变换后的函数进行近似。该非线性函数通式的绝对值部分可以写成:
(等式4)
其中
(等式5)
[0027]因此,非线性滤波器的通式可以写成:
(等式6)
它与下式等同:
(等式7)
[0028]可以将以上等式视为输入变量与非线性系数之间的“线性”卷积,而这些系数是输入信号的时变非线性函数。输入V
n在多维输入空间中的相对位置确定了元素λ
jn的值,并因此确定了系数
和
滤波器系数的值取决于输入信号矢量,这一点为滤波器赋予了非线性特性。有时将该函数称为一阶非线性滤波器,因为各个变量的系数均为不依赖于该变量本身的函数。在这种情况下,上述系数是变量v
n-j的函数的符号(sign)的函数。
[0029]等式6可写成矢量形式:
(等式8)
该等式示出了上述系数与λjn的相关性。
[0030]一旦写成矢量形式,则可以对滤波器进行进一步的变换,以减少运算量。例如,可以将上述矢量形式写成:
而该式可进一步化简为:
(等式10)
这便将原始等式化简为:
(等式11)
这意味着
(等式12)
[0031]正如以下要详细阐述的,等式12减少了运算量,因为λ
j的计算不需要任何乘法运算。与滤波器函数通式相比,该函数节约了较多的计算量,其中,在计算λ
j之前进行线性卷积
由于与输入的相关为一阶的,因而化简后的非线性滤波器函数可称为一阶低复杂度滤波器函数。
[0032]也可以使用矢量变换来进行其它简化。例如,
(等式13)
这产生了非线性滤波器
(等式14)
其中,前两个变量的各个系数对应于这两个变量的函数,而剩下的各个系数是与它们相乘的变量的函数。
[0033]图2的流程图示出了根据某些实施例对输入信号进行的处理。过程200适用于各种非线性滤波器实施例,下面,更详细地示出了其中的一些实施例。将输入信号的输入变量与一组有序常数进行比较(202)。在某些实施例中,这些有序常数是β常数,它们将输入范围划分成多个部分。确定输入变量在可能的输入范围内的相对位置(204)。在某些实施例中,使用λj的值来确定该相对位置。使用该相对位置,确定了非线性滤波器的一个或多个滤波器系数(206)。这些与输入相关的系数可能随时间变化。不需进行乘法运算便可确定这些系数,这便允许滤波器能有效地处理它的输入。在某些实施例中,非线性滤波器用于处理输入和产生输出。在某些实施例中,将具有所得系数的非线性滤波器用作更高阶非线性滤波器的系数,然后,用该更高阶滤波器来对输入进行滤波和产生输出。
[0034]图3的框图示出了一阶低复杂度非线性滤波器的实施例。该实例中所示的滤波器300具有与等式12等同的传递函数。将输入矢量Vn送入符号处理器(sign processor)302,以生成λjn。常量系数,包括cj、aj、cjβj,被保存在存储器304中,该存储器可通过使用寄存器或其它合适的数据存储部件来实现。通过将λ与相应的cj或βj相乘,然后将所得结果相加,再将其与相应的常数aj相加,得到了等式12的一阶系数。然后,在合适的时候将这些系数与输入变量v相乘。组合各个一阶滤波器的结果,以产生非线性输出yn。
[0035]图4示出了一阶非线性滤波器实施例的输出的3维流形。在该实例中,滤波器函数400是两个输入变量的函数。其一阶项形成了该流形的平面部分。可以用函数400来对连续的3维非线性函数进行近似。类似地,也可以对涉及更高维的函数进行近似。
[0036]如前所示,可以将等式2的非线性滤波器函数通式变换成如等式7所示的一阶非线性滤波器。对该非线性滤波器变换进行进一步推广可得出另一非线性滤波器表达式:
(等式15)
其中,各个fk,n(Vn)均为一阶非线性函数
(等式16)
从而,将fk,n(Vn)作为其系数的等式15中的各项是输入变量的二阶函数(在本文中,二阶函数至少包括一项输入变量的的二次幂或输入变量的叉积)。在不同的实施例中,系数可以分别与输入变量、经过延迟的输入变量、输入的导数或输入的其它适当特性相乘。
[0037]图5的框图示出了二阶低复杂度非线性滤波器的实施例。在该实例中,使用多个一阶低复杂度滤波器来实现二阶低复杂度滤波器500。使用诸如最小均方误差的技术计算了一阶低复杂度滤波器的系数。将输入矢量送至各个一阶低复杂度滤波器,且各个滤波器输出与相应的输入变量相乘。将所得结果进行组合,以产生输出yn。
[0038]图6示出了二阶非线性滤波器实施例的输出的3维流形。在该实例中,滤波器函数600是两个输入变量的函数。其二阶项形成了流形的抛物面部分。有时,可以用类似于该二阶滤波器的高阶滤波器来更好地对定义所希望的非线性函数(如系统的实际传递函数、误差函数,等等)的多维流形进行近似。
[0039]可以将上述方法进一步推广为形成三阶或更高阶的非线性滤波器。图7的框图示出了N阶非线性滤波器的实施例。在所示的实例中,通过嵌套较低阶滤波器实现了N(N>2)阶滤波器。N阶低复杂度滤波器700包括多个(N-1)阶低复杂度滤波器。将N-1阶滤波器的输出与输入变量相乘。从而,N-1阶滤波器用作N阶滤波器的输入系数。而各个N-1阶滤波器又可通过将多个N-2阶低复杂度滤波器用作输入系数来实现。总之,嵌套使得较高阶的滤波器更易于实现。
[0040]在某些实施例中,用零阶非线性滤波器来实现非线性滤波器,其中,各个离散域中的滤波器的传递函数为常数。在图1C中,用104表示零阶滤波器响应的一个实例。由于其滤波器响应不连续,因而有时将零阶滤波器称为“灾难”结构。零阶非线性滤波器的通式可表示成:
(等式17)
[0041]在某些实施例中,除省略含有v
n、v
n-1等的乘积项,以及将输出
等直接相加外,以类似于图3的滤波器300的方式来实现基于等式17的零阶非线性滤波器。
[0042]可以将不同阶的非线性滤波器组合来形成具有所希望的传递函数的新滤波器。图8A和8B的框图示出了非线性滤波器的实施例。在所示实例中,使用零阶非线性滤波器804、一阶非线性滤波器806、二阶非线性滤波器808、以及其它达到N阶的高阶非线性滤波器来实现非线性滤波器802。可使用多个某一阶次的滤波器。可省略一个或多个阶次的滤波器。N的选择取决于对滤波器802的要求,且对不同的实施例而言,N可以是不同的。对某些应用而言,单一的零阶非线性滤波器便已足够,而对另一些应用而言,N可能应大于3。通过组合不同阶的非线性滤波器而构建的非线性滤波器可实现所希望的滤波器性能,且其运算效率也得到了提高。
[0043]在某些实施例中,可进一步降低非线性滤波器的复杂度。以下面的一阶滤波器为例:
(等式18)
其中
(等式19)
[0044]由于
因而无需任何乘法运算就能得到系数
类似地,由于在需要时可预先计算、存储和查找乘积c
j mβ
j m,因而无需乘法运算也可计算
从而,可以将等式18的非线性滤波器实施为仅需两次乘法运算的一阶滤波器。
[0045]图9示出了用于计算非线性滤波器系数的计算模块的实施例。在该实例中,计算了等式18中所示的滤波器的系数。不同的输入范围导致了不同的λ
j m,这些λ
j m可能为1或-1。预先计算了与不同的输入范围对应的可能系数值
与
并将它们存储在寄存器中。接收输入后,将该输入与的一组β
j m值进行比较,以确定它在输入范围中的相对位置以及与该特定位置对应的预先计算的系数值。
[0046]图10的框图示出了根据另一个实施例的、用来计算非线性滤波器系数的另一个计算模决。在该实例中,使用指明输入在可能的输入范围内的相对位置的指示来确定系数值。在这种情况下使用的指示为“温度计码”,该温度计码是一种矢量,该矢量在任意两个相邻变量之间最多存在一次符号变化。在所示实例中,温度计码的每一项的幅值均为1。
[0047]以下面的二阶函数为例:
(等式20).
[0048]将输入与βj k的一组值进行比较,以确定输入变量在可能的输入范围内的相对位置与由λj,n构成的矢量(表示为Λn)。取决于输入,Λn可以是这样的矢量:它的各项仅为1,仅为-1,或前k项均为-1,其余项均为+1。换言之,Λn是温度计码,该码的各项中最多包含一次符号变化。例如,假设常数βj k分布在动态范围vn∈(-1,1)内,且βj k存在8个值,即
如果
则Λn=[-1-1-1-1-1-1-1-1]。如果
则Λn=[+1+1+1+1+1+1+1+1]。如果vn介于上述两值之间,则Λn可能会存在符号变化。例如,如果 则Λn=[-1-1-1-1-1-1-1+1]。如果
则Λn=[-1-1-1+1+1+1+1+1]。由于温度计码仅有8个值,因而 仅存在8个可能值,
仅存在8个可能值, 存在64个可能值。
[0049]通过预先计算系数
等的可能值和将它们保存在存储器中,可以减少加法运算的次数。在该实例中,系数的地址存储在查找表1002中,该表存储了温度计码Λ
n的8种可能形式以及预先计算的系数的相应地址。通过访问与适当的温度计码条目对应的存储器地址,可以获得这些系数值。一旦从存储器中读出系数
则可将滤波器输出计算为:
(等式21)
也可以将所述技术用于零阶、一阶或更高阶的滤波器。
[0050]已公开了一种用于非线性系统信号处理的技术。通过使用预先计算的滤波器系数与嵌套的非线性滤波器,降低了计算与滤波器实现方面的复杂度。
[0051]尽管为方便理解而相当详细地描述了前述的实施例,但本发明并不限于所提供的这些细节。可存在许多种实现本发明的方法。且已公开的实施例是说明性的而非限制性的。