多小波变换的矩阵形式.ppt
《多小波变换的矩阵形式.ppt》由会员分享,可在线阅读,更多相关《多小波变换的矩阵形式.ppt(100页珍藏版)》请在三一办公上搜索。
1、多小波变换的矩阵形式及其软件实现,我们知道,进行1次多小波变换的分解与重构公式为:,与单小波不同之处在于,公式中的s(n,k)是r维列向量,H(k),G(k)是rXr大小的矩阵。,因此,在使用这个公式前,必须进行预处理,使进行小波变换的一维数据变成rXN维的数据,这称为预滤波。,预滤波后,进行小波分解,然后进行重构,重构后再将rXN维数据变成1维数据,这称为后滤波。,预滤波与后滤波的矩阵表示,从前面的解释中可以看出,假设多小波的重数是r维的,多小波分解算法要求有初始系数(即r维向量)才能进行计算,而通常的输入数据是一维的信号,或者是函数f(t)的等间距采样值,为了应用上面的公式,这就需要将一维
2、数据或者f(t)的等间距采样值转化为r维向量,这个转化的过程一般称为预处理或者预滤波。对一维数据进行预滤波后,进行小波变换即小波分解,然后进行逆变换即小波重构,还得将重构后的r维向量转化为一维数据,这个过程就称为后滤波或者后处理。一般来说,小波重构是精确重构,则需要后滤波是预滤波的逆过程。一维多小波变换过程如下:一维信号预滤波分解重构后滤波一维信号研究多小波变换的矩阵表示,首先应该知道预滤波与后滤波的矩阵表示形式。,然后做变换,最后结果中,取每个向量的第1个元素就是不重复预滤波方法的后滤波。这种方法我们不讨论,如果你想讨论的话,我们本次讲座的内容也完全能够处理这种方法。2、恒等预滤波方法 就是
3、按信号的前后顺序,直接将信号变成向量,不做其它处理,直接进行多小波变换的方法。例如对s=a,b,c,d,有,预滤波方法常见有:1、重复预滤波方法 比如对重数r=2的GHM小波,如果s=a,b,c,d;则将s变成向量,恒等预滤波方法适用于平衡多小波。,3、插值预滤波方法 这种方法见此软件目录下的原创文献:Design of prefilters for discrete multiwavelet transforms.pdf,具体想法是针对特定的多小波,将给定的要做小波变换的一维信号f(t)看成是等间隔采样的ft_kj,然后通过插值方法得到向量c_0k,MWMP软件包中文件coef_prep.m
4、中,有关于GHM的2个预滤波方法,例如对于GHM小波,其双正交插值预滤波方法为:,此软件目录下的子目录“预滤波”和“新加坡国立大学Qingtang Jiang的多小波文章(00年前后)”,都是一些关于预滤波的论文,请参考。,4、Hardin-Roach预滤波方法插值预滤波方法不能同时保持逼近阶和正交性,而这种方法能同时保持逼近阶和正交性,具体参考此目录下2 篇原创文献“Multiwavelet Prefilters I.pdf”、“Multiwavelet Prefilters II.pdf”。,预滤波的一般表示形式:,由于在实际应用中,我们使用的多小波都是2重的,即r=2,此时,预滤波器可以
5、写成如下的通用形式:,其中P_0,P_1,P_L就是长度为L+1的预滤波器。下面我们给出一些小波的预滤波与后处理的具体滤波器,并且与MWMP软件包中文件coef_prep.m的相同小波进行比较说明,通过这种比较,你就知道,如果你在其它文献或者教材上看到一个新的预滤波器,如何加入文件coef_prep.m 中了。,下面是一些常用的双正交插值预滤波、后滤波的滤波器,其中P_k是预滤波器,Q_k是后滤波器:,预滤波与后滤波的一般关系,STT多小波,也称SA4多小波,其中P_0是预滤波器,Q_0是后滤波器:,预滤波与后滤波的关系,关于预滤波方法的程序验证:,对GHM小波,其双正交插值预滤波方法如下,请
6、注意:后滤波的公式虽然写成这样形式,但它是预滤波的逆过程,因此,请注意观察下面程序中关于后滤波的实际计算方法,或者看看论文Design of prefilters for discrete multiwavelet transforms,%本程序演示对GHM多小波,使用ghmap方法进行预滤波与后滤波的矩阵计算方法x=8,12,0,5,20,3,9,16,22,6,55,21;xx=8,12;0,5;20,3;9,16;22,6;55,21;disp(原始数据x=);disp(x);disp(向量化后的数据xx=);disp(xx);fp=prep1D_appe(x,ghmap);disp(使
7、用prep1D_appe函数对x进行预滤波后的数据fp=);disp(fp);PR,PO=coef_prep(ghmap);a=PR(:,1:2);b=PR(:,3:4);x1=;for i=1:length(xx)-1 x1=x1,a*xx(:,i)+b*xx(:,i+1);end x1=x1,a*xx(:,length(xx)+b*xx(:,1);disp(直接使用矩阵乘积计算,得到的xx的预滤波的结果x1=);disp(x1);aa=PO(:,1:2);bb=PO(:,3:4);x2=;x2=x2,aa*x1(:,length(x1)+bb*x1(:,1);for i=1:length(
8、x1)-1 x2=x2,aa*x1(:,i)+bb*x1(:,i+1);end disp(对前面预滤波的数据x1,使用矩阵乘积方法进行后滤波,得到x2=);disp(x2);fp1=postp1D_appe(fp,ghmap);disp(使用prep1D_appe函数对x进行后滤波,得到数据fp1=);disp(round(fp1);,本程序名:mdwt_test1.m,使用ghmap预滤波器计算,mdwt_test1原始数据x=8 12 0 5 20 3 9 16 22 6 55 21向量化后的数据xx=8 0 20 9 22 55 12 5 3 16 6 21使用prep1D_appe函数
9、对x进行预滤波后的数据fp=12.7279 9.7227 10.3414 22.3623 25.7210 35.2670 0 20.0000 9.0000 22.0000 55.0000 8.0000直接使用矩阵乘积计算,得到的xx的预滤波的结果x1=12.7279 9.7227 10.3414 22.3623 25.7210 35.2670 0 20.0000 9.0000 22.0000 55.0000 8.0000对前面预滤波的数据x1,使用矩阵乘积方法进行后滤波,得到x2=8.0000 0 20.0000 9.0000 22.0000 55.0000 12.0000 5.0000 3.
10、0000 16.0000 6.0000 21.0000使用prep1D_appe函数对x进行后滤波,得到数据fp1=8 12 0 5 20 3 9 16 22 6 55 21,%本程序演示对GHM多小波,使用ghmorap方法进行预滤波与后滤波的矩阵计算方法x=8,12,0,5,20,3,9,16,22,6,55,21;xx=8,12;0,5;20,3;9,16;22,6;55,21;disp(原始数据x=);disp(x);disp(向量化后的数据xx=);disp(xx);fp=prep1D_appe(x,ghmorap);disp(使用prep1D_appe函数对x进行预滤波后的数据fp
11、=);disp(fp);PR,PO=coef_prep(ghmorap);a=PR(:,1:2);b=PR(:,3:4);x1=;for i=1:length(xx)-1 x1=x1,a*xx(:,i)+b*xx(:,i+1);end x1=x1,a*xx(:,length(xx)+b*xx(:,1);disp(直接使用矩阵乘积计算,得到的xx的预滤波的结果x1=);disp(x1);aa=PO(:,1:2);bb=PO(:,3:4);x2=;x2=x2,aa*x1(:,length(x1)+bb*x1(:,1);for i=1:length(x1)-1 x2=x2,aa*x1(:,i)+bb
12、*x1(:,i+1);end disp(对前面预滤波的数据x1,使用矩阵乘积方法进行后滤波,得到x2=);disp(x2);fp1=postp1D_appe(fp,ghmorap);disp(使用prep1D_appe函数对x进行后滤波,得到数据fp1=);disp(round(fp1);,本程序名:mdwt_test2.m,使用ghmorap预滤波器计算,mdwt_test2原始数据x=8 12 0 5 20 3 9 16 22 6 55 21向量化后的数据xx=8 0 20 9 22 55 12 5 3 16 6 21使用prep1D_appe函数对x进行预滤波后的数据fp=12.8245
13、 5.9335 5.7146 17.9971 11.1835 27.7171-1.2411 19.2250 6.7448 20.2496 51.5994 5.1272直接使用矩阵乘积计算,得到的xx的预滤波的结果x1=12.8245 5.9335 5.7146 17.9971 11.1835 27.7171-1.2411 19.2250 6.7448 20.2496 51.5994 5.1272对前面预滤波的数据x1,使用矩阵乘积方法进行后滤波,得到x2=8.0000 0.0000 20.0000 9.0000 22.0000 55.0000 12.0000 5.0000 3.0000 16.
14、0000 6.0000 21.0000使用prep1D_appe函数对x进行后滤波,得到数据fp1=8 12 0 5 20 3 9 16 22 6 55 21,%本程序演示对Sa4多小波,使用sa4ap方法进行预滤波与后滤波的矩阵计算方法x=8,12,0,5,20,3,9,16,22,6,55,21;xx=8,12;0,5;20,3;9,16;22,6;55,21;disp(原始数据x=);disp(x);disp(向量化后的数据xx=);disp(xx);fp=prep1D_appe(x,sa4ap);disp(使用prep1D_appe函数对x进行预滤波后的数据fp=);disp(fp);
15、PR,PO=coef_prep(sa4ap);x1=;for i=1:length(xx)x1=x1,PR*xx(:,i);enddisp(直接使用矩阵乘积计算,得到的xx的预滤波的结果x1=);disp(x1);x2=;for i=1:length(x1)-1 x2=x2,PO*x1(:,i);enddisp(对前面预滤波的数据x1,使用矩阵乘积方法进行后滤波,得到x2=);disp(x2);fp1=postp1D_appe(fp,sa4ap);disp(使用prep1D_appe函数对x进行后滤波,得到数据fp1=);disp(round(fp1);,本程序名:mdwt_test3.m,使
16、用sa4ap预滤波器计算,mdwt_test3原始数据x=8 12 0 5 20 3 9 16 22 6 55 21向量化后的数据xx=8 0 20 9 22 55 12 5 3 16 6 21使用prep1D_appe函数对x进行预滤波后的数据fp=14.1421 3.5355 16.2635 17.6777 19.7990 53.7401 2.8284 3.5355-12.0208 4.9497-11.3137-24.0416直接使用矩阵乘积计算,得到的xx的预滤波的结果x1=14.1421 3.5355 16.2635 17.6777 19.7990 53.7401 2.8284 3.5
17、355-12.0208 4.9497-11.3137-24.0416对前面预滤波的数据x1,使用矩阵乘积方法进行后滤波,得到x2=8.0000 0 20.0000 9.0000 22.0000 12.0000 5.0000 3.0000 16.0000 6.0000使用prep1D_appe函数对x进行后滤波,得到数据fp1=8 12 0 5 20 3 9 16 22 6 55 21,通过前面的3个程序,可以看出,预滤波和后滤波的计算可以用矩阵表示,我们看一个例子。假设我们使用GHM多小波的双正交GHMAP预滤波与后滤波方法,对12个数据的一维信号s进行计算,预滤波与后滤波变换矩阵可以表示为:
18、,%本程序演示对GHM多小波,使用ghmap方法进行预滤波与后滤波的矩阵计算方法s=8,12,0,5,20,3,9,16,22,6,55,21;disp(原始数据x=);disp(s);PR,PO=coef_prep(ghmap);a=PR(:,1:2);b=PR(:,3:4);c=zeros(size(a);%构造预滤波变换矩阵pr_matpr_mat=a,b,c,c,c,c;c,a,b,c,c,c;c,c,a,b,c,c;c,c,c,a,b,c;c,c,c,c,a,b;b,c,c,c,c,a;s1=pr_mat*s;disp(直接使用矩阵乘积pr_mat*s计算,得到s的预滤波的结果s1=
19、);disp(s1);fp=prep1D_appe(s,ghmap);disp(MWMP中的相同预滤波方法计算得fp,结果如下,可以看出,将s1向量化后就是fp);disp(fp);%构造后滤波变换矩阵po_matx=PO(:,1:2);y=PO(:,3:4);z=zeros(size(x);po_mat=y,z,z,z,z,x;x,y,z,z,z,z;z,x,y,z,z,z;z,z,x,y,z,z;z,z,z,x,y,z;z,z,z,z,x,y;s2=po_mat*s1;disp(直接使用矩阵乘积po_mat*s1计算,得到的s1的后滤波的结果s2=);disp(round(s2);,本程序
20、名:mdwt_test4.m,使用ghmap预滤波器计算,mdwt_test4原始数据x=8 12 0 5 20 3 9 16 22 6 55 21直接使用矩阵乘积pr_mat*s计算,得到s的预滤波的结果s1=12.7279 0 9.7227 20.0000 10.3414 9.0000 22.3623 22.0000 25.7210 55.0000 35.2670 8.0000MWMP中的相同预滤波方法计算得fp,结果如下,可以看出,将s1向量化后就是fp12.7279 9.7227 10.3414 22.3623 25.7210 35.2670 0 20.0000 9.0000 22.0
21、000 55.0000 8.0000直接使用矩阵乘积po_mat*s1计算,得到的s1的后滤波的结果s2=8 12 0 5 20 3 9 16 22 6 55 21,注意,如果将上面程序中的ghm小波换成sa4小波,使用sa4ap方法进行计算,那么预滤波矩阵P和后滤波矩阵Q是什么样子的形式?显然,它们都是对角矩阵。,%本程序演示对SA4多小波,使用sa4ap方法进行预滤波与后滤波的矩阵计算方法s=8,12,0,5,20,3,9,16,22,6,55,21;disp(原始数据s=);disp(s);PR,PO=coef_prep(sa4ap);x=PR;y=PO;z=zeros(size(x);
22、%构造预滤波变换矩阵pr_matpr_mat=x,z,z,z,z,z;z,x,z,z,z,z;z,z,x,z,z,z;z,z,z,x,z,z;z,z,z,z,x,z;z,z,z,z,z,x;s1=pr_mat*s;disp(直接使用矩阵乘积pr_mat*s计算,得到的s的预滤波的结果s1=);disp(s1);fp=prep1D_appe(s,sa4ap);disp(MWMP中的相同预滤波方法计算得fp,结果如下,可以看出,将s1向量化后就是fp);disp(fp);%构造后滤波变换矩阵po_matpo_mat=y,z,z,z,z,z;z,y,z,z,z,z;z,z,y,z,z,z;z,z,z
23、,y,z,z;z,z,z,z,y,z;z,z,z,z,z,y;s2=po_mat*s1;disp(直接使用矩阵乘积po_mat*s1计算,得到的s1的后滤波的结果s2=);disp(round(s2);,从前一个幻灯片知道,如果预滤波和后滤波器的长度为1,则预滤波变换矩阵P和后滤波变换矩阵Q都是对角矩阵,而SA4多小波的预滤波和后滤波器的长度为1。下面的程序名为mdwt_test5.m,演示对12个数据s,使用此方法计算的一段程序。,mdwt_test5原始数据s=8 12 0 5 20 3 9 16 22 6 55 21直接使用矩阵乘积pr_mat*s计算,得到的s的预滤波的结果s1=14.
24、1421 2.8284 3.5355 3.5355 16.2635-12.0208 17.6777 4.9497 19.7990-11.3137 53.7401-24.0416MWMP中的相同预滤波方法计算得fp,结果如下,可以看出,将s1向量化后就是fp 14.1421 3.5355 16.2635 17.6777 19.7990 53.7401 2.8284 3.5355-12.0208 4.9497-11.3137-24.0416直接使用矩阵乘积po_mat*s1计算,得到的s1的后滤波的结果s2=8 12 0 5 20 3 9 16 22 6 55 21,function prmat,
25、pomat=pmatrix(len,pflt)PR,PO=coef_prep(pflt);i,j=size(PR);r=min(i,j);z=zeros(r,r);k=max(i/r,j/r);n=len/r;pr1=PR,zeros(r,len-r*k);po1=zeros(r,len-r*k),PO;prmat=;pomat=;for qq=1:n prmat=prmat;pr1;pr1=circshift(pr1,r);po1=circshift(po1,r);pomat=pomat;po1;end,假设进行预滤波或者后滤波变换的数据长度为len,预滤波方法pflt就是MWMP软件包中所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多小波 变换 矩阵 形式
链接地址:https://www.31ppt.com/p-5697569.html