小波變換

牢騷就不繼續發揮了。在這個系列文章裏,我但願能簡單介紹一下小波變換,它和傅立葉變換的比較,以及它在移動平臺作motion detection的應用。若是不作特殊說明,均以離散小波爲例子。考慮到我之前看中文資料的痛苦程度,我會盡可能用簡單,可是直觀的方式去介紹。有些必要的公式是不能少的,但我儘可能少用公式,多用圖。另外,我不是一個好的翻譯者,因此對於某些實在翻譯不清楚的術語,我就會直接用英語。我並不claim我會把整個小波變換講清楚,這是不可能的事,我只能盡力去圍繞要點展開,好比小波變換相對傅立葉變換的好處,這些好處的緣由是什麼,小波變換的幾個根本性質是什麼,背後的推導是什麼。我但願達到的目的就是一個小波變換的初學者在看完這個系列以後,就能用matlab或者別的工具對信號作小波變換的基本分析而且知道這個分析大概是怎麼回事。數組

最後說明,我不是研究信號處理的專業人士,因此文中必有疏漏或者錯誤,如發現還請不吝賜教。閉包

要講小波變換,咱們必須瞭解傅立葉變換。要了解傅立葉變換,咱們先要弄清楚什麼是」變換「。不少處理,無論是壓縮也好,濾波也好,圖形處理也好,本質都是變換。變換的是什麼東西呢?是基,也就是basis。若是你暫時有些遺忘了basis的定義,那麼簡單說,在線性代數裏,basis是指空間裏一系列線性獨立的向量,而這個空間裏的任何其餘向量,均可以由這些個向量的線性組合來表示。那basis在變換裏面啥用呢?好比說吧,傅立葉展開的本質,就是把一個空間中的信號用該空間的某個basis的線性組合表示出來,要這樣表示的緣由,是由於傅立葉變換的本質,是。小波變換天然也不例外的和basis有關了。再好比你用Photoshop去處理圖像,裏面的圖像拉伸,反轉,等等一系列操做,都是和basis的改變有關。函數

既然這些變換都是在搞基,那咱們天然就容易想到,這個basis的選取很是重要,由於basis的特色決定了具體的計算過程。一個空間中可能有不少種形式的basis,什麼樣的basis比較好,很大程度上取決於這個basis服務於什麼應用。好比若是咱們但願選取有利於壓縮的話,那麼就但願這個basis能用其中不多的向量來最大程度地表示信號,這樣即便把別的向量給砍了,信號也不會損失不少。而若是是圖形處理中常見的線性變換,最省計算量的完美basis就是eigenvector basis了,由於此時變換矩陣T對它們的做用等同於對角矩陣( Tv_n = av_n,a是eigenvalue )。總的來講,拋開具體的應用不談,全部的basis,咱們都但願它們有一個共同的特色,那就是,容易計算,用最簡單的方式呈現最多的信號特性。工具

好,如今咱們對變換有了基本的認識,知道他們其實就是在搞基。固然,搞基也是分形式的,不一樣的變換,搞基的妙處各有不一樣。接下來先看看,傅立葉變換是在幹嗎。網站

傅立葉級數最先是Joseph Fourier 這我的提出的,他發現,這個basis不只僅存在與vector space,還存在於function space。這個function space本質上仍是一個linear vector space,能夠是有限的,能夠是無限的,只不過在這個空間裏,vector就是function了,而對應的標量就是實數或者複數。在vector space裏,你有vector v能夠寫成vector basis的線性組合,那在function space裏,function f(x)也能夠寫成對應function basis的線性組合,也有norm。你的vector basis能夠是正交的,個人function basis也能夠是正交的(好比sin(t)和sin(2t))。惟一不一樣的是,個人function basis是無窮盡的,由於個人function space的維度是無窮的。好,具體來講,那就是如今咱們有一個函數,f(x)。咱們但願將它寫成一些cos函數和一些sin函數的形式,像這樣
spa

again,這是一個無限循環的函數。其中的1,cosx, sinx, cos2x …..這些,就是傅立葉級數。傅立葉級數應用如此普遍的主要緣由之一,就是它們這幫子function basis是正交的,這就是有趣的地方了。爲何function basis正交如此重要呢?咱們說兩個vector正交,那就是他倆的內積爲0。那對於function basis呢?function basis怎麼求內積呢?翻譯

如今先複習一下vector正交的定義。咱們說兩個vector v,w若是正交的話,應符合:orm

那什麼是function正交呢?假設咱們有兩個函數f(x)和g(x),那是什麼?咱們遵循vector的思路去想,兩個vector求內積,就是把他們相同位置上對應的點的乘積作一個累加。那移過來,就是對每個x點,對應的f和g作乘積,再累加。不過問題是,f和g都是無限函數阿,x又是一個連續的值。怎麼辦呢?向量是離散的,因此累加,函數是連續的,那就是…….積分!
視頻

咱們知道函數內積是這樣算的了,天然也就容易證實,按照這個形式去寫的傅立葉展開,這些級數確實都是兩兩正交的。證實過程這裏就不展開了。好,下一個問題就是,爲何它們是正交basis如此重要呢?這就牽涉到係數的求解了。咱們研究了函數f,研究了級數,一堆三角函數和常數1,那係數呢?a0, a1, a2這些係數該怎麼肯定呢?好,好比我這裏準備求a1了。我如今知道什麼?信號f(x)是已知的,傅立葉級數是已知的,咱們怎麼求a1呢?很簡單,把方程兩端的全部部分都求和cosx的內積,即:
ip

而後咱們發現,由於正交的性質,右邊全部非a1項所有消失了,由於他們和cosx的內積都是0!全部就簡化爲

這樣,a1就求解出來了。到這裏,你就看出正交的奇妙性了吧:)

好,如今咱們知道,傅立葉變換就是用一系列三角波來表示信號方程的展開,這個信號能夠是連續的,能夠是離散的。傅立葉所用的function basis是專門挑選的,是正交的,是利於計算coefficients的。但千萬別誤解爲展開變換所用的basis都是正交的,這徹底取決於具體的使用需求,好比泰勒展開的basis就只是簡單的非正交多項式。

有了傅立葉變換的基礎,接下來,咱們就看看什麼是小波變換。首先來講說什麼是小波。所謂波,就是在時間域或者空間域的震盪方程,好比正弦波,就是一種波。什麼是波分析?針對波的分析拉(囧)。並非說小波分析才屬於波分析,傅立葉分析也是波分析,由於正弦波也是一種波嘛。那什麼是小波呢?這個」小「,是針對傅立葉波而言的。傅立葉所用的波是什麼?正弦波,這玩意以有着無窮的能量,一樣的幅度在整個無窮大區間裏面振盪,像下面這樣:

那小波是什麼呢?是一種能量在時域很是集中的波。它的能量是有限的,並且集中在某一點附近。好比下面這樣:

這種小波有什麼好處呢?它對於分析瞬時時變信號很是有用。它有效的從信號中提取信息,經過伸縮和平移等運算功能對函數或信號進行多尺度細化分析,解決了傅立葉變換不能解決的許多困難問題。恩,以上就是一般狀況下你能在國內網站上搜到的小波變換文章告訴你的。但爲何呢?這是我但願在這個系列文章中講清楚的。不過在這篇文章裏,我先點到爲止,把小波變換的重要特性以及優勢cover了,在下一篇文章中再具體推導這些特性。

小波變換的本質和傅立葉變換相似,也是用精心挑選的basis來表示信號方程。每一個小波變換都會有一個mother wavelet,咱們稱之爲母小波,同時還有一個scaling function,中文是尺度函數,也被成爲父小波。任何小波變換的basis函數,其實就是對這個母小波和父小波縮放和平移後的集合。下面這附圖就是某種小波的示意圖:

從這裏看出,這裏的縮放倍數都是2的級數,平移的大小和當前其縮放的程度有關。這樣的好處是,小波的basis函數既有高頻又有低頻,同時還覆蓋了時域。對於這點,咱們會在以後詳細闡述。

小波展開的形式一般都是這樣(注意,這個只是近似表達,嚴謹的展開形式請參考第二篇):

其中的就是小波級數,這些級數的組合就造成了小波變換中的基basis。和傅立葉級數有一點不一樣的是,小波級數一般是orthonormal basis,也就是說,它們不只兩兩正交,還歸一化了。小波級數一般有不少種,可是都符合下面這些特性:

1. 小波變換對無論是一維仍是高維的大部分信號都能cover很好。這個和傅立葉級數有很大區別。後者最擅長的是把一維的,類三角波連續變量函數信號映射到一維繫數序列上,但對於突變信號或任何高維的非三角波信號則幾乎無能爲力。

2. 圍繞小波級數的展開可以在時域和頻域上同時定位信號,也就是說,信號的大部分能量都能由很是少的展開係數,好比a_{j,k},決定。這個特性是得益於小波變換是二維變換。咱們從二者展開的表達式就能夠看出來,傅立葉級數是,而小波級數是

3. 從信號算出展開係數a須要很方便。廣泛狀況下,小波變換的複雜度是O(Nlog(N)),和FFT至關。有很多很快的變換甚至能夠達到O(N),也就是說,計算複雜度和信號長度是線性的關係。小波變換的等式定義,能夠沒有積分,沒有微分,僅僅是乘法和加法便可以作到,和現代計算機的計算指令徹底match。

可能看到這裏,你會有點暈了。這些特性是怎麼來的?爲何須要有這些特性?具體到實踐中,它們究竟是怎麼給小波變換帶來比別人更強的好處的?計算簡單這個可能好理解,由於前面咱們已經講過正交特性了。那麼二維變換呢?頻域和時域定位是如何進行的呢?恩,我徹底理解你的感覺,由於當初我看別的文章,也是有這些問題,就是看不到答案。要說想徹底理解小波變換的這些本質,須要詳細的講解,因此我就把它放到下一篇了。

接下來,上幾張圖,咱們以一些基本的信號處理來呈現小波變換比傅立葉變換好的地方,我保證,你看了這個比較以後,大概能隱約感覺到小波變換的強大,並對背後的原理充滿期待:)

假設咱們如今有這麼一個信號:

看到了吧,這個信號就是一個直流信號。咱們用傅立葉將其展開,會發現形式很是簡單:只有一個級數係數不是0,其餘全部級數係數都是0。好,咱們再看接下來這個信號:

簡單說,就是在前一個直流信號上,增長了一個突變。其實這個突變,在時域中看來很簡單,前面仍是很平滑的直流,後面也是很平滑的直流,就是中間有一個階躍嘛。可是,若是咱們再次讓其傅立葉展開呢?全部的傅立葉級數都爲非0了!爲何?由於傅立葉必須用三角波來展開信號,對於這種變換忽然而劇烈的信號來說,即便只有一小段變換,傅立葉也不得不用大量的三角波去擬合,就像這樣:

看看上面這個圖。學過基本的信號知識的朋友估計都能想到,這不就是Gibbs現象麼?Exactly。用比較八股的說法來解釋,Gibbs現象是因爲展開式在間斷點鄰域不能均勻收斂所引發的,即便在N趨於無窮大時,這一現象也依然存在。其實通俗一點解釋,就是當變化太sharp的時候,三角波fit不過來了,就湊合出Gibbs了:)

接下來咱們來看看,若是用剛纔舉例中的那種小波,展開以後是這樣的:

看見了麼?只要小波basis不和這個信號變化重疊,它所對應的級數係數都爲0!也就是說,假如咱們就用這個三級小波對此信號展開,那麼只有3個級數係數不爲0 。你可使用更復雜的小波,無論什麼小波,大部分級數係數都會是0。緣由?因爲小波basis的特殊性,任何小波和常量函數的內積都趨近於0。換句話說,選小波的時候,就須要保證母小波在一個週期的積分趨近於0。正是這個有趣的性質,讓小波變換的計算以及對信號的詮釋比傅立葉變換更勝一籌!緣由在於,小波變換容許更加精確的局部描述以及信號特徵的分離。一個傅立葉係數一般表示某個貫穿整個時間域的信號份量,所以,即便是臨時的信號,其特徵也被強扯到了整個時間週期去描述。而小波展開的係數則表明了對應份量它當下的本身,所以很是容易詮釋。

小波變換的優點不只僅在這裏。事實上,對於傅立葉變換以及大部分的信號變換系統,他們的函數基都是固定的,那麼變換後的結果只能循序漸進被分析推導出來,沒有任何靈活性,好比你若是決定使用傅立葉變換了,那basis function就是正弦波,你無論怎麼scale,它都是正弦波,即便你舉出餘弦波,它仍是移相後的正弦波。總之你就只能用正弦波,沒有任何商量的餘地。而對於小波變換來說,基是變的,是能夠根據信號來推導或者構建出來的,只要符合小波變換的性質和特色便可。也就是說,若是你有着比較特殊的信號須要處理,你甚至能夠構建一個專門針對這種特殊信號的小波basis function集合對其進行分析。這種靈活性是任何別的變換都沒法比擬的。總結來講,傅立葉變換適合週期性的,統計特性不隨時間變化的信號; 而小波變換則適用於大部分信號,尤爲是瞬時信號。它針對絕大部分信號的壓縮,去噪,檢測效果都特別好。

看到這裏,你應該大概瞭解了小波變換針對傅立葉變換的優勢了。你也許對背後的緣由還存在一些疑問,並但願深刻了解一些小波的構建等知識,請移步本系列第二篇:

 

 

在上一篇中講到,每一個小波變換都會有一個mother wavelet,咱們稱之爲母小波,同時還有一個father wavelet,就是scaling function。而該小波的basis函數其實就是對這個母小波和父小波縮放和平移造成的。縮放倍數都是2的級數,平移的大小和當前其縮放的程度有關。

 

還講到,小波系統有不少種,不一樣的母小波,衍生的小波基就徹底不一樣。小波展開的近似形式是這樣:

 

 

其中的就是小波級數,這些級數的組合就造成了小波變換中的基basis。和傅立葉級數有一點不一樣的是,小波級數一般是orthonormal basis,也就是說,它們不只兩兩正交,還歸一化了。

 

咱們還講了通常小波變換的三個特色,就是小波級數是二維的,能定位時域和頻域,計算很快。但咱們並無深刻講解,好比,如何理解這個二維?它是如何同時定位頻域和時域的?

 

在這一篇文章裏,咱們就來討論一下這些特性背後的原理。

 

首先,咱們一直都在講小波展開的近似形式。那什麼是完整形式呢?以前講到,小波basis的造成,是基於基本的小波函數,也就是母小波來作縮放和平移的。可是,母小波並不是惟一的原始基。在構建小波基函數集合的時候,一般還要用到一個函數叫尺度函數,scaling function,人們一般都稱其爲父小波。它和母小波同樣,也是歸一化了,並且它還須要知足一個性質,就是它和對本身自己週期平移的函數兩兩正交:

 

 

 

另外,爲了方便處理,父小波和母小波也須要是正交的。能夠說,完整的小波展開就是由母小波和父小波共同定義的。

 

 

其中是母小波,是父小波。須要提醒一點的是,這個正交純粹是爲了小波分析的方便而引入的特性,並非說小波變換的基就必定必須是正交的。但大部分小波變換的基確實是正交的,因此本文就直接默認正交爲小波變換的主要性質之一了。引入這個父小波呢,主要是爲了方便作多解析度分析(multiresolution analysis, MRA)。說到這裏,你的問題可能會井噴了:好好的爲何出來一個父小波呢?這個scaling function是拿來幹嗎的?它背後的物理意義是什麼?wavelet function背後的物理意義又是什麼?這個多解析度分析又是什麼呢?不急,下面,咱們圍繞一個例子來鞏固一下前面的知識,同時再引出新的特性。

 

假設咱們有這樣一個信號:

 

 

該信號長度爲8,是離散的一維信號。咱們要考慮的,就是如何用小波將其展開。爲了方便講解,咱們考慮最簡單的一種小波,哈爾小波。下面是它的一種母小波:

 

 

那如何構建基於這個母小波的基呢?剛纔提到了,要縮放,要平移。咱們先試試縮放,那就是ψ(2n):

 

 

但這樣的話,它與本身的內積就不是1了,不符合小波基orthonormal的要求,因此咱們要在前面加一個係數根號二,這樣咱們就獲得了另外一個哈爾小波的basis function:

 

 

同理,咱們能夠一直這樣推廣下去作scale,獲得4n,8n,…….下的basis function。固然在這個例子裏,咱們信號長度就是8,因此作到4n就夠了。但推廣來講,就是這種scaling對母小波的做用爲,這是歸一化後的表示形式。

 

平移的話也很簡單,咱們能夠對母小波進行平移,也能夠對scale以後的basis function進行平移。好比對上一幅圖中的basis function進行平移,就成了

 

 

看得出來,平移後的basis function和母小波以及僅僅scale過的小波,都是正交的,附合小波basis的特色。若是咱們用ψ(n)來表示這個mother wavelet,那麼這些orthonormal basis函數能夠寫成:

 

 

這裏的k是能夠當作時域的參數,由於它控制着小波基時域的轉移,而j是頻域的參數,由於它決定了小波基的頻率特性。看到這裏,你應該會感受很熟悉,由於這裏的平移和變換本質和剛纔對scaling function的平移變換是如出一轍的。

 

這樣,咱們就有了針對此信號space的哈爾小波basis組合:

 

 

圖1

 

能夠看出,咱們用到了三層頻率尺度的小波函數,每往下一層,小波的數量都是上面一層的兩倍。在圖中,每個小波基函數的表達形式都寫在了波形的下面。

 

等等,你可能已經發現了,有問題。這裏爲何多了個沒有函數表達式的波形呢?這貨明顯不是wavelet function阿。沒錯,它是以前提到的scaling function,也就是父小波。而後你可能就會問,爲啥這個憑空插了一個scaling function出來呢?明明目標信號已經能夠用純的小波基組合表示了。是,確實是,就算不包括scaling function,這些小波函數自己也組成了正交歸一基,但若是僅限於此的話,小波變換也就沒那麼神奇的功效了。引入這個scaling function,才能引入咱們提到的多解析度分析的理論,而小波變換的強大,就體如今這個多解析度上。那在這裏,咱們怎麼用這個多解析度呢?這個哈爾小波basis組合是怎麼經過多解析度推導出來的呢?

 

話說在數學定義中,有一種空間叫Lebesgue空間,對於信號處理很是重要,能夠用L^p(R)表示,指的是由p次可積函數所組成的函數空間。咱們在小波變換中要研究的信號都是屬於L^2(R)空間的,這個空間是R上的全部到處平方可積的可測函數的集合,這樣就等於對信號提出了一個限制,就是信號能量必須是有限的,不然它就不可積了。小波變換的定義都是基於但不限於L^2(R)中的信號的。這玩意的特性要具體解釋起來太數學了,牽涉到太多泛函知識,我就不在這裏詳述了。並且老實說我也沒能力徹底講清楚,畢竟不是學這個的,有興趣能夠參考wiki。總之你記住,小波變換研究中所使用的信號基本都是平方可積的信號,但其應用不限於這種信號,就好了。

 

對L^2(R)空間作MRA是在幹嗎呢?就是說,在L^2(R)空間中,咱們能夠找出一個嵌套的空間序列,並有下列性質:

 

(i) 

 

(ii) 

 

(iii) 

 

(iv) 

 

(v) 有這樣一個方程,  的orthonormal basis。

 

我來簡單解釋一下這些性質。這個V_j都是L^2(R)空間中的子空間,而後他們是由小到大的,交集是{0},由於這是最小的子空間,並集就是L空間。是否是有點難以理解?不要緊,看看下面這個圖就清楚了:

 

 

這個圖是圈圈套圈圈,最裏面的圈是V0,以後分別是V1,V2,V3,V4 。那他們有趣的性質就是,假若有一個函數f(t)他屬於一個某空間,那你將其在時域上平移,它仍是屬於這個空間。但若是你對它頻域的放大或縮小,它就會相應移到下一個或者上一個空間了。

 

同時咱們還知道,你要形容每個空間的話,都須要有對應的orthonormal basis,這是必然的,那對於V0來說,它的orthonormal basis就是

 

 

這一系列函數是什麼呢?是的時域變換,並且咱們剛纔也說了,時域上平移,是不會跳出這個空間的。這樣,咱們就能夠說,由這一系列basis所定義的L^2(R)子空間V0被這些basis所span,表示成:

 

 

k從負無窮到正無窮。上面的bar表示這是一個閉包空間,也就是說

 

 

這樣,咱們就定義了基本的V0這個子空間。剛纔說了,這個子空間的基都是對的整數時域變換,這裏咱們稱爲scaling function,因此換個說法,就是說這裏整個子空間V0,由scaling function和其時域變換的兄弟們span。

 

固然,若是這個scaling function只是用來表明一個子空間的,那它的地位也就不會這麼重要了。剛纔咱們提到,這個嵌套空間序列有一個性質,。這就是這個函數,若是你對它頻域的放大或縮小,它就會相應移到下一個或者上一個空間了。這個性質就有意思了,它表明什麼呢?對於任何一個包含V0的更上一層的空間來說,他們的基均可以經過對scaling function作頻域的scale後再作時域上的整數變換獲得!推廣開來就是說,當

 

 

咱們有

 

 

這也就意味着,對於任何屬於V_j空間的函數f(t),均可以表示爲:

 

 

到這裏,咱們就明白這些個子空間和那個憑空冒出來的scaling function的做用了。scaling的構建這些不一樣的子空間的基礎,當j越大的時候,每一次你對頻率變換後的scaling function所作的時域上的整數平移幅度會越小,這樣在這個j子空間裏面獲得的f(t)表示粒度會很細,細節展示不少。反之亦然。通俗點說,就是對scaling function的變換平移給你不一樣的子空間,而不一樣的子空間給你不一樣的分辨率,這樣你就能夠用不一樣的分辨率去看目標信號。

 

下面就是時候看看什麼是MRA equation了,這是更加有趣,也是更加核心的地方。經過剛纔的講解,V0屬於V1,那scaling function是在V0中的,天然也在V1中了。咱們把他寫成V1的基的線性組合,那就是

 

 

其中的h(n)是scaling function的係數,也叫作scaling filter或者scaling vector,能夠是實數,也能夠是虛數。根號2是爲了維持norm爲1的。看,在這個公式裏,咱們就把屬於V0的函數用V1的基表示出來了。同理,咱們能夠循環如此,把屬於V0的在V2, V3, …, Vn中表示出來。這些方程就是MRA equation,也叫refinement equation,它是scaling function理論的基礎,也是小波分析的基礎之一。

 

好,稍微總結一下。到如今,已經講了關於scaling function的基本理論知識,知道了信號空間能夠分爲不一樣精細度的子空間,這些子空間的basis集合就是scaling function或者頻率變換以後的scaling function,以下圖所示:

 

 

上圖就是四個子空間的basis集合的展覽。經過前面的討論,咱們還知道,一開始的scaling function能夠經過更精細的子空間的scaling function(它們都是對應子空間的basis)來構建。好比

 

 

對於更加finer的scale:

 

 

圖2
依此類推。實際上,對於任何scale和translate過的scaling function,均可以用更加精細的scale層面上的scaling function構建出來。

 

而後,咱們有各類scale下的scaling function了,該看看它們分別所對應的嵌套的空間序列了。先看看V0,天然就是以基本的scaling function爲基礎去span出來的:

 

 

這個不新鮮,剛纔就講過了。這個子空間表明什麼樣的信號?常量信號。道理很簡單,這個scaling function在整個信號長度上,沒有任何變化。繼續往下看:

 

 

這個相比V0更加finer的子空間,表明着這樣一種信號,它從1-4是常量,從5-8是另外一個常量。同理咱們有:

 

 

V2表明的信號,是分別在1,2; 3,4; 5,6; 7,8上有相同值的信號。那麼V3呢?則表示任何信號,由於對於V3來說,任何一個時間刻度上的值均可以不同。並且如今,咱們也能夠經過上面的一些scaling functions的波形驗證了以前提到的多解析度分析中的一個核心性質,那就是:

 

 

咱們以前講了一堆多解析度的理論,但直到如今,經過這些圖形化的分析,咱們可能纔會真正理解它。那好,既然咱們有一個現成的信號,那就來看看,對這個信號做多解析度分析是啥樣子的:

 

 

你看,在不一樣的子空間,對於同一個信號就有不一樣的詮釋。詮釋最好的固然是V3,徹底不損失細節。這就是多解析度的意義。咱們能夠有嵌套的,由scaling function演變的basis function集合,每個集合都提供對原始信號的某種近似,解析度越高,近似越精確。

 

說到這裏,可能你對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。因此,若是有深刻下去研究的同窗,好好買一本書來看吧。而只是但願用小波變換來服務本身的應用的同窗,我的以爲這些知識已經足夠讓你用來起步了。

相關文章
相關標籤/搜索