1. 程式人生 > >小波變換 完美通俗講解 之 二

小波變換 完美通俗講解 之 二

說到這裡,可能你對scaling function以及多解析度分析已經比較理解了。但是,我們還沒有涉及到它們在小波變換中的具體應用,也就是還沒有回答剛才那個問題:憑空插了一個scaling function到小波basis組合中幹嘛。也就是說,我們希望理解scaling function是怎麼和小波函式結合的呢,多解析度能給小波變換帶來什麼樣的好處呢。這其實就是是小波變換中的核心知識。理解了這個,後面的小波變換就是純數學計算了。

好,我們已經知道,對於子空間V0,basis是scaling function:

對應的小波函式是:

然後子空間V1的basis集合是這倆哥們:

看出什麼規律了麼?多看幾次這三個圖,你會驚訝地發現,在V0中的scaling function和wavelet function的組合,其實就是V1中的basis!繼續這樣推導,V1本來的的basis是:

然後V1中對應的wavelet function是

他們的組合,本質上也就是V2的basis(參考圖2)。你繼續推導下去,會得到同樣的結論:在scale j的wavelet function,可以被用來將Vj的basis擴充套件到V(j+1)中去!這是一個非常非常關鍵的性質,因為這代表著,對任何一個子空間Vj,我們現在有兩種方法去得到它的orthonormal basis:

1. 一種就是它本來的basis

,對任意k。

2. 第二種就是它上一個子空間的basis

,對任意k,以及上一級子空間的wavelet function

,對任意k。

第二種選擇能給我們帶來額外的好處,那就是我們可以迴圈不斷地用上一級子空間的scaling function以及wavelet function的組合來作為當前子空間的基。換句話說,如果針對V3這個子空間,它實際上就有四種不同的,但是等價的orthonormal basis:

1. 本級(V3)的scaling function basis set

2. 上一級(V2)的scaling function + wavelet function;

3 . 上上一級(V1)的scaling function + 上上一級(V1)的wavelet function + 上一級(V2)的wavelet function;

4. 上上上一級(V0)的scaling function + 上上上一級(V0)的wavelet function + 上上一級(V1)的wavelet function + 上一級(V2)的wavelet function

好,看看最後一種選取方式,有沒有感到眼熟?對了,它就是我們之前提到的“針對此訊號space的哈爾小波basis組合”,參見圖1。現在我們知道了,這個scaling function不是憑空插進去的,而是通過不斷的巢狀迭代出來的:)

那為什麼我們最後選定的是這種選取方式呢?實際上,剛才介紹的這個性質已經告訴我們,對於任何的scale j0,我們都可以給我們的signal space找到一組orthonormal basis,這個basis是通過組合scale j0上的scaling function以及所有在scale j,j>j0上的wavelets得到的。這樣,基於這個orthonormal basis,所有訊號空間中的訊號都可以寫成組成這個basis的functions的線性組合:

對應的係數的計算和平常一樣:

這,就是最終的,也是最核心的,小波變換形式。不管是訊號壓縮,濾波,還是別的方式處理,只要是用小波變換,都逃不出這個基礎流程:

1. 選取合適的wavelet function和scaling function,從已有的訊號中,反算出係數c和d。

2. 對係數做對應處理

3. 從處理後的係數中重新構建訊號。

這裡的係數處理是區別你的應用的重點。比如影象或者視訊壓縮,就希望選取能將能量聚集到很小一部分系數中的小波,然後拋棄那些能量很小的小波係數,只保留少數的這些大頭係數,再反變換回去。這樣的話,影象訊號的能量並沒有怎麼丟失,影象體積卻大大減小了。

還有一個沒有解釋的問題是,為什麼要強調尺度函式和小波函式組成一個orthonormal basis呢?計算方便是一方面,還有一個原因是,如果他們滿足這個性質,就滿足瑞利能量定理,也就是說,訊號的能量,可以完全用每個頻域裡面的展開部分的能量,也就是他們的展開係數表示:

到這裡,我們對小波變換的形式就講完了。雖然是用的最簡單的哈爾小波為例子,但舉一反三即可。我們著重介紹了多解析度分析以及它給小波變換帶來的殺手鐗:時域頻域同時定位。結束之前,再多說幾句小波變換的意義。我們拿剛才例子中V3子空間的第二種可選擇的orthonormal basis作為例子:

左邊這四個basis組成元素,也就是scaling functions,的係數,表徵的是訊號的local平均(想想它們和訊號的內積形式),而右邊的這四個basis組成元素,也就是wavelet functions,的係數則表徵了在local平均中丟失的訊號細節。得益於此,多解析度分析能夠對訊號在越來越寬的區域上取平均,等同於做低通濾波,而且,它還能保留因為平均而損失的訊號細節,等同於做高通濾波!這樣,我們終於可以解釋了wavelet function和scaling function背後的物理意義了:wavelet function等同於對訊號做高通濾波保留變化細節,而scaling function等同於對訊號做低通濾波保留平滑的shape!

對小波變換的基礎知識,我們就講到這裡。需要注意的是,這只是小波變換最基本最基本的知識,但也是最核心的知識。掌握了這些,代表你對小波變換的物理意義有了一定的瞭解。但對於小波變換本身的講解,一本書都不一定能將講透,還有很多的基礎知識我都沒有講,比如如何構建自己的scaling function,選取合適的係數集h[k],並由此構建自己的wavelet functions。所以,如果有深入下去研究的同學,好好買一本書來看吧。而只是希望用小波變換來服務自己的應用的同學,個人覺得這些知識已經足夠讓你用來起步了。