码字不易,请尊重!如想转载,请注明原文出处,感谢配合。
原文地址: https://blog.csdn.net/sinat_26681907/article/details/88065982
目录
LMS算法概述:
LMS(Least Mean Square),源自LEAST-MEAN-SQUARE ADAPTIVE FILTERS,通过迭代的方式估计出待求参数的最优逼近,常用于滤波。
以为例,, 分别为已知量,为未知量。常规的求解方式即 求得精确解(将看成输入信号,看作未知系统,看作输出信号,整个过程即滤波,求即求滤波函数),考虑到矩阵求逆的计算成本及实现方式受限,我们也可以采取迭代的方式逼近精确解,LMS就是其中的一种方式,将估计出的解带入原方程求得的估计,找到使得的期望最小的即为最优逼近,Least Mean Square名字的由来也即如此。
LMS主要原理:
给定初始估计沿着误差减小的梯度方向更新便可不断逼近最优解,如式(1)所示,
(1)
其中,控制算法的稳定性和收敛速度,控制收敛方向。令误差, 误差的平方为二次型,有极小值,对关于求偏导即为的一种表示 :
(2)
将(2)带入(1)即得LMS的迭代更新准则,
(3)
(注,下标代表迭代次数,此处为)而非右乘()主要从迭代过程中的维数一致考虑,取共轭转置将解空间扩大至复数域)
LMS实现步骤:
(以为例,, 分别为已知量,为未知量。)
步骤 1 : 确定初始估计,初始步长 , 最大迭代次数,误差精度 ;
步骤 2 : 将带入原模型中计算估计值, ;
步骤 3 : 计算的真实值与估计值之间的误差, 及误差平方的均值, ;
步骤 4 : 更新, ;
重复步骤2-4,直到误差精度达到期望范围内或迭代达到最大次数为止。
注:① 原模型有解;
② 的选取需要保证算法稳定和收敛,即,;
③ 迭代次数依赖初始条件和终止条件。
LMS替代矩阵求逆示例:
已知,利用LMS求。
给定的初始估计
令
设置最大迭代次数Iter = 1e6,误差精度eps = 1e-6,则迭代772次即可得到满足要求的逼近值
的精确解为
优化的初始估计以及,则可保证迭代次数更少收敛速度更快。实验发现,的选取越接近,收敛速度越快,所需的迭代次数越少,当时,算法发散,无法求得最优逼近。