《小波變換和motion信號處理》系列的第二篇

這是《小波變換和motion信號處理》系列的第二篇,深入小波。第一篇我進行了基礎知識的鋪墊,第三篇主要講解應用。

在上一篇中講到,每個小波變換都會有一個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。所以,如果有深入下去研究的同學,好好買一本書來看吧。而只是希望用小波變換來服務自己的應用的同學,個人覺得這些知識已經足夠讓你用來起步了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章