主权项 |
一种梯度变步长LMS自适应滤波方法,其特征在于,该方法基于下述的自适应滤波算法权向量迭代公式:W(n+1)=W(n)+μe(n)X(n), (1)y(n)=X<sup>T</sup>(n)W(n), (2)e(n)=d(n)‑y(n), (3)其中W(n)为自适应滤波器的权矢量,X(n)为输入信号矢量,n为采样时刻,X<sup>T</sup>(n)为输入信号矢量的转置,μ为迭代步长,e(n)表示期望输出d(n)与实际输出y(n)之间的误差信号,算法收敛条件为:0<μ<1/λ<sub>max</sub>, (4)收敛速度是:<img file="FDA0000970961830000011.GIF" wi="1046" he="151" />在式(4)、式(5)中,λ<sub>max</sub>、λ<sub>min</sub>是输入信号自相关矩阵R<sub>xx</sub>={X<sup>T</sup>(n)X(n)}特征值的最大值和最小值,稳态误差及失调系数则为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>δ</mi><mo>=</mo><mi>μ</mi><mi>T</mi><mi>r</mi><mo>[</mo><msub><mi>R</mi><mrow><mi>x</mi><mi>x</mi></mrow></msub><mo>]</mo><mo>=</mo><mi>μ</mi><munderover><mo>Σ</mo><mi>x</mi><mi>m</mi></munderover><msub><mi>λ</mi><mi>i</mi></msub><mo>=</mo><msub><mi>μmP</mi><mrow><mi>i</mi><mi>n</mi></mrow></msub><mo>,</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000970961830000012.GIF" wi="1181" he="109" /></maths>在式(6)中,m为自适应滤波器的阶数,Tr[R<sub>xx</sub>]为R<sub>xx</sub>的迹,P<sub>in</sub>为输入信号的功率,式(6)表明,滤波器阶数、步长因子和输入信号的功率越大,失调系数越大,采用梯度变步长LMS自适应滤波方法的权值迭代公式如下:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>W</mi><mrow><mo>(</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mi>W</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>+</mo><mfrac><mrow><mn>2</mn><msub><mi>μ</mi><mi>g</mi></msub><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mrow><mrow><mi>γ</mi><mo>+</mo><msup><mi>X</mi><mi>T</mi></msup><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mi>X</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mrow></mfrac><msup><mi>e</mi><mo>*</mo></msup><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mi>X</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>,</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000970961830000013.GIF" wi="1245" he="135" /></maths>μ<sub>g</sub>(n)=1‑μ<sub>g</sub>(n‑1)+μ<sub>g</sub>(n‑1)g(n‑1)<sup>T</sup>g(n), (8)<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>g</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><mi>β</mi><mi>g</mi><mo>-</mo><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>β</mi><mo>)</mo></mrow><mfrac><mrow><msup><mi>e</mi><mo>*</mo></msup><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mi>X</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mrow><mrow><mi>γ</mi><mo>+</mo><msup><mi>X</mi><mi>T</mi></msup><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mi>X</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mrow></mfrac><mo>,</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000970961830000021.GIF" wi="1256" he="135" /></maths>其中,μ<sub>g</sub>(n)为可变步长,g(n)为平滑梯度向量,β是平滑参数常量,γ为大于零的常数,本方法基于上述的结论,按照以下步骤实施:步骤1、输入信号X(n)={x(n),x(n‑1),…,x(n‑m+1)}为不同时刻的延迟所构成的信号向量,x(n)为第一阶滤波器n时刻的采样值,m为横向滤波器的阶数;步骤2、输入信号与对应的权值相乘,并求和,得到系统实际输出y(n),权矢量全部初始化为0,参照公式(2);步骤3、将d(n)与y(n)相减得到误差信号e(n),参照公式(3);步骤4、根据公式(9)得到平滑梯度矢量g(n);步骤5、相邻时刻的平滑梯度矢量乘积计算得到n时刻的迭代步长参数μ<sub>g</sub>,参照公式(8);步骤6、根据权值迭代公式(7)得到此时刻的权矢量;步骤7、从步骤1开始到步骤6循环计算,迭代计算输出,即成。 |