1、自适应滤波 MATLAB 仿真实验报告题目一:对正文图 3.8 中的自适应线性预测滤波,设=0.0965,2 =0.02,(a1,a2)=(-0.195,0.95).给出采用 LMS算法2v 得到的单次运算和 100次平均的 w1(n)和 w1(n)的变化曲线。MATLAB的程序代码为:mu=0.01;%可选参数之一,原文选的是 0.02,这里选 0.01noise=randn(1000,1);%生成白色噪声,一千点的,%,均值为 0,方差为 1 。因为要做 100次仿真figure(1)plot(noise)for i=1:1000noise(i,1)=noise(i,1)*sqrt(0.0
2、965);%根据已知的条件%,对已经得到的噪声进行变换,使得满足给定的分布endfigure(2)plot(noise)a=1 -0.195 0.95;%a=1,-0.195,0.95;b=1;x=filter(b,a,noise);figure(3)plot(x)for i=1:1000x_delta(i)=0;%估计值的初始化e(i)=0;%误差的初始化w1(i)=0;w2(i)=0;%权矢量的初始化endw1(2)=0;x_delta(2)=0;e(2)=x(2);w1(3)=w1(2)+mu*x(1)*e(2);w2(2)=0;w2(3)=0;for i=1:997x_delta(i+
3、2)=w1(i+2)*x(i+1)+w2(i+2)*x(i);e(i+2)=x(i+2)-x_delta(i+2);w1(i+3)=w1(i+2)+mu*x(i+1)*e(i+2);w2(i+3)=w2(i+2)+mu*x(i)*e(i+2);end%注意,以上 w1和 w2这两个权值是对一次仿真的结果%下面做 100次仿真,并把结果进行平均,再与一次仿% 真的结果进行比较%看 LMS算法的收敛性能for i=1:1000w11(i)=0;w22(i)=0;w1_average(i)=0;w2_average(i)=0;%两个权的平均值的初始化endfor i=1:100%做 100次仿真no
4、ise=randn(1000,1);for i=1:1000noise(i,1)=noise(i,1)*sqrt(0.0965);endx=filter(b,a,noise);for j=1:1000x_delta(j)=0;%估计值的初始化e(j)=0;%误差的初始化w11(j)=0;w22(j)=0;%权矢量的初始化endw11(2)=0;x_delta(2)=0;e(2)=x(2);w11(3)=w11(2)+mu*x(1)*e(2);w22(2)=0;w22(3)=0;for j=1:997x_delta(j+2)=w11(j+2)*x(j+1)+w22(j+2)*x(j);e(j+2
5、)=x(j+2)-x_delta(j+2);w11(j+3)=w11(j+2)+mu*x(j+1)*e(j+2);w22(j+3)=w22(j+2)+mu*x(j)*e(j+2);endfor j=1:1000w1_average(j)=w1_average(j)+w11(j);w2_average(j)=w2_average(j)+w22(j);endendfor j=1:1000w1_average(j)=w1_average(j)/100;w2_average(j)=w2_average(j)/100;end%画出最后的图形,并进行比较for i=1:1000m(i)=i;endfigu
6、re(4)plot(m,w1,m,w2,m,w1_average,m,w2_average)legend(w1,w2,w1_average,w2_average,0)%对图形进行标注,上格形grid on%程序结束仿真波形为:mu=0.01;%可选参数之一,原文选的是 0.02,这里选 0.01noise=randn(1000,1);%生成白色噪声,一千点的,%,均值为 0,方差为 1 。因为要做 100次仿真figure(1)plot(noise)for i=1:1000noise(i,1)=noise(i,1)*sqrt(0.0965);%根据已知的条件%,对已经得到的噪声进行变换,使得满
7、足给定的分布endfigure(2)plot(noise)a=1 -0.195 0.95;%a=1,-0.195,0.95;b=1;x=filter(b,a,noise);figure(3)plot(x)for i=1:1000x_delta(i)=0;%估计值的初始化e(i)=0;%误差的初始化w1(i)=0;w2(i)=0;%权矢量的初始化endw1(2)=0;x_delta(2)=0;e(2)=x(2);w1(3)=w1(2)+mu*x(1)*e(2);w2(2)=0;w2(3)=0;for i=1:997x_delta(i+2)=w1(i+2)*x(i+1)+w2(i+2)*x(i);
8、e(i+2)=x(i+2)-x_delta(i+2);w1(i+3)=w1(i+2)+mu*x(i+1)*e(i+2);w2(i+3)=w2(i+2)+mu*x(i)*e(i+2);end%注意,以上 w1和 w2这两个权值是对一次仿真的结果%下面做 100次仿真,并把结果进行平均,再与一次仿真的结果进行比较%看 LMS算法的收敛性能for i=1:1000w11(i)=0;w22(i)=0;w1_average(i)=0;w2_average(i)=0;%两个权的平均值的初始化end%for i=1:100%做 100次仿真noise=randn(1000,1);for i=1:1000no
9、ise(i,1)=noise(i,1)*sqrt(0.0965);endx=filter(b,a,noise);for j=1:1000x_delta(j)=0;%估计值的初始化e(j)=0;%误差的初始化w11(j)=0;w22(j)=0;%权矢量的初始化endw11(2)=0;x_delta(2)=0;e(2)=x(2);w11(3)=w11(2)+mu*x(1)*e(2);w22(2)=0;w22(3)=0;for j=1:997x_delta(j+2)=w11(j+2)*x(j+1)+w22(j+2)*x(j);e(j+2)=x(j+2)-x_delta(j+2);w11(j+3)=w
10、11(j+2)+mu*x(j+1)*e(j+2);w22(j+3)=w22(j+2)+mu*x(j)*e(j+2);endfor j=1:1000w1_average(j)=w1_average(j)+w11(j);w2_average(j)=w2_average(j)+w22(j);endendfor j=1:1000w1_average(j)=w1_average(j)/100;w2_average(j)=w2_average(j)/100;end%画出最后的图形,并进行比较for i=1:1000m(i)=i;endfigure(4)plot(m,w1,m,w2,m,w1_average
11、,m,w2_average)legend(w1,w2,w1_average,w2_average,0)% grid on%对图形进行标注啊,格形0 100 200 300 400 500 600 700 800 900 1000-1-0.8-0.6-0.4-0.200.20.4w1w2w1averagew2average图 1 LMS算法的仿真结果题目二。对于正文图 3.8的自适应线性处理,设=0.0965,a1=-0.195,a2=0.95, =0.02, =0.9.采用表 5.1的 RLS2v 算法求 w1(n),w2(n)和 e2(n)的变化曲线(单次和 100次平均) 。MATLAB的程序代码为:delta=0.02;lamida=0.9;%遗忘因子为 0.9for i=1:1000w1_average(i)=0;w2_average(i)=0;%100次仿真权值的初始化