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

信号的统计特性是缓慢的变化着的(非平稳信号),这就促使人们去研究一类特殊的滤波器,这类滤波器具有以下特点:当输入过程的统计特性未知时,或者输入过程的统计特性变化时,能够相应的调整自身的参数,以满足某种准则的要求,由于这类滤波器能变动自身的参数以“适应”输入过程统计特性的估计或变化,因此,就把这类滤波器称为自适应滤波器[4] 。在本文中我们研究的是退化图像复原的问题,由于图像自身的多样性和所混入的噪声的随机性和多样性,我们选择自适应滤波取出图像中混入的噪声。

3.1 横向滤波结构的最陡下降算法

3.1.1 最陡下降算法的原理

首先考虑如下图所示的横向FTR自适应滤波器

它的输入序列以向量的形式记为:

TX(k)??x(k)x(k?1)?x(k?M?1)?

( 3.1 )

假设X(k)取自一均值为零,自相关矩阵为R的广义平稳随机过程,而滤波器的系数矢量(加权矢量)为:

W(k)??w1(k)w2(k)?wM(k)?

T ( 3.2 )

以上二式中括号内的k为时间指数,因此,X(k)和W(k)分别表示时刻k的滤波器输入序列和加权值,滤波器的输出y(k)为:

My(k)??wi(n)x(n?i?1)

i?1 ( 3.3 )

式中M为滤波器的长度。

图3.1 中的d(k)称为“期望理想响应信号”,有时也可称为“训练信号”,它决定了设计最佳滤波器加权向量W(k)的取值方向。在实际应用中,通常用一路参考信号来作为期望响应信号。e(k)是滤波器输出y(k)相对于d(k)的误差,即

(3.4)

显然,自适应滤波控制机理是用误差序列e(k)按照某种准则和算法对其系数

?wi)n)?,i?1,2,?,M进行调节的,最终使自适应滤波的目标(代价)函数最小化,

达到最佳滤波状态。

按照均方误差(MSE)准则所定义得目标函数是

?(k)?E[e2(k)]?E[d(k)?2d(k)y(k)?y(k)]22 ( 3.5 )

将式(3.4)代入式(3.5),目标函数可以化为

?(k)?E[e2(k)]?E[d(k)]?2E[d(k)W(k)X(k)]?E[W(k)X(k)X(k)W(k)]当滤波系数固定时,目标函数又可以写为

2TTT ( 3.6 )

?(k)?[d2(k)]?2WT(k)P?WT(k)RW(k)]

( 3.7 )

其中,P?E[ykxk]是长度为N的期望信号与输入信号的互相关矢量,

R?E[xkxT]k是N×N的输入向量得自相关矩阵。

由式(3.7)可见,自适应滤波器的目标函数?(k)是延迟线抽头系数(加权或滤波系数)的二次函数。当矩阵R和矢量P已知时,可以由权矢量W(k)直接求其解。现在我们将式(3.7)对W求倒数,并令其等于零,同时假设R是非奇异的,由此可以得到目标函数最小的最佳滤波系数

wopt

( 3.8 )

wopt?R?1P

这个解就是维纳解,即最佳滤波系数值。因为均方误差函数是滤波系数W(k)的二次方程,由此形成一个形如图(2.2)的超抛物面,当滤波器工作在平稳随机过程的环境下,这个误差性能曲面就具有固定边缘的恒定形状。自适应滤波系数的起始值?wi(0),i?1,2,?,M?是位于性能曲面上的某一点,结果自适应调节过程,使对应于滤波系数变化的点移动,朝碗底最小点方向移动,最终到达碗底的最小点,实现了最佳维纳滤波。

最陡下降法就是实现上述搜索最佳值的一种优化技术,它利用梯度信息分析自适应滤波性能和追踪最佳滤波状态。梯度矢量是由均方误差?(?)的梯度来定义的,在多维超抛物面上任意一点的梯度矢量是对应于均方误差?(?)对滤波系数

wi(k)的一阶倒数,由起始点变化到下一点的滤波系数变化量正好是梯度矢量的负数。换句话说,自适应过程是在梯度矢量的负方向接连的校正滤波系数的,即在误差性能曲面的最陡下降方向移动和逐步校正滤波系数,最终到达均方误差为最小的碗底最小点,获得最佳滤波或准优工作状态。

令?(k)代表k时刻的M?1维梯度矢量,这里M等于滤波器滤波系数的数目,w(k)为自适应滤波器在k时刻的滤波系数和权矢量。按照最陡下降法调节滤波系数,则在k+1时刻的滤波系数或权矢量w(k?1)可以用下列简单递归关系来计算:

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

( 3.9 )

式中,?为自适应收敛系数或步长,是一个正实常数。根据梯度矢量定义,

?(k)可写成

?E[e2(k)]?(k)??w(k)???(k)????w1(k)?E[2e(k)??(k)??(k)???

?w2(k)?wM(k)??e(k)]??E[2e(k)x(k)]?w(k)

( 3.10 )

当滤波系数为最佳值,即是维纳解时,梯度矢量?(k)应等于零。将式(3.7)

代入(3.10)得到

?(k)??2P?2Rw(k)

( 3.11 )

因此,在最陡下降算法中,当相关矩阵R和互相关矢量P已知时,由滤波系数矢量w(k)可以计算梯度矢量?(k),把式(3.11)代入(3.9)中,可以计算出滤波系数的更新值

w(k?1)?w(k)??[P?Rw(k)],k?1,2,?,M

( 3.12 )

式(3.12)所描述的即是最陡下降算法自适应迭代的基本公式,且由该式我们可以不用再直接求R的逆。(3.12)式所示的迭代算法是一个反馈模型,因此算法的收敛性(稳定性)就非常重要。下面我们简单讨论一下最陡下降法的收敛性。

3.1.2 最陡下降算法稳定性

首先我们定义k时刻的加权误差矢量为

?w(k)?w(k)?wopt

( 3.13 )

则最陡下降算法式(3.12)可以写成另一种形式

?w(k?1)??w(k)??(P?Rw(k))

??w(k)??R?w(k)?(I??R)?w(k)

( 3.14 )

这样,我们得到最陡下降法的稳定性取决于两个因素:自适应步长参数?和输入信号矢量X(k)的自相关矩阵R。根据线性代数里的酉相似变换原理,用酉矩阵Q将相关矩阵R对角线化,即

R?QHDQ

( 3.15 )

式中D为对角线矩阵,它的元素是R的特征值,矩阵Q的列矢量是相关矩阵

R的特征值对应的特征向量的正交集,Q是Q的共轭转置。酉矩阵的性质是

HQHQ?QQH?I。把式(3.15)代入式(3.14),得到

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

HQ两边乘以得到,

( 3.16 )