哈尔滨工业大学华德应用技术学院毕业设计(论文)
数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
本章小结
本章主要介绍了几种经典得噪声类型以及几种常用的滤波器,并阐述了几种经典的去噪方法,并简单地介绍了MATLAB工具以及它的发展历程。
-22-
哈尔滨工业大学华德应用技术学院毕业设计(论文)
第四章 小波阈值去噪及MATLAB仿真
4.1 小波阈值去噪概述
在数学上,小波去噪问题的本质是一个函数逼近问题,即如何在有小波母函数伸缩和平移所展成的函数空间中,根据提出的衡量准则,寻找对原图像的最佳逼近,以完成原图像和噪声的区分。这个问题可以表述为:
?opt?argmin(?(f)?fs) (4-1)
fopt??op(f)t(opt代表最优解) (4-2)
ff?fs?fn,s为原图像,n为噪声图像 (4-3)
,
2jf??{ff为实际图像}W?span{(?)j?1,?2j}J (4-4)
??{??为??W的函数空间影射} (4-5)
由此可见,小波去噪方法也就是寻找实际图像空间到小波函数空间的最佳映射,以便得到原图像的最佳恢复。从信号的角度看,小波去噪是一个信号滤
波的问题,而且尽管在很大程度上小波去噪可以看成是低通滤波,但是由于在去噪后还能成功地保留图像特征,所以在这一点上优于传统的低通滤波器。由此可见,小波滤波实际上是特征提取和低通滤波功能的综合,其等效框图如图4-1所示。
带噪信号特征提取低通滤波特征信息重建信号 图4-1 小波去噪的等效框图
-23-
哈尔滨工业大学华德应用技术学院毕业设计(论文)
4.1.1 小波阈值去噪方法
小波阈值去噪的基本思路是:
(1)先对含噪信号f(k)做小波变换,得到一组小波系数Wj,k; (2)通过对Wj,k进行阈值处理,得到估计系数W的差值尽可能小;
(3)利用W?j,k?j,k,使得W?j,k与Wj,k两者
进行小波重构,得到估计信号f(k)即为去噪后的信号。
Donoho提出了一种非常简洁的方法对小波系数Wj,k进行估计。对f(k)连续做几次小波分解后,有空间分布不均匀信号s(k)各尺度上小波系数Wj,k在某些特定位置有较大的值,这些点对应于原始信号s(k)的奇变位置和重要信息,而其他大部分位置的Wj,k较小,对于白噪声n(k),它对应的小波系数Wj,k在每个尺度上的分步不都是均匀的,并随尺度的增加,Wj,k系数的幅值减小。因此,通常的去噪办法是寻找一个合适的数?作为阈值(门限),把低于?的小波函数Wj,k(主要由信号n(k)引起),设为零,而对于高于?的小波函数Wj,k(主要由信号s(k)引起),则予以保留或进行收缩,从而得到估计小波系数Wj,k,它可理解为
?基本由信号s(k)引起的,然后对Wj,k进行重构,就可以重构原始信号。 估计小波系数的方法如下,取:
???2log(N) (4-6)
定义:
W?j,k?Wj,k,Wj,k???{0,Wj,k?? (4-7)
称之为硬阈值估计方法。一般软阈值估计定义为
?Wj,k?{sigh(Wj,k)(Wj,k??,Wj,k??0,Wj,k???? (4-8)
4.1.2 图像质量评价标准
图像质量的含义包括两个方面,一是图像的逼真度,一是图像的可懂度。
-24-
哈尔滨工业大学华德应用技术学院毕业设计(论文)
所谓图像的逼真度是描述被评图像与标准图像的偏离程度,而图像的可懂度则是表示图像向人或机器提供信息的能力。无论是图像的逼真度还是可懂度,目前还没能建立人眼视觉特性的准确模型,因而对图像质量的评价还带有一定的主观性。通常有两种方法,一种是作为观察者的主观评价,由人眼直接观察图像的效果,当然它是一种定性的方法,要受人的主观因素影响,评价结果有一定的不确定性。随着模糊数学的发展,人们可以用模糊综合评判方法来尽量减少主观因素影响,实现对图像质量近似定量的评价,不过它仍然没有完全消除主观不确定性的影响,其定量计算公式中的参数往往要以专家经验确定,常用于图像质量的客观评价标准是峰值信噪比。
去噪性能参数的定义:
?将原始信号x(n)作为标准信号,则经去噪后的估计信号x(n)的信噪比(SNR)公式定义为:
?? SNR?10log?????n???n? (4-9) ????x(n)?x(n)??????x2?n?原始信号与估计信号之间的均方根误差(RMSE)定义如下: RMSE?1n
?n???x(n)?x(n)????2 (4-10)
设原始图像为{f(m,n),0?m?M?1,0?n?N?1},去噪后的图像为:
{g(m,n),0?m?M?1,0?n?N?1},则峰值信噪比(PSNR)可以定义为: PSNR?10lg2551MNM?1N?12 (4-11)
f(m,n)?2???g(m,n)?m?0n?0信号的信噪比越高,原始信号和去噪信号的均方根误差越小,去噪信号就越接近原信号,去噪的效果也就越好。
4.2 基于MATLAB的小波去噪函数简介
常用的图像降噪方式是小波阈值降噪方法。这是一种实现简单而效果较好的降噪方法,阈值降噪方法的思想很简单,就是对小波分解后的各层系数模大于和小于某阈值的系数分别进行处理,然后利用处理后的小波系数重构出降噪
-25-
哈尔滨工业大学华德应用技术学院毕业设计(论文)
后的图像。在阈值降噪中,阈值函数体现了对小波分解系数的不同处理策略和不同的估计方法。常用的阈值函数有硬阈值函数和软阈值函数。硬阈值函数可以很好地保留图像边缘等局部特征,但图像会出现伪吉布斯效应等视觉失真等现象,而软阈值处理相对较光滑,但可能会造成边缘模糊等失真现象,为此人们提出了半软阈值函数。
小波阈值降噪方法处理阈值的选取,另一个关键因素是阈值的具体估计。如果阈值太小,降噪后的图像仍然存在噪声;相反如果阈值太大,重要图像特征有可能被滤掉,引起偏差。从直观上讲,对于给定的小波系数,噪声越大,阈值就越大。
MATLAB中实现图像的降噪,主要是阈值获取和图像降噪实现两个方面。 (1)阈值获取
MATLAB中实现阈值获取的函数有ddencmp、select、wbmpen和wdcbm2。这里主要介绍函数ddencmp。
函数ddencmp的功能是获取降噪或压缩的默认值。该函数是降噪和压缩的导向函数,它给出一维或二维信号使用小波或小波包进行降噪和压缩一般过程的所有默认值。
其语法格式为
[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,IN2,X) [THR,SORH,KEEPAPP]= ddencmp(IN1,‘wv’,X) [THR,SORH,KEEPAPP,CRIT]= ddencmp(IN1,‘wp’,X)
(2)阈值降噪
MATLAB中实现阈值降噪的函数有wden、wdencmp、wpdencmp、wthresh、 wpthcoef和wthcoef2。这里主要介绍函数wdencmp。
其语法格式为
[XC,CXC,LXC,PERF0,PERFL2]
wdencmp('gbl',X,'wname',N,THR,SORH,KEEPAPP)
[XC,CXC,LXC,PERF0,PERFL2] = wdencmp('lvd',X,'wname',N,THR,SORH) [XC,CXC,LXC,PERF0,PERFL2] = wdencmp('lvd',C,L,'wname',N,THR,SORH) 函数wdencmp的功能是使用小波进行降噪。该函数是二维小波降噪的导向函数。它使用小波对信号或图像执行降噪过程。wname是所用的小波函数。Gbl(global)表示每层都采用同一个阈值进行处理。lvd表示每层用不同的阈值进行处理。N表示小波分解的层数。THR为阈值向量,长度为N。SORH表示选择软阈值或硬阈值(分别取值为‘s’和‘h’)。参数KEEPAPP取值为1,则低
=
-26-