自适应滤波与维纳滤波-MATLAB-仿真代码与实验结果分析(共6页).docx
《自适应滤波与维纳滤波-MATLAB-仿真代码与实验结果分析(共6页).docx》由会员分享,可在线阅读,更多相关《自适应滤波与维纳滤波-MATLAB-仿真代码与实验结果分析(共6页).docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上自适应滤波与维纳滤波的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(
2、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);axis tight;xlabel(时间);ylabel(幅度);title(原始信号与加噪后的输入信号对比
3、);%维纳滤波仿真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);for i=2:N c=Rxn(101+i)*ones(1,N+1-i); Rx
4、x=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);axis tight;xlabel(时间);ylabel(幅度);title(原始信号与经过维纳滤波器后输出信号的对比);subplot(2,1,2)plot(time,SignalAddNois
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自适应 滤波 MATLAB 仿真 代码 实验 结果 分析
限制150内