完美通俗解讀小波變換,終於搞懂小波是什麼東東了

2021-01-14 聲振之家

要講小波變換,我們必須了解傅立葉變換。要了解傅立葉變換,我們先要弄清楚什麼是」變換「。很多處理,不管是壓縮也好,濾波也好,圖形處理也好,本質都是變換。


變換的是什麼東西呢?是基,也就是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裡,你有vectorv可以寫成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正交的定義。我們說兩個vectorv,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函數既有高頻又有低頻,同時還覆蓋了時域。對於這點,我們會在之後詳細闡述。


小波展開的形式通常都是這樣(注意,這個只是近似表達):

其中的ψj,k(t)就是小波級數,這些級數的組合就形成了小波變換中的基basis。和傅立葉級數有一點不同的是,小波級數通常是orthonormal basis,也就是說,它們不僅兩兩正交,還歸一化了。小波級數通常有很多種,但是都符合下面這些特性:


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


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


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。正是這個有趣的性質,讓小波變換的計算以及對信號的詮釋比傅立葉變換更勝一籌!原因在於,小波變換允許更加精確的局部描述以及信號特徵的分離。一個傅立葉係數通常表示某個貫穿整個時間域的信號分量,因此,即使是臨時的信號,其特徵也被強扯到了整個時間周期去描述。而小波展開的係數則代表了對應分量它當下的自己,因此非常容易詮釋。


小波變換的優勢不僅僅在這裡。事實上,對於傅立葉變換以及大部分的信號變換系統,他們的函數基都是固定的,那麼變換後的結果只能按部就班被分析推導出來,沒有任何靈活性,比如你如果決定使用傅立葉變換了,那basisfunction就是正弦波,你不管怎麼scale,它都是正弦波,即使你舉出餘弦波,它還是移相後的正弦波。


總之你就只能用正弦波,沒有任何商量的餘地。而對於小波變換來講,基是變的,是可以根據信號來推導或者構建出來的,只要符合小波變換的性質和特點即可。也就是說,如果你有著比較特殊的信號需要處理,你甚至可以構建一個專門針對這種特殊信號的小波basisfunction集合對其進行分析。這種靈活性是任何別的變換都無法比擬的。總結來說,傅立葉變換適合周期性的,統計特性不隨時間變化的信號;而小波變換則適用於大部分信號,尤其是瞬時信號。它針對絕大部分信號的壓縮,去噪,檢測效果都特別好。

本文來自網絡,轉載眾多,小編經多方查找,本文是《小波變換和motion信號處理》系列文章中的第一篇,其作者可能為windstorm,出自www.kunli.info,


聲明:本微信轉載文章出於非商業性的教育和科研目的,並不意味著贊同其觀點或證實其內容的真實性。版權歸原作者所有,如轉載稿涉及版權等問題,請立即聯繫我們,我們會予以更改或刪除相關文章,保證您的權利!

相關焦點

  • 小波變換 完美通俗解讀
    我們實驗室主要是搞圖像的,實力在全國也是很強的,進去後和師兄師姐聊,大家都在搞什麼小波變換,H264之類的。當時的我心思都不在這方面,盡搞什麼作業系統移植,ARM+FPGA這些東西了。對小波變換的認識也就停留在神秘的「圖像視頻壓縮算法之王」上面。後來我才發現,在別的很廣泛的領域中,小波也逐漸開始流行。比如話說很早以前,我們接觸的信號頻域處理基本都是傅立葉和拉普拉斯的天下。
  • 小波變換通俗解釋
    從傅立葉變換到小波變換,並不是一個完全抽象的東西,可以講得很形象。小波變換有著明確的物理意義,如果我們從它的提出時所面對的問題看起,可以整理出非常清晰的思路。下面就按照傅立葉-->短時傅立葉變換-->小波變換的順序,講一下為什麼會出現小波這個東西、小波究竟是怎樣的思路。
  • 小波變換通俗解釋版
    小波變換有著明確的物理意義,如果我們從它的提出時所面對的問題看起,可以整理出非常清晰的思路。下面就按照傅立葉-->短時傅立葉變換-->小波變換的順序,講一下為什麼會出現小波這個東西、小波究竟是怎樣的思路。
  • 小波變換原理與應用_小波變換的基本原理_小波變換的應用
    打開APP 小波變換原理與應用_小波變換的基本原理_小波變換的應用 發表於 2018-01-13 09:42:37      小波變換的基本原理   傳統的信號理論,是建立在Fourier分析基礎上的,而Fourier變換作為一種全局性的變化,其有一定的局限性。在實際應用中人們開始對Fourier變換進行各種改進,小波分析由此產生了。
  • 小波的秘密1-小波變換概況與綜述
    第二個就是面對非平穩信號,傅立葉變換可以看到由哪些頻率組成,但不知道各成分對應的時刻是什麼。變換就是把一個信號分解成一系列的小波(短時間),也許就會問,小波變換的小波是什麼啊,定義中就是告訴我們小波,因為這個小波實在是太多,一個是種類多,還有就是同一種小波還可以尺度變換,但是小波在整個時間範圍的幅度平均值是0,具有有限的持續時間和突變的頻率和振幅,可以是不規則,也可以是不對稱,很明顯正弦波就不是小波,什麼的是呢,看下面幾個圖就是:
  • 小波變換教程(一):為什麼需要小波變換
    連結:http://users.rowan.edu/~polikar/WTtutorial.html該教程的目錄如下,主要分為四個部分:1)概覽:為什麼需要小波變換;2)基礎:傅立葉變換及短時傅立葉變換;3)多尺度分析:連續小波變換;4)多尺度分析:離散小波變換這是一篇引導性的教程,作者將給出小波變換的基本原理,而不會涉及公式和理論的證明。
  • 小波變換和motion信號處理(二)
    這是《小波變換和motion信號處理》系列的第二篇,深入小波。第一篇我進行了基礎知識的鋪墊,第三篇主要講解應用。我們還講了一般小波變換的三個特點,就是小波級數是二維的,能定位時域和頻域,計算很快。但我們並沒有深入講解,比如,如何理解這個二維?它是如何同時定位頻域和時域的?在這一篇文章裡,我們就來討論一下這些特性背後的原理。首先,我們一直都在講小波展開的近似形式。那什麼是完整形式呢?之前講到,小波basis的形成,是基於基本的小波函數,也就是母小波來做縮放和平移的。
  • 完全搞懂傅立葉變換和小波(1)——總綱
    所以,題目裡面講的「完全搞懂」並非是從物理學或者純數學的角度去講的,因為傅立葉變換最初是法國科學家傅立葉在研究物理學(主要是熱力學)時創造出來的一套理論,如果要從這個角度去說「徹底搞懂」,肯定得需要很多物理知識、復變實變分析,之類的像天書一樣的東西。這樣牽扯下去,其實很多對於學計算機或者學電子信息的人來說,其實完全沒有必要。我們要做的,就是利用你已經掌握的知識來構建整個體系!
  • Matlab傅立葉變換、餘弦變換和小波變換
    圖像小波變換的 Matlab 實現函數3.1 一維小波變換的 Matlab 實現(1) dwt 函數 Matlab功能:一維離散小波變換格式:[cA,cD]=dwt(X,'wname')[cA,cD]=dwt(X,Lo_D,Hi_D)別可以實現一維、二維和 N 維 DFT說明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函數 'wname
  • 小波變換和motion信號處理(一)
    我們實驗室主要是搞圖像的,實力在全國也是很強的,進去後和師兄師姐聊,大家都在搞什麼小波變換,H264之類的。當時的我心思都不在這方面,盡搞什麼作業系統移植,ARM+FPGA這些東西了。對小波變換的認識也就停留在神秘的「圖像視頻壓縮算法之王」上面。後來我才發現,在別的很廣泛的領域中,小波也逐漸開始流行。比如話說很早以前,我們接觸的信號頻域處理基本都是傅立葉和拉普拉斯的天下。
  • 小波變換和motion信號處理:第一篇
    我們實驗室主要是搞圖像的,實力在全國也是很強的,進去後和師兄師姐聊,大家都在搞什麼小波變換,H264之類的。當時的我心思都不在這方面,盡搞什麼作業系統移植,ARM+FPGA這些東西了。對小波變換的認識也就停留在神秘的「圖像視頻壓縮算法之王」上面。後來我才發現,在別的很廣泛的領域中,小波也逐漸開始流行。
  • 基於FPGA實現多種小波變換
    引 言 基於提升框架的小波變換方法,利用FPGA 可編程特性可實現多種小波變換。提升框架(LS :Lifting Scheme) 是由Sweldens 等人在近幾年提出的一種小波變換方法,用它的框架結構能有效地計算DWT。對於較長的濾波器,LS 的操作次數比濾波器組的操作方式減少將近一半,更適合硬體實現。作者根據提升小波變換的框架式結構,利用FPGA 可完全重構的特點構造不同的小波變換核,以滿足不同應用場合的要求。
  • 小波變換和motion信號處理:第二篇
    這是《小波變換和motion信號處理》系列的第二篇,深入小波。第一篇我進行了基礎知識的鋪墊,第三篇主要講解應用。那什麼是完整形式呢?之前講到,小波basis的形成,是基於基本的小波函數,也就是母小波來做縮放和平移的。但是,母小波並非唯一的原始基。在構建小波基函數集合的時候,通常還要用到一個函數叫尺度函數,scaling function,人們通常都稱其為父小波。
  • 圖像的二維提升小波變換的FPGA實現
    小波分析理論以其良好的時頻區域性和多解析度分析能力,開闢了圖像處理的嶄新領域。小波變換是一種很好的圖像分解方法,非常適合於分析突變信號而用於靜止圖像邊緣的提取和壓縮。
  • 基於SI濾波器的一種小波變換的實現
    摘要:文中在應用對數域電路的基礎上,提出了一種新型的連續小波變換方法,它通過對母小波的一種數值逼近得到小波函數的有理公式,並以Marr小波為例來模擬這個逼近過程,並用Matlab對逼近過程進行仿真。
  • 小波變換教程(1):基本原理
    小波變換是一個相對較新的概念(其出現大約是在20世紀80年代),但是有關於它的文章和書籍卻不少。這其中大部分都是由數學專業人士寫給其他同行看的,不過,仍然有大量數學專家不知道其他同行們討論的是什麼(我的一個數學教授就承認過)。換言之,大多數介紹小波變換的文獻對那些小波新手們來說用處不大(此為個人觀點)。
  • 基於FPGA 的多用途提升小波變換核
    引 言本文引用地址:http://www.eepw.com.cn/article/189802.htm基於提升框架的小波變換方法,利用FPGA 可編程特性可實現多種小波變換。
  • 高斯類小波變換的開關電流頻域法實現
    本文提出了一個以頻域中的高斯函數單元為核心的共享結構系統實現3種高斯類小波變換。在此頻域共享結構實現方案中,復用頻域高斯函數單元採用開關電流電路實現頻域高斯類小波變換系統,不同尺度上的高斯類小波變換可通過調節開關電流電路的時鐘頻率獲得,所提出的頻域共享結構高斯類小波變換系統適合於製成通用型小波變換晶片。
  • 傅立葉分析和小波分析的通俗演義
    不過更準確一點的表述應該是:一個信號不能在時空域和頻域上同時過於集中;一個函數時域越「窄」,它經傅立葉變換的頻域後就越「寬」。如果有興趣深入研究一下的話,這個原理其實非常耐人尋味。信號處理中的一些新理論在根本上都和它有所相連,比如壓縮感知。如果你剝開它複雜的數學描述,最後會發現它在本質上能實現就源於不確定性原理。
  • 基於小波變換的圖像壓縮算法改進研究
    1 小波變換1.1 小波變換的產生及原理  儘管傅立葉(Fourier)變換可以確切地告訴人們某個信號是否包含特定的頻率分量,但它無法說明該頻率分量發生在哪個時間段。因此,它僅適用於處理平穩信號,而不適用於處理非平穩信號。