轉載自:https://zhuanlan.zhihu.com/p/22450818算法
【嵌牛導讀】從傅里葉變換到小波變換,並非一個徹底抽象的東西,能夠講得很形象。小波變換有着明確的物理意義,若是咱們從它的提出時所面對的問題看起,能夠整理出很是清晰的思路ide
【嵌牛鼻子】小波變換函數
【嵌牛提問】小波變換是什麼ui
【嵌牛正文】從傅里葉變換到小波變換,並非一個徹底抽象的東西,能夠講得很形象。小波變換有着明確的物理意義,若是咱們從它的提出時所面對的問題看起,能夠整理出很是清晰的思路。orm
下面我就按照傅里葉-->短時傅里葉變換-->小波變換的順序,講一下爲何會出現小波這個東西、小波到底是怎樣的思路。事件
下面咱們主要將傅里葉變換的不足。即咱們知道傅里葉變化能夠分析信號的頻譜,那麼爲何還要提出小波變換?答案就是,「對非平穩過程,傅里葉變換有侷限性」。看以下一個簡單的信號:圖片
作完FFT(快速傅里葉變換)後,能夠在頻譜上看到清晰的四條線,信號包含四個頻率成分。io
一切沒有問題。可是,若是是頻率隨着時間變化的非平穩信號呢?入門
如上圖,最上邊的是頻率始終不變的平穩信號。而下邊兩個則是頻率隨着時間改變的非平穩信號,它們一樣包含和最上信號相同頻率的四個成分。form
作FFT後,咱們發現這三個時域上有巨大差別的信號,頻譜(幅值譜)卻很是一致。尤爲是下邊兩個非平穩信號,咱們從頻譜上沒法區分它們,由於它們包含的四個頻率的信號的成分確實是同樣的,只是出現的前後順序不一樣。
可見,傅里葉變換處理非平穩信號有天生缺陷。它只能獲取一段信號整體上包含哪些頻率的成分,可是對各成分出現的時刻並沒有所知。所以時域相差很大的兩個信號,可能頻譜圖同樣。
然而平穩信號大可能是人爲製造出來的,天然界的大量信號幾乎都是非平穩的,因此在好比生物醫學信號分析等領域的論文中,基本看不到單純傅里葉變換這樣naive的方法。
上圖所示的是一個正常人的事件相關電位。對於這樣的非平穩信號,只知道包含哪些頻率成分是不夠的,咱們還想知道各個成分出現的時間。知道信號頻率隨時間變化的狀況,各個時刻的瞬時頻率及其幅值——這也就是時頻分析。
2、短時傅里葉變換(Short-time Fourier Transform, STFT)
一個簡單可行的方法就是——加窗。我又要套用方沁園同窗的描述了,「把整個時域過程分解成無數個等長的小過程,每一個小過程近似平穩,再傅里葉變換,就知道在哪一個時間點上出現了什麼頻率了。」這就是短時傅里葉變換。
看圖:
時域上分紅一段一段作FFT,不就知道頻率成分隨着時間的變化狀況了嗎!
用這樣的方法,能夠獲得一個信號的時頻圖了:
——此圖像來源於「THE WAVELET TUTORIAL」
圖上既能看到10Hz, 25 Hz, 50 Hz, 100 Hz四個頻域成分,還能看到出現的時間。兩排峯是對稱的,因此你們只用看一排就好了。
是否是棒棒的?時頻分析結果到手。可是STFT依然有缺陷。
使用STFT存在一個問題,咱們應該用多寬的窗函數?
窗太寬太窄都有問題:
窗太窄,窗內的信號過短,會致使頻率分析不夠精準,頻率分辨率差。窗太寬,時域上又不夠精細,時間分辨率低。
(這裏插一句,這個道理能夠用海森堡不肯定性原理來解釋。相似於咱們不能同時獲取一個粒子的動量和位置,咱們也不能同時獲取信號絕對精準的時刻和頻率。這也是一對不可兼得的矛盾體。咱們不知道在某個瞬間哪一個頻率份量存在,咱們知道的只能是在一個時間段內某個頻帶的份量存在。 因此絕對意義的瞬時頻率是不存在的。)
看看實例效果吧:
——此圖像來源於「THE WAVELET TUTORIAL」
上圖對同一個信號(4個頻率成分)採用不一樣寬度的窗作STFT,結果如右圖。用窄窗,時頻圖在時間軸上分辨率很高,幾個峯基本成矩形,而用寬窗則變成了綿延的矮山。可是頻率軸上,窄窗明顯不以下邊兩個寬窗精確。
因此窄窗口時間分辨率高、頻率分辨率低,寬窗口時間分辨率低、頻率分辨率高。對於時變的非穩態信號,高頻適合小窗口,低頻適合大窗口。然而STFT的窗口是固定的,在一次STFT中寬度不會變化,因此STFT仍是沒法知足非穩態信號變化的頻率的需求。
3、小波變換
那麼你可能會想到,讓窗口大小變起來,多作幾回STFT不就能夠了嗎?!沒錯,小波變換就有着這樣的思路。
但事實上小波並非這麼作的(關於這一點,方沁園同窗的表述「小波變換就是根據算法,加不等長的窗,對每一小部分進行傅里葉變換」就不許確了。小波變換並無採用窗的思想,更沒有作傅里葉變換。)
至於爲何不採用可變窗的STFT呢,我認爲是由於這樣作冗餘會太嚴重,STFT作不到正交化,這也是它的一大缺陷。
因而小波變換的出發點和STFT仍是不一樣的。STFT是給信號加窗,分段作FFT;而小波直接把傅里葉變換的基給換了——將無限長的三角函數基換成了有限長的會衰減的小波基。這樣不只可以獲取頻率,還能夠定位到時間了~
【解釋】
來咱們再回顧一下傅里葉變換吧,沒弄清傅里葉變換爲何能獲得信號各個頻率成分的同窗也能夠再借個人圖理解一下。傅里葉變換把無限長的三角函數做爲基函數:
這個基函數會伸縮、會平移(其實本質並不是平移,而是兩個正交基的分解)。縮得窄,對應高頻;伸得寬,對應低頻。而後這個基函數不斷和信號作相乘。某一個尺度(寬窄)下乘出來的結果,就能夠理解成信號所包含的當前尺度對應頻率成分有多少。因而,基函數會在某些尺度下,與信號相乘獲得一個很大的值,由於此時兩者有一種重合關係。那麼咱們就知道信號包含該頻率的成分的多少。
仔細體會能夠發現,這一步實際上是在計算信號和三角函數的相關性。
看,這兩種尺度能乘出一個大的值(相關度高),因此信號包含較多的這兩個頻率成分,在頻譜上這兩個頻率會出現兩個峯。
以上,就是粗淺意義上傅里葉變換的原理。
如前邊所說,小波作的改變就在於,將無限長的三角函數基換成了有限長的會衰減的小波基
從公式能夠看出,不一樣於傅里葉變換,變量只有頻率ω,小波變換有兩個變量:尺度a(scale)和平移量 τ(translation)。尺度a控制小波函數的伸縮,平移量 τ控制小波函數的平移。尺度就對應於頻率(反比),平移量 τ就對應於時間。
當伸縮、平移到這麼一種重合狀況時,也會相乘獲得一個大的值。這時候和傅里葉變換不一樣的是,這不只能夠知道信號有這樣頻率的成分,並且知道它在時域上存在的具體位置。
而當咱們在每一個尺度下都平移着和信號乘過一遍後,咱們就知道信號在每一個位置都包含哪些頻率成分。
看到了嗎?有了小波,咱們今後不再懼怕非穩定信號啦!今後能夠作時頻分析啦!
作傅里葉變換隻能獲得一個頻譜,作小波變換卻能夠獲得一個時頻譜!
↑:時域信號
↑:傅里葉變換結果
——此圖像來源於「THE WAVELET TUTORIAL」
↑:小波變換結果
小波還有一些好處,好比,咱們知道對於突變信號,傅里葉變換存在吉布斯效應,咱們用無限長的三角函數怎麼也擬合很差突變信號:
然而衰減的小波就不同了:
以上,就是小波的意義。
-----------------------------------------------------------------------------------------------------------
以上只是用形象地給你們展現了一下小波的思想,但願能對你們的入門帶來一些幫助。畢竟若是對小波一無所知,直接去看那些堆砌公式、照搬論文語言的教材,必定會痛苦不堪。
在這裏推薦幾篇入門讀物,都是以感性介紹爲主,易懂但並不深刻,對你們初步理解小波會頗有幫助。文中有的思路和圖也選自於其中:
1. THE WAVELET TUTORIAL (強烈推薦,點擊連接:INDEX TO SERIES OF TUTORIALS TO WAVELET TRANSFORM BY ROBI POLIKAR)
2. WAVELETS:SEEING THE FOREST AND THE TREES
3. A Really Friendly Guide to Wavelets
4. Conceptual wavelets
可是真正理解透小波變換,這些還差得很遠。好比你至少還要知道有一個「尺度函數」的存在,它是構造「小波函數」的關鍵,而且是它和小波函數一塊兒才構成了小波多分辨率分析,理解了它纔有可能利用小波作一些數字信號處理;你還要理解離散小波變換、正交小波變換、二維小波變換、小波包……這些內容國內教材上講得也很糟糕,你們就一點一點啃吧~