在上一篇《完美通俗解讀小波變換,終於搞懂小波是什麼東東了》中講到,每個小波變換都會有一個mother wavelet,我們稱之為母小波,同時還有一個father wavelet,就是scaling function。而該小波的basis函數其實就是對這個母小波和父小波縮放和平移形成的。縮放倍數都是2的級數,平移的大小和當前其縮放的程度有關。
上一篇還講到,小波系統有很多種,不同的母小波,衍生的小波基就完全不同。小波展開的近似形式是這樣:
其中的Ψj,k(t)就是小波級數,這些級數的組合就形成了小波變換中的基basis。和傅立葉級數有一點不同的是,小波級數通常是orthonormal basis,也就是說,它們不僅兩兩正交,還歸一化了。
我們還講了一般小波變換的三個特點,就是小波級數是二維的,能定位時域和頻域,計算很快。但我們並沒有深入講解,比如,如何理解這個二維?它是如何同時定位頻域和時域的?
在這一篇文章裡,我們就來討論一下這些特性背後的原理。
首先,我們一直都在講小波展開的近似形式。那什麼是完整形式呢?之前講到,小波basis的形成,是基於基本的小波函數,也就是母小波來做縮放和平移的。但是,母小波並非唯一的原始基。在構建小波基函數集合的時候,通常還要用到一個函數叫尺度函數,scaling function,人們通常都稱其為父小波。它和母小波一樣,也是歸一化了,而且它還需要滿足一個性質,就是它和對自己本身周期平移的函數兩兩正交:
另外,為了方便處理,父小波和母小波也需要是正交的。可以說,完整的小波展開就是由母小波和父小波共同定義的。
其中ψ(t)是母小波,φ(t)是父小波。需要提醒一點的是,這個正交純粹是為了小波分析的方便而引入的特性,並不是說小波變換的基就一定必須是正交的。但大部分小波變換的基確實是正交的,所以本文就直接默認正交為小波變換的主要性質之一了。
引入這個父小波呢,主要是為了方便做多解析度分析(multiresolution analysis,MRA)。說到這裡,你的問題可能會井噴了:好好的為什麼出來一個父小波呢?這個scaling function是拿來幹嘛的?它背後的物理意義是什麼?wavelet function背後的物理意義又是什麼?這個多解析度分析又是什麼呢?不急,下面,我們圍繞一個例子來鞏固一下前面的知識,同時再引出新的特性。
假設我們有這樣一個信號:
圖1
該信號長度為8,是離散的一維信號。我們要考慮的,就是如何用小波將其展開。為了方便講解,我們考慮最簡單的一種小波,哈爾小波。下面是它的一種母小波:
圖2
那如何構建基於這個母小波的基呢?剛才提到了,要縮放,要平移。我們先試試縮放,那就是ψ(2n):
但這樣的話,它與自己的內積就不是1了,不符合小波基orthonormal的要求,所以我們要在前面加一個係數根號二,這樣我們就得到了另一個哈爾小波的basis function:
圖3
同理,我們可以一直這樣推廣下去做scale,得到4n,8n,…….下的basis function。當然在這個例子裡,我們信號長度就是8,所以做到4n就夠了。但推廣來說,就是這種scaling對母小波的作用(歸一化後的表示形式)為:
平移的話也很簡單,我們可以對母小波進行平移,也可以對scale之後的basis function進行平移。比如對上一幅圖中的basis function進行平移,就成了
圖4
看得出來,平移後的basis function和母小波以及僅僅scale過的小波,都是正交的,附合小波basis的特點。如果我們用ψ(n)來表示這個mother wavelet,那麼這些orthonormal basis函數可以寫成:
這裡的k是可以看成時域的參數,因為它控制著小波基時域的轉移,而j是頻域的參數,因為它決定了小波基的頻率特性。看到這裡,你應該會感覺很熟悉,因為這裡的平移和變換本質和剛才對scaling function的平移變換是一模一樣的。
這樣,我們就有了針對此信號space的哈爾小波basis組合:
圖5
可以看出,我們用到了三層頻率尺度的小波函數,每往下一層,小波的數量都是上面一層的兩倍。在圖中,每一個小波基函數的表達形式都寫在了波形的下面。
等等,你可能已經發現了,有問題。這裡為什麼多了個沒有函數表達式的波形呢?這貨明顯不是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)空間中,我們可以找出一個嵌套的空間序列{Vj}j∈Z,並有下列性質:
我來簡單解釋一下這些性質。這個Vj都是L^2(R)空間中的子空間,然後他們是由小到大的,交集是{0},因為這是最小的子空間,併集就是L空間。是不是有點難以理解?沒關係,看看下面這個圖就清楚了:
圖6
這個圖是圈圈套圈圈,最裡面的圈是V0,之後分別是V1,V2,V3,V4 。那他們有趣的性質就是,假如有一個函數f(t)他屬於一個某空間,那你將其在時域上平移,它還是屬於這個空間。但如果你對它頻域的放大或縮小,它就會相應移到下一個或者上一個空間了。 同時我們還知道,你要形容每一個空間的話,都需要有對應的orthonormal basis,這是必然的,那對於V0來講,它的orthonormal basis就是:
這一系列函數是什麼呢?φ(t)是的時域變換,而且我們剛才也說了,時域上平移,是不會跳出這個空間的。這樣,我們就可以說,由這一系列basis所定義的L^2(R)子空間V0被這些basis所span,表示成:
k從負無窮到正無窮。上面的bar表示這是一個閉包空間,也就是說
這樣,我們就定義了基本的V0這個子空間。剛才說了,這個子空間的基都是對φ(t)的整數時域變換,這裡我們稱φ(t)為scaling function,所以換個說法,就是說這裡整個子空間V0,由scaling function和其時域變換的兄弟們span。
當然,如果這個scaling function只是用來代表一個子空間的,那它的地位也就不會這麼重要了。剛才我們提到,這個嵌套空間序列有一個性質:
這就是這個函數,如果你對它頻域的放大或縮小,它就會相應移到下一個或者上一個空間了。這個性質就有意思了,它代表什麼呢?對於任何一個包含V0的更上一層的空間來講,他們的基都可以通過對scaling function做頻域的scale後再做時域上的整數變換得到!推廣開來就是說,當:
我們有
這也就意味著,對於任何屬於Vj空間的函數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的φ(t)在V2,V3, …,Vn中表示出來。這些方程就是MRA equation,也叫refinement equation,它是scaling function理論的基礎,也是小波分析的基礎之一。
好,稍微總結一下。到現在,已經講了關於scaling function的基本理論知識,知道了信號空間可以分為不同精細度的子空間,這些子空間的basis集合就是scaling function或者頻率變換之後的scaling function,如下圖所示:
圖7
上圖就是四個子空間的basis集合的展覽。通過前面的討論,我們還知道,一開始的scaling function可以通過更精細的子空間的scaling function(它們都是對應子空間的basis)來構建。比如:
圖8
對於更加finer的scale:
圖9
依此類推。實際上,對於任何scale和translate過的scaling function,都可以用更加精細的scale層面上的scaling function構建出來。 然後,我們有各種scale下的scaling function了,該看看它們分別所對應的嵌套的空間序列{Vj}j∈Z了。先看看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的波形驗證了之前提到的多解析度分析中的一個核心性質,那就是:
我們之前講了一堆多解析度的理論,但直到現在,通過這些圖形化的分析,我們可能才會真正理解它。那好,既然我們有一個現成的信號,那就來看看,對這個信號作多解析度分析是啥樣子的:
圖10
你看,在不同的子空間,對於同一個信號就有不同的詮釋。詮釋最好的當然是V3,完全不損失細節。這就是多解析度的意義。我們可以有嵌套的,由scaling function演變的basis function集合,每一個集合都提供對原始信號的某種近似,解析度越高,近似越精確。
說到這裡,可能你對scaling function以及多解析度分析已經比較理解了。但是,我們還沒有涉及到它們在小波變換中的具體應用,也就是還沒有回答剛才那個問題:憑空插了一個scaling function到小波basis組合中幹嘛。也就是說,我們希望理解scaling function是怎麼和小波函數結合的呢,多解析度能給小波變換帶來什麼樣的好處呢。這其實就是是小波變換中的核心知識。理解了這個,後面的小波變換就是純數學計算了。
好,我們已經知道,對於子空間V0,basis是scaling function:
圖11
對應的小波函數是:
圖12
然後子空間V1的basis集合是這倆哥們:
圖13
看出什麼規律了麼?多看幾次這三個圖,你會驚訝地發現,在V0中的scaling function和wavelet function的組合,其實就是V1中的basis!繼續這樣推導,V1本來的的basis是:
圖14
然後V1中對應的wavelet function是
圖15
他們的組合,本質上也就是V2的basis(參考圖9)。你繼續推導下去,會得到同樣的結論:在scale j的wavelet function,可以被用來將Vj的basis擴展到V(j+1)中去!這是一個非常非常關鍵的性質,因為這代表著,對任何一個子空間Vj,我們現在有兩種方法去得到它的orthonormal basis:
一種就是它本來的basis ψj,k ,對任意k。
第二種就是它上一個子空間的basis ψj-1,k,對任意k,以及上一級子空間的wavelet function ψj-1,k ,對任意k。
第二種選擇能給我們帶來額外的好處,那就是我們可以循環不斷地用上一級子空間的scaling function以及wavelet function的組合來作為當前子空間的基。換句話說,如果針對V3這個子空間,它實際上就有四種不同的,但是等價的orthonormal basis:
1.本級(V3)的scaling function basis set
圖16
2. 上一級(V2)的scaling function + wavelet function
圖17
3 . 上上一級(V1)的scaling function + 上上一級(V1)的wavelet function + 上一級(V2)的wavelet function
圖18
4. 上上上一級(V0)的scaling function + 上上上一級(V0)的wavelet function + 上上一級(V1)的wavelet function + 上一級(V2)的wavelet function
圖19
好,看看最後一種選取方式,有沒有感到眼熟?對了,它就是我們之前提到的「針對此信號space的哈爾小波basis組合」,參見圖5。現在我們知道了,這個scaling function不是憑空插進去的,而是通過不斷的嵌套迭代出來的:)
那為什麼我們最後選定的是這種選取方式呢?實際上,剛才介紹的這個性質已經告訴我們,對於任何的scale j0,我們都可以給我們的signal space找到一組orthonormal basis,這個basis是通過組合scale j0上的scaling function以及所有在scale j,j≥j0上的wavelets得到的。這樣,基於這個orthonormal basis,所有信號空間中的信號都可以寫成組成這個basis的functions的線性組合:
對應的係數的計算和平常一樣:
這,就是最終的,也是最核心的,小波變換形式。不管是信號壓縮,濾波,還是別的方式處理,只要是用小波變換,都逃不出這個基礎流程:
選取合適的wavelet function和scaling function,從已有的信號中,反算出係數c和d。
對係數做對應處理
從處理後的係數中重新構建信號。
這裡的係數處理是區別你的應用的重點。比如圖像或者視頻壓縮,就希望選取能將能量聚集到很小一部分係數中的小波,然後拋棄那些能量很小的小波係數,只保留少數的這些大頭係數,再反變換回去。這樣的話,圖像信號的能量並沒有怎麼丟失,圖像體積卻大大減小了。
還有一個沒有解釋的問題是,為什麼要強調尺度函數和小波函數組成一個orthonormal basis呢?計算方便是一方面,還有一個原因是,如果他們滿足這個性質,就滿足瑞利能量定理,也就是說,信號的能量,可以完全用每個頻域裡面的展開部分的能量,也就是他們的展開係數表示:
到這裡,我們對小波變換的形式就講完了。雖然是用的最簡單的哈爾小波為例子,但舉一反三即可。我們著重介紹了多解析度分析以及它給小波變換帶來的殺手鐧:時域頻域同時定位。結束之前,再多說幾句小波變換的意義。我們拿剛才例子中V3子空間的第二種可選擇的orthonormal basis作為例子:
圖20
左邊這四個basis組成元素,也就是scaling functions,的係數,表徵的是信號的local平均(想想它們和信號的內積形式),而右邊的這四個basis組成元素,也就是wavelet functions,的係數則表徵了在local平均中丟失的信號細節。得益於此,多解析度分析能夠對信號在越來越寬的區域上取平均,等同於做低通濾波,而且,它還能保留因為平均而損失的信號細節,等同於做高通濾波!
這樣,我們終於可以解釋了wavelet function和scaling function背後的物理意義了:wavelet function等同於對信號做高通濾波保留變化細節,而scaling function等同於對信號做低通濾波保留平滑的shape!
對小波變換的基礎知識,我們就講到這裡。需要注意的是,這只是小波變換最基本最基本的知識,但也是最核心的知識。掌握了這些,代表你對小波變換的物理意義有了一定的了解。但對於小波變換本身的講解,一本書都不一定能將講透,還有很多的基礎知識我都沒有講,比如如何構建自己的scaling function,選取合適的係數集h[k],並由此構建自己的wavelet functions。所以,如果有深入下去研究的同學,好好買一本書來看吧。而只是希望用小波變換來服務自己的應用的同學,個人覺得這些知識已經足夠讓你用來起步了。
本文是《小波變換和motion信號處理》系列文章中的第二篇,來自網絡,轉載眾多,其作者可能為windstorm,出自www.kunli.info。
聲明:本微信轉載文章出於非商業性的教育和科研目的,並不意味著贊同其觀點或證實其內容的真實性。版權歸原作者所有,如轉載稿涉及版權等問題,請立即聯繫我們,我們會予以更改或刪除相關文章,保證您的權利!