欢迎来到天天文库
浏览记录
ID:56721142
大小:42.50 KB
页数:5页
时间:2020-07-06
《LMS算法自适应滤波器MATLAB仿真作业.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、LMS自适应滤波器仿真作业工程1班王子豪1.步骤1)给定滤波器的长度M,步长µ和滤波器初始值h0;2)求数据向量X(n)=[x(n),x(n-1),...,x(n-M-1)]T,其中x(n)为输入信号,M为滤波器抽头系数;3)求输出y(n)=X(n)*h;4)计算误差值e(n)=d(n)-y(n);5)更新滤波器系数h(n+1)=h(n)+µe(n)X(n);6)重复以上步骤,知道h收敛到最优的滤波器系数hopt2.仿真结果产生均值为0,方差为1的高斯白噪声e(n),经过系统H(z)后输出的x(n)通过LMS滤波器进行自适应滤波,迭代次
2、数为500次,总共做了100次求平均均方误差e(n)^2。当u分别取0.002、0.005、0.008、0.01时,LMS自适应滤波器的性能曲线如图1所示:图1不同u的取值下自适应滤波器的性能曲线对应的滤波器系数a1、a2学习曲线如图2、图3所示:图2不同u的取值下自适应滤波器系数a1的学习曲线图3不同u的取值下自适应滤波器系数a2的学习曲线3.结果分析1.仿真结果得出:步长因子μ与收敛时间成反比,图形的收敛时间随着步长因子μ的增大而减小,这决定了LMS算法学习过程的快慢。2.当步长因子μ增大时虽然收敛时间减少,但会导致失调增大,例如当
3、μ等于0.01时,图形失调已经很严重,不符合预期要求了。3.控制失调与加快收敛速度不能兼得。4.Matlab程序代码clear;clc;N=2048;%信号的取样点数M=2;%滤波器抽头的个数iter=499;%迭代次数%初始化X_A=zeros(M,1);%X数据向量y=zeros(1,N);%预测输出en=zeros(1,iter);%误差向量enp=zeros(1,iter);%平均误差W=zeros(iter,M);%每一行代表一次迭代滤波器的M个抽头参数%迭代计算u=0.002;%固定步长forj=1:100%做100次实验取
4、平均ex=randn(1,N);%噪声信号e(n)x=filter(1,[1,-1.6,0.8],ex);%经过系统H(Z)之后输出xd=x;%参考信号fork=M+1:iter%第k次迭代X_A=x(k-1:-1:k-M)';y(k)=W(k,:)*X_A;%滤波器的输出en(k)=d(k)-y(k);%第k次迭代的误差W(k+1,:)=W(k,:)+u*en(k)*X_A';%滤波器权值计算的迭代式endenp=enp+en.^2;endenp=enp/100;%取平均误差figure(1);plot(enp);xlabel('迭代
5、次数');ylabel('均方误差e(n)^2');title('当u=0.008时,连续做100次平均所得到的性能曲线');learn1=W(:,1);learn2=W(:,2);figure(2);subplot(2,1,1);plot(learn1);title('当u=0.008时的学习曲线');xlabel('迭代次数');ylabel('a1的学习曲线');subplot(2,1,2);plot(learn2);xlabel('迭代次数');ylabel('a2的学习曲线');
此文档下载收益归作者所有