首页 自适应滤波与维纳滤波-MATLAB-仿真代码与实验结果分析

自适应滤波与维纳滤波-MATLAB-仿真代码与实验结果分析

举报
开通vip

自适应滤波与维纳滤波-MATLAB-仿真代码与实验结果分析自适应滤波与维纳滤波的MATLAB仿真和结果分析MATLAB仿真代码function[]=wiener_LMS()%基于LMS的自适应滤波与维纳滤波的性能比较clear;clc;%产生原始信号n=1024;%输入信号抽样点数Nt=1:n;a=1;Signal=a*sin(0.04*pi*t)+a*sin(0.035*pi*t)+a*sin(0.05*pi*t);time=[1:1024];SignalAddNoise=awgn(Signal,5);%给原始信号加入信噪比为3dB的高斯白噪声figure(1)subp...

自适应滤波与维纳滤波-MATLAB-仿真代码与实验结果分析
自适应滤波与维纳滤波的MATLAB仿真和结果分析MATLAB仿真代码function[]=wiener_LMS()%基于LMS的自适应滤波与维纳滤波的性能比较clear;clc;%产生原始信号n=1024;%输入信号抽样点数Nt=1:n;a=1;Signal=a*sin(0.04*pi*t)+a*sin(0.035*pi*t)+a*sin(0.05*pi*t);time=[1:1024];SignalAddNoise=awgn(Signal,5);%给原始信号加入信噪比为3dB的高斯白噪声figure(1)subplot(311);plot(time,Signal,'b');%绘制原始信号title('原始信号');xlabel('时间');ylabel('幅度');subplot(312);plot(time,SignalAddNoise,'r');%绘制加噪后的输入信号title('加噪后的输入信号');xlabel('时间');ylabel('幅度');subplot(313);plot(time,Signal,'b',time,SignalAddNoise,'r');legend('Signal(n)','SignalAddNoise(n)');axistight;xlabel('时间');ylabel('幅度');title('原始信号与加噪后的输入信号对比');%维纳滤波仿真Mlag=100;%相关 关于工期滞后的函关于工程严重滞后的函关于工程进度滞后的回复函关于征求同志党风廉政意见的函关于征求廉洁自律情况的复函 数长度变量N=100;%维纳滤波器长度Rxn=xcorr(SignalAddNoise,Mlag,'biased');%计算输入信号自相关函数%产生输入信号与原始信号的互相关函数Rxnx=xcorr(SignalAddNoise,Signal,Mlag,'biased');rxnx=zeros(N,1);rxnx(:)=Rxnx(101:101+N-1);Rxx=zeros(N,N);%产生输入信号自相关矩阵Rxx=diag(Rxn(101)*ones(1,N));fori=2:Nc=Rxn(101+i)*ones(1,N+1-i);Rxx=Rxx+diag(c,i-1)+diag(c,-i+1);endRxx;h=zeros(N,1);h=inv(Rxx)*rxnx;%计算维纳滤波器的h(n)yn=filter(h,1,SignalAddNoise);%将输入信号通过维纳滤波器figure(2)subplot(2,1,1)plot(time,Signal,'b',time,yn,'r');legend('Signal(n)','yn(n)');axistight;xlabel('时间');ylabel('幅度');title('原始信号与经过维纳滤波器后输出信号的对比');subplot(2,1,2)plot(time,SignalAddNoise,'k',time,yn,'r');legend('SignalAddNoise(n)','yn(n)');axistight;xlabel('时间');ylabel('幅度');title('加噪后的输入信号与经过维纳滤波器后输出信号的对比');%自适应滤波LMS算法仿真g=100;%统计仿真次数为gN=n;%输入信号抽样点数Nk=128;%时域抽头LMS算法滤波器阶数pp=zeros(g,N-k);%将每次独立循环的误差结果存于矩阵pp中,以便后面对其平均u=0.001;forq=1:g%设置初值yn_1=zeros(1,N);%outputsignalyn_1(1:k)=SignalAddNoise(1:k);%将输入信号SignalAddNoise的前k个值作为输出yn_1的前k个值w=zeros(1,k);%设置抽头加权初值e=zeros(1,N);%误差信号%用LMS算法迭代滤波fori=(k+1):NXN=SignalAddNoise((i-k+1):(i));yn_1(i)=w*XN';e(i)=Signal(i)-yn_1(i);w=w+2*u*e(i)*XN;endpp(q,:)=(e(k+1:N)).^2;endfigure(3)subplot(2,1,1);plot(time,real(Signal),'b',time,real(yn_1),'r');%原始信号与经过自适应滤波后的效果图legend('Signal(n)','yn_1(n)');axistight;xlabel('时间');ylabel('幅度');title('原始信号与经过LMS自适应滤波器后输出信号的对比');subplot(2,1,2);plot(time,real(Signal),'g',time,real(yn),'b',time,real(yn_1),'r');%自适应滤波与维纳滤波性能比较图legend('Signal(n)','yn(n)','yn_1(n)');axistight;xlabel('时间');ylabel('幅度');title('经过维纳滤波器与LMS自适应滤波器后输出信号的对比');forb=1:N-kbi(b)=sum(pp(:,b))/g;%求误差的统计平均endfigure(4);%算法收敛曲线t=1:N-k;plot(t,bi,'r');holdon%将每次循环的图形显示结构保存下来实验结果与分析仿真实验产生的4幅图,如图1至图4所示,其中,图1演示的是原始信号和加入均值为零的高斯白噪声,信噪比为3dB后的输入信号的波形图;图2演示的是输入信号经过维纳滤波器后所获得的滤波效果;图3演示的输入信号经过LMS算法的自适应滤波后的滤波效果,并比较维纳滤波与自适应滤波的滤波性能;图4展示了LMS自适应滤波的收敛曲线。如图1所示,实验产生并演示了信号的加噪过程,将原始信号加入均值为零的高斯白噪声,从而得出了输入信号的波形图。图2说明了维纳滤波器在MMSE的准则下,对输入信号进行滤波。它能够在一定程度上抑制噪声的影响,并近似复原原始信号,但是与原始信号还是有一定的差距。维纳滤波器的适应面较广,不足之处是需要预先得到很多的观察数据,并知道自相关序列之类的统计特性,这在实际应用中较难实现。图1原始信号和加噪后的输入信号图2维纳滤波器的滤波效果图3演示了基于LMS算法的自适应滤波的仿真效果,并与维纳滤波做出比较。从实验结果可以知道,基于LMS算法的自适应滤波能够较快的跟踪变化的信号,并自动调整自身的参数,以达到最佳的滤波效果。而且这种滤波器事先并不需要知道信号的自相关序列之类的统计特性,它的滤波效果明显比维纳滤波强。图4演示了在步长因子下得到的LMS算法的收敛曲线。001.0实验得知,减少步长因子可减少自适应滤波算法的稳态失调,提高算法的收敛精度,不过减少步长因子将降低算法的收敛速度和跟踪速度,因此的大小应根据实际情况加以选择。图3基于LMS算法的自适应滤波效果图并与维纳滤波比较图4时,LMS算法的收敛曲线001.0
本文档为【自适应滤波与维纳滤波-MATLAB-仿真代码与实验结果分析】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥18.9 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
天山书童
暂无简介~
格式:pdf
大小:285KB
软件:PDF阅读器
页数:0
分类:教育学
上传时间:2021-01-31
浏览量:21