小波变换理论讲解

文中所用代码可到此下载:http://www.codeforge.cn/read/244807/waveback.m__html

下面先对小波变换的基本理论进行阐述,再结合程序及运行结果对其更深入地理解。

一、小波变换理论

(一)小波序列

     ϕ(t)∈L^2 (R),称ϕ(t)为一个基本的小波和母小波,其中L^2 (R)指均方可积空间。小波一定满足:

这也是称之为“小波”的意义。将母函数进行伸缩和平移后,可以得到小波序列:(a,b∈R,a≠0),其中a,b分别为伸缩因子和平移因子。

(二)连续小波变换及逆变换

     任意的函数f(t)∈L^2 (R)的连续小波变换为:,记,其中相当于小波变换的系数。可以看出连续小波变换就是信号与小波函数的卷积,小波函数事实上就是信号处理的一个滤波器。其逆变换为:

   

     小波变换实质上将L^2 (R)空间中的任意函数f(t)表示为其在不同伸缩因子和平移因子上的投影的叠加,与傅里叶变换仅将f(t)投影到频率域不同的是,小波变换将一维时域函数映射到二维“时间-尺度”域上,因此f(t)在小波基上的展开具有多分辨率的特性。通过调整伸缩因子和平移因子,可以得到具有不同时频宽度的小波以匹配原始信号的任意位置,达到对信号的时频局部化分析的目的。举个粗略的例子,就像用镜头观察目标f(t),ϕ(t)代表镜头所起的作用,b相当于使镜头相对于目标平行移动,a相当于镜头向目标推进或远离,由此可见b仅仅影响时频窗口在相平面时间轴上的位置,而a不仅影响时频窗口在频率轴上的位置,也影响窗口的形状。这样小波变换对不同频率在时域上的取样步长是可调节的,也就是多分辨率。

(三)离散小波变换及逆变换

     对参数a,b进行展开后,就得到任意时刻任意精度的频谱,但是对实际精度来讲,计算量太大,所以将其离散化。从理论上可以证明,将连续小波变换成离散小波变换,信号的基本信息并不会丢失。相反由于小波基函数的正交性,使得小波空间中两点之间因冗余造成的关联消失,同时由于正交性,使得计算的误差更小,变换结果“时—频函数”更能反映信号本身的性质。
离散小波函数表示为:
离散小波系数表示为:

如果,则称为二进小波。
      数学中,函数空间是从集合X到集合Y的给定种类的函数几何,将平方可积的函数f(t)∈L^2 (R)看成是某一逐级逼近的极限情况,每级逼近都是用某一低通平滑函数ϕ(t)对f(t)做平滑的结果,在逐级逼近时,平滑函数ϕ(t)也做逐级伸缩,这就是所谓的“多分辨率”。将空间逐级二分解:


     这种剖分方式使得空间与空间正交,即:,任意信号f(t)∈L^2 (R)可用多分辨率分析公式表示为:

式中右边第一项是f(t)在尺度空间的投影,是f(t)的平滑近似,第二项是f(t)在小波空间的投影,是对f(t)的细节补充。j是任意尺度开始,通常称为近似值或尺度系数,为细节或小波系数。展开系数计算如下:

     如果展开函数是双正交基的一部分,上式中的φ项要分别用他们的对偶函数代替。
    子小波分析中小波函数用于构建坐标系,但是用小波函数来表示一个信号时,它其实是将信号映射在了时频平面内,所以在实现过程中需要一个频域的底座和平台,来让信号f(t)与之做映射,而且是在一定的频率分辨率上进行的,这个起到底座的函数就是尺度函数,在尺度函数的平台下对频率的分析,或者说对信号的表达就是小波函数的作用了。在滤波实现中,低频滤波就是尺度函数的作用,小波函数的实现相当于高频滤波器。

便于理解,举一个具体的例子:

使用哈尔小波将y=x^2 的小波序列展开,其中哈尔尺度函数为:

哈尔小波函数:

因此展开系数为:

则得到如下的小波序列展开:


二、小波变换实例

      程序目录如下:

     主程序贴出如下:
  1. g = imread('3.jpg');  
  2. f = rgb2gray(g);  
  3. imshow(f);  
  4. title('原图');  
  5. [c,s] = wavefast(f,1,'sym4');  
  6. figure;wave2gray(c,s,-6);  
  7. title('原图分解为一个近似图和3个细节图');  
  8. [nc,y] = wavecut('a',c,s);  
  9. figure;wave2gray(nc,s,-6);  
  10. title('去掉近似图');  
  11. edges = abs(waveback(nc,s,'sym4'));  
  12. figure;imshow(mat2gray(edges));  
  13. title('3个细节图重构出的原图像细节');  
g = imread('3.jpg');
f = rgb2gray(g);
imshow(f);
title('原图');
[c,s] = wavefast(f,1,'sym4');
figure;wave2gray(c,s,-6);
title('原图分解为一个近似图和3个细节图');
[nc,y] = wavecut('a',c,s);
figure;wave2gray(nc,s,-6);
title('去掉近似图');
edges = abs(waveback(nc,s,'sym4'));
figure;imshow(mat2gray(edges));
title('3个细节图重构出的原图像细节');
     其间所用的函数文件若你所安装的matlab中没有,可到文中开头所提及的网址中查找,自行下载或粘贴上。程序正确运行的结果如下:






   
  如上图所示,经过小波变换,将原灰度图像f分解为1个近似图和水平、垂直、对角线方向的细节轮廓图(均为分解系数构成),若要将这些信息合并成一幅边缘图像,可简单地把生成变换的近似系数设为零,计算它的反变换,即在去掉近似图的情况下用3个细节图进行重构,类似的过程也可用于隔离垂直边缘或水平边缘。

小波变换的大致原理是这样,涉及到三维的情况可以与一维类比理解。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关于 MATLAB 小波变换的书籍推荐如下: 1.《MATLAB小波分析与应用》 - 作者:陈雅茹 这本书详细介绍了小波分析的基本概念和算法,并结合 MATLAB 的实现进行了详细的讲解。书中涵盖了小波基函数的选择、小波系数的计算和信号的重构等内容,对于初学者来说非常友好。 2.《MATLAB小波分析与应用》 - 作者:孟令凡 这本书从 MATLAB 工具箱的使用角度出发,详细介绍了小波函数的构造、小波变换的数学原理以及各种应用场景。书中还包含了丰富的实例和练习题,有助于读者更好地理解小波变换的应用。 3.《小波变换与信号处理MATLAB实验》 - 作者:王文栋 这本书主要介绍了小波变换理论和算法,并结合 MATLAB 进行了大量实验演示。书中的实验设计针对不同的应用场景,例如语音信号处理、图像处理等,帮助读者更好地掌握小波变换的使用方法。 4.《MATLAB小波分析及其应用》 - 作者:赵敏 这本书介绍了小波分析的基本理论、算法和应用,并通过大量的实例进行了说明。书中还重点讲解了 MATLAB 工具箱中小波变换的函数的使用方法和参数调整。对于想要学习小波变换并应用到实际问题中的读者来说,这本书是一个不错的选择。 这些书籍都详细介绍了 MATLAB 中小波变换的原理和实现方法,并通过实例和实践让读者更好地理解和应用小波变换技术。希望能帮助到你。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值