维纳滤波器 matlab实现.docx

上传人:b****5 文档编号:6881132 上传时间:2023-01-12 格式:DOCX 页数:12 大小:207.67KB
下载 相关 举报
维纳滤波器 matlab实现.docx_第1页
第1页 / 共12页
维纳滤波器 matlab实现.docx_第2页
第2页 / 共12页
维纳滤波器 matlab实现.docx_第3页
第3页 / 共12页
维纳滤波器 matlab实现.docx_第4页
第4页 / 共12页
维纳滤波器 matlab实现.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

维纳滤波器 matlab实现.docx

《维纳滤波器 matlab实现.docx》由会员分享,可在线阅读,更多相关《维纳滤波器 matlab实现.docx(12页珍藏版)》请在冰豆网上搜索。

维纳滤波器 matlab实现.docx

维纳滤波器matlab实现

 

实验报告册

数字图形图像处理

维纳滤波器matlab实现

学院:

人民武装学院学院

专业:

计算机科学与技术 

班级:

11级计科班

学号:

1120070544

学生姓名:

苏靖

指导教师:

维纳滤波的原理及其matlab实现,以案例的形式展示FIR维纳滤波的特性。

2.维纳滤波概述

维纳(Wiener)是用来解决从噪声中提取信号的一种过滤(或滤波)方法。

这种线性滤波问题,可以看做是一种估计问题或一种线性估计问题。

一个线性系统,如果它的单位样本响应为

,当输入一个随机信号

,且

(1)

其中

表示信号,

)表示噪声,则输出

(2)

我们希望

通过线性系统

后得到的

尽量接近于

,因此称

的估计值,用

表示,即

(3)

则维纳滤波器的输入—输出关系可用下面图1表示。

图1

实际上,式

(2)所示的卷积形式可以理解为从当前和过去的观察值

,…来估计信号的当前值

因此,用

进行过滤问题实际上是一种统计估计问题。

  一般地,从当前的和过去的观察值

…估计当前的信号值

成为过滤或滤波;从过去的观察值,估计当前的或者将来的信号值

称为外推或预测;从过去的观察值,估计过去的信号值

称为平滑或内插。

因此维纳滤波器又常常被称为最佳线性过滤与预测或线性最优估计。

这里所谓的最佳与最优是以最小均方误差为准则的。

  如果我们分别以

表示信号的真实值与估计值,而用

表示他们之间的误差,即

(4)

显然

可能是正值,也可能是负值,并且它是一个随机变量。

因此,用它的均方误差来表达误差是合理的,所谓均方误差最小即它的平方的统计期望最小:

(5)

采用最小均方误差准则作为最佳过滤准则的原因还在于它的理论分析比较简单,不要求对概率的描述。

4.FIR维纳滤波器的matlab实现

4.1问题描述

假设一个点目标在x,y平面上绕单位圆做圆周运动,由于外界干扰,其运动轨迹发生了偏移。

其中,x方向的干扰为均值为0,方差为0.05的高斯噪声;y方向干扰为均值为0,方差为0.06的高斯噪声。

1)产生满足要求的x方向和y方向随机噪声500个样本;

2)明确期望信号和观测信号;

3)试设计一FIR维纳滤波器,确定最佳传递函数:

,并用该滤波器处理观测信号,得到其最佳估计。

(注:

自行设定误差判定阈值,根据阈值确定滤波器的阶数或传递函数的长度)。

4)分别绘制出x方向和y方向的期望信号、噪声信号、观测信号、滤波后信号、最小均方误差信号的曲线图;

5)在同一幅图中绘制出期望信号、观测信号和滤波后点目标的运动轨迹。

4.2Matlab仿真及运行结果

用Matlab实现FIR滤波器,并将先前随机产生的500个样本输入,得到最佳估计。

具体程序如下:

clear;

clf;

sita=0:

pi/249.5:

2*pi;

xnoise=sqrt(0.05)*randn(1,500);%产生x轴方向噪声

ynoise=sqrt(0.06)*randn(1,500);%产生y轴方向噪声

x=cos(sita)+xnoise;%产生x轴方向观测信号

y=sin(sita)+ynoise;%产生y轴方向观测信号

%产生维纳滤波中x方向上观测信号的自相关矩阵

rxx=xcorr(x);

fori=1:

100

forj=1:

100

mrxx(i,j)=rxx(500-i+j);

end

end

xd=cos(sita);

%产生维纳滤波中x方向上观测信号与期望信号的互相关矩阵

rxd=xcorr(x,xd);

fori=1:

100

mrxd(i)=rxd(499+i);

end

hoptx=inv(mrxx)*mrxd';%由维纳-霍夫方程得到的x方向上的滤波器最优解

fx=conv(x,hoptx);%滤波后x方向上的输出

nx=sum(abs(xd).^2);

eminx=nx-mrxd*hoptx;%x方向上最小均方误差

%产生维纳滤波中y方向上观测信号的自相关矩阵

ryy=xcorr(y);

fori=1:

100

forj=1:

100

mryy(i,j)=ryy(500-i+j);

end

end

yd=sin(sita);

%产生维纳滤波中y方向上观测信号与期望信号的互相关矩阵

ryd=xcorr(y,yd);

fori=1:

100

mryd(i)=ryd(499+i);

end

hopty=inv(mryy)*mryd';%由维纳-霍夫方程得到的y方向上的滤波器最优解

fy=conv(y,hopty);%滤波后y方向上的输出

ny=sum(abs(yd).^2);

eminy=ny-mryd*hopty;%y方向上最小均方误差

subplot(2,4,1)

plot(xd);

title('x方向期望信号');

subplot(2,4,2)

plot(xnoise);

title('x方向噪声信号');

subplot(2,4,3)

plot(x);

title('x方向观测信号');

subplot(2,4,4)

n=0:

500;

plot(n,eminx);

title('x方向最小均方误差');

subplot(2,4,5)

plot(yd);

title('y方向期望信号');

subplot(2,4,6)

plot(ynoise);

title('y方向噪声信号');

subplot(2,4,7)

plot(y);

title('y方向观测信号');

subplot(2,4,8)

plot(n,eminy);

title('y方向最小均方误差');

figure;

plot(xd,yd,'k');

holdon;

plot(x,y,'b:

');

holdon;

plot(fx,fy,'g-');

title('最终结果');

运行结果如下:

图2

x方向及y方向的期望信号、噪声信号、观测信号以及滤波后的最小均方误差如上图2所示。

图3

滤波后的到的信号与原始信号和噪声信号的对比如上图3所示,滤波后的结果与期望信号还是很接近的,整体上达到了最优滤波的效果。

维纳滤波器的局限

维纳滤波复原法存在着几个实质性的局限。

第一,最有标准是基于最小均方误差的且对所有误差等权处理,这个标准在数学上可以接受,但却是个不适合人眼的方式,原因在于人类对复原错误的感知在具有一致灰度和亮度的区域中更为严重,而对于出现在暗的和高梯度区域的误差敏感性差得多。

第二,空间可变的退化不能用维纳滤波复原法复原,而这样的退化是常见的。

第三,维纳滤波不能处理非平稳信号和噪声。

四、模拟仿真

运行结果

运行程序代码

clear;

I=imread('img_orignal.tif');

figure;

subplot(2,2,1);imshow(I);title('原图像');

[m,n]=size(I);F=fftshift(fft2(I));

k=0.005;

foru=1:

m

forv=1:

n

H(u,v)=exp((-k)*(((u-m/2)^2+(v-n/2)^2)^(5/6)));

end

end

G=F.*H;

I0=real(ifft2(fftshift(G)));

I1=imnoise(uint8(I0),'gaussian',0,0.001)

subplot(2,2,2);imshow(uint8(I1));title('模糊退化且添加高斯噪声的图像');

F0=fftshift(fft2(I1));

K=0.1;

foru=1:

m

forv=1:

n

H(u,v)=exp(-k*(((u-m/2)^2+(v-n/2)^2)^(5/6)));

H0(u,v)=(abs(H(u,v)))^2;

H1(u,v)=H0(u,v)/(H(u,v)*(H0(u,v)+K));

end

end

F2=H1.*F0;

I2=ifft2(fftshift(F2));

subplot(2,2,3);imshow(uint8(I2));title('维纳滤波复原图');

五、结论与心得体会

通过这个实验,使我们更加深刻和具体的了解到了维纳滤波的原理,功能以及在图像处理方面的应用。

维纳滤波器是对噪声背景下的信号进行估计,它是最小均方误差准则下的最佳线性滤波器。

在实验的过程中,我发现采用维纳滤波复原可以得到比较好的效果,这个算法可以使估计的点扩散函数值更加接近它的真实值。

但实现维纳滤波的要求是输入过程是广义平稳的;输入过程的统计特性是已知的。

根据其他最佳准则的滤波器也有同样的要求。

然而,由于输入过程取决与外界信号,干扰环境,这种环境的统计特性常常是未知的,变化的,因而这两个要求很难满足,这就促使人们研究自适应滤波器。

附:

维纳滤波器的设计方法

维纳-霍夫方程

维纳滤波器的设计,实际上就是在最小均方误差条件下探索和确定滤波器的冲激函数h(n)或系统函数H(z),也就是求解维纳-霍夫方程的问题。

对于物理可实现系统,由

(1)式得

式(6)

它实现的是将当前的及过去的诸输入值作相应的加权后的求和运算。

故维纳滤波的设计则是确定均方误差

式(7)

最小意义下的冲激响应h(n)。

为便于得出矩阵表达式,我们将(6)式改写成

式(8)

式中

式(9)

因此

式(10)

为求得

最小时的{hi},我们将(10)式对hi求偏导,得

式(11)

再令其为零,即

或,

式(12)

从而可以确定我们所需要的{hi}。

由于(12)式看出,满足正交性原理与满足均方误差最小的条件是一致的。

由于

,以及

,将其代入(12)式可得

式(13)

若将(13)式与(15)式称为维纳-霍夫方程。

为表述的方便,我们将维纳-霍夫方程写成矩阵形式,即

式(16)

式中

式(17)

为x与s的互相关矩阵。

式(18)

则为x的自相关矩阵。

以及

式(19)

式中的h1,h2,…hn为h(n)在n=0,1,…,n-1时的样本值。

从(16)式即可解得

式(20)

最小均方误差的表达式为

式(21)

又可写成

式(22)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1