“小波工程应用”实验报告一维信号离散小波分解与重构(去噪)的VC实现一、目的在理解了离散小波变换的基本原理和算法的基础上,通过设计VC程序对简单的一维信号在加上了高斯白噪声之后进行Daubechies小波、Morlet小波和Haar小波变换,从而得到小波分解系数;再通过改变分解得到的各层高频系数进行信号的小波重构达到消噪的目的。在这一程序实现的过程中能直观地理解信号小波分解重构的过程和在信号消噪中的重要作用,以及在对各层高频系数进行权重处理时系数的选取对信号消噪效果的影响。二、基本原理1、信号的小波分解与重构原理在离散小波变换(DWT)中,我们在空间上表示信号,也就是说对于每一个在上表示的信号能用在上面提到的两个空间中的基函数来表示。Whereandarethecoefficientsofthescalemetricspace(j-1)whichareobtainedaftertheDecomposingthecoefficientofthescalemetricspacej.Analogouslywecouldreconstructthebyand.我们在尺度度量空间对系数进行分解得到在尺度度量空间的两个系数和。同样的,我们也能从两个系数和通过重构得到系数。如上图中的分解与重构我们可以通过一定的滤波器组来实现(也就是小波变换算法)。当小波和尺度在空间内是正交的,我们就可以用内积公式计算得到系数和:下面是内积计算方法的具体公式:具体的系数计算过程如下:对于上面的小波分解过程,通过分别设计高通滤波器和低通滤波器两组滤波器的系数(数组g[]和h[])即可实现,特别是对于离散小波变换,程序算法相对简单。而重构也只是分解的逆过程,重构算法和分解的算法是相对应而互逆的。2、小波去噪原理一般来说,噪声信号多包含在具有较高频率细节中,在对信号进行了小波分解之后,再利用门限阈值等形式对所分解的小波系数进行权重处理,然后对小信号再进行重构即可达到信号去噪的目的。具体步骤为:a.一维信号的小波分解,选择一个小波并确定分解的层次,然后进行分解计算。b.小波分解高频系数的阈值量化,对各个分解尺度下的高频系数选择一个阈值进行软阈值量化处理。C.一维小波重构,根据小波分解的最底层低频系数和各层高频系数进行一维小波的重构。三、VC程序设计本程序是在Windows环境下的VC++6.0实现的,完成的功能主要有:载入待处理的一维离散数字信号并显示、对信号加入随机噪声并显示(可多次加入)、选择用来小波分解的小波类型、分解后的各层高频分量和低频分量的显示、小波重构时各层分量系数权重值的输入以及重构后的信号显示。语言编程的具体步骤为:1.图形显示和对话模式的创建。2.Daubechies、Haar、Morlet小波高低通滤波器系数的植入。3.分解重构函数的构造(共7个,6个小波函数DWT1、IDWT1、DWT2、IDWT2、DWT3、IDWT3,1个噪声加入运算函数Radom)。4.显示输出所要用到的类(class)的创建,和画图函数的构造。5.小波重构对话框的设计和编程。四、体会通过这一应用工程的设计,巩固和加深了对小波分解与重构的理解,熟悉了工程中小波去噪的基本思想和方法,进一步强化了VC编程知识。对于本人的学习来讲是一次非常有益的探索。在这个工程应用中的关键和难点就是小波分解与重构函数的构造,在这过程中遇到了许多困难和问题,参考了他人的程序才得以解决。由于时间有限加上以前所学知识的贫乏,本应用工程还存在许多问题,在以后的学习中还要进一步加以改进和完善。具体有:1.离散小波的长度(系数的数量)和高低通滤波器系数的精度对小波分解的影响有待进一步的分析和试验。2.对小波分解后不同层的图形显示时,横坐标的比例还不够合理,到高层时基本分不清信号的特征。3.用于分解和重构的小波类型还非常有限(仅三个),不利于对不同信号进行最理想的小波分解,以及各种小波分解后的比较。4.小波重构时对高低通系数的权重的选取后所得到的信号只能一次一图显示,如果能实现多图同时显示,这样更能达到权重值的选择对小波去噪效果影响的对比之目的。总之,通过不断的摸索和实践,对知识的理解和掌握一定能不断的丰富和深入!