自适应滤波器设计及Matlab实现,附程序代码 下载本文

QH?w(k?1)?(I??QHDQ)QH?w(k)

或写为

V(k?1)?(I??D)V(k)

(3.17a)

(3.17b)

HV(k)?Q?w(k),为旋转参数矢量或旋转滤波系数矢量误差,V(k)的其中

起始值为

V(1)?QH[w(1)?wopt]

由(3.17b)式,可以推算出

( 3.18)

V(k?1)?(I??D)kV(1)

( 3.19 )

把单位矩阵I和对角线矩阵D展开,上式可以写为

?(1???1)k?0V(k?1)?????0??01???2)k?0???0??V(1)

?????1???M)k???0 ( 3.20 )

上式表明,为了保证最陡下降算法的稳定性(收敛性),矩阵中的每一个元素1???k,k?1,2,?,M的绝对值必须小于1,由此可以得到算法稳定性的收敛条件为

0???2?max ( 3.21 )

式中?max是相关矩阵R的最大特征值。在此条件下,对角线矩阵中全部元素当k??而趋近于零,结果使得V(k?1)?0。当k很大时,意味着自适应滤波系数矢量趋近于最佳维纳解。

3.2 LMS滤波原理及算法

3.2.1 从最陡下降法导出LMS算法

如上节所述,最陡下降算法不需要知道误差特性曲面的先验知识,其算法就可以收敛到最佳维纳解,且与起始条件无关。但是最陡下降算法的主要限制是它需要准确测得每次迭代的梯度矢量,这妨碍了它的应用。为了减少计算复杂度和

缩短自适应收敛时间,1960年,美国斯坦福大学的Widrow等提出了最小均方(LMS)算法,这是一种用瞬时值估计梯度矢量的方法,即

?E[e2(k)]?(k)??w(k)

??[2e(k)x(k)]? ( 3.22 )

可见,这种瞬时估计法是无偏的,因为它的期望值E[?(k)]确实等于式(3.10)的梯度矢量?(k)。所以,按照自适应滤波器滤波系数矢量的变化与梯度矢量估计的方向之间的关系,可以写出LMS算法的公式如下:

?1w(k?1)?w(k)??[??(k)]2 ??? ( 3.23 )

?w(k)??X(k)d(k)?3.2.2 基本LMS算法的实现步骤

(1) 初始化 令所有权重wi(k)为任一固定值或为0,对每一个接下来地抽样时刻(k=1,2,…,N)执行(2)到(4)。

(2) 计算滤波输出

y(k)??w(i)x(k?i?1)i?1M ( 3.24 )

(3) 计算估计误差

e(k)?d(k)?y(k)

(4) 更新下一时刻的权

( 3.25 )

w(k?1)?w(k)?2?e(k)x(k) ( 3.26 )

从上面看出,LMS算法具有简洁和易于实现地特点使它成为许多实时系统的首选算法,LMS算法对每组输入和输出抽样大约需2N-1次乘法和2N-1次加法。太多数信号处理器陡适宜进行乘法和累加运算,使直接实现LMS算法更具有吸引力。

3.2.3 基本LMS算法的实现流程图

3.2.4 LMS算法的Matlab实现wiener2()的原理

LMS算法实现的代码可见附录A 3.2.5 wiener2()的原理

我们下面介绍一下wiener2()的基本处理方法和过程:

根据图像的局部统计性质,一个像素与它周围的局部区域内的像素相关,因此去噪图像中某一点像素值可由退化图像中相应于该点的局部区域内的像素值予以恢复,我们做一个S×S(S=2×L+1,L为窗口半宽)的矩形窗口,对退化图像中的每个像素在以该像素维中心的窗口内进行相应的滤波处理,可得去噪图像为:

r(i,j)?m??Ln??L??w(m?L?1,n?L?1)g(m?i,n?j)

LL ( 3.27 )

式中w(m,n)为所要求的权值,g(i,j)为退化图像,写成矩阵形式有:

R?wTG

( 3.28 )

其中

?w(1,1)??g(i?L,j?L)??w(1,2)??g(i?L,j?L?1)?? , G??? w????????????w(s,s)g(i?l,j?L)???? ( 3.29 )

于是问题转换成求w(m,n),我们选取一块有较多信号的区域作为特征区域,令其为SA,并对其做自适应滤波处理,以得到该区域的近似原始图像

I(i,j),(i,j)?SA,称为理想图像,滤波步骤如下:

(1) 先求特征区域中的局部图像均值和方差

mean(i,j)?LLm??Ln??L??g(m?i,n?j)

LL ( 3.30 )

var(i,j)?m??Ln??L??[g(i?m,j?n)?mean(i,j)]2 ( 3.31 )

(2) 再根据加权最小二乘法,求得自适应滤波后的理想图像

I(i,j)?mean(i,j)?c(i,j)[g(i,j)?mean(i,j)]

2var(i,j)??n2其中c(i,j)?,这里?n表示噪声方差。

var(i,j) ( 3.32 )

Wiener2() 函数的解析可见附录B 3.2.6 LMS性能分析——自适应收敛性

自适应滤波器系数矢量的起始值w(1)是任意的常数,应用LMS算法调节滤波系数具有随机性而是系数矢量w(k)带来非平稳过程。通常为了简化LMS算法的统计分析,往往假设算法连续迭代之间存在以下的充分条件:

(1) 每个输入信号样本矢量x(k)与其过去全部样本矢量是统计独立的,不相关的。

(2) 每个输入信号样本矢量与全部过去的期望响应信号d(k)也是统计独立的。