基于Matlab的小波分析与设计.doc
- 文档编号:13288677
- 上传时间:2023-06-12
- 格式:DOC
- 页数:30
- 大小:701KB
基于Matlab的小波分析与设计.doc
《基于Matlab的小波分析与设计.doc》由会员分享,可在线阅读,更多相关《基于Matlab的小波分析与设计.doc(30页珍藏版)》请在冰点文库上搜索。
29
淮南师范学院2012届本科毕业论文
目录
摘要 1
ABSTRACT 2
前言 4
1概述 4
1.1研究背景 4
1.2研究内容 5
1.3MATLAB的概况 5
1.4MATLAB的语言特点 5
2小波分析的基本理论 7
2.1傅里叶变换 7
2.2小波变换 8
2.2.1连续小波变换 8
2.2.2离散小波变换 9
2.2.3小波包分析 10
3小波分析在图像处理中的应用 11
3.1小波分析用于图像压缩 11
3.2小波分析用于图像去噪 14
3.3小波分析用于图像增强 19
3.3.1图像钝化 22
3.3.2图像锐化 24
3.4小波分析用于图像融合 26
4总结 30
致谢 31
基于Matlab的小波分析与设计
学生:
王磊
指导老师:
贾群
淮南师范学院电气信息工程学院
摘要:
小波分析是指用有限长或快速衰减的、称为母小波的振荡波形来表示信号。
该波形被缩放和平移以匹配输入的信号。
小波变换分成两个大类:
离散小波变换和连续小波变换。
两者的主要区别在于,连续变换在所有可能的缩放和平移上操作,而离散变换采用所有缩放和平移值的特定子集。
小波分析理论作为新的时频分析工具,在信号分析和处理中得到了很好的应用。
平面图像可以看成是二维信号,因此,小波分析很自然地应用到了图像处理领域。
图像压缩、去噪、、增强、融合是图像预处理中应用非常广泛的技术,小波变换由于其自身的优良特性而在图像处理中得到了越来越多的应用。
本文从基本理论出发,首先对小波变换进行了详尽而深刻的阐述。
循序渐进地介绍了从概念到小波分析等一系列相关内容,包括连续小波变换、离散小波变换和小波包分析。
最终引出小波分析在Matlab中的应用的方法。
对小波变换在图像处理中的应用本文作了重点研究。
关键词:
小波分析;图像压缩;图像去噪;图像增强;图像融合;matlab
WaveletanalysisanddesignbasedonMATLAB
Nane:
wanglei
Tutor:
jiaqun
HuainanNormalUniversitySchoolofelectricalandInformationEngineering
ABSTRACT:
Waveletanalysisistheuseoflimitedlengthorfastattenuation,knownasmotherwaveletrepresentationofasignalwaveform.Thewaveformiszoomingandpanningtomatchtheinputsignal.Wavelettransformisdividedintotwocategories:
discretewavelettransformandcontinuouswavelettransform.Theessentialdifferencebetweenbothis,continuoustransformationinallpossiblezoomingandpanningoperation,anddiscretetransformusingallvaluesofaspecificsubsetofzoomingandpanning.Thetheoryofwaveletanalysisasanewtime-frequencyanalysistoolinsignalanalysisandprocessing,hasaverygoodapplication.Planarimagecanbeviewedasatwo-dimensionalsignal,therefore,waveletanalysisnaturallyisappliedtotheimageprocessingfield.Imagecompression,denoising,enhancement,fusion,imagepre-processingisveryextensiveapplicationofthetechnologyofwavelettransform,becauseofitsexcellentcharacteristicsinimageprocessinghasbeenappliedmoreandmore.Inthispaper,startingfromthebasictheoryofwavelettransform,thefirstdetailedandprofounddevelopment.Gradualintroductionfromconcepttothewaveletanalysisandaseriesofrelatedcontent,includingcontinuouswavelettransform,discretewavelettransformandwaveletpacketanalysis.EventuallyleadtowaveletanalysisapplicationinMatlabmethod.Thewavelettransformapplicationinimageprocessingthispaperfocusesonthestudyof.
Keywords:
waveletanalysis;imagecompression;imagedenoising;imageenhancement;imagefusion;Matlab
前言
传统的信号理论,是建立在Fourier分析基础上的,而Fourier变换作为一种全局性的变化,其有一定的局限性。
在实际应用中人们开始对Fourier变换进行各种改进,小波分析由此产生了。
小波分析是一种新兴的数学分支,它是泛函数、Fourier分析、调和分析、数值分析的最完美的结晶;在应用领域,特别是在信号处理、图像处理、语音处理以及众多非线性科学领域,它被认为是继Fourier分析之后的又一有效的时频分析方法。
小波变换与Fourier变换相比,是一个时间和频域的局域变换因而能有效地从信号中提取信息,通过伸缩和平移等运算功能对函数或信号进行多尺度细化分析(MultiscaleAnalysis),解决了Fourier变换不能解决的许多困难问题。
1概述
1.1研究背景
小波分析诞生于20世纪80年代,被认为是调和分析即现代Fourier分析发展的一个崭新阶段。
众多高新技术以数学为基础,而小波分析被誉为“数学显微镜”,这就决定了它在高科技研究领域重要的地位。
目前,它在模式识别、图像处理、语音处理、故障诊断、地球物理勘探、分形理论、空气动力学与流体力学上的应用都得到了广泛深入的研究,甚至在金融、证券、股票等社会科学方面都有小波分析的应用研究。
在传统的傅立叶分析中,信号完全是在频域展开的,不包含任何时频的信息,这对于某些应用来说是很恰当的,因为信号的频率的信息对其是非常重要的。
但其丢弃的时域信息可能对某些应用同样非常重要,所以人们对傅立叶分析进行了推广,提出了很多能表征时域和频域信息的信号分析方法,如短时傅立叶变换,Gabor变换,时频分析,小波变换等。
其中短时傅立叶变换是在傅立叶分析基础上引入时域信息的最初尝试,其基本假定在于在一定的时间窗内信号是平稳的,那么通过分割时间窗,在每个时间窗内把信号展开到频域就可以获得局部的频域信息,但是它的时域区分度只能依赖于大小不变的时间窗,对某些瞬态信号来说还是粒度太大。
换言之,短时傅立叶分析只能在一个分辨率上进行。
所以对很多应用来说不够精确,存在很大的缺陷。
而小波分析则克服了短时傅立叶变换在单分辨率上的缺陷,具有多分辨率分析的特点,在时域和频域都有表征信号局部信息的能力,时间窗和频率窗都可以根据信号的具体形态动态调整,在一般情况下,在低频部分(信号较平稳)可以采用较低的时间分辨率,而提高频率的分辨率,在高频情况下(频率变化不大)可以用较低的频率分辨率来换取精确的时间定位。
1.2研究内容
从传统的傅里叶变换引出小波变换,进而循序渐进地介绍了连续小波变换,离散小波变换,小波包分析,多分辨率分析,最终引出小波分析中的Mallat算法,其重要性相当于傅里叶分析中的快速傅里叶变换,它也是小波分析中应用最广泛的算法。
基于以上理论基础,本文只要所研究的具体内容主要分为四大部分,即图像压缩,图像去噪,图像增强和图像融合。
1.3MATLAB的概况
MATLAB(MatrixLaboratory)为美国Mathworks公司1983年首次推出的一套高性能的数值分析和计算软件,其功能不断扩充,版本不断升级,1992年推出划时代的4.0版,1993年推出了可以配合MicrosoftWindows使用的微机版,95年4.2版,97年5.0版,99年5.3版,5.X版无论是界面还是内容都有长足的进展,其帮助信息采用超文本格式和PDF格式,可以方便的浏览。
至2001年6月推出6.1版,2002年6月推出6.5版,继而推出6.5.1版,2004年7月MATLAB7和Simulink6.0被推出,目前的最新版本为7.1版。
MATLAB将矩阵运算、数值分析、图形处理、编程技术结合在一起,为用户提供了一个强有力的科学及工程问题的分析计算和程序设计工具,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能,是具有全部语言功能和特征的新一代软件开发平台。
MATLAB已发展成为适合众多学科,多种工作平台、功能强大的大型软件。
在欧美等国家的高校,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具。
成为攻读学位的本科、硕士、博士生必须掌握的基本技能。
在设计研究单位和工业开发部门,MATLAB被广泛的应用于研究和解决各种具体问题。
在中国,MATLAB也已日益受到重视,短时间内就将盛行起来,因为无论哪个学科或工程领域都可以从MATLAB中找到合适的功能。
1.4MATLAB的语言特点
一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。
MATLAB最突出的特点就是简洁。
MATLAB用更直观的,符合人们思维习惯的代码,代替C和FORTRAN语言的冗长代码。
MATLAB给用户带来的是最直观,最简洁的程序开发环境。
以下简单介绍一下MATLAB的主要特点。
(1)语言简洁紧凑,使用方便灵活,库函数极其丰富。
MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。
由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。
可以说,用MATLAB进行科技开发是站在专家的肩膀上。
具有FORTRAN和C等高级语言知识的读者可能已经注意到,如果用FORTRAN或C语言去编写程序,尤其当涉及矩阵运算和画图时,编程会很麻烦。
例如,如果用户想求解一个线性代数方程,就得编写一个程序块读入数据,然后再使用一种求解线性方程的算法(例如追赶法)编写一个程序块来求解方程,最后再输出计算结果。
在求解过程中,最麻烦的要算第二部分。
解线性方程的麻烦在于要对矩阵的元素作循环,选择稳定的算法以及代码的调试动不容易。
[5]即使有部分源代码,用户也会感到麻烦,且不能保证运算的稳定性。
解线性方程的程序用FORTRAN和C这样的高级语言编写,至少需要四百多行,调试这种几百行的计算程序可以说很困难。
(2)运算符丰富。
由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。
(3)MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。
(4)程序限制不严格,程序设计自由度大。
例如,在MATLAB里,用户无需对矩阵预定义就可使用。
(5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。
(6)MATLAB的图形功能强大。
在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。
MATLAB还具有较强的编辑图形界面的能力。
(7)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。
由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。
(8)功能强大的工具箱是MATLAB的另一特色。
MATLAB包含两个部分:
核心部分和各种可选的工具箱。
核心部分中有数百个核心内部函数。
其工具箱又分为两类:
功能性工具箱和学科性工具箱。
功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。
功能性工具箱用于多种学科。
而学科性工具箱是专业性比较强的,这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高,精,尖的研究。
(9)源程序的开放性。
开放性也许是MATLAB最受人们欢迎的特点。
除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。
2小波分析的基本理论
2.1傅里叶变换
寻找一种新方法,能够将时域和频域结合起来描述观察信号的时频联合特征,构成信号的时频谱。
这就是所谓的时频分析法,也称为时频局部化方法。
在信号处理中比较重要的方法之一是傅立叶变换,它架起了时间域和频率域之间的桥梁。
对很多信号来说,傅立叶分析非常有用。
因为它能给出信号里包含的各种频率成分。
但是,傅里叶变换有着严重的缺点:
变换之后使信号失去了时间信息,它不能告诉人们在某段时间里发生了什么变化。
而很多信号都包含有人们感兴趣的非稳态(或者瞬变)特性,如漂移、趋势项、突然变化以及信号的开始或结束。
这些特性是信号的最重要部分。
因此傅立叶变换不适于分析处理这类信号。
虽然傅立叶变换能够将信号的时域特征和频域特征联系起来,能分别从信号的时域和频域观察,但却不能把二者有机地结合起来。
这是因为信号的时域波形中不包含任何频域信息。
而其傅立叶谱是信号的统计特性,从其表达式中也可以看出,它是整个时间域内的积分,没有局部化分析信号的功能,完全不具备时域信息,也就是说,对于傅立叶谱中的某一频率,不知道这个频率是在什么时候产生的。
这样在信号分析中就面临一对最基本的矛盾:
时域和频域的局部化矛盾。
在实际的信号处理过程中,尤其是对非平稳信号的处理中,信号在任一时刻附近的频域特征都很重要。
如柴油机缸盖表面的震动信号就是由撞击或冲击产生的,它是一瞬变信号,仅从时域或频域上来分析是不够的。
这就促使去
2.2小波变换
小波变换提出了变化的时间窗,当需要精确的低频信息时,采用长的时间窗,当需要精确的高频信息时,采用短的时间窗。
小波变换用的不是时间.频率域,而是时间.尺度域。
尺度越大,采用越大的时间窗,尺度越小,采用越短的时间窗,即尺度与频率成反比。
2.2.1连续小波变换
定义:
设,其傅立叶变换为,当满足允许条件(完全重构条件或恒等分辨条件)
<
(1)
时,我们称为一个基本小波或母小波。
将母函数经伸缩和平移后得
(2)
称其为一个小波序列。
其中a为伸缩因子,b为平移因子。
对于任意的函数的连续小波变换为
(3)
其重构公式(逆变换)为
(4)
由于基小波生成的小波在小波变换中对被分析的信号起着观测窗的作用,所以还应该满足一般函数的约束条件
〈(5)
故是一个连续函数。
这意味着,为了满足完全重构条件式,在原点必须等于0,即
(6)
为了使信号重构的实现在数值上是稳定的,处理完全重构条件外,还要求小波的傅立叶变化满足下面的稳定性条件:
(7)
式中0〈AB〈。
2.2.2离散小波变换
在实际运用中,尤其是在计算机上实现时,连续小波必须加以离散化。
因此,有必要讨论连续小波和连续小波变换的离散化。
需要强调指出的是,这一离散化都是针对连续的尺度参数a和连续平移参数b的,而不是针对时间变量t的。
这一点与我们以前习惯的时间离散化不同。
在连续小波中,考虑函数:
这里,,且,是容许的,为方便起见,在离散化中,总限制a只取正值,这样相容性条件就变为
(8)
通常,把连续小波变换中尺度参数a和平移参数b的离散公式分别取作,,这里,扩展步长是固定值,为方便起见,总是假定(由于m可取正也可取负,所以这个假定无关紧要)。
所以对应的离散小波函数即可写作
(9)
而离散化小波变换系数则可表示为
(10)
其重构公式为
(11)
C是一个与信号无关的常数。
然而,怎样选择和,才能够保证重构信号的精度呢?
显然,网格点应尽可能密(即和尽可能小),因为如果网格点越稀疏,使用的小波函数和离散小波系数就越少,信号重构的精确度也就会越低。
2.2.3小波包分析
短时傅立叶变换对信号的频带划分是线性等间隔的。
多分辨分析可以对信号进行有效的时频分解,但由于其尺度是按二进制变化的,所以在高频频段其频率分辨率较差,而在低频频段其时间分辨率较差,即对信号的频带进行指数等间隔划分(具有等Q结构)。
小波包分析能够为信号提供一种更精细的分析方法,它将频带进行多层次划分,对多分辨率分析没有细分的高频部分进一步分解,并能够根据被分析信号的特征,自适应地选择相应频带,使之与信号频谱相匹配,从而提高了时-频分辨率,因此小波包具有更广泛的应用价值。
关于小波包分析的理解,我们这里以一个三层的分解进行说明,其小波包分解树如图
S
D1
A1
DD2
AD2
DA2
AA2
DDA3
AAD3
ADD3
DDD3
ADA3
DAA3
AAA3
DAA3
图1小波包分解树
图1中,A表示低频,D表示高频,末尾的序号数表示小波分解的层树(也即尺度数)。
分解具有关系:
S=AAA3+DAA3+ADA3+DDA3+AAD3+DAA3+ADD3+DDD3
3小波分析在图像处理中的应用
3.1小波分析用于图像压缩
基于离散余弦变换的图像压缩算法,其基本思想是在频域对信号进行分解,驱除信号点之间的相关性,并找出重要系数,滤掉次要系数,以达到压缩的效果,但该方法在处理过程中并不能提供时域的信息,在我们比较关心时域特性的时候显得无能为力。
但是这种应用的需求是很广泛的,比如遥感测控图像,要求在整幅图像有很高压缩比的同时,对热点部分的图像要有较高的分辨率,例如医疗图像,需要对某个局部的细节部分有很高的分辨率,单纯的频域分析的方法显然不能达到这个要求,虽然可以通过对图像进行分快分解,然后对每块作用不同的阈值或掩码来达到这个要求,但分块大小相对固定,有失灵活。
在这个方面,小波分析就优越的多,由于小波分析固有的时频特性,我们可以在时频两个方向对系数进行处理,这样就可以对我们感兴趣的部分提供不同的压缩精度。
对于图像压缩我们可以用二维小波来分析。
它的特点是压缩比高,压缩速度快,压缩后能保持图像的特征基本不变,且在传递过程中可以抗干扰。
小波分析用于图像压缩具有明显的优点。
下面给出一个图像信号(即一个二维信号,文件名为wbarb.mat),利用二维小波分析对图像进行压缩。
一个图像作小波分解后,可得到一系列不同分辨率的子图像,不同分辨率的子图像对应的频率是不相同的。
高分辨率(即高频)子图像上大部分点的数值都接近于0,越是高频这种现象越明显。
对一个图像来说,表现一个图像最主要的部分是低频部分,所以一个最简单的压缩方法是利用小波分解,去掉图像的高频部分而只保留低频部分。
图像压缩可按如下程序进行处理。
在matlab界面中输入如下代码
loadwbarb;
subplot(221);image(X);colormap(map)
title('原始图像');
axissquare
disp('压缩前图像X的大小:
');
whos('X')
[c,s]=wavedec2(X,2,'bior3.7');%对图像用bior3.7小波进行2层小波分解
ca1=appcoef2(c,s,'bior3.7',1);
ch1=detcoef2('h',c,s,1);
cv1=detcoef2('v',c,s,1);
cd1=detcoef2('d',c,s,1);%提取小波分解结构中第一层低频系数和高频系数
a1=wrcoef2('a',c,s,'bior3.7',1);
h1=wrcoef2('h',c,s,'bior3.7',1);
v1=wrcoef2('v',c,s,'bior3.7',1);
d1=wrcoef2('d',c,s,'bior3.7',1);%分别对各频率成分进行重构
c1=[a1,h1;v1,d1];
subplot(222);image(c1);%显示分解后各频率成分的信息
axissquare
title('分解后低频和高频信息');
%下面进行图像压缩处理
%保留小波分解第一层低频信息,进行图像的压缩
%第一层的低频信息即为ca1,显示第一层的低频信息
%首先对第一层信息进行量化编码
ca1=appcoef2(c,s,'bior3.7',1);
ca1=wcodemat(ca1,440,'mat',0);
ca1=0.5*ca1;%改变图像的高度
subplot(223);image(ca1);colormap(map);
axissquare
title('第一次压缩');
disp('第一次压缩图像的大小为:
');
whos('ca1')
%保留小波分解第二层低频信息,进行图像的压缩,此时压缩比更大
%第二层的低频信息即为ca2,显示第二层的低频信息
ca2=appcoef2(c,s,'bior3.7',2);
ca2=wcodemat(ca2,440,'mat',0);%首先对第二层信息进行量化编码
ca2=0.25*ca2;%改变图像的高度
subplot(224);image(ca2);colormap(map);
axissquare
title('第二次压缩');
disp('第二次压缩图像的大小为:
');
whos('ca2')
按enter键输出结果如下:
压缩前图像X的大小:
NameSizeBytesClass
X256x256524288doublearray
Grandtotalis65536elementsusing524288bytes
第一次压缩图像的大小为:
NameSizeBytesClass
ca1135x135145800doublearray
Grandtotalis18225elementsusing145800bytes
第二次压缩图像的大小为:
NameSizeBytesClass
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Matlab 分析 设计