自适应LMS算法及其应用本实验通过一个二阶自回归过程来研究实时数据集平均对LMS算法的影响,AR模型的差分方程为:u(n)+a1x(n-1)+a2x(n-2)=v(n)其中a1=1.558;a2=-0.81;v(n)是零均值方差为的白噪声;图1为AR模型及其二阶自适应线性预测模型,根据LMS算法的基本步骤可以写出该算法的matlab程序如下:clearcloseallclca1=1.588;a2=-0.81;u=0.001;N=1024;G=100;e=zeros(1,N);w1=zeros(1,N+1);w2=zeros(1,N+1);y=zeros(1,N);ee=zeros(1,N);%每个点的误差平方ep=zeros(1,N);%每个点的误差平方累积eq=zeros(1,N);%每个点的100次误差平方均值w11=zeros(1,N+1);%w1权值的累积w22=zeros(1,N+1);%w2权值的累积forg=1:Gv=randn(1,N);x(1)=v(1);x(2)=x(1)*a1+v(2);forn=3:Nx(n)=a1*x(n-1)+a2*x(n-2)+v(n);endfigure(1)plot(x)title('输入信号x')forn=3:Ny(n)=w1(n)*x(n-1)+w2(n)*x(n-2);e(n)=x(n)-y(n);w1(n+1)=w1(n)+2*u*e(n)*x(n-1);w2(n+1)=w2(n)+2*u*e(n)*x(n-2);ee(n)=e(n)^2;endw11=w1+w11;w22=w2+w22;ep=ep+ee;endeq=ep/G;W1=w11/G;W2=w22/G;figure(2)subplot(2,1,1)plot(w1)holdonsubplot(2,1,2)plot(W1)holdonsubplot(2,1,1)plot(w2,'r')title('w1与w2的收敛曲线,u=0.004')holdonsubplot(2,1,2)plot(W2,'r');title('100次平均后w1与w2的收敛曲线,u=0.004')figure(3)subplot(2,1,1)plot(e)title('误差曲线(学习曲线)u=0.004')subplot(2,1,2)plot(eq)title('100次平均误差曲线(学习曲线)u=0.004')下面对结果进行分析:图3为w1与w2的收敛曲线,比较平滑的为100次平均求得的收敛曲线,而另外一种起伏较大的为单次实现的收敛曲线,权初值为0。图2输入信号x(n)图3w1与w2的收敛曲线(u=0.004)图4为初始权值为0,u=0.004时的误差曲线,即所谓的学习曲线,收敛速度较快的为100次集平均学习曲线,而起伏较大的为单次实现的学习曲线.图4平方误差曲线(学习曲线)u=0.004修改u值,则实验结果如下(u=0.001):图5w1与w2的收敛曲线(u=0.001)图6平方误差曲线(学习曲线)u=0.001由以上分析可知,当收敛步长u值变小时,收敛曲线的起伏变小,但收敛速度也减慢!