小波變換


牢騷就不繼續發揮了。在這個系列文章里,我希望能簡單介紹一下小波變換,它和傅立葉變換的比較,以及它在移動平台做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函數的形式,像這樣

again,這是一個無限循環的函數。其中的1,cosx, sinx, cos2x …..這些,就是傅立葉級數。傅立葉級數應用如此廣泛的主要原因之一,就是它們這幫子function basis是正交的,這就是有趣的地方了。為什么function basis正交如此重要呢?我們說兩個vector正交,那就是他倆的內積為0。那對於function basis呢?function basis怎么求內積呢?

現在先復習一下vector正交的定義。我們說兩個vector v,w如果正交的話,應符合:

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

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

然后我們發現,因為正交的性質,右邊所有非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。所以,如果有深入下去研究的同學,好好買一本書來看吧。而只是希望用小波變換來服務自己的應用的同學,個人覺得這些知識已經足夠讓你用來起步了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM