最小均方自适应滤波器

来源:互联网 发布:sql 设置字段的默认值 编辑:程序博客网 时间:2024/06/05 23:45

自适应滤波器

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

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

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

最优滤波准则

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

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

LMS

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

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

W(n)=[w1(n),w2(n),wM(n)]T

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

Y(n)=W(n)TX(n)

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

式中,s(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[s2(n)]2WTP+W(n)TX(n)TX(n)W(n) =E[s2(n)]2WTP+WTRW(1)

上式中,W 是滤波器系数矩阵; R 是输入信号x(n)的自相关矩阵; P 是期望信号s(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

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)]

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

Wo=R1P

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

最陡梯度下降法

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

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

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

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

W(n+1)=W(n)+12u[(n)]

式中,u是一个正实数,通常称为自适应收敛系数或步长;(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)]  ]

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

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

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

W(n+1)=W(n)+uE[(n)X(n)]

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

原创粉丝点击