zoukankan      html  css  js  c++  java
  • [软件]MATLAB小波包的分解与重构

    该文章用来直观上先感受一下小波包的分解与重构
     
    例1
    有一个信号,变量名为wave,随便找一个信号load进来就行了。
    t=wpdec(wave,3,'dmey');
    t2 = wpjoin(t,[3;4;5;6]);
    sNod = read(t,'sizes',[3,4,5,6]);
    cfs3  = zeros(sNod(1,:));
    cfs4  = zeros(sNod(2,:));
    cfs5  = zeros(sNod(3,:));
    cfs6  = zeros(sNod(4,:));
    t3 = write(t2,'cfs',3,cfs3,'cfs',4,cfs4,'cfs',5,cfs5,'cfs',6,cfs6);
    wave2=wprec(t3);
    解释:
    第一行:将wave 用 meyr小波进行3层小波包分解,获得一个小波包树 t
    第二行:将小波包树的第二行的四个节点收起来,也就是让第二行的节点变为树的最底层节点。因为第一行中小波包树的节点个数是 第一层2个,第二层4个,第三层8个。现在将t2就是将第三层的节点再聚合回第二层。
    第三行:读取第二层四个节点系数的size
    第四~七行:将所有四个节点的小波包系数变为0
    第八行:将四个节点的系数重组到t3小波树中。
    第九行:对t3小波树进行重构,获得信号wave2
     
    可以预见,因为我们把小波树的节点系数都变为0了,所以信号也就全为0了。所以wave2是一个0向量。读者可以自行plot一下wave和wave2看看。进一步,如果我们只聚合第二层中的某几个节点,比如 4和5,即将第三行到第八行中 节点 3 和节点 6的语句删除或修改,那么意思就是将 4 5 节点的系数变为0,那么wave2肯定就不是0向量了。
     
     
    例2
    t=wpdec(wave,3,'dmey');
    t2 = wpjoin(t,[3;4;5;6]);
    cfs3=wpcoef(t,3);
    cfs4=wpcoef(t,4);
    cfs5=wpcoef(t,5);
    cfs6=wpcoef(t,6);
    t3 = write(t2,'cfs',3,cfs3,'cfs',4,cfs4,'cfs',5,cfs5,'cfs',6,cfs6);
    wave2=wprec(t3);
    解释:
    第一行:将wave 用 meyr小波进行3层小波包分解,获得一个小波包树 t
    第二行:将小波包树的第二行的四个节点收起来,也就是让第二行的节点变为树的最底层节点。
    第三~六行:获取四个节点的小波包系数 (小波包系数就是一个一维向量)
    第七行:将四个节点的系数重组到t3小波树中
    第八行:对t3小波树进行重构,获得信号wave2
     
    可以看出,该例子就是对一个小波包展开了,又原封不动的装回去了,所以说 wave2和wave是一样的。
     
    注意,wpjoin命令在这里是必要的,因为write函数只能将最底层的节点写进去。也就是说,如果我们将第三层的小波包系数进行修改的话,就不用wpjoin了,具体可以看例3
     
    例3
    t=wpdec(wave,3,'dmey');
    cfs7=wpcoef(t,7);
    cfs8=wpcoef(t,8);
    cfs9=wpcoef(t,9);
    cfs10=wpcoef(t,10);
    cfs11=wpcoef(t,11);
    cfs12=wpcoef(t,12);
    cfs13=wpcoef(t,13);
    cfs14=wpcoef(t,14);
    t3=write(t,'cfs',7,cfs7,'cfs',8,cfs8,'cfs',9,cfs9,'cfs',10,cfs10,'cfs',11,cfs11,'cfs',...
    12,cfs12,'cfs',13,cfs13,'cfs',14,cfs14);
    y=wprec(t3);
     
    该例子也是对一个小波包展开了,又原封不动的装回去了,只不过这次是直接对第三层节点进行的。
     
    这就是小波包的分解与重构的感受,希望对想学习小波的读者一点点启发。
  • 相关阅读:
    开源介绍:Google Guava、Google Guice、Joda-Time
    Java开发必用的工具包
    GitHub vs GitLab:它们有什么区别?
    ELK简单使用
    Sublime Text 2 快捷键大全
    跨域iframe高度自适应(兼容IE/FF/OP/Chrome)
    关于jQuery新的事件绑定机制on()的使用技巧
    指尖上的正则表达式–入门篇
    淘宝商城文本输入框效果模仿
    纯CSS打造Flow-Steps导航
  • 原文地址:https://www.cnblogs.com/gshang/p/10412038.html
Copyright © 2011-2022 走看看