小波包變換的入門 MATLAB

2021-07-08 20:47:35 字數 2412 閱讀 9156

最近用到小波方面的知識,尤其是小波包變換。

小波包變換的優勢:(大部分書上 網上都有,我就簡單摘了點過來)

由於正交小波變換只對訊號的低頻部分做進一步分解,而對高頻部分也即訊號的細節部分不再繼續分解,所以小波變換能夠很好地表徵一大類以低頻資訊為主要成分的訊號,但它不能很好地分解和表示包含大量細節資訊(細小邊緣或紋理)的訊號,如非平穩機械振動訊號、遙感圖象、**訊號和生物醫學訊號等。與之不同的是,小波包變換可以對高頻部分提供更精細的分解,而且這種分解既無冗餘,也無疏漏,所以對包含大量中、高頻資訊的訊號能夠進行更好的時頻區域性化分析。

研究了兩天,發現如果從頭開始研究需要的時間太長,而且如果想真正弄懂小波,還需要了解泛函的知識並且硬著頭皮去看那些枯燥的公式。由於我們科研只要明白個大概,能夠找到合適的工具來使用,就可以了。因為之前我弄懂傅利葉變換的時候,也是從先會用再到逐漸深入理解的,所以這次我還是先從會用開始。研究了兩天之後,發現我小波變換沒弄懂什麼,小波包先會用了。由於我痛苦的搜了整個網,慢慢理解了一些東西,所以把有用的幾個部分拿過來,結合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  

clcfs=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,正好和訊號的圖示一樣,頻率逐漸增大。

小波包變換(函式應用介紹)

wpdec2函式 當前延拓模式是補零 裝載影象 load tire x包含裝載的影象 使用下面的函式進行影象分解 t wpdec2 x,2,db1 預設的熵準則是shannon熵 畫出小波包四叉樹 plot t wpdec函式 當前延拓模式是補零 裝載訊號 load noisdopp x noisd...

matlab幻方變換 Matlab入門1 幻方矩陣

個人理解matlab是以工具為主,為了解決數學問題 作圖而存在的輔助工具,我們只需要針對一系列問題思考需要呼叫的知識然後doc help呼叫文件學習,通過逐步積累最後通透相關數學問題 學會對各種常見圖形進行繪製即可。於是關於matlab的知識我的想法就是把每一道題需要用到的知識挖深掌握,然後其他基礎...

Matlab小波包分解後如何求各頻帶訊號的能量值?

clear clc n 3 wpname db3 b,a butter 8,5 100 99 100 load a1 1 1 load k301 1 4 data filter b,a,data data data mean data data detrend data wpt1 wpdec dat...