最小均方自适应滤波器

自适应滤波器

自适应滤波器由参数可调的数字滤波器和自适应算法两部分组成。

数字滤波器可以是有限型FIR或无限型IIR。IIR滤波器有正向通路和反馈通路,可能产生不稳定信号导致滤波器振荡,而FIR只有正向通路,处理简单,在自适应滤波中,一般采用FIR滤波器。

自适应滤波器实际是一种能够跟踪输入信号的统计特性变化,按照最优滤波准则,调节自身参数的,计算最优滤波效果的特殊维纳滤波器。

最优滤波准则

最优滤波准则规定了某种准则下得到滤波器的对应的最佳参数,但这个最佳参数不能通过现有的客观存在计算得到,而是指出自适应滤波器调整参数的方向。常见的最佳滤波准则:最小均方误差准则, 最小二乘准则等, 相应的自适应算法为 最小均方算法(least mean squarse, LMS), 递推最小二乘法(recursive least squarse, RLS)。其中LMS 是最基本的,计算量小适合计算机应用, 但对于能量变化的很大的信号,稳定性较差;而RLS 性能好,但计算量大不易实现。

本文将介绍主要最小均方(LMS)自适应滤波器。

LMS

自适应横向(M阶)滤波器在第 n n 时刻的输入信号 x(n) x ( n ) 和滤波器权重系数 w(n) w ( n ) , x(n) x ( n ) w(n) w ( n ) 都是长度为M的序列,由于滤波器输出是 w(n) w ( n ) x(n) x ( n ) 卷积,即 w(n) w ( n ) 分别与 x(n) x ( n ) 的(M阶)延迟乘积组合,为方便分别定义为:

X(n)=[x(n),x(n1),x(nM+1)]T X ( n ) = [ x ( n ) , x ( n − 1 ) , … … , x ( n − M + 1 ) ] T

W(n)=[w1(n),w2(n),wM(n)]T W ( n ) = [ w 1 ( n ) , w 2 ( n ) , … … , w M ( n ) ] T

上式中, X(n) X ( n ) 为以 x(n) x ( n ) 的M个延迟输入序列构成的矩阵, W(n) W ( n ) 为以 w(n) w ( n ) 中M个滤波系数构成向量,则滤波器的输出信号为 y(n) y ( n ) 构成的对应向量 Y(n) Y ( n )

Y(n)=W(n)TX(n) Y ( n ) = W ( n ) T X ( n )

产生的误差为:
(n)=s(n)y(n) ℓ ( n ) = s ( n ) − y ( n )

式中, s(n) s ( n ) 为期望信号。记符号 为将向量转化为对应序列,如 y(n)=Y(n) y ( n ) = Y ( n ) ↔ 按照均方误差函数:
ε(n)=E[2(n)]=E[|s(n)y(n)|2]=E[s2(n)]2E[s(n)y(n)]+E[y2(n)] =E[s2(n)]2E[s(n)W(n)TX(n) ]+E[W(n)TX(n) W(n)TX(n)] ε ( n ) = E [ ℓ 2 ( n ) ] = E [ | s ( n ) − y ( n ) | 2 ] = E [ s 2 ( n ) ] − 2 E [ s ( n ) y ( n ) ] + E [ y 2 ( n ) ]   = E [ s 2 ( n ) ] − 2 E [ s ( n ) W ( n ) T X ( n ) ↔   ] + E [ W ( n ) T X ( n ) ↔   W ( n ) T X ( n ) ↔ ]

可以等效转化为矩阵计算:

ε(n)=E[s2(n)]2WTP+W(n)TX(n)TX(n)W(n) =E[s2(n)]2WTP+WTRW(1) (1) ε ( n ) = E [ s 2 ( n ) ] − 2 W T P + W ( n ) T X ( n ) T X ( n ) W ( n )   = E [ s 2 ( n ) ] − 2 W T P + W T R W

上式中, W W 是滤波器系数矩阵; R R 是输入信号 x(n) x ( n ) 的自相关矩阵; P P 是期望信号 s(n) s ( n ) 和信号 x(n) x ( n ) 的互相关向量:
P=[E[s(n)x(n)]E[s(n)x(n1)]E[s(n)x(nM+1)] ]T=[rsx(0)rsx(1)rsx(1M)]T P = [ E [ s ( n ) x ( n ) ] E [ s ( n ) x ( n − 1 ) ] ⋯ E [ s ( n ) x ( n − M + 1 ) ]   ] T = [ r s x ( 0 ) r s x ( − 1 ) ⋯ r s x ( 1 − M ) ] T

R=E[x(n)x(n)]E[x(n1)x(n)]E[x(nM+1)x(n)]E[x(n)x(n1)]E[x(n1)x(n1)]E[x(nM+1)x(n1)]E[x(n)x(nM+1)]E[x(n1)x(nM+1)]E[x(nM+1)x(nM+1)]  =rxx(0)rxx(1)rxx(M+1)rxx(1)rxx(0)rxx(M+2)rxx(M1)rxx(M2)rxx(0)] R = [ E [ x ( n ) x ( n ) ] E [ x ( n ) x ( n − 1 ) ] ⋯ E [ x ( n ) x ( n − M + 1 ) ] E [ x ( n − 1 ) x ( n ) ] E [ x ( n − 1 ) x ( n − 1 ) ] ⋯ E [ x ( n − 1 ) x ( n − M + 1 ) ] ⋮ ⋮ ⋱ ⋮ E [ x ( n − M + 1 ) x ( n ) ] E [ x ( n − M + 1 ) x ( n − 1 ) ] ⋯ E [ x ( n − M + 1 ) x ( n − M + 1 ) ] ]     = [ r x x ( 0 ) r x x ( 1 ) ⋯ r x x ( M − 1 ) r x x ( − 1 ) r x x ( 0 ) ⋯ r x x ( M − 2 ) ⋮ ⋮ ⋱ ⋮ r x x ( − M + 1 ) r x x ( − M + 2 ) ⋯ r x x ( 0 ) ] ]

式(1)中,对 W W 求导,并令导数为0,同时假设 R R 是非奇异,可得最佳滤波器系数 Wo W o :

Wo=R1P W o = R − 1 P

上述最佳滤波器系数 Wo W o ,即为此刻滤波器的维纳解。均方误差函数 ε(n) ε ( n ) 是滤波系数 W W 的二次方程,是一个多维的抛物曲面。

最陡梯度下降法

上述算法对一个已知道全部输入输出的系统,即第 n n 时刻是最后时刻,那么通过整体统计量平均可以直接解出最优解 Wo W o ,或者说可以通过维纳霍夫方程直接求解维纳滤波器。然而对一个进行的系统,整体即是未知的,只能得到第 n n 时刻的部分统计量,求得此刻的最优解,因此需要某种方法根据每个时刻变化的统计量,不断跟踪更新最优解。

自适应滤波器就是以任意初始系数 WS W S ,即误差曲面上的某一点,经过多次自适应调节,使系数 W W 向最优值 Wo W o 接近,实现最佳维纳滤波。

最陡梯度下降法可以用来对自适应滤波器系数寻优,根据误差曲面的梯度信息,在最陡下降的方向即梯度向量的负方向逐步调整逼近曲面极小值,获得最佳滤波。

在误差曲面 ε(n) ε ( n ) 第n个时刻的滤波系数 W(n) W ( n ) ,定义此刻的M*1 维梯度矢量为 (n) ∇ ( n ) , M 是滤波系数个数。 按照最陡梯度下降法调节滤波系数,则在第n+1时刻的滤波系数可更新为:

W(n+1)=W(n)+12u[(n)] W ( n + 1 ) = W ( n ) + 1 2 u [ − ∇ ( n ) ]

式中, u u 是一个正实数,通常称为自适应收敛系数或步长; (n) ∇ ( n ) 为M维梯度矢量,其表达式为:
(n)=E[2(n)]W(n)=[E[2(n)]w1(n) E[2(n)]w2(n)  E[2(n)]wm(n)]=[ 2E[e(n)x(n)]  2E[e(n)x(n1)]    2E[e(n)x(nm+1)]  ] ∇ ( n ) = ∂ E [ ℓ 2 ( n ) ] ∂ W ( n ) = [ ∂ E [ ℓ 2 ( n ) ] ∂ w 1 ( n )   ∂ E [ ℓ 2 ( n ) ] ∂ w 2 ( n )   … …   ∂ E [ ℓ 2 ( n ) ] ∂ w m ( n ) ] = [   − 2 E [ e ( n ) x ( n ) ]     − 2 E [ e ( n ) x ( n − 1 ) ]     … …     − 2 E [ e ( n ) x ( n − m + 1 ) ]     ]

定义 E[(n)X(n)] E [ ℓ ( n ) X ( n ) ] 为上述梯度方向矢量,即
E[(n)X(n)]=[ E[e(n)x(n)]  E[e(n)x(n1)]    E[e(n)x(nm+1)]  ] E [ ℓ ( n ) X ( n ) ] = [   E [ e ( n ) x ( n ) ]     E [ e ( n ) x ( n − 1 ) ]     … …     E [ e ( n ) x ( n − m + 1 ) ]     ]

可以看出,当梯度为 0 时, 误差信号序列与输入信号的各延迟序列乘积为0,也即此时误差信号 (n) ℓ ( n ) 与输入信号 x(n) x ( n ) 正交不相关。

将上面梯度矢量带入滤波系数的更新方程中,可得:

W(n+1)=W(n)+uE[(n)X(n)] W ( n + 1 ) = W ( n ) + u E [ ℓ ( n ) X ( n ) ]

为了保证最陡下降法的收敛性,步长 u u 需满足收敛条件: 0<u<1λmax 0 < u < 1 λ m a x , 其中 λmax λ m a x 是输入信号自相关矩阵 R R 的最大特征值。
待续。。。。。。。

你可能感兴趣的:(自然科学.IT辑(音视频开发))