一:LMS算法说明:
全称Least mean square 算法,又叫最小均方算法,用于修正滤波器参数使均方差(Mean Square Error,MSE)达到最小,均方差公式如下所示:
步骤:
(1)设置变量和参量:
X(n)为输入向量,或称为训练样本
W(n)为权值向量
b(n)为偏差
d(n)为期望输出
y(n)为实际输出
η为学习速率
n为迭代次数
(2)初始化,赋给w(0)各一个较小的随机非零值,令n=0
(3)对于一组输入样本x(n)和对应的期望输出d,计算
e(n)=d(n)-X^T(n)W(n)
W(n+1)=W(n)+ηX(n)e(n)
(4)判断是否满足条件,若满足算法结束,若否n增加1,转入第(3)步继续执行
二、算法实现——LMS算法的代码:
- const unsigned int nTests =4;
- const unsigned int nInputs =2;
- const double rho =0.005;
- struct lms_testdata
- {
- doubleinputs[nInputs];
- doubleoutput;
- };