【DWT筆記】傅立葉變換與小波變換
【DWT筆記】傅立葉變換與小波變換
一、前言
我們經常接觸到的訊號,正弦訊號,餘弦訊號,甚至是複雜的心電圖、腦電圖、地震波訊號都是時域上的訊號,我們也成為原始訊號,但是通常情況下,我們在原始訊號中得到的資訊是有限的,所以為了獲得更多的資訊,我們就需要對原始訊號進行數學變換,得到變換域的訊號,通常接觸到的變換主要有傅立葉變換、拉普拉斯變換、Z變換、小波變換等等,今天主要討論下傅立葉變換與小波變換。
二、平穩訊號與非平穩訊號
在介紹主體之前,先要說下平穩訊號與非平穩訊號的區別。
平穩訊號是指分佈引數或者分佈律隨時間不發生變化的訊號。也就是說,平穩訊號的統計特性不隨時間變化而變化。如下圖所示:
而與之相反的是非平穩訊號是指分佈引數或者分佈律隨時間發生變化的訊號。也就是說,非平穩隨機訊號的統計特徵是時間的函式(隨時間變化),如下圖所示:
放在訊號的時頻分析中,我們可以簡單地理解為,平穩訊號的頻率不隨時間發生改變,而非平穩訊號的頻率隨時間發生變化。
三、多解析度分析
海森堡曾經推出一個不確定原理,是說移動的粒子和位置不能同時確定,因為時域與頻域概念本身就是從物理學中沿用過來的,所以,時頻關係也滿足不確定性原理,也就是說,在時頻平面內的一個確切的點上,訊號的頻率和發生時間不能同時確定。在任意一個時間點,我們不能確定哪個頻譜分量存在,我們能做到的是在一個給定的時間段內確定哪個頻譜分量存在。
這是一個涉及到解析度的問題。
拿影象訊號來舉例子,我們大家都知道,影象的低頻部分顯示的是影象的基本資訊,而高頻部分更多是細節資訊。就好比我們用谷歌地圖一樣,尺度高(低頻)就意味著沒有細節,是一個整體的檢視;尺度低(高頻)意味著更多的細節資訊。
在實際應用中,影象中的高頻部分一般持續的時間是比較短的,一般是以短時突變或者尖峰的形式出現,比如說影象的邊緣資訊和一些噪點資訊,在時域中,我們可以理解高頻對應著在這些地方影象的變化比較大。而低頻資訊在大部分地方存在,反應在一些背景或內容資訊,在時域上表現為變換不是很明顯的地方。
所以,這樣一來,我們在分析訊號的低頻部分的時候,只需要較大的頻率解析度和較小的時域解析度就能夠很好的體現低頻的資訊,而在高頻部分,就需要較大的時間解析度和較小的頻率解析度就能夠很好的體現高頻的資訊。
其實,基本的傅立葉變換不存在解析度的問題,因為,傅立葉變換在時域裡面頻域的解析度為0,同樣在頻域裡面,時域的解析度也為0,所以說,傅立葉變換其實沒有解析度;而短時傅立葉變換是通過加窗的方式對時域不同時間段的訊號進行分析,但是由於窗長是固定的,所以,解析度是固定的,並且根據窗長的選擇在時域和頻域的解析度上是一個矛盾;而小波變換可以根據尺度的變換和偏移在不同的頻段上給出不同的解析度,這在實際中是非常有用的,在後面,我們會具體介紹。
四、傅立葉變換
直覺上,我們都知道頻率意味著某種事物的變化速率。如果某種東西(用正確的技術術語來說是一個數學或物理變數)變化的很快,我們說它的頻率高,如果它變換的不快,我們就說它的頻率低。如果這個變數一直保持不變,我們說它的頻率為0,或者說沒有頻率。
傅立葉變換時時域與頻率之間的轉換,通常,我們可以容易的從頻域中看到一些在時域中看不到的資訊,舉個簡單的例子,在心電圖的時域訊號中一般很難找到這些病情。心臟病專家們一般用記錄在磁帶上的時域心電圖來分析心電訊號。最近,新的心電記錄儀/分析儀還可以提供心電圖的頻域資訊,通過這些資訊,他們就可以確定病症是否存在。對頻域圖進行分析能使他們更容易的診斷病情。
傅立葉變換是一種可逆變換,即它允許原始訊號和變換過的訊號之間互相轉換。不過,在任意時刻只有一種資訊是可用的,也就是說,在傅立葉變換後的頻域中不包含時間資訊,逆變換後的時域中不包含時間資訊。
這個其實結合傅立葉變化的公式就非常容易理解,連續傅立葉變換的公式為:
離散傅立葉變換的公式為:
我們可以清楚地看到,傅立葉變換中,因為積分是從負無窮到正無窮的,所以積分在所有時間類都是有效的。意思就是說,無論什麼時候頻率分量發生了改變都會全域性性的影響積分的結果,同樣的道理也適用於離散型的傅立葉變換。這就是為什麼我們說,傅立葉變換不適合分析非平穩訊號。
五、短時傅立葉變換
之前,我們討論過,傅立葉變換不適用於非平穩訊號。但是如果我們假設訊號時平穩的訊號,這樣,傅立葉變換就可以加以應用了。實際上,如果我們假定訊號為穩定的這個時間段很短,那麼我們可以從窄窗中來觀察訊號,視窗要窄到我們從窗裡看到的訊號確實是平穩的。研究者們最終確定的這個數學逼近,作為傅立葉變換的一個修改版本,叫做短時傅立葉變換。
短時傅立葉變換和傅立葉變換只有一個微小的不同點。在短時傅立葉變換中,訊號被分為足夠小的片段,這些片段的訊號都可以看成平穩訊號。基於這個原因,就需要一個窗函式。窗的寬度必須和訊號片段的寬度相等,這樣它的平穩性才有效。
這裡只討論基本理論,所以就不在推到加窗的具體過程了。之前,我們說過,短時傅立葉變換的解析度是固定的,這是因為,我們加的窗的窗長是固定的,如果我們有了一個無限長的視窗,然後做傅立葉變換,會得到完美的頻率解析度,但是結果中不包含時間資訊,這中情況是基本的傅立葉變換。但是,為了獲得訊號的平穩性,我們必須要有一個寬度足夠短的窗函式,在這個很短的時間內,訊號時平穩的。視窗越短,時間解析度越高,訊號的穩定性越高,但是頻率分別率卻越來越低。下面給出具體的圖形分析:
上圖出師幾種不同尺度的常函式,下圖是窗長最短的情況的時頻解析度圖,如下所示:
可以很清楚的看到,時域解析度是比較高的,而頻域出現很多重疊的部分,所以頻率解析度較差。下面我們看窗長加長的情況,如下圖所示:
很明顯,這個時候,時域上已經出現了部分重疊了,而頻域解析度明顯比之前好很多了,再繼續看看,窗長最小的顯示圖,如下圖所示:
這個時候時域的解析度已經非常差了,而頻域解析度相當高,所以,簡而言之:窄窗=>高時間解析度,低頻率解析度;寬窗=>高頻率解析度,低時間解析度。所以,在進行短時傅立葉變換的時候,窗函式長度的選擇是一個非常關鍵的步驟,我們需要在這裡做很大的權衡與取捨。
六、小波變換
“小波”就是小區域、長度有限、均值為0的波形。小波變換就是選擇適當的基本小波或母小波ψ(t),通過對基本小波的平移、伸縮而形成一系列的小波,這簇小波作為基可以構成一系列巢狀的(訊號)子空間,然後將欲分析的訊號(例如影象)投影到各個大小不同的(訊號)子空間之中,以觀察相應的特性。這樣,就相當於我們用不同的焦距去觀察一個物體,可從巨集觀到微觀,從概貌到細節觀察得十分詳盡。所以小波變換又被稱為“數學顯微鏡”。
這種平移、伸縮是小波變換的一個特點,因而可以在不同的頻率範圍,不同的時間(空間)位置對訊號進行各種分析,通過這種多解析度分析,在高頻訊號中獲得一個好的時間解析度和較差的頻率解析度,低頻訊號中獲得較好的頻率解析度和較高的時間解析度,明顯的解決了傅立葉變換應用與非平穩訊號的弊端。小波變換提供了訊號的時頻混合表示,在眾多的領域都有著非常高效的用途,例如對影象的去噪、邊緣檢測、壓縮編碼、影象融合等。
6.1.離散小波變換
平時我接觸的小波變換主要應用在影象處理領域,在這裡,連續小波變換就直接不在總結了。
離散小波變換(DWT, Discrete Wavelet Transform)並不是簡單的連續變換的取樣,還必須提供很好的冗餘,這樣可以實現完全的可逆變換。那麼,這些冗餘便需要更多的計算機資源,並增加它的計算量。離散小波變換能為訊號分析與合成提供足夠的資訊,還可降低計算機的資源消耗和計算量。相對於連續小波變換,離散變換更容易實現。
類似於連續小波變換,離散小波變換同樣需要通過數字濾波器技術得到數字訊號的時域的尺度表示。別外,連續小波變換是通過不斷改變視窗的尺度計算完成的:在時域移動視窗函式,然後與訊號做卷積運算。在離散小波變換中,濾波器將在不同的尺度條件下截斷訊號的某些頻率成分:訊號通過不同的高通濾波器得到一系列的訊號高頻成分,通過不同的低通濾波器得到一系列的低頻成分,這樣便能分析訊號的不同頻率成分。
訊號的解析度可以度量訊號細節資訊,當訊號通過濾波操作後,尺度訊號便由於濾波器對訊號的上取樣和下采樣操作而發生了變化。訊號的子取樣可以通過降低取樣頻率實現,或者從訊號中移出某些成分的取樣。訊號的上取樣通過往訊號中新增新的取樣點來提高取樣的頻率,而新增的取樣點可以是0或者是一箇中間值。
數字訊號的表達形式通常為,其中為正整數。那麼離散小波變換首先需要將數字訊號通過數字低通濾波器,以得到該訊號的進一步取樣值。低通濾波通常是做卷積運算,其表示式如下:
低通濾波器將去除訊號中所有高於截止頻率的訊號成分,例如,訊號的最高頻率為1000Hz,那麼經過低通濾波後,將去除訊號中高於500Hz的成分。
訊號經低通濾波後,訊號的一半成分將被去除。但是根據Nyquist定理,因為此時訊號的最高頻率為而不是。這樣,經過簡單低通濾波的訊號將不滿足Nyquist定理。所以,訊號的尺度因子將加倍,此時低通濾波將去除高頻成分,但是能保持可恢復的低頻取樣。此時,解析度將與訊號的資訊總量相聯絡,所以,尺度因子將影響訊號的濾波操作。由上述的討論可知道,簡單的低通濾波得到的取樣雖然去除了高頻成分,但是損失了訊號的資訊量,所以訊號的解析度也減半了。那麼,為了保證小波變換的可逆性,將在子取樣後將尺度因子加倍,所以訊號的低通濾波可由下面等式完成:
完成了訊號的濾波後,便能開始小波變換的計算了。首先必須通過濾波器將訊號分解為訊號的初級估計近似和訊號的細節資訊,然後在不同的頻率帶上利用不同的尺度因子對訊號進行分析、處理。經過這些步驟,便完成了離散小波變換的計算。離散變換用到了兩組函式:尺度函式和小波函式,它們分別與低通濾波器和高通濾波器相對應。將訊號在不同的頻率帶上進行分解——通過將得到的訊號在時域上簡單的低通與高通濾波:首先將原始訊號通過高通濾波器和低通濾波器,濾波完成後,按照上節講述的尺度因子約束完成最後的濾波,如下面所示:
其中yhigh和ylow分別是高通濾波和低通濾波的輸出。
6.2.影象的小波變換
之前的東西理論性比較強,但是我覺得還是對應用還是有很大的理論支援的,當然,其實真的不是特別瞭解,也能夠在matlab上面很簡單的使用小波變換,這裡不得不讚嘆下,很多前人做的貢獻真的給我們現在學習和研究帶來很大的幫助。說遠了,接下來說一些具體的東西。
影象的小波變換是小波應用於影象處理的基礎,且基於二維離散小波變換。影象可以看作是二維的矩陣,一般假設影象矩陣的大小為,且有( 為非負的整數)。那麼每次小波變換後,影象便分解為4個大小為原來尺寸1/4的子塊區域,分別包含了相應頻帶的小波係數,相當於在水平方向和堅直方向上進行隔點取樣。進行下一層小波變換時,變換資料集中在頻帶上。
小波係數的空間分佈同原始影象的空間分佈具有很好的對應關係所示。
LL頻帶是影象內容的縮圖,它是影象資料能量集中的頻帶。
由於經過了小波係數的正則化處理我們基本就可以從係數的顯示能看出影象的內容。而、和頻帶存放的是影象的細節資訊,具體關係如下面:
HL頻帶存放的是影象水平方向的高頻資訊,它反映了影象水平方向上的變化資訊和邊緣資訊;
LH頻帶存放的是影象豎直方向的高頻資訊,它反映了影象在豎直方向上的灰度變化資訊和影象邊緣資訊;
HH頻帶存放的是影象在對角線方向的高頻資訊,它反映了水平方向和豎直方向上影象灰度的綜合變化資訊,同時包含了少量的邊緣資訊。
可以用圖形來展示這個具體的資訊,下圖是一次小波變換的頻率分佈圖:
下面是二次小波變換的頻率分佈:
不難看出,小波變換將原始影象和變換系數之間建立了十分好的相關性。所以,在濾波器的設計上(這個涉及到具體實現,不過有現成函式可以呼叫),可以針對不同頻帶分別設計。例如,需要削弱影象水平方向上的毛刺或高頻資訊,可以通過處理HL頻帶的小波係數,而不必影響其他方向上的邊緣資訊。並且,對於多層小波變換而言,還能對不同解析度級的小波係數進行單獨的處理而達到設想的濾波效果。倘若是進行低通濾波,那麼可以通過保留LL頻帶的資料,而將高頻小波係數進行有效的衰減。
小波影象的各個頻帶分別對應了原影象在不同尺度和不同解析度下的細節以及一個由小波變換分解級數決定的最小尺度、最小解析度下對原始影象的最佳逼近。從多解析度分析的角度考慮小波影象的各個頻帶時,這些頻帶之間並不是純粹無關的,特別是對於各個高頻帶,由於它們是影象同一個邊緣、輪廓和紋理資訊在不同方向、不同尺度和不同解析度下由細到粗的描述,它們之間必然存在著一定的關係,其中很顯然的是這些頻帶中對應邊緣與同尺度下高頻子帶中所包含的邊緣之間也有對應關係。由於影象的邊緣、輪廓等資訊對人眼觀測影象時的主觀質量影響很大,這種機制無疑會帶來編碼影象主觀質量上的改善。
七、小結
本次稍微總結了下傅立葉變換域小波變換,這篇博文相對比較理論,也比較枯燥,涉及到很多具體實現的部分,這部分其實只需要瞭解即可,在實際應用中,不會叫我們去設計濾波器等等這些,感謝前人的工作,我們在matlab中只需要一個函式就可以實現小波變換。
原文地址http://www.cnblogs.com/lzhen/p/3952529.html
相關文章
- 小波變換與傅立葉變換的區別
- 【OpenCV-Python】:影像的傅立葉變換與逆傅立葉變換OpenCVPython
- 傅立葉變換
- 快速傅立葉變換 學習筆記筆記
- 快速傅立葉變換複習筆記筆記
- 數論筆記:快速傅立葉變換筆記
- 離散傅立葉變換(DFT)和快速傅立葉變換(FFT)FFT
- 快速傅立葉變換
- 快速傅立葉變換(FFT)隨筆FFT
- 離散傅立葉變換
- 【演算法學習筆記】快速傅立葉變換演算法筆記
- 【scipy 基礎】--傅立葉變換
- OpenCV 離散傅立葉變換OpenCV
- 圖神經網路基礎:傅立葉級數與傅立葉變換神經網路
- 快速傅立葉變換及其實現
- 如何通俗地理解傅立葉變換?
- 淺談FFT(快速傅立葉變換)FFT
- 【數學】快速傅立葉變換(FFT)FFT
- 傅立葉變換(二)—— 卷積 Convolution卷積
- 連續時間傅立葉變換
- 離散時間傅立葉變換
- 從傅立葉級數到傅立葉變換(連續、離散)
- C# pythonnet(2)_FFT傅立葉變換C#PythonFFT
- 短時傅立葉變換原理理解
- 影象傅立葉變換,幅度譜,相位譜
- 傅立葉變換頻域時域分析
- OpenCV計算機視覺學習(10)——影像變換(傅立葉變換,高通濾波,低通濾波)OpenCV計算機視覺
- 離散傅立葉變換DFT的應用
- 非週期訊號的傅立葉變換
- 葵花點穴手點通傅立葉變換
- 【OI向】快速傅立葉變換(Fast Fourier Transform)ASTORM
- Python 實現影像快速傅立葉變換和離散餘弦變換Python
- 【影像處理筆記】小波變換筆記
- 【數理知識】第1章-傅立葉變換-《積分變換與場論》王振
- 影象處理1--傅立葉變換(Fourier Transform )ORM
- 相位掩膜+傅立葉變換進行影象加密加密
- 卷積導向快速傅立葉變換(FFT/NTT)教程卷積FFT
- 快速傅立葉變換的迭代法程式碼實現
- 小波變換與深度學習深度學習