http://blog.sina.com.cn/s/blog_8fc890a20101ecn7.html
最近用到小波方面的知識,尤其是小波包變換。
小波包變換的優勢:(大部分書上 網上都有,我就簡單摘了點過來)
由於正交小波變換只對信號的低頻部分做進一步分解,而對高頻部分也即信號的細節部分不再繼續分解,所以
小波變換能夠很好地表征一大類以低頻信息為主要成分的信號,但它不能很好地分解和表示包含大量細節信息(細小邊緣或紋理)的信號,如非平穩機械振動信號、遙感圖象、地震信號和生物醫學信號等。與之不同的是,
小波包變換可以對高頻部分提供更精細的分解,而且這種分解既無冗余,也無疏漏,所以對包含大量中、高頻信息的信號能夠進行更好的時頻局部化分析。
研究了兩天,發現如果從頭開始研究需要的時間太長,而且如果想真正弄懂小波,還需要了解泛函的知識並且硬着頭皮去看那些枯燥的公式。由於我們科研只要明白個大概,能夠找到合適的工具來使用,就可以了。因為之前我弄懂傅里葉變換的時候,也是從先會用再到逐漸深入理解的,所以這次我還是先從會用開始。研究了兩天之后,發現我小波變換沒弄懂什么,小波包先會用了。由於我痛苦的搜了整個網,慢慢理解了一些東西,所以把有用的幾個部分拿過來,結合MATLAB,給和我一樣想入門的同學一個參考。
首先,小波包的一些基本的基本要弄懂,就是小波包是從原始信號,分級向下分解。如下圖所示。
這就是小波包樹,其中節點的命名規則是從 (1,0)開始,叫1號, (1,1)是2號,,,,依此類推,(3,0)是7號,(3,7)是14號。 每個節點都有對應的小波包系數,這個系數決定了頻率的大小,也就是說頻率信息已經有了,但是時域信息在哪里呢? 那就是 order。 這個order就是這些節點的順序,也就是頻率的順序。
比如,節點的排序是 1,2,3,,,,14, 那么頻率就按先1號的頻率變化,后2號的,再3號的,,,然后14號的。
圖1
來看一個實例:
采樣頻率為1024Hz,采樣時間是1秒,有一個信號s是由頻率100和200Hz的正弦波混合的,我們用小波包來分解。
clear all
clc
fs=1024; %采樣頻率
f1=100; %信號的第一個頻率
f2=300; %信號第二個頻率
t=0:1/fs:1;
s=sin(2*pi*f1*t)+sin(2*pi*f2*t); %生成混合信號
[tt]=wpdec(s,3,'dmey'); %小波包分解,3代表分解3層,像圖1那樣,'dmey'使用meyr小波
plot(tt) %這個就是
畫出圖1那個圖,可以用鼠標在上面點
wpviewcf(tt,1);
%畫出時間頻率圖,如圖2
圖2
現在開始解釋:x軸很簡單,就是1024個點,對應1秒,每個點就代表1/1024秒,x軸詭異一下,最后一個數就是1. y軸上顯示的數字對應於 圖1 中的節點,從下面開始,順序是 7號節點,8號,10號,9號,,,,11號節點,這個順序是這么排列的,這是小波包自動排列的,不用管。只要知道怎么查看這個order就可以了。然后,y軸是頻率啊,怎么不是 100Hz和300Hz呢? 原因就是MATLAB這里沒有顯示頻率,顯示的是order,頻率我們要自己算,怎么算呢。
我們的采樣頻率是1024Hz,根據采樣定理,奈奎斯特采樣頻率是512Hz,我們分解了3層,最后一層就是 2^3=8個頻率段,每個頻率段的頻率區間是 512/8=64Hz,對吧,那看圖2,顏色重的地方一個是在8那里,一個在13那里,8是第二段,也就是 65-128Hz之間,13是第五段,也就是257-320Hz之間。這樣就說通了,正好這個原始信號只有兩個頻率段,一個100一個300。如果我們不是分解了3層,而是更多層,那么每個頻率段包含的頻率也就越窄,圖上有顏色的地方也會更細,也就是說更精細了,大家可以自己試試。將3改為6試試。由於原始信號的頻率在整個1秒鍾內都沒有改變,所以有顏色的地方是一個橫線。
再看一個實例:
有如下的一個信號,該信號的頻率從25Hz左右增長到103Hz,信號長度是256,fs就定為256Hz,也是采樣1秒。我們用上面的代碼來分析這個信號,不過這次分解層數選為4層,也就是有2^4=16個頻率段。每個頻段是 128/16=8Hz. 這個時候就明白了
前面講到的order的重要性了吧。如果排序不是按照15 16 18 17 21,,23那個順序拍的,就不可能出現這個隨時間而頻率增大的圖了。從圖上還可以看出,頻率從第三個,也就是24Hz(3*8),一路走高到13個,也就是13*8=104Hz,正好和信號的圖示一樣,頻率逐漸增大。
傳統的振動信號分析和處理方法一般都是采用傅立葉分析,它是一個窗口函數固定不變的分析方法,無法反映信號的非平穩、持時短、時域和頻域局部化等特性。
而小波分析是一種窗口面積固定但其形狀可改變,即時間和頻率窗都可改變的時頻局部化分析方法,由於它在分解的過程中只對低頻信號再分解,對高頻信號不再實施分解,使得它的頻率分辨率隨頻率升高而降低。
在這種情況下,小波包分解應運而生,它不僅對低頻部分進行分解,對高頻部分也實施了分解,而且小波包分解能根據信號特性和分析要求自適應地選擇相應頻帶與信號頻譜相匹配,是一種比小波分解更為精細的分解方法。
下面以一個爆破振動信號為例對其進行小波包分解。
對其采用db5 小波,進行3 層分解。分解樹如圖2 所示,左邊為三層分解樹,右邊為點擊相應節點得到的分解系數,圖示為原始信號(節點(0,0))。根據信號的采樣頻率即可得每一個分解節點的頻帶范圍,例如假設本里中數據的采樣頻率為1024 Hz,則奈奎斯特頻率為512 Hz。則進行三層分解時,共分為2^3 = 8 個頻帶,每個頻帶的帶寬為512/8 = 64 Hz。因此節點(3,0)的頻帶范圍為0~64 Hz,節點(3,1) 的頻帶范圍為65~128 Hz …………
分解后每個節點的小波包系數如圖3 和圖4 所示。
由此可見,原信號的主要能量集中在前兩個頻帶內,即0~64 Hz 和65~128 Hz 內。








