目前常见的自适应算法研究与比较常见自适应滤波算法有:递推最小二乘算法,最小均方误差算法,归一化均方误差算法,快速精确最小均方误差算法,子带滤波,频域的自适应滤波等等。其中最典型最有代表性的两类自适应算法就是递推最小二乘算法和最小均方误差算法,以下对几种较常用的算法进行介绍:1、递归最小二乘法(RLS)RLS算法的基本方法为:^^33()()(1)()()()(1)()()()(1)()1()[(1)()()(1)]()(1)()()TTTdnXnHnendndnPnXnknXnPnXnPnPnKnXnPnHnHnKnenK(n)称为Kalman增益向量,λ是一个加权因子,其取值范围0λ1,该算法的初始化一般令H(-1)=0及P(-1)=1/δI,其中δ是小的正数。2、最小均方误差算法(LMS)最小均方误差算法(LMS)是一种用瞬时值估计梯度矢量的方法,即2[()]()2()()()nenennnXh(1)按照自适应滤波器滤波系数矢量的变化与梯度矢量估计的方向之间的关系,可以写出LMS算法调整滤波器系数的公式如下所示:1(1)()[()]2nnnhh()()()nennhX(2)上式中的为步长因子。值越大,算法收敛越快,但稳态误差也越大;值越小,算法收敛越慢,但稳态误差也越小。为保证算法稳态收敛,应使在以下范围取值:2120()Nixi从收敛速度来看,RLS算法明显优于LMS算法,但RLS算法在运算上却比LMS算法复杂得多,为了减小计算复杂度,并保留RLS的收敛性能,人们提出了一些改进的RLS算法。如RLS格型算法,快速RLS算法,梯度格型算法,快速横向滤波器算法等。总的来看,这些以收敛法都是以运算速度换取运算复杂性。于是人们研究介于两者之间的一种算法,如共轭梯度法、自仿射投影算法等。共轭梯度法不需要RLS中的矩阵运算,也没有某些快速RLS算法存在的不稳定问题,但它的缺点是稳态误差比较大。而LMS算法的优点是运算简便,但它只有一个可调整参数,即步长因子μ,可以用来控制收敛速率,由于μ的选择受系统稳定性的限制,因此,算法的收敛速度受到很大限制。为了加快收敛速度人们提出许多改进的LMS算法。(1)块处理LMS算法(BLMS)为了对付LMS运算量大的问题,在LMS基础上提出了块处理LMS(BLMS)。它与LMS算法不同的是:LMS算法是每来一个采样点就调整一次滤波器权值;而BLMS算法是每K采样点才对滤波器的权值更新一次。这样BLMS算法的运算量就比LMS的运算量要小的多,但它的收敛速度却与LMS算法相同,具体算法如下:由(2)式可知,那么可以推出()(1)(1)(1)nnennhhX(3)将(3)式带入(2)式得:(1)(1)()()(1)(1)nnennennhhXX依次类推可得:(1)()()()()()nKnenKnKennhhXX(2)能量归一化LMS算法(NLMS)针对算法收敛时间依赖输入信号功率的问题,将自适应滤波器系数的调整量用输入信号的功率进行归一化,称为归一化的最小均方算法(NLMS),具体算法如下:1012_()()(1)()()()()()((()))NkkkkyyestimatedechoiayikaiaieiyikPiPiaverageyi其中a(k)为滤波器的系数,e(n)为误差信号,1为固定环路增益,N为滤波器系数,()yPi为参考信号的能量估计。(3)归一化块处理LMS算法(BNLMS)结合以上NLMS和BLMS两者的特点则有归一化块处理LMS(BNLMS)。(4)变步长LMS算法而针对μ值,人们研究了许多变步长LMS算法,一般是在滤波器工作的开始阶段采用较大的μ值,以加快收敛速度,而在后阶段采用较小的μ值,可以减小稳态误差。这类算法的关键是确定在整个过程中μ值如何变化或μ值在何种条件满足下才改变。综合以上,自适应算法中最简单、运算量最小的是以LMS为代表的一类算法,如NLMS、BLMS算法等,但同时他们也存在着收敛慢的缺点;与之相反的是另一个极端,是以RLS等为代表的各种算法,他们虽收敛速度很快,但运算量很大;近些年兴起的AP(仿射投影),CG(共轭梯度),FN(快速牛顿)等算法,则是在运算量和收敛速度之间作适当折衷,从而获得了广泛的应用。