自适应滤波器设计及Matlab实现,附程序代码 下载本文

算法,而我们的LMS滤波器,则是仅仅根据退化图像,进行迭代滤波的,其中采用的是用瞬时值来估计统计特性,所以在系统的迭代次数下,所取得的效果是要稍微差一些的。

5总结

在整个毕业设计的过程中,我们从基本的维纳滤波到最陡下降法再到自适应LMS算法,进行了系统的分析和实验验证。知道在相关统计特性已知的情况下,传统滤波器能取得最佳滤波,但是在没有相关的先验知识的情况下,传统滤波器就不能满足我们的质量要求,这就需要我们的自适应滤波器来实现了。但是,自适应滤波技术是一种迭代的运算,采用的是逼近的策略,所以这有限次数的迭代下,我们还是不能精确恢复图像。可是,实验证明,在有足够的关于自适应过程结构信息的情况下,我们所设计的自适应滤波器还是能取得很好的效果,并且远远优于传统滤波器。

在目前的自适应技术中怎样解决滤波器中的参考输入是一个很关键的问题,由自适应滤波算法的原理可知,参考信号必须是与实际噪声信号相关的信号,且与有用信号不相关。参考信号与噪声信号的相关性越强,则估计出来的噪声才会越接近真实噪声。在实际中我们往往无法得到符合理想要求的参考信号,但是我们只要采用于噪声类型一致,统计特性相似的信号就可以取得较好的效果的。在本课题实验中我们采用的是随机信号作为参考信号,理论上大多数的随机噪声都是广义平稳的高斯噪声或瑞利噪声,我们所采用的randn()函数生成的参考信号应该能取得与理论要求很相符的值,但是因为计算机中的随机信号是在内存中随机获得的,虽然统计特性可以符合要求,但是可能会出现大能量信号,导致图像质量受到影响。不过,实验证明在随机信号的数值取得较少的情况下,还是能满足广义平稳的,也能取得较好的效果。

在实验中,我们验证了LMS的收敛性能,比较了它与频域迭代维纳的性能,可以知道,我们所采用的基本LMS算法还是有待改进的。我们需要在收敛速度和处理速度方面,以及稳定性方面进行改善。

致 谢

本文的顺利完成受到了我的导师工程师,以及大学电信工程系的老师的大力支持和精心指导。在毕业设计进行阶段,老师总是严格的要求,及时为我指引方向并不断给予督促,她的鼓励使我能有信心去克服毕业设计遇到的困难。赵老师则是在设计的末尾阶段就性能评估方面给了我理论上的指导,使得毕业设计得以顺利完成。老师对学生平易近人、精心负责的态度使我受益非浅,在此,我谨向两位老师表示衷心的感谢!

感谢同组同学多次同我进行算法和编程实现上的交流和讨论,给予我技术上的指导。另外,还有感谢我所有的朋友和亲人,感谢他们在生活上和学习上给予我的支持和帮助!

最后,感谢所有参加论文评审和对本文提出宝贵意见的专家和老师!

参考文献

[1] 阮秋琦 著.数字图像处理学.北京:电子工业出版社,2001 [2] 何振亚 著.自适应信号处理.北京:科学出版社,2002

[3] [英] Emmanuel C. Ifeacher , Barrie W . Jervis 著,罗鹏飞,杨世海,朱国富,谭全之 译,

数字信号处理实践方法(第二版)。电子工业出版社,2004

[4] 沈凤麟 陈和晏.《生物医学随机信号处理》.合肥:中国科学技术大学出版社.1999 [5] [美] Simon Haykin 著.郑宝玉 等译.自适应滤波器原理(第四版).北京:电子工业出版

社.2003

[6] Dimitris G. Manokakis,Vinay K. Ingle,Stephen M.Kogon著, 周正 等译.统计与自适应滤波.

北京:电子工业出版社,2003

[7] 施晓红,周佳编著,精通GUI 图形界面编程。北京大学出版社,2003

[8] 董长虹主编,赖志国,余啸海编著,MATLAB 图像处理与应用。国防工业出版社,2004 [9] [加]Simon Haykin,[美]Barry Van Veen 著,信号与系统(第二版)。电子工业出版社,2004 [10] Miroslaw D. Lutovac , Dejan V . Tosic , Brian L . Evans 著,朱义胜,董辉等译,信号处理

滤波器设计——基于MATLAB和Mathematica 设计方法。电子工业出版社,2004 [12] Paulo S.R. Diniz , Eduardo A.B.da Silva , Sergio L. Netto 著,门爱东,杨波,全子一译,

数字信号处理系统分析与设计。北京:电子工业出版社,2004

[13] 胡广书编著,数字信号处理——理论、算法与实现(第二版)。北京:清华大学出版社,

2003

[14] 张玲华,郑宝玉编著,随机信号处理。北京:清华大学出版社,2003 [15] 通信原理,樊昌信,徐炳祥,吴成柯,国防工业出版社,北京,2001

附录A

clear clc

F=checkerboard(2); %原图像 D=imnoise(F,'gaussian',0,0.02); %退化图像=参考信号 nhood=[3 3];

% Estimate the local mean of f.

localMean = filter2(ones(nhood), D) / prod(nhood);

H=D-localMean;%仿照wiener2函数里的求取类似的“均值” [h k]=size(D); L=h*k;

D=reshape(D,L,1); %将图像矩阵变为矢量形式 f=zeros(size(D)); %系统输出=误差信号 y=f; %噪声逼近信号初始化 E=f; %声明误差矢量 %设置输入噪声信号=基本输入信号 %X=randn(h,k); X=zeros(h,k);

X=imnoise(X,'gaussian',0,0.02); X=reshape(X,L,1);

W=zeros(L,L); %设置权矢量初值 lmsMSE=f; a=0; %核心算法 u=0.000005; for i=1:L for n=1:L for m=1:i

if n-m+1>0