小波變換C++實現(一)----單層小波變換


文章轉自:

            http://www.cnblogs.com/IDoIUnderstand/archive/2013/03/30/3280724.html

           【小波變換】STL版 一維離散小波變換(DWT)庫,完全按matlab的wavelet toolbox 的API實現的 - richard.hmm - 博客園

            http://www.cnblogs.com/IDoIUnderstand/archive/2013/04/02/3280723.html

一、小波分解

  按照Mallat分解算法,一維多層小波分解的過程可類似看成對一維單層小波變換的遞歸調用,因此先從一維單層離散小波變換說起。

    1、邊界延拓

  邊界延拓的方式有 周期延拓 和 對稱延拓 兩張方式,在MATLAB的實現中采用的是對稱延拓的方式,為了便於對比,采用對稱延拓的方式。

  對稱延拓實際上是按照左右對稱的方式延拓數據,延拓的個數根據第2步計算卷積后的數據長度確定

   設濾波器長度為L,則對稱延拓的方式為在信號兩邊各延拓L-1個元素,延拓完之后,信號的長度為SignalLen+2*(L-1)。

  2、卷積的計算

  由於信號分析中采用的是離散的數據,因此卷積的計算使用離散卷積計算方法。計算過程參見:離散卷積的計算  

  分別計算延拓之后的信號與濾波器的高頻成分和低頻成分的離散卷積得到小波變換后的高頻成分(細節分量)和低頻成分(近似分量)。

   3、下采樣

  為了保證兩組濾波器輸出系列總長度與輸入序列總長度保持一致,對每組濾波器的結果進行二抽取(下采樣)

  其方法為取延拓信號與濾波器序列卷積的奇數序號的元素(從0開始)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM