维纳滤波器的设计与仿真.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
维纳滤波器的设计 维纳滤波器属于现代滤波器,传统的滤波器只能滤除信号和干扰频带没有重叠的情况,当信号和干扰频带有重叠的时候传统滤波器将无能为力,这时就需要用到现代滤波器,现代滤波器利用信号和干扰的统计特征(如自相关函数、功率谱等)导出一套最佳估值算法,然后用硬件或软件予以实现。 下面是对维纳滤波器的设计仿真 维纳滤波是以均方误差最小(LMS(Least Mean Square)为准则的,它根据过去观测值和当前观测值来估计信号的当前值,因此它的解形式是系统的传递函数或单位脉冲响应 设计维纳滤波器的过程就是寻求在最小均方误差下滤波器的单位脉冲响应或传递函数的表达式,其实质就是解维纳-霍夫(Wiener-Hopf)方程。 均方误差为: 维纳-霍夫(Wiener-Hopf)方程最小均方误差下的解为: 其中wo 为滤波器的系数向量R为含有噪声的混合信号的自相关矩阵,p为混合信号和原信号的互相关向量,为此我们需要先求出混合信号的自相关函数以及混合信号和原信号的互相关函数,这两个函数我们需要有信号样本得到。 下面是仿真程序代码: function wiener N=input('请输入信号长度'); noise=randn(1,N);%产生随机高斯白噪声 for k=1:N %产生信号 signal(k)=sin(k*2*pi/N)+2; end mix_signal=noise+signal; %信号中加入随机高斯白噪声 Rxx=xcorr(mix_signal,mix_signal); %得到混合信号的自相关函数 M=input('输入滤波器阶数 '); for i=1:M %得到混合信号的自相关矩阵 for j=1:M rxx(i,j)=Rxx(i-j+N); end end Rxy=xcorr(mix_signal,signal); %得到混合信号和原信号的互相关函数 for i=1:M rxy(i)=Rxy(i+N-1); end %得到混合信号和原信号的互相关向量 h1=inv(rxx)*rxy'; %得到所要涉及的wiener滤波器系数 out_signal=conv(mix_signal,h1); %用所涉及的滤波器对信号滤波 Out_signal=out_signal(1:N); k=1:N; subplot(1,3,1); %分别画出原信号,加入噪声的混合信号,滤波后的信号 plot(k,signal); subplot(1,3,2); plot(k,mix_signal); axis([0,N,0,6]); subplot(1,3,3); plot(k,Out_signal); mse=mean((Out_signal-signal).^2) %滤波后的信号相对原信号的统计均方误差 mvue=std(Out_signal) %滤波后的信号的方差 信号样本点数500 维纳滤波阶数300 mse =0.1021 mvue =0.6695 信号样本点数1000 维纳滤波阶数300 仿真结果分析:保持滤波器阶数不变改变信号样本的长度(点数)可以发现滤波的效果虽着信号样本的长度的增加而提高。这是因为信号样本越长信号的统计特征就越完整。 信号样本点数1500 维纳滤波阶数300 mse =0.0604 mvue =0.7226

文档评论(0)

559997799 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档