FIR维纳滤波器的Matlab仿真验证_第1页
FIR维纳滤波器的Matlab仿真验证_第2页
FIR维纳滤波器的Matlab仿真验证_第3页
FIR维纳滤波器的Matlab仿真验证_第4页
FIR维纳滤波器的Matlab仿真验证_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、主要内容l 最优线性滤波器 1.概述 2.维纳滤波器 3.维纳-霍夫方程的求解l FIR维纳滤波器的Matlab仿真 1.问题描述 2.Matlab代码实现l 仿真结果及其分析最优线性滤波器1、概述 最优线性滤波器和预测器,这里的最优指的是均方误差(mean square error,MSE)最小。最小均方误差引出了线性滤波器理论。 在许多实际应用中,人们无法直接得到所需的有用信号,能够得到的是退化了或失真了的有用信号。为了提取或回复有用的原始信号,这就需要设计一种滤波器,对得到的信号进行滤波,使它的输出尽可能逼近原始信号,成为最佳估计,这种滤波器就称为最优滤波器。最优线性滤波器2、维纳滤波器

2、 维纳(Wiener)是用来解决从噪声中提取信号的一种过滤(或滤波)方法。维纳滤波器是最小均方误差准则在信号滤波、预测中的具体应用。 维纳滤波器是一个线性时不变系统,通过该系统后,在最小均方误差准则下给出信号s(n)的尽可能逼近。 一个线性系统,如果它的单位样本响应为 ,当输入一个随机信号 , 其中 表示原始信号, 表示噪声,则输出为 )(nh)(nx)()()(nvnsnx)(nv)(ns)(nymmnxmhny)()()(最优线性滤波器我们希望 通过线性系统 后得到的 尽量接近于 ,因此称 为 的估计值,用 表示,即则维纳滤波器的输入输出关系可用下面图表示。 如果我们分别以 与 表示信号的

3、真实值与估计值,而用 表示他们之间的误差,即 显然 可能是正值,也可能是负值,并且它是一个随机变量。因此,用它的均方误差来表达误差是合理的,所谓均方误差最小即它的平方的统计期望最小,即: 采用最小均方误差准则作为最佳过滤准则的原因还在于它的理论分析比较简单,不要求对概率的描述。)(nx)(nh)(ny)(ns)(ns)(ny)(ns)()(nsny)(ns)(ns)(ne)()()(nsnsne)(nemin)()(2nEne最优线性滤波器3.维纳-霍夫方程的求解 为了按 式所示的最小均方误差准则来确定维纳滤波器的冲激响应 ,令 对 的导数等于零,即可得 式中, 是 与 的互相关函数, 是 的

4、自相关函数,分别定义为 上式称为维纳滤波器的标准方程或维纳-霍夫(Wiener-Hopf)方程。如果已知 和 ,那么解此方程即可求得维纳滤波器的冲激响应。min)()(2nEne)(n)( jhmimRihmRixxxs, )()()()(mRxs)(ns)(nx)(mRxx)(nx)()(mnsnxERxs)()(mnxnxERxx)(mRxs)(mRxx最优线性滤波器 标准方程右端的求和范围,即i 的取值范围没有具体标明,实际上有三种情况:(1)有限冲激响应(FIR)维纳滤波器,i 从0 到N-1 取得有限个整数值;(2)非因果无限冲激响应(非因果IIR)维纳滤波器,i 从 到 取所有整数

5、值;(3)因果无限冲激响应(因果IIR)维纳滤波器,i 从0 到 取正整数值。 上述三种情况下标准方程的解法不同,本文只描述FIR维纳滤波器的求解。最优线性滤波器设滤波器冲激响应序列的长度为N ,冲激响应矢量为滤波器输入数据矢量为则滤波器的输出为 ,这样,标准维纳-霍夫程可写成 或 ,其中 是 与 的互相关函数,它是一个 N维列矢量;R 是 的自相关函数,是N 阶方阵利用求逆矩阵的方法直接求解式, 得这里opt 表示“最佳”,这就是FIR维纳滤波器的冲激响应。TNhhhh)1().1()0(TNnxnxnxnx)1().1()()()()()()(nxhhnxnsnyTTRhP RhPTT)(

6、)(nsnxEP )(ns)(nx)(nx)()(nxnxERTRhPTTPRhopt1RhP FIR维纳滤波器的Matlab仿真1、问题描述 产生一个随机信号w(n),通过系统H(z)=1/(1-0.9/z)后,得到原始信号s(n)。对原始信号s(n)添加高斯白噪声noise。设计一个FIR维纳滤波器,从被干扰后的信号中尽可能恢复s(n)。FIR维纳滤波器的Matlab仿真2、代码仿真%*基于最优FIR滤波器线性预测*clear;clc; N=128;%N为原始信号的长度%N=input(请输入信号长度: ); M=8;%M代表滤波器的阶数%M=input(输入滤波器阶数 : );FIR维纳

7、滤波器的Matlab仿真%*产生一个原始信号*w=sqrt(0.20)*randn(N,1);A=1 -0.9;s=filter(1,A,w);%*noise=sqrt(1.5)*randn(N,1);%用randn函数产生正态分布伪随机数噪声x=s+noise;%产生噪干扰后的原始信号%*产生维纳滤波中加噪信号的自相关矩阵*rxx=xcorr(x);for i=1:M for j=1:M mrxx(i,j)=rxx(N-i+j); endendxd=s;%原始信号FIR维纳滤波器的Matlab仿真 %*产生维纳滤波中x方向上观测信号与期望信号的互相关矩阵*rxd=xcorr(x,xd);fo

8、r i=1:M mrxd(i)=rxd(N-1+i);endhopt=inv(mrxx)*mrxd;%由维纳-霍夫方程得到滤波器最优解-FIR维纳滤波器的冲激响应 out_s=filter(hopt,1,x);%滤波后的输出信号(预测信号) %out_s=conv(x,hopt);%滤波后的输出信号(预测信号)%*求均方误差* fprintf(滤波后的信号相对原信号的统计均方误差:n); mse=mean(out_s-s).2) %滤波后的信号相对原信号的统计均方误差FIR维纳滤波器的Matlab仿真% *画图*subplot(2,2,1)plot(xd);title(期望信号); %axis

9、(0 N -3 3);%给出x,y轴最小最大值来选择坐标系的取值范围 xlabel(Time(n); ylabel(Amplitude);subplot(2,2,2)plot(noise);title(噪声信号); xlabel(Time(n); ylabel(Amplitude); %axis(0 N -5 5);FIR维纳滤波器的Matlab仿真subplot(2,2,3)plot(out_s);title(维纳滤波后的信号);%axis(0 N -3 3);%用来给出x,y轴最小最大值来选择坐标系的取值范围xlabel(Time(n);ylabel(Amplitude); subplot

10、(2,2,4)plot(x);title(噪声干扰后的信号);xlabel(Time(n);ylabel(Amplitude);%axis(0 N -5 5);仿真结果及分析仿真结果(信号长度N=256,阶数M=3)-mse=0. 0.4045仿真结果及分析仿真结果(信号长度N=256,阶数M=3)-mse=0. 0.4045仿真结果及分析仿真结果(信号长度N=256,阶数M=8)-mse=0. 3215仿真结果及分析仿真结果(信号长度N=256,阶数M=8)-mse=0. 3215仿真结果及分析仿真结果(信号长度N=512,阶数M=8)-mse=0.3326仿真结果及分析仿真结果(信号长度N=512

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论