一种自适应控制方法和装置的制作方法

文档序号:6309884阅读:150来源:国知局
专利名称:一种自适应控制方法和装置的制作方法
技术领域
本发明涉及自适应信号处理领域,尤其涉及一种自适应控制方法和装置。
背景技术
自适应滤波器理论是自适应信号处理领域的一个分支,它能够自动地迭代调节自身的滤波器参数,以满足某种准则的要求,从而实现最优滤波。自适应滤波算法是自适应滤波器设计过程中的重要组成部分。自适应算法的优劣决定着自适应滤波器的优劣。图I为现有技术中自适应控制系统的示意图。如图所示,输入信号x(i)经过前向通路G增强输入信号,得到输出信号u (i)。输出信号经过反馈路径H又返回到输入信号形成输出信号反馈的期望信号d(i),同时u(i)经过自适应滤波器产生输出信号反馈的估计信号y(i),e(i)为输出信号反馈的期望信号d(i)和输出信号反馈的估计信号y(i)的差值。该方法的目的是选择自适应算法,使得输出信号反馈的期望信号d(i)和输出信号反馈的估计信号y(i)的误差e(i)值达到最小,理想情况下误差e(i)为O。最小均方算法(Least mean square,LMS)是自适应滤波中的一种典型算法。现在使用较多的是它的归一化模式NLMS(normalized least-mean squares),其他使用的算法有指数加权递推最小二乘法(exponentially weighted recursive least squares,ERLS)和投影仿射算法(affine projection algorithm, APA)。RLS算法和APA算法的收敛速度都很快,但是计算复杂度却很高,这使得两种算法在某些要求计算复杂度低的应用领域(如助听器)无法使用。另外,NLMS算法的收敛速度无法达到要求,也使得它无法在需要快速收敛的应用领域使用。由ZakharOv Y提出的二分坐标下降(dichotomous coordinate descent,DCD)算法能够用最简单的方式解决RLS和APA算法中计算量最大的部分,使算法的乘法计算次数由ο (η2)降到ο (η),于是可以具体为保证收敛速度的前提下降低算法复杂度。通过这种方式改进的算法有DCD-ERLS算法、DCD-APA算法等。但是,现有的二分坐标下降-指数加权递推最小二乘法(dichotomous coordinatedescent-exponentialIy weighted recursive least squares, DCD-ERLS), 二分坐标下降 _ 仿身寸投影算法(dichotomous coordinate descent-affine projection algorithm,D⑶-APA)算法中每执行一次D⑶算法的迭代次数和幅度范围都是不变的。当误差e(i)很大时,相对于能迅速增大的可变的迭代次数,固定的迭代次数不能迅速收敛到所需要的值,当误差e (i)很小时,不需要多次迭代,则固定的迭代次数有很大浪费。当误差e (i)很大时,如果初始幅度范围设置的太小,则不能快速的收敛;如果初始幅度范围设置的太大,不一定能收敛。当误差e(i)较小时,固定的初始幅度范围设置使得算法拥有固定的误差范围,在需要高精度的误差范围时,这种算法明显不合适。

发明内容
本发明的目的是,提供一种自适应控制方法和装置。该方法和装置基于D⑶算法能够使迭代次数和幅度范围根据误差值实时变化,从而产生最适合的迭代次数和幅度范围。为实现上述目的,本发明提供了一种自适应控制方法,所述方法包括计算输出信号反馈的期望信号和输出信号反馈的估计信号的误差以及根据所述误差计算误差向量;根据迭代次数以及所述误差计算并更新迭代次数,和/或根据幅度范围以及所述误差计算并更新所述幅度范围;根据输出信号形成的输出向量的自相关矩阵、所述迭代次数以及所述幅度范围,迭代计算自适应滤波器系数的改变量;根据所述自适应滤波器系数的改变量,更新自适应滤波器系数;所述输出信号经由所述自适应滤波器处理后,得到所述输出信号反馈的估计信号。优选的,所述计算迭代次数的计算方法为P1Q) = A1Xp1Q-IHr1Xe2Q)
爾o=「mo1其中,e⑴为所述误差,P1⑴初始值为0,「MOl表示不小于Pji)的最小整数,O
<λ i < 1,!T1 > O, Nu⑴为所述迭代次数。优选的,所述计算幅度范围的计算方法为p2 (i) = λ 2 Xp2 (i-1)+r2X |e(i)
^(0 = [iog2(/ 2(0)]H(i) = 2q(i)其中,e(i)为所述误差,p2 (i)初始值为0,「1θ&(/;2(/))]表示不小于log2(p2(i))的最小整数,O < λ2< l,r2>0,H(i)为所述幅度范围。优选的,所述根据输出信号形成的输出向量的自相关矩阵、所述迭代次数以及所述幅度范围,迭代计算自适应滤波器系数的改变量的步骤包括步骤a,步长的初始值为所述幅度范围,计算并更新步长,每次计算并更新后的步长是上一次步长的二分之一,并且步长的更新次数递增I ;步骤b,判断步长的更新次数是否大于设定值,若是,则执行步骤f,否则执行步骤c ;步骤C,残留向量的初始值为所述误差向量,从所述残留向量的第一个元素开始, 依次比较所述残留向量中的元素的绝对值是否大于所述步长的二分之一与输出信号形成的输出向量的自相关矩阵相乘后得到的矩阵的对应的对角线元素,得到比较结果,若所述比较结果是大于,则执行步骤d,否则,若比较已达到所述残留向量的最后一个元素并且从所述残留向量的第一个元素至最后一个元素的所有所述比较结果均不是大于,则执行步骤a,否则,重复本步骤,进行下一次比较,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始;步骤d,计算所述自适应滤波器系数的改变量以及计算所述残留向量,并且以计算次数递加I来更新所述计算次数;步骤e,判断所述计算次数是否大于所述迭代次数,若是,则执行步骤f,否则继续执行步骤c ;步骤f,计算结束并得到所述自适应滤波器系数的改变量。本发明还提供了 一种自适应控制装置,所述装置包括第一计算单元用于计算输出信号反馈的期望信号和输出信号反馈的估计信号的误差以及根据所述误差计算误差向量。第二计算单元用于根据迭代次数以及所述误差计算并更新迭代次数,和/或根据幅度范围以及所述误差计算并更新所述幅度范围。第三计算单元用于根据输出信号形成的输出向量的自相关矩阵、所述迭代次数以及所述幅度范围,迭代计算自适应滤波器系数的改变量。自适应滤波器系数生成单元用于根据所述自适应滤波器系数的改变量,更新自适应滤波器系数。第四计算单元用于所述输出信号经由所述自适应滤波器处理后,得到所述输出信号反馈的估计信号。优选的,所述第三计算单元中所述计算迭代次数的计算方法为P1Q) = A1Xp1Q-IHr1Xe2Q)
爾0 =「W)]其中,Mi)为所述误差,P1 (i)初始值为O,「A(,·)]表示不小于P1⑴的最小整数,O< λ i < 1,!T1 > O, Nu⑴为所述迭代次数。优选的,所述第三计算单元中所述计算幅度范围的计算方法为p2⑴=X2Xp2(i_l)+;r2X |e⑴ I
^(0=HoS2C^2(O)]H(i) = 2q(i)其中,e(i)为所述误差,P2⑴初始值为0,「log2(/;2(/))]表示不小于log2(p2(i))的最小整数,O < λ2< l,r2>0,H(i)为所述幅度范围。优选的,所述第三计算单元包括第一计算子单元,用于步长的初始值为所述幅度范围,计算并更新步长,每次计算并更新后的步长是上一次步长的二分之一,并且步长的更新次数递增I ;第一判断子单元,判断步长的更新次数是否大于设定值,若是,则进入结束子单元,否则进入第二判断子单元;第二判断子单元,用于残留向量的初始值为所述误差向量,从所述残留向量的第一个元素开始,依次比较所述残留向量中的元素的绝对值是否大于所述步长的二分之一与输出信号形成的输出向量的自相关矩阵相乘后得到的矩阵的对应的对角线元素,得到比较结果,若所述比较结果是大于,则进入第二计算子单元,否则,若比较已达到所述残留向量的最后一个元素并且从所述残留向量的第一个元素至最后一个元素的所有所述比较结果均不是大于,则进入第一计算子单元,否则,重复本步骤,进行下一次比较,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始;第二计算子单元,用于计算所述自适应滤波器系数的改变量以及计算并更新所述残留向量,并且以计算次数递加I来更新所述计算次数;
第三判断子单元,用于判断所述计算次数是否大于所述迭代次数,若是,则进入结束子单元,否则进入第二判断子单元,进行下一次比较,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始;结束子单元,用于计算结束并得到所述自适应滤波器系数的改变量。因此,本发明公开的自适应控制方法和装置,根据误差计算幅度范围H和迭代次数Nu这两个参数,使得幅度范围和迭代次数这两个参数随着误差的变化而变化,从而自适应的调整该算法的收敛速度、稳态误差、以及算法复杂度。


图I为现有技术中自适应控制系统的示意图;图2A为本发明实施例采用的指数加权递推最小二乘法ERLS算法的实现框图;图2B为本发明实施例采用的指数加权递推最小二乘法ERLS算法的实现流程图;图3为本发明实施例采用的二分坐标下降算法D⑶的实现流程图;图4为本发明实施例一种自适应控制的方法流程图;图5为本发明实施例一种自适应控制的方法中迭代计算自适应滤波器系数的改变量的方法流程图。图6为本发明实施例一种自适应控制装置示意图;图7为本发明实施例一种自适应控制装置中第三计算单元的示意图。
具体实施例方式下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。本发明实施例是以D⑶-ERLS算法为基础的。DQ3-ERLS算法是以指数加权递推最小二乘法(exponentially weightedrecursive least squares, ERLS)为基础算法,利用二分坐标下降(dichotomouscoordinate descent,D⑶)算法来解决ERLS算法里最复杂的一步,从而简化算法。同样的,DCD算法也能适用在APA算法上,即为DCD-APA算法。图2A为本发明实施例采用的指数加权递推最小二乘法ERLS算法的实现框图。如图所示,其中,图2A中的输出信号u(i)为图I中的输出信号u(i)。ERLS算法的具体实现过程如图2B所示,具体为步骤201,通过输出信号u(i)采样N点得到输出向量U(i),如公式⑴所示,再通过输出信号u (i)和输出向量U(i)产生输出信号形成的输出向量的自相关矩阵R,如公式(2)所示。U ⑴=[u (i), u (i_l),…,u(i_N+l)]T (I)其中,T表示转置。R矩阵的构成方法R(i)为i时刻的R矩阵,R(i)的右下N-I阶矩阵来源于R(i-l)的左上N-I阶矩阵,R(i)的第一列采用公式(2)求得,再通过对称得到第一行,则得到R矩阵,R矩阵用来构成计算自适应滤波器系数的改变量的方程。R(1) (i) = λ R(1) (i-1) +u ⑴ U ⑴⑵其中λ为常数,O < λ < 1,R(1)⑴表示R(i)的第I列。
步骤202,输出向量U(i)与自适应滤波器系数h(i-l)相乘得到输出信号反馈的估计信号y(i),Ut⑴为输出向量U(i)的转置,Wi)为自适应滤波器估计的反馈路径,h(i)为NX I维列向量,h (i-1)表示延迟一个单位。如公式(3)所示。7(:0=1^:011(:1-1)(3)步骤203,输出向量U(i)通过实际反馈路径得到输出信号反馈的期望信号d(i),输出信号反馈的期望信号d(i)减去输出信号反馈的估计信号y(i)得到误差信号e(i),如公式⑷所示。e(i) = d(i)-y(i) (4)步骤204,通过误差信号e(i)与输出向量U(i)得到误差向量β Q (i),β Q (i)向量用来构成计算自适应滤波器系数的改变量的方程。如公式(5)所示。β0(; ) = g(i-l)+e(i)U ⑴(5)其中,g向量的初始值为零向量,其中,β Ji)表示当前i时刻的误差向量,g(i-l)表示i-Ι时刻的剩余误差向量。值得指出的是,步骤201构成了矩阵R,步骤202至步骤204构成了向量β。⑴。步骤205,通过前面构成的矩阵R和向量β Ji),计算出自适应滤波器系数的改变量Ah(i),如公式(6)所示。R(i) Ah(i) = β 0(i) (6)步骤206,当使用简化算法计算该方程时,会留有误差,这一步计算下一次循环时的剩余误差向量g(i),如公式(7)所示。g(i) = β 0(i)-R(i) Ah(i) (7)步骤207,修改滤波器h的值,即加上自适应滤波器系数的改变量Ah(i),这是整个算法的目的。如公式(8)所示。h(i) = h (i-1) + Δ h (i) (8)上述ERLS算法中,步骤205是最关键的一步,而且第五步的算法复杂度是最闻的,一般需要ο (η2)级乘法和ο (η2)次加法。采用DCD算法来解决ERLS算法里最复杂的一步即步骤205,从而简化算法。图3为本发明实施例采用的二分坐标下降算法D⑶的实现流程图。如图所示,D⑶算法具体实现过程如下步骤301,初始化。具体地,对算法中使用的数值和向量进行初始化,如公式(9)所示。Δ h = O, r = β 0, α = H, q = O (9)其中,Ah是自适应滤波器系数的改变量,Pci为NX I维列向量,就是公式(6)中的右边向量为残留向量,H为幅度范围,α是步长,q为计算自适应滤波器系数的改变量的变化次数,它用来控制算法的复杂度。步骤302,判断第一循环次数m是否小于第一设定值Mb。具体地,循环系数m的取值为1、2、. . .、Mb,其中,Mb为自适应滤波器系数的改变量Ah的更新次数,根据实际情况设定数值,一般为4或8。另外,Mb的设置也是为了控制算法的复杂度,最多执行Mb次循环后算法结束。若第一循环次数m小于第一设定值Mb时,则到步骤303 ;若第一循环次数m大于或等于第一设定值Mb时,则到步骤312。步骤303,根据所述幅度范围计算步 长,即每次成功迭代后以二分之一的步长进行下一次迭代,接着执行步骤304。具体地,计算步长如公式(10)所示。α = a /2(10)其中,α是步长,α的初始值为幅度范围。步骤304,设置标记位flag为0,该标记位用来控制算法的走向,接着执行步骤305。步骤305,判断第二循环次数η是否小于第二设定值N。具体地,NS^tl的长度,β ο为NX I维列向量。若第二循环次数η小于第二设定值N时,则到步骤306 ;若第二循环次数η大于或等于第二设定值N时,则到步骤309。值得指出的是,这里的第二设定值N是输出向量的长度N。步骤306,判断残留向量r的第η个元素是否大于步长的二分之一与输出信号形成的输出向量的自相关矩阵R相乘后得到的矩阵的第η行η列的的对角线元素。具体地,残留向量r的初始值为误差向量判断残留向量r的第η个元素是否大于步长的二分之一与输出信号形成的输出向量的自相关矩阵R相乘后得到的矩阵的第η行η列的的对角线元素。若是,则执行步骤307,否则,则执行步骤311。值得指出的是,残留向量r中的第η个值表示为rn,输出信号形成的输出向量的自相关矩阵R的第η行η列的值表不为Rn, η。步骤307,计算自适应滤波器系数的改变量Ah和改变次数q以及更新残留向量r并设置标志位为I,接着执行步骤308。具体地,计算自适应滤波器系数的改变量Ah的第η个值的改变量Ahn和自适应滤波器系数的改变量Ah的改变次数q以及更新残留向量r。其计算公式如公式(11-13)。Ahn = Ahn+sign (rn) α (11)r = r-sign (rn) X α X R(n) (12)q = q+1, flag = I (13)其中,R(n)为R矩阵的第n列,sign(rn)表示rn的符号函数,rn为残留向量r的第η个元素值。flag是标记位,控制循环的走向。步骤308,判断改变次数q是否大于迭代次数设定值Nu。具体地,Nu为迭代次数,根据实际情况设定的数值。若改变次数q大于迭代次数设定值Nu时,则执行步骤312 ;若改变次数q小于或等于迭代次数设定值Nu时,则执行步骤 311。步骤309,判断标记flag是否等于1,若是,则说明在这个步长α下,自适应滤波器系数的改变量Ah发生了变化,还需要修改滤波器的值,接着执行步骤304 ;否则,说明在这个步长α下,自适应滤波器系数的改变量Ah未发生变化,不需要修改滤波器的值,则接着执行步骤310。步骤310,第一循环次数m加I,接着执行步骤302。
步骤311,第二循环次数η加1,接着执行步骤305。步骤312,获得自适应滤波器系数的改变量Ah(i),D⑶算法结束。因此,在ECD-ERLS算法中,利用D⑶算法来解决ERLS算法里最复杂的一步,即通过不断的迭代,不断的缩小误差,从而得到自适应滤波器系数的改变量Aha)近似解。其中,DCD算法在迭代过程中只使用加法,不需要乘法,使得该算法易于实现。但是幅度范围H 和迭代次数Nu这两个参数选取的皆为固定值,固定参数H使近似解的误差达到H · 2_λ时,就不能够继续降低,固定Nu则增加了算法复杂度。图4为本发明实施例的自适应控制方法的流程图。如图所示,本发明实施例具体实现为步骤401,计算输出信号反馈的期望信号d(i)和输出信号反馈的估计信号y(i)的误差e(i)以及根据所述误差计算误差向量^⑴。具体地,由ERLS算法中的步骤201中通过输出信号u(i)采样N点得到输出向量U(i),如公式(I)所示,再通过输出信号u(i)和输出向量U(i)产生输出信号形成的输出向量的自相关矩阵R,如公式(2)所示;步骤202中输出向量U(i)的转置与自适应滤波器系数h相乘得到输出信号反馈的估计信号y (i);步骤203中输出信号反馈的期望信号d (i)减去输出信号反馈的估计信号y (i)得到误差信号e (i);步骤204中通过误差信号e (i)与输出向量U(i)得到误差向量^⑴。步骤402,根据迭代次数以及所述误差计算并更新迭代次数,和/或根据幅度范围以及所述误差计算并更新所述幅度范围。具体地,在D⑶算法中,幅度范围H和迭代次数Nu这两个参数选取的皆为固定值。在本发明实施例中,根据误差信号e(i)来动态地确定迭代次数和幅度范围的数值。对于迭代次数和幅度范围的实现形式有3种,分别为a、幅度范围H为固定值,而迭代次数Nu为可变化值;b、幅度范围H为可变化值,而迭代次数Nu为固定值;C、幅度范围H和迭代次数Nu皆为可变化值。当确定第一种实现形式时,则只改变迭代次数;当确定第二种实现形式时,则只改变幅度范围,当确定第三种实现形式时,则同时改变迭代次数和幅度范围。具体改变迭代次数或改变幅度范围,还是同时改变迭代次数和幅度范围,是根据实际情况来决定的。本发明实施例中根据迭代次数和幅度范围的实现形式定义三种不同的算法,分别为VI-D⑶算法、VA-D⑶算法和VIA-D⑶算法,其中VI代表可变迭代次数,VA代表可变幅度范围,VIA代表可变迭代次数和可变迭代范围。下面对VI-D⑶算法、VA-D⑶算法和VIA-D⑶算法分别作详细的描述。a、VI-DCD算法,在该算法中幅度范围H为固定值,而迭代次数Nu为可变化值,该算法的其余步骤与DCD算法相同。其中,计算迭代次数Nu的过程如公式(14-15)所示。P1Q) = λ 1Xp1(i-l)+r1Xe2(i) (14)
爾0 =「M0](15)其中,e⑴为所述误差,Pl(i)初始值为0,「Μ0 表示不小于P1Q)的最小整数,O
<A1 < Lr1 > O,比如λ i和Γι分别取值为O. 99和ΙΟ' Nu⑴为迭代次数。
b、VA-DCD算法,在该算法中幅度范围H为可变化值,而迭代次数Nu为固定值,该算法的其余步骤与DCD算法相同。其中,计算幅度范围H的过程如公式(17-19)所示。p2(i) = X2Xp2(i-l)+;r2X |e⑴ I (16)
g(/) =「log2(/ 2(/))](17)
H(i) = 2q(i)其中,e(i)为所述误差,P2⑴初始值为0,「1θ&(Λ( ))1表示不小于log2(p2(i))的最小整数,O < A2 < I, r2 > O,比如λ 2和r2分别取值为O. 999和10_6,H⑴为所述幅度范围。c、VIA_D⑶算法,在该算法中幅度范围H和迭代次数Nu皆为可变化值。该算法的其余步骤与D⑶算法相同。其中,计算迭代次数Nu和幅度范围H的过程如公式(14-18)所
/Jn ο根据上述三种算法即VI-D⑶算法、VA-D⑶算法和VIA-D⑶算法中的其中一个算法中涉及的计算公式,计算并更新迭代次数和幅度范围。步骤403,根据输出信号形成的输出向量的自相关矩阵、所述迭代次数以及所述幅度范围,迭代计算自适应滤波器系数的改变量。具体地,通过输出信号u(i)采样N点得到输出向量U(i),如公式⑴所示,再通过输出信号u(i)和输出向量U(i)产生输出信号形成的输出向量的自相关矩阵R,如公式
(2)所示。根据输出信号形成的输出向量的自相关矩阵R并利用VI-DCD算法、VA-DCD算法和VIA-DCD算法这三种算法都可以用来计算自适应滤波器系数的改变量,计算步骤与DCD算法的计算步骤相同,这里不再一一赘述。其中,唯一不同的就是对幅度范围H和迭代次数Nu这两个参数的取值不同,在DCD算法中这两个参数皆取固定值,在VI-DCD算法中幅度范围H为固定值而迭代次数Nu为可变化值,在VA-DCD算法中幅度范围H为可变化值而迭代次数Nu为固定值,在VIA-DCD算法中幅度范围H和迭代次数Nu皆为可变化值。该详细步骤包括D⑶算法的步骤301到312。步骤404,根据计算出的自适应滤波器系数的改变量Ah(i),更新自适应滤波器系数。具体地,该步骤包括ERLS算法的步骤206到207,故不再详细阐述。步骤405,输出信号u(i)经由自适应滤波器处理后,得到所述输出信号u(i)反馈的估计信号y(i)。图5为本发明实施例一种自适应控制的方法中迭代计算自适应滤波器系数的改变量的方法流程图。如图所示,本发明实施例具体实现为步骤501,步长的初始值为所述幅度范围,计算并更新步长,每次计算并更新后的步长是上一次步长的二分之一,并且步长的更新次数递增I,所述步长的更新次数的初始值为O。具体地,在计算并更新步长值之前,要对计算过程中使用的数值和向量进行初始化,如公式(9)所示。计算步长如公式(10)所示,α是步长,控制着自适应滤波器系数的改变量。其中步长的初始值为所述幅度范围,每次成功迭代后的步长值是上一次步长值的二分之一。其中,所述幅度范围为步骤402中计算出的幅度范围。
步骤502,判断步长的更新次数是否大于设定值。具体地,为了控制上述计算过程的复杂性,尤其当所述迭代次数非常大时,上述计算过程循环的次数会非常大,甚至会无限循环下去。为了避免出现这一情况,故根据实际需要设定一数值,一般为4或8,该数值为上述计算过程循环次数的设定值。判断步长的更新次数是否大于设定值,若是,则执行步骤508,否则执行步骤503 ; 步骤503,残留向量的初始值为所述误差向量,从所述残留向量的第一个元素开始,依次比较所述残留向量中的元素的绝对值是否大于所述步长的二分之一与输出信号形成的输出向量的自相关矩阵相乘后得到的矩阵的对应的对角线元素,得到比较结果,若所述比较结果是大于,则执行步骤506,否则,执行步骤504 ;步骤504,判断是否比较到了最后一个元素,若是则执行步骤505,否则执行步骤503 ;步骤505,设置下一次比较元素为所述残留向量的第一个元素,判断是否所有所述比较结果都不是大于,若是则执行步骤501,否则执行步骤503 ;步骤506,计算所述自适应滤波器系数的改变量Ah以及计算所述残留向量r,并且以计算次数递加I来更新所述计算次数,接着执行507。具体地,计算所述自适应滤波器系数的改变量Ah如公式(11)所示,计算残留向量r如公式(12)所示,并且以计算次数递增I来更新所述计算次数如公式(13)所示,q用来计算滤波器的改变次数,在本申请实施例中q定义为计算次数。步骤507,判断所述计算次数是否大于所述迭代次数。具体地,所述计算次数为q,q用来计算滤波器的变化次数,所述迭代次数为步骤402中计算出的迭代次数。判断计算次数是否大于迭代次数,若是,则执行步骤508 ;否则,执行步骤503,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始。步骤508,计算结束并且获得所述自适应滤波器系数的改变量。图6为本发明实施例一种自适应控制装置示意图。如图所述,该装置具体包括第一计算单元11、第二计算单元12、第三计算单元13、自适应滤波器系数生成单元14和第四计算单元15。第一计算单元11用于计算输出信号反馈的期望信号和输出信号反馈的估计信号的误差以及根据所述误差计算误差向量;第二计算单元12用于根据迭代次数以及所述误差计算并更新迭代次数,和/或根据幅度范围以及所述误差计算并更新所述幅度范围;第三计算单元13用于根据迭代次数以及所述误差计算并更新迭代次数,和/或根据幅度范围以及所述误差计算并更新所述幅度范围;自适应滤波器系数生成单元14用于根据所述自适应滤波器系数的改变量,更新自适应滤波器系数;第四计算单元15用于所述输出信号经由所述自适应滤波器处理后,得到所述输出信号反馈的估计信号。具体地,第一计算单元11中由ERLS算法中的步骤201中通过输出信号u(i)采样N点得到输出向量U (i),如公式(I)所示,再通过输出信号u (i)和输出向量U (i)产生输出信号形成的输出向量的自相关矩阵R,如公式(2)所示;步骤202中输出向量U(i)的转置与自适应滤波器系数h相乘得到输出信号反馈的估计信号y(i);步骤203中输出信号反馈的期望信号d(i)减去输出信号反馈的估计信号y(i)得到误差信号e(i);步骤204中通过误差信号e(i)与输出向量U(i)得到误差向量 ^α)。第二计算单元12中确定迭代次数和幅度范围的实现形式包括a、所述幅度范围为固定值,而所述迭代次数为可变化值山、所述幅度范围为可变化值,而所述迭代次数为固定值;c、所述幅度范围和迭代次数皆为可变化值。当所述幅度范围为固定值而迭代次数为可变化值时,则所述迭代次数的计算公式如公式(14-15)所示。当所述幅度范围为可变化值而所述迭代次数为固定值时,则所述幅度范围的计算公式如公式(16-18)所不。当所述幅度范围和迭代次数皆为可变化值时,则所述幅度范围和迭代次数的计算公式如公式(14-18)所不根据上述三种算法中的其中一个算法中涉及的计算公式,计算并更新迭代次数和幅度范围的数值。第三计算单元13中使用VI-D⑶算法、VA-D⑶算法和VIA-D⑶算法这三种算法都可以计算自适应滤波器系数的改变量,计算步骤与DCD算法的计算步骤相同。其中,与DCD算法相比唯一不同的就是对幅度范围H和迭代次数Nu这两个参数的取值不同,在DCD算法中这两个参数皆取固定值,在VI-DCD算法中幅度范围H为固定值而迭代次数Nu为可变化值,在VA-DCD算法中幅度范围H为可变化值而迭代次数Nu为固定值,在VIA-DCD算法中幅度范围H和迭代次数Nu皆为可变化值。 图7为本发明实施例一种自适应控制装置中第三计算单元的示意图。如图所述,该第三计算单元13具体包括第一计算子单元131、第一判断子单元132、第二判断子单元133、第二计算子单元134、第三判断子单元135和结束子单元136。第一计算子单元131用于步长的初始值为所述幅度范围,计算并更新步长,每次计算并更新后的步长是上一次步长的二分之一,并且步长的更新次数递增1,所述步长的更新次数的初始值为O。具体地,在计算并更新迭代的步长值之前,要对计算过程中使用的数值和向量进行初始化,如公式(9)所示。计算步长如公式(10)所示,α是步长,控制着自适应滤波器系数的改变量。其中步长的初始值为所述幅度范围,每次计算后的步长值是上一次步长值的二分之一。其中,所述幅度范围为步骤402中计算出的幅度范围。第一判断子单元132用于判断步长的更新次数是否大于设定值。具体地,为了控制上述计算过程的复杂性,尤其当所述迭代次数非常大时,上述计算过程循环的次数会非常大,甚至会无限循环下去。为了避免出现这一情况,故根据实际需要设定一数值,一般为4或8,该数值为上述计算过程循环次数的设定值。当步长的更新次数大于设定值,则进入结束子单元136 ;否则进入第二判断子单元133。第二判断子单元133,用于残留向量的初始值为所述误差向量,从所述残留向量的第一个元素开始,依次比较所述残留向量中的元素的绝对值是否大于所述步长的二分之一与输出信号形成的输出向量的自相关矩阵相乘后得到的矩阵的对应的对角线元素,得到比较结果,若所述比较结果是大于,则进入第二计算子单元134,否则,若比较已达到所述残留向量的最后一个元素并且从所述残留向量的第一个元素至最后一个元素的所有所述比较结果均不是大于,则进入第一计算子单元131,否则,重复本步骤,进行下一次比较,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始;第二计算子单元134用于计算所述自适应滤波器系数的改变量Λ h以及计算所述残留向量r,并且以计算次数递加I来更新所述计算次数。具体地,计算所述自适应滤波器系数的改变量Ah如公式(11)所示,计算残留向量r如公式(12)所示,并且以计算次数递增I来更新所述计算次数如公式(13)所示,q用来计算滤波器的变化次数,在本申请实施例中q定义为计算次数。
第三判断子单元135用于判断所述计算次数是否大于所述迭代次数,若是,则进入结束子单元,否则进入第二判断子单元,进行下一次比较,若比较已达到所述残留向量的最后一个元素,则下一次比较再次从所述残留向量的第一个元素开始。结束子单元136用于计算结束并且获得所述自适应滤波器系数的改变量。因此,本发明公开的自适应控制方法和装置,根据误差信号计算幅度范围和迭代次数这两个参数,使得幅度范围和迭代次数这两个参数随着误差信号的变化而变化,从而自适应的调整该算法的收敛速度、稳态误差以及算法复杂度。与DCD算法相比,本发明在算法复杂度、收敛速度和稳态误差方面都优于DCD算法。另外,本发明公开的自适应控制方法和装置特别适用于低功耗和高精度的应用场景。专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本发明中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。以上所述的具体实施方式
,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式
而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种自适应控制方法,其特征在于,所述方法包括 计算输出信号反馈的期望信号和输出信号反馈的估计信号的误差以及根据所述误差计算误差向量; 根据迭代次数以及所述误差计算并更新迭代次数,和/或根据幅度范围以及所述误差计算并更新所述幅度范围; 根据输出信号形成的输出向量的自相关矩阵、所述迭代次数以及所述幅度范围,迭代计算自适应滤波器系数的改变量; 根据所述自适应滤波器系数的改变量,更新自适应滤波器系数; 所述输出信号经由所述自适应滤波器处理后,得到所述输出信号反馈的估计信号。
2.根据权利要求I所述的自适应控制方法,其特征在于,所述迭代次数的计算方法为 Pi ⑴=X1Xp1Q-IHr1Xe2Q)Nu(i) = I P1H)] 其中,e(i)为所述误差,P1 (i)初始值为O,「Α(0 表示不小于P1 (i)的最小整数,O < A1< I, !T1 > O, Nu⑴为所述迭代次数。
3.根据权利要求I所述的自适应控制方法,其特征在于,所述幅度范围的计算方法为 P2 ( ) = λ 2Xp2(i-l)+r2X |e(i)g(/) =「log2(i 2(0)] H(i) = 2q(i) 其中,e(i)为所述误差,p2 (i)初始值为0,「log2(i 2(/))1表示不小于log2(p2(i))的最小整数,0< A2 < l,r2>0,H(i)为所述幅度范围。
4.根据权利要求I所述的自适应控制方法,其特征在于,所述根据输出向量的自相关矩阵、所述迭代次数以及所述幅度范围,迭代计算自适应滤波器系数的改变量的步骤包括 步骤a,步长的初始值为所述幅度范围,计算并更新步长,毎次计算并更新后的步长是上一次步长的二分之一,并且步长的更新次数递增I ; 步骤b,判断步长的更新次数是否大于设定值,若是,则执行步骤f,否则执行步骤c ;步骤C,残留向量的初始值为所述误差向量,从所述残留向量的第一个元素开始,依次比较所述残留向量中的元素的绝对值是否大于所述步长的二分之一与输出向量的自相关矩阵相乘后得到的矩阵的对应的对角线元素,得到比较结果,若所述比较结果是大于,则执行步骤d,否则,若比较已达到所述残留向量的最后ー个元素并且从所述残留向量的第一个元素至最后ー个元素的所有所述比较结果均不是大干,则执行步骤a,否则,重复本步骤,进行下一次比较,若比较已达到所述残留向量的最后ー个元素,则下一次比较再次从所述残留向量的第一个元素开始; 步骤d,计算所述自适应滤波器系数的改变量以及计算并更新所述残留向量,并且以计算次数递加I来更新所述计算次数; 步骤e,判断所述计算次数是否大于所述迭代次数,若是,则执行步骤f,否则执行步骤C,进行下一次比较,若比较已达到所述残留向量的最后ー个元素,则下一次比较再次从所述残留向量的第一个元素开始;步骤f,计算结束并得到所述自适应滤波器系数的改变量。
5.一种自适应控制装置,其特征在于,所述装置包括 第一计算单元,用于计算输出信号反馈的期望信号和输出信号反馈的估计信号的误差以及根据所述误差计算误差向量; 第二计算单元,用于根据迭代次数以及所述误差计算并更新迭代次数,和/或根据幅度范围以及所述误差计算并更新所述幅度范围; 第三计算单元,用于根据输出信号形成的输出向量的自相关矩阵、所述迭代次数以及所述幅度范围,迭代计算自适应滤波器系数的改变量; 自适应滤波器系数生成単元,用于根据所述自适应滤波器系数的改变量,更新自适应滤波器系数; 第四计算单元,用于所述输出信号经由所述自适应滤波器处理后,得到所述输出信号反馈的估计信号。
6.根据权利要求5所述的自适应控制装置,其特征在于,所述第二计算单元中所述计算迭代次数的计算方法为
7.根据权利要求5所述的自适应控制装置,其特征在干,所述第二计算单元中所述计算幅度范围的计算方法为
8.根据权利要求5所述的自适应控制装置,其特征在于,所述第三计算单元包括 第一计算子単元,用于步长的初始值为所述幅度范围,计算并更新步长,毎次计算并更新后的步长是上一次步长的二分之一,并且步长的更新次数递增I ; 第一判断子単元,判断步长的更新次数是否大于设定值,若是,则进入结束子単元,否则进入第二判断子単元; 第二判断子単元,用于残留向量的初始值为所述误差向量,从所述残留向量的第一个元素开始,依次比较所述残留向量中的元素的绝对值是否大于所述步长的二分之一与输出信号形成的输出向量的自相关矩阵相乘后得到的矩阵的对应的对角线元素,得到比较结果,若所述比较结果是大于,则进入第二计算子単元,否则,若比较已达到所述残留向量的最后ー个元素并且从所述残留向量的第一个元素至最后ー个元素的所有所述比较结果均不是大于,则进入第一计算子単元,否则,重复本步骤,进行下一次比较,若比较已达到所述残留向量的最后ー个元素,则下一次比较再次从所述残留向量的第一个元素开始; 第二计算子単元,用于计算所述自适应滤波器系数的改变量以及计算并更新所述残留向量,并且以计算次数递加I来更新所述计算次数; 第三判断子単元,用于判断所述计算次数是否大于所述迭代次数,若是,则进入结束子単元,否则进入第二判断子単元,进行下一次比较,若比较已达到所述残留向量的最后ー个元素,则下一次比较再次从所述残留向量的第一个元素开始; 结束子単元,用于计算结束并得到所述自适应滤波器系数的改变量。
全文摘要
本发明涉及一种自适应控制方法和装置,该方法包括计算输出信号反馈的期望信号和估计信号的误差以及根据误差计算误差向量;根据迭代次数以及误差计算并更新迭代次数,和/或根据幅度范围以及误差计算并更新所述幅度范围;根据输出信号形成的输出向量的自相关矩阵、迭代次数以及幅度范围,迭代计算自适应滤波器系数的改变量;根据自适应滤波器系数的改变量,更新自适应滤波器系数;输出信号经由自适应滤波器处理后,得到输出信号反馈的估计信号。因此,本发明公开的一种自适应控制方法和装置,根据误差信号计算幅度范围和迭代次数这两个参数,使得该参数随着误差的变化而变化,从而自适应的调整该算法的收敛速度、稳态误差、以及算法复杂度。
文档编号G05B13/04GK102629105SQ20121009783
公开日2012年8月8日 申请日期2012年4月5日 优先权日2012年4月5日
发明者张铁军, 洪缨, 董超, 高丽 申请人:中国科学院声学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1