您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 7.3--LMS自适应滤波器
7.3LMS自适应滤波器自适应滤波器实际上是一种能够自动调整本身参数的特殊维纳滤波器,在设计时不需要预先知道关于输入信号和噪声的统计特性,它能够在工作过程中逐步“了解”或估计出所需的统计特性,并以此为依据自动调整自身的参数,以达到最佳滤波效果。一旦输入信号的统计特性发生变化,它又能够跟踪这种变化,自动调整参数,使滤波器性能重新达到最佳。图7-3自适应滤波器原理图自适应滤波器由参数可调的数字滤波器(或称为自适应处理器)和自适应算法两部分组成,如图7-3所示。参数可调数字滤波器可以是FIR数字滤波器或IIR数字滤波器,也可以是格型数字滤波器。输入信号x(n)通过参数可调数字滤波器后产生输出信号(或响应)y(n),将其与参考信号(或称期望响应)d(n)进行比较,形成误差信号e(n),并以此通过某种自适应算法对滤波器参数进行调整,最终使e(n)的均方值最小。尽管自适应滤波器具有各种不同的算法和结构,但是,其最本质特征是始终不变的。这种最本质的特征可以概括为:自适应滤波器依据用户可以接受的准则或性能规范,在未知的而且可能是时变的环境中正常运行,而无须人为的干预。本章主要讨论的是基于维纳滤波器理论的最小均方(LMS)算法,可以看到LMS算法的主要优点是算法简单、运算量小、易于实现;其主要缺点是收敛速度较慢,而且与输入信号的统计特性有关。7.3.1LMS算法基本原理1.自适应线性滤波器图7-4单输入自适应线性滤波器图7-5多输入自适应线性滤波器自适应线性滤波器是一种参数可自适应调整的有限冲激响应(FIR)数字滤波器,具有非递归结构形式。因为它的分析和实现比较简单,所以在大多数自适应信号处理系统中得到了广泛应用。如图7-4所示的是自适应线性滤波器的一般形式。输入信号矢量x(n)的L+1个元素,既可以通过在同一时刻对L+1个不同信号源取样得到,也可以通过对同一信号源在n以前L+1个时刻取样得到。前者称为多输入情况,如图7-5所示,后者称为单输入情况如图7-4所示,这两种情况下输入信号矢量都用x(n)表示,但应注意它们有如下区别。单输入情况:(7-18)多输入情况:(7-19)单输入情况下x(n)是一个时间序列,其元素由一个信号在不同时刻的取样值构成;而多输入情况下x(n)是一个空间序列,其元素由同一时刻的一组取样值构成,相当于并行输入。对于一组固定的权系数来说,线性滤波器是输出y(n)等于输入矢量x(n)的各元素的线性加权之和。然而实际上权系数是可调的,调整权系数的过程叫做自适应过程。在自适应过程中,各个权系数不仅是误差信号e(n)的函数,而且还可能是输入信号的函数,因此,自适应线性滤波器的输出就不再是输入信号的线性函数。输入信号和输出信号之间的关系为单输入情况:(7-20)多输入情况:(7-21)如图7-4所示的单输入自适应线性滤波器,实际上是一个时变横向数字滤波器,有时称为自适应横向滤波器。它在信号处理中应用很广泛。自适应线性滤波器的L+1个权系数构成一个权系数矢量,称为权矢量,用w(n)表示,即(7-22)这样,输出响应表示为(7-23)参考响应与输出响应之差称为误差信号,用e(n)表示,即(7-24)自适应线性滤波器按照误差信号均方值(或平均功率)最小的准则,即(7-25)来自动调整权矢量。2.自适应滤波器的性能函数习惯上常称均方误差为自适应滤波器的性能函数,并记为、或,即(7-26)由式(7-24)、(7-25)和式(7-26),均方误差表示式为(7-27)在d(n)和x(n)都是平稳随机信号的情况下,输入信号的自相关矩阵R,d(n)与x(n)的互相关矩阵P都是与时间无关的恒定二阶统计,分别定义为(7-28)(7-29)以上二式对应于多输入情况,对于单输入情况,不难写出类似结果。将上二式代入式(7-27),得到均方误差的简单表示形式(7-30)为了书写方便这里省略了w(n)的时间标记。从该式可看出,在输入信号和参考响应都是平稳随机信号的情况下,均方误差是权矢量w各分量的二次函数。这就是说,若将上式展开,则w各分量只有一次项和二次项存在。的函数图形是L+2维空间中一个中间下凹的超抛物面,有唯一的最低点,该曲面称为均方误差性能曲面,简称性能曲面,如图7-6所示。自适应是自动调整权系数,使均方误差达到最小值的过程,这相当于沿性能曲面往下搜索最低点。图7-6均方误差性能曲面3.最速下降法从前面的讨论中已经知道,在输入信号和参考响应都是平稳随机信号的情况下,自适应线性组合器的均方误差性能曲面是权矢量w(n)的二次函数。由于自相关矩阵为正定的,故此超抛物面向上凹,表示均方误差函数有唯一的最小值,该最小值所对应的权系数矢量为自适应滤波器的最佳权矢量,即等于维纳滤波器的权矢量。如果自适应滤波器的权系数个数大于2,其性能表面的超抛物面仍有唯一的全局最优点。在许多实际应用中,性能曲面的参数,甚至解析表示式都是未知的,因此,只能根据已知的测量数据,采用某种算法自动地对性能曲面进行搜索,寻找最低点,从而得到最佳矢量。最常见的搜索方法是最速下降法(MethodofSteepestDescent),它在工程上比较容易实现,有很大的实用价值。下面进行简单讨论。均方误差性能曲面的梯度用表示,定义为(7-31)将式(7-31)代入上式,得到(7-32)最小均方误差对应的权矢量称为最佳权矢量或维纳解,用表示。在性能曲面上,该点梯度等于零,即(7-33)由此解出(7-34)式(7-34)称为维纳—霍夫方程。将上式代入式(7-31),即可得到自适应滤波器的最小均方误差为(7-35)利用矩阵运算规则,可以将上式简化为(7-36)由式(7-17)可知,只要知道了输入信号的自相关矩阵R和期望响应与输入信号的互相关矢量P,就可以由该式直接得出最佳权矢量。但是在实际应用中,这种方法往往是难以实现的。一方面,我们通常很难得到有关信号和噪声的统计先验知识;另一方面,当R的阶数较高时,直接计算R的逆矩阵有一定的困难。因此,最佳权矢量的实现一般都采用迭代方法,一步一步地在性能表面上搜索,并最终达到最小均方值和实现最佳权矢量。最速下降法是一种古老而又非常有用的通过迭代寻找极值的方法。从几何意义上来说,迭代调整权矢量的结果是使系统的均方误差沿性能曲面最陡的方向向下搜索曲面的最低点,曲面的最速下降方向是曲面的负梯度方向,或性能函数的梯度的反方向连续调整滤波器的权矢量w(n),梯度矢量可以表示为(7-37)这样,最速下降法可以表示为(7-38)式中,是正值常数,称为收敛因子,用于调整自适应迭代的步长。为了证明最速下降法满足,即在迭代的每一步都满足在性能表面上下降,将性能函数在处进行一阶泰勒展开,并利用式(7-38),得到(7-39)由于收敛因子μ是正值常数,因此,随着的增加,性能函数不断减小,当时,性能函数趋于最小值。最速下降法的自适应迭代公式可以通过把式(7-32)代入式(7-38)得到,即(7-40)最速下降法的稳定性取决于两个因素,一是收敛因子μ的取值,二是自相关矩阵R的特性。定义权误差矢量v(n)为(7-41)利用上式和,消去式(7-40)中的互相关矢量,有(7-42)式中,为单位阵。式(7-42)再次强调了最速下降法的稳定性是由和控制的。利用正交相似变换,可以将自相关阵表示为(7-43)式中,Q为正交矩阵,矩阵Q的各个列矢量为自相关矩阵R的特征值相对应的特征矢量。为一对角阵,其对角元素为矩阵R的特征值。通常将这些特征值表示为,且均为正实值。每一个特征值对应矩阵Q中一列特征矢量。将式(7-43)代入式(7-42),有(7-44)上式两边左乘,并利用正交矩阵的性质,有(7-45)定义(7-46)有(7-47)设的初始值为(7-48)再假定自适应滤波器权矢量的初始值为,则上式简化为(7-49)考虑矢量的第个模式,则式(7-30)所示的最速下降法的迭代公式变为(7-50)式中,为自相关矩阵R的第个特征值,为矢量的第个元素。上式为的一阶齐次方程。若设的初始值为,则该差分方程的解为(7-51)由于矩阵R为正定阵,其特征值均为正实值。这样,构成了一个等比级数,其公比为。为了保证最速下降法稳定收敛,必须有(7-52)即保证的幅值小于1。当迭代次数时,最速下降法的各个模式均趋于0,而与初始状态无关。这意味着当时,自适应滤波器的权矢量趋于最佳权矢量。将式(7-51)写成矢量形式,有(7-53)由式(7-52)可以得到最速下降法收敛因子的限制条件:(7-54)式中,为自相关矩阵R的最大的特征值。最速下降法的主要优点是它的简单性,然而,这种方法需要大量的迭代,才能使算法收敛于充分接近最优解的点。这个性能是由于最速下降法是以围绕当前点的性能表面的一阶近似为基础的。在实际应用中,如果计算的简单性相对重要,则选择最速下降法是合适的。然而,如果收敛速度是更重要的,可以选用牛顿法及其改进方法,这里就不再讨论了。【例7-2】均方误差性能函数为,初值权值为0,μ=0.05,给出最速下降法的学习曲线。已知即按式7-30的形式可得:由式7-34可得:由式7-36可得:由式7-41可知最速下降法学习曲线为:由7-46式定义可知由7-41式权误差矢量定义知可以解得自相关矩阵R的第m个特征值为:自相关矩阵R的特征值对应特征矢量为列矢量构成的正交阵Q为:则,,所以在MATLAB中,计算方阵的特征值与特征向量可以使用如下函数:其中矩阵D的主对角线由A的特征值构成,矩阵V的列矢量由对应的特征向量构成。本例的学习曲线如图7-7所示。图7-7最速下降法学习曲线4.最小均方(LMS)算法在最速下降法中,如果我们能够在迭代过程的每一步得到梯度的准确值,并且适当地选择了收敛因子,则最速下降法肯定会收敛于最佳维纳解。然而,在迭代的每一步准确地测量梯度矢量是难以做到的。因为这需要具有关于自相关矩阵R和互相关矢量P的先验知识。在实际应用中,梯度矢量需要在迭代的每一步依据数据进行估计。换句话说,自适应滤波器的权矢量是根据输入数据在最优准则的控制下不断更新的。Widrow等人提出的最小均方算法(LMS)就是一种以期望响应和滤波器输出信号之间误差的均方值最小为准则,依据输入信号在迭代过程中估计梯度矢量,并更新权系数以达到最佳的自适应迭代算法。LMS算法是一种梯度最速下降算法,其显著特点简单性、计算量小、易于实现。这种算法不需要计算相关矩阵,也不需要进行矩阵运算。只要自适应线性组合器每次迭代运算时都知道输入信号和参考响应,选用LMS算法是很合适的。现在的任务是采用如何来估计均方误差函数的梯度,并以此梯度估值来替代最速下降法中理论情况下的梯度真值。LMS算法进行梯度估计的方法是以误差信号每一次迭代的瞬时平方值替代其均方值,这样,原来由式(7-14)定义的梯度可近似为(7-55)根据上式并利用式(7-24),得到(7-56)实际上,只是单个平方误差序列的梯度,而则是多个平方误差序列统计平均的梯度,所以LMS算法就是用前者作为后者的近似。用梯度估值替代最速下降法中的梯度真值,有(7-57)式中,为自适应滤波器的收敛因子。式(7-57)即为著名的LMS算法的滤波器权矢量迭代公式。可以看出,自适应迭代下一时刻的权系数矢量可以由当前时刻的权系数矢量加上以误差函数为比例因子的输入矢量得到。【例7-3】用MATLAB程序实现LMS算法。如果给定输入序列x(n),期望响应序列d(n),步长μ和要求的自适应FIR滤波器长度N,我们就能够利用LMS算法的迭代公式(7-57)来确定自适应滤波器的权系数,下面给出实现这种算法的MATLAB函数,函数名为lms。例程7-2LMS算法Function[h,y]=lms(x,d,u,N)%LMS算法的实现%[h,y]=lms(x,d,u,N)%h=估计的FIR滤波器%y=输出数组y(n)%x=输入数组x(n)%d=预期数组d(n),其长度应与x相同%u=步长%N=FIR滤波器的长度M=length(x);y=zeros(1,M);h=zeros(1,N);forn=N:Mx1=x(n:-1:n-N+1);y=h*x1';e=d(n
本文标题:7.3--LMS自适应滤波器
链接地址:https://www.777doc.com/doc-3809380 .html