块自适应滤波器

来源:互联网 发布:淘宝卖的红酒是正品吗 编辑:程序博客网 时间:2024/05/23 19:16

如有不当之处欢迎批评指正

1.块自适应滤波器
  传统的LMS(点击学习LMS算法)和NLMS(点击学习NLMS算法)算法都是sample based algorithm,即每来一个样值便更新一次滤波器系数。顾名思义,块自适应滤波器是每来一个数据块更新一次滤波器系数,此处块自适应滤波器采用横向滤波器(点击此处学习横向滤波器)的结构
  令

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

  表示时刻n输入信号向量(即横向滤波器每个抽头的输入值);
  令
h(n)=[h0(n),h1(n),...,hM1(n)]T

  表示时刻n滤波器的抽头权向量,其中M表示滤波器的长度,T表示向量或矩阵转置。
  令k表示块的下标,它与原始样值时间n的关系为:
n=kL+i
  i=0,1,...,L1k=1,2,...
  其中L表示是数据块的长度。第k块的输入数据定义为:
AT(k)=[x(kL),x(kL+1),...,x(kL+L1)]
  在这个输入数据块持续期间,滤波器的抽头权向量保持不变。表1举例说明了滤波器长度M=6,块长度L=4时的结构。

表1 A(k)
xT(4k) 0 -1 -2 -3 -4 -5 xT(4k+1) 1 0 -1 -2 -3 -4 xT(4k+2) 2 1 0 -1 -2 -3 xT(4k+3) 3 2 1 0 -1 -2

  表1中横向表示滤波器的长度M=6,纵向表示块长度L=4数值0,1,2,3属于当前块的数据,-1,-2,-3,-4,-5属于之前的数据块的数据。

2.块LMS算法
  滤波器对输入信号向量产生的对应输出为:

y(kL+i)=hT(k)x(kL+i)

  令d(kL+)表示期望响应,则误差信号为:
e(kL+i)=d(kL+i)y(kL+i)

  结合传统的LMS算法,运行在实数据上的块LMS算法的抽头权向量的更新公式如下:
h(k+1)=h(k)+μi=0L1x(kL+i)e(KL+i)

3.块长度的选择
a.L=M,从计算复杂度观点看,这是最佳选择;
b.L<M,由于块的长度小于滤波器的长度,这种情况有降低处理时延的好处;
c.L>M,会产生自适应过程的冗余计算。
一般选取L=M,它是大多数实际应用中人们更喜欢的一种自适应滤波选择。

参考文献
[1] 自适应滤波器原理(第四版) 原作者:simon haykin

0 0