2022年使用MATLAB设计小波变换程序中的若干问题 .pdf
-
资源ID:30531917
资源大小:44.85KB
全文页数:6页
- 资源格式: PDF
下载积分:4.3金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2022年使用MATLAB设计小波变换程序中的若干问题 .pdf
使用 MATLAB 设计小波变换程序中的若干问题在使用 MATLAB 完成小波变换程序和通过阈值来压缩图像的过程中,我和许多同学都是边学边用,是从一个接一个的问题中逐步理解小波和MATLAB 编写程序的。因此我愿意就个人遇到和解决问题的经验与大家讨论,希望能够对遇到同样问题的人有所帮助。在清华大学林福宗老师倡导的网上互动的学习方式中,老师同学的开诚布公的讨论,尤其是林老师启发大家对出现,问题? 采取的态度和做法,对我今后成长为一名合格的清华的研究生意义重大,谨以此文表示对他指导关心的敬意!内容简介本文分为三部分 : 如何使用 MATLAB 设计小波标准与标准分解;如何完成使用小波变换压缩图像;仍需探讨的问题。每一部分主要以问题和例子的形式讲述,为了便于参照,附录部分给出部分源代码供大家参考指正。我个人在完成作业的时候, 走了许多弯路, 最后,反复读老师的第 3 章讲义的第3-5 节,明白了小波变换的一些非常基础性的知识,正是如此,我主要是按照第三章的例子,做出使用MATLAB 进行 Haar 变换的实例,这至少对完成非标准Haar 小波的 3 级分解与合成没有任何问题,而且计算速度远远比使用一维变换快,甚至超过 dwt2 和 wavedec2 。再者,是通过这些简短的例子的学习,也能从实践的角度理解小波变换的基础知识和道理,我觉得掌握小波的知识要比简单使用 dwt2 直接分析出结果更重要。为了让使用一维变换或打算采用卷积完成分解重构程序的同学有所参考, 也给出了我以前写的代码和设想供有兴趣者参考。在图像压缩的任务中,我个人建议采用wdencmp,原因是简单可靠,能够生成老师要求小波压缩与重构的演示及PNG 文件。在最后部分着重对使用小波压缩之后重构图像的 PNG 文件会变大问题进行了简单的猜测性的解释和讨论,希望感兴趣的同学能深入研究。如何使用 MATLAB 设计小波标准与标准分解名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 使用 Haar和 Db9 小波编写图像文件的标准和非标准分解重构程序实质上,任务书中规定首先要编写种程序之一:哈尔(haar)小波的标准分解重构程序; Daubechies 9 小波的标准分解重构程序;哈尔(haar )小波的非标准分解重构程序; Daubechies 9小波的非标准分解重构程序。如果采用标准方法,需要生成图的系列图像。 如果采用非标准方法则需要生成图的系列图像。我个人编写了非标准的分解重构程序,并总结网上同学们公开的方法, 认为可以有种方法实现。但前提是必须仔细阅读林老师推荐的补充教材第三章“ 小波与小波变换 ” 的 3.3、3.4 和 3.5 节(页)。如果能使用 MATLAB 简单地实践一下教材的例子, 至少完成哈尔小波的标准与非标准程序相当简单。为此我主要介绍如何实现老师教材给我们的例子是如何在MATLAB 中实现的。然后,再引申到使用 MATLAB 的函数实现方法。为了描述问题简便,使用黑体表示需在 MATLAB 的命令窗口 (command window)的输入部分。 如果不熟悉下面出现的函数功能和使用方法,请再命令窗口中使用help 函数名,如 help dwt2,能够得到英文的功能和用法说明。哈尔小波变换的 MATLAB 实例先介绍 MATLAB 的矩阵 (Matrix) 和向量 (Vector)的赋值方法:在 command window的符号下输入:一维向量: = 9 7 3 5 = 2, 5, 8, 9, 7, 4, -1, 1 二维矩阵:A = 64 2 3 61 60 6 7 57 9 55 54 12 13 51 50 16 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 17 47 46 20 21 43 42 24 40 26 27 37 36 30 31 33 32 34 35 29 28 38 39 25 41 23 22 44 45 19 18 48 49 15 14 52 53 11 10 56 8 58 59 5 4 62 63 1 和现在就是例3.1 例 3.2一维向量 ,A 就是 3.5.1 中的图像矩阵。在进行 Haar小波的一维与二维变换 (分解)之前,首先介绍一下 MATLAB 的矩阵运算。MATLAB 是 Matrix Laboratory 的合写,它对矩阵运算之功能堪称一流。由于使用矩阵描述问题更象数学表达式,所以编写的程序不仅高效,更易读。所以MATLAB 程序应该尽量使用矩阵直接描述。如 M 是一 4X4 的矩阵,则 B=I*M就完成了使用两个for 循环编写乘法的程序。分析老师的例 3.1 ,那么可以得到如下结果:(9+7)*1/2 (3+5)* 1/2 (9-7)*1/2 (3-5)* 1/2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 如果把其看作矩阵方式的乘法, 那么令 M 为其表述求取平均和差值的系数矩阵,则输入:M = 1/2 0 1/2 0 1/2 0 -1/2 0 0 1/2 0 1/2 0 1/2 0 -1/2 把上述的 M 输入到 MATLAB 中,然后使用:C=I*M 得到的结果就是 8 4 1 -1。这就是非规范化 Haar小波的第一级分解系数。 注意C 的前两项 8 4 就是近似系数( Approximation Coefficients ), 后两项 1 _1就是 细 节 系 数 ( Detail Coefficients ) . M就 是Haar 小 波 的 非 规 范 化(non-normalization)系数矩阵。如果我们执行:M*M_ (M_代表的是 M 的转置矩阵 ), 你会发现得到对角线为0.5 其它为 0 的 4X4 矩阵,所以如果让它变成单位矩阵 (对角线为 1) , 必须把原来的 1/2 增大, 变为 1/sqrt(2), 所以执行:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - N=M*sqrt(2) 后得到新的系数矩阵 0.7071 0 0.7071 0 0.7071 0 -0.7071 0 0 0.7071 0 0.7071 0 0.7071 0 -0.7071 再执行N * N_ 就会得到单位矩阵。 N 就是 Haar小波的规范化( normalization)系数矩阵。现在执行: C*M_ 将得到 4.5 3.5 1.5 2.5,显然是因为 M*M_ 的对角矩阵的值为0.5。现在使用Cn=I*N 得到 11.3137 5.6569 1.4142 -1.4142 规范化的一维 Haar小波一级分解系数。I1=Cn*N_ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 得到 9 3 7 7 规范化的一维 Haar小波逆变换(重构)结果。可见得到这样规范化矩阵的好处是为了逆变换时不需要额外的运算,只是需要分解系数矩阵乘以规范化系数矩阵的转置。如果需要对分解系数矩阵进行第2 级分解,那么此时只对 C 或 Cn 的前 2 项的低频系数进行,此时的Haar的非规范化与规范化系数矩阵M1 和 N1 分别为:M1= 1/2 1/2 1/2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -