小波變換教程(1):基本原理

2021-01-14 算法愛好者
(點擊上方公眾號,可快速關注)


來源:  伯樂在線 - 張無忌

英文出處:ROBI POLIKAR

如有好文章投稿,請點擊 → 這裡了解詳情

如果轉載,請發送「轉載」二字查看說明


小波理論的基本概念及概述(第二版)



歡迎閱讀此份關於小波變換的入門教程。小波變換是一個相對較新的概念(其出現大約是在20世紀80年代),但是有關於它的文章和書籍卻不少。這其中大部分都是由數學專業人士寫給其他同行看的,不過,仍然有大量數學專家不知道其他同行們討論的是什麼(我的一個數學教授就承認過)。換言之,大多數介紹小波變換的文獻對那些小波新手們來說用處不大(此為個人觀點)。


我剛開始接觸小波變換的時候,曾經為了搞清楚小波變換這個這個神奇的世界到底發生了什麼而苦苦掙扎,因為在這個領域的入門教材非常少。因而,我決定為新手們寫一份教程。我自認為也是一個新手,必須承認,我也有很多理論細節沒有弄清楚。不過,就工程應用而言,我認為弄清楚所有的理論細節大可不必。


這份教程將試著介紹一些小波理論的基本原理,並且不會給出這些原理和相關公式的證明,因為這份教程的目標讀者暫時還不需要知道這些。不過,感興趣的讀者可以參閱引用的文獻以便了解更深入的內容。


此篇文檔假定你沒有任何相關知識背景。要是有的話,請跳過以下內容,這些對你而言可能都是顯然的。


要是你發現教程裡有任何前後不協調或不正確的內容,請聯繫我。我很樂於收到關於教程的任何評論。


變換…啥?


首先,為什麼需要變換,或者說到底什麼是變換?


為了獲取在原始信號中不易獲得的信息,往往要對信號進行數學變換。以下篇幅均假定時域內信號為原始信號,經過數學變換後的信號為處理信號。


可用的變換有很多種,其中,傅立葉變換大概是目前最流行的。


實際中,多數信號的原始形式都是時域信號,也即不論如何測得的,信號總是關於時間的函數。換言之,繪製信號的圖形時,一個軸代表時間(自變量),另一軸代表信號幅值(因變量)。在時域內作圖,便可得到信號的時-幅表示。在多數信號處理有關的應用場景中,這種表示並不是最好的表示。很多時候,最易分辨的信息往往隱藏在信號的頻率成分中。信號的頻譜是指信號中的頻率分量(或譜分量),其表示的是信號中存在哪些頻率成分。


直覺上,我們都知道頻率是跟事物的變化率有關的量。如果一樣東西(專業術語應該為數學量或物理量)變化得很快,則它的頻率就高;變換得慢,或者說變化得很平滑,則它的頻率就低。如果該量保持不變,則其頻率為零,或者說沒有頻率。例如,日報的頻率就比月刊高(因為日報出版快)。


頻率用「循環次數/秒」,或者用更常用的「赫茲」來衡量。例如,在美國,日常生活中所用交流電的頻率是60Hz(世界上其他一些地區是50Hz)。這意味著,如果我們想要繪製電流變化曲線,得到的將是1秒內往復50次的正弦波。看下面幾張圖,第一幅圖中是頻率是3Hz的正弦信號,第二幅是頻率10Hz的,第三幅則是頻率50Hz,對比下吧。



那麼怎樣測量頻率,或者說怎樣得到一個信號中所含的頻率成分呢?答案是傅立葉變換(FT)。對時域信號做傅立葉變換,就會得到信號的頻譜。也就是說,此時我們繪製信號圖形的話,一個軸是頻率,另一個軸是頻率分量的幅值。所得圖像將告訴我們信號中包含的各種頻率成分分別有多少。


頻率軸從零開始,直至正無窮。每個頻率都對應一個幅值。例如,如果我們對房間所用的電流信號做傅立葉變換,頻譜圖中在50Hz處會出現尖峰,其它頻率對應的幅值則為零,因為信號中只包含了50Hz的頻率分量。然而,很少有信號的傅立葉變換是如此簡單的。實際中的信號大都包含多個頻率分量。50Hz信號的傅立葉變換如下圖所示:


圖 1.4 50 Hz 信號的傅立葉變換


注意,圖1.4給出了上下兩張圖,下圖顯示的其實是上圖的前半部分。這是因為實值信號的頻譜圖是左右對稱的,這點暫時不理解也無妨。上圖能夠看出這一特性。不過,由於後一半對稱部分只不過是前一半圖形的鏡像,並未提供額外信息,因此,這部分經常不畫出來。下文中出現的多數頻譜圖,我將只繪出前半部分。


為什麼需要頻率信息?


通常,一些在時域中不易看出的信息很容易在頻域中觀察到。


看一個生物信號的例子。設想我們正在觀察一個心電信號。心臟專家一般都熟知典型的健康人心電圖的形狀。與這些典型形狀存在顯著偏差往往是疾病的徵兆。


一些病徵在時域表示的心電信號中並不明顯。過去,心臟專家一般用記錄在磁帶上的時域心電圖來分析心電信號。最近,新型的數字心電記錄儀/分析儀可以利用心電圖的頻域信息來判斷病徵是否存在。對心電信號的頻率成分進行分析能使他們更容易的診斷病情。


上面只是一個說明頻率成分作用的簡單例子。當前,傅立葉變換已經被用於不同的領域,涵蓋了工程領域的各個分支。


儘管傅立葉變換可能是使用最多的(特別在電氣工程領域),但它並不是唯一的變換。許多其他的變換也常為工程師和數學家們所用,如希爾伯特變換、短時傅立葉變換(下文會有更多介紹)、魏格納分布和雷登變換,當然還有教程的主角——小波變換,而這些也僅是工程師和數學家們所用變換中的一小部分。每種變換都有其應用領域,也有其優缺點,小波變換也不例外。


為了更好地理解為什麼需要小波變換,我們需要更深刻地認識傅立葉變換。傅立葉變換是一種可逆變換,即它允許原始信號和處理信號之間互相變換。但是,在任意時刻只有一種信號形式是可用的。也就是說,在時域信號中不包含頻率信息,而經過傅立葉變換後的信號則不包含任何時間信息。說到這,頭腦裡很自然地會提出一個問題,為什麼需要同時知道時間和頻率信息呢?


我們馬上就會知道,答案是具體問題具體分析。回想一下,傅立葉變換給出了信號中的頻率信息,即它可以告訴我們原始信號包含各個頻率成分到底有多少,但是並未告訴我們某個頻率信號何時出現。對於所謂的平穩信號,這些信息並不需要。


讓我們進一步探討一下平穩的概念,因為它在信號分析中具有重要意義。如果信號中的頻率分量不隨時間變化,則稱這類信號為平穩信號。平穩信號中的頻率分量一直保持不變,那麼,自然無需知道頻率分量是何時出現的,因為所有的頻率分量出現在信號的每一刻!!!


以如下信號為例:




這是個平穩信號,因為任何時刻都包含10,25,50和100Hz的頻率。信號的圖形如下:


圖 1.5


下圖為它的傅立葉變換:


圖 1.6


圖1.6中的上圖是圖1.5中信號的頻譜圖,下圖為上圖的放大,給出了我們關注部分的頻率範圍。注意四個頻率10,25,50和100Hz的頻譜分量。


與圖1.5中的信號不同,下圖所示的就是一個非平穩信號。圖1.7中,信號的頻率隨著時間一直在變化,這種信號稱為線性調頻信號,是一種非平穩信號。


圖 1.7


讓我們再看一個例子,圖1.8繪出的是一個包含四個頻率分量的信號,它們分別在不同時刻出現,因此這是一個非平穩信號。0至300ms時是100Hz的正弦波,300-600ms時則是50Hz的正弦波,600-800ms時是25Hz的正弦波,最後的200ms內是10Hz正弦波。


圖 1.8


下圖是它的傅立葉變換:


圖 1.9


不要介懷圖中的那些小波紋,這是由信號中頻率突變引起的,在這裡並不重要。注意,高頻分量的幅值比低頻分量大,這是因為高頻信號(300ms)比低頻信號(200ms)持續時間更長。(頻率分量幅值的精確值並不重要)。


除了那些波紋,圖中的一切看起來都是正確的。頻譜圖有四個尖峰,對應原始信號中的四個頻率分量,幅值也差不多是合理的…沒錯


錯!


當然了,也不全錯,但也不全對。對圖1.5中的信號,考慮如下問題:各個頻率分量都是在什麼時刻出現的?


答案是


在所有時刻!還記得平穩信號嗎,所有頻率分量在信號的整個持續時間內一直存在。10Hz的頻率分量一直存在,50Hz的分量也是,100Hz的分量依然是。


現在,讓我們來考慮一下圖1.7或1.8中的非平穩信號。


各個頻率分量都是在什麼時刻出現的?


對於圖1.8中的信號,我們知道,第一個時間區間內出現的是頻率最高的分量,最後一個時間區間內出現的是頻率最低的分量。圖1.7中,信號的頻率成分隨時間連續變化,因此,對這些信號來說,各個頻率分量並未在所有時刻一直存在。


現在,對比圖1.6和1.9,兩幅頻譜圖的相似之處是顯而易見的。兩幅圖中都包含了四個相同的頻率分量,即10,25,50和100Hz。除了一些小波紋和兩幅圖中各頻率分量的幅值(這些幅值可以做歸一化處理)有所區別,兩幅頻譜圖幾乎是相同的,儘管兩個信號在時域內差別很大。兩個信號都包含了相同的頻率分量,但是前者中,各頻率分量存在於信號的整個周期內,而後者的頻率分量則分別存在於不同的時間區間內出現。那麼,為什麼兩個完全不同的信號,頻譜圖形這麼相像呢?回想一下,傅立葉變換僅僅給出了信號的頻譜分量,但卻沒有給出任何關於這些分量出現時間的信息。因此,傅立葉變換並不適用於分析非平穩信號,但有一個例外:


如果我們僅關心信號中包含哪些頻率分量而不關心它們出現的時間,傅立葉變換仍可用於處理非平穩信號。但是,如果我們想知道頻率分量出現的確切時間(區間),傅立葉變換就不再適用了。


實際應用中,由於平穩的和非平穩的信號都很多,很那將二者區分開來。例如,幾乎所有的生物信號都是非平穩的,包括廣為人知的心電圖(ECG)、腦電圖(EEG)和肌電圖(EMG)。


再次注意,傅立葉變換僅能給出信號中包含哪些頻率分量,僅此而已。


當需要對頻譜分量進行時間定位時,我們就需要一個可以給出信號時-頻表示的變換。


終極解決方案:小波變換


小波變換是這種類型的變換,它提供了信號的時頻表示(還有一些變換也可給出這些信息,如短時傅立葉變化,魏格納分布等等)。


特定的頻譜分量在特定的時刻出現往往具有特殊的意義。這些情況下,了解這些特定的頻譜分量出現的時間區間會非常有用。例如,在腦電圖中,事件相關電位的延遲時間需要特別注意(事件相關電位是指大腦對某一特定刺激的反應,類似閃光燈,延遲時間是從接受刺激到作出反應之間耗費的時間)。


小波變換能夠同時提供時間和頻率信息,因此給出了信號的一種時頻表示。


小波變換到底是如何奏效的完全是另外一個故事,需要在理解了短時傅立葉變換(STFT)之後再做解釋。小波變換的出現是為了改進短時傅立葉變換(STFT)。STFT將在教程的第II部分詳細闡述。現在暫時可以認為小波變換是為了解決STFT中遇到的有關解析度的問題而發展起來的。


為了長話短說,我們略過時域信號處理中有關於各種高通和低通濾波器的相關內容。這些濾波器用來過濾信號中的低頻和高頻部分分量。這類方法被重複實施,每次都會從信號中濾除一些頻率分量。


這裡解釋一下濾波是如何奏效的:設想我們有一個信號,其中頻率最高的分量為1000Hz。第一步,我們通過高通和低通濾波器把信號分成兩個信號(濾波器必須滿足某些特定的條件,即容許條件),結果得到了同一信號的兩個部分,0-500Hz的部分(低通部分)和500-1000Hz的部分(高通部分)。


然後,我們可以拿其中一部分(通常是低通部分)或者二部分,然後對每一部分繼續進行相同的操作。這個過程叫做分解。


假設我們拿低頻部分做了處理,現在我們就有了3組數據,分別為信號在0-250Hz,250-500Hz和500-1000Hz的部分。


然後再對低通部分的信號繼續做高通和低通濾波處理;現在我們就有了4組數據,分別為0-125Hz,125-250Hz,250-500Hz和500-1000Hz。我們持續進行這個過程,直到將信號分解到一個預先定義的水平。這樣我們就有了一系列信號,這些信號實際上都來自相同的信號,但是每一個都對應不同的頻帶。我們知道每個信號對應的頻段,如果我們將這些信號放在一起畫出三維圖,一個軸表示時間,頻率在另外一個軸上,幅度在第三個軸上。這幅圖會告訴我們各個頻率出現哪些時刻(這裡有一個問題,叫做「不確定性原理」,即我們不能精確地知道哪個頻率出現在哪些時間點,我們僅能知道某一頻段出現在哪一時間區間內,後文中將有更多介紹)。


不過,我仍想簡單地解釋一下:


不確定性原理最早由海森堡發現並闡述,其表述為:移動粒子的動量和位置不可同時確定。在我們這個課題裡則是這樣:


時-頻平面內的一個確定的點上,信號的頻率和時間信息不能同時知道。換句話說:在任一時刻,我們無法確定存在哪個頻譜分量。我們最多只能做到,在一個給定的時間區間內存在哪些頻譜分量。這是一個解析度的問題,也是研究者們從快速傅立葉變換(STFT)切換到小波變換(WT)的主要原因。快速傅立葉變換的解析度隨時間是固定不變的,而小波變換則能給出可變的解析度:


高頻信號在時域內很好分辨,低頻信號則在頻域內容易分辨。這意味著,相對於低頻分量,高頻分量更容易在時域內定位(有更小的相對誤差)。反而言之,低頻分量更容易在頻域內定位。看下面的網格圖:




對上圖的解釋是:最上面一行表明,高頻信號有更多的採樣點和較短的採樣間隔。就是說,高頻信號更容易在時域內分辨。最下面一行是對低頻信號的採樣,描述信號的特徵點較少,因此,低頻信號在時域內並不容易分辨。




在離散時間的情形中,信號的時間解析度與先前相同,但是現在,頻率信息的解析度在每一個階段都不同。注意到,低頻信號更容易在頻域內分辨,高頻則不然。注意,相鄰頻率分量的間隔是如何隨頻率增高而增大的。


下面是連續小波變換的例子:


我們構造一個正弦信號,具有兩個頻率成分,分別處在兩個不同的時間區間:


注意低頻分量先出現,然後是高頻分量。


圖 1.10


圖 1.11


注意,上圖中代表頻率的軸被標記為了「尺度」。「尺度」的概念將會在後續章節進行闡述,但這裡需要注意的是,尺度是頻率的倒數,即尺度越大頻率越低,尺度越小頻率越高。因此,圖中的小的峰值對應的是信號中的高頻分量,大的峰值對應的是信號中的低頻分量(在時域內,低頻分量先於高頻分量出現)。


你可能被圖中的頻率解析度搞暈了,因為高頻信號似乎也有很好的頻率解析度。但請注意,高頻(低尺度)信號處解析度較好的是尺度解析度,而非頻率解析度。尺度解析度高意味著頻率解析度低,反之亦然。更多相關內容將在後續部分介紹。


未完,待續…


以上是此份教程的第一部分,我試著給出信號處理的簡要概述——傅立葉變換和小波變換


初稿:1994年,11月

修改版:1995年,7月23日

第二版:1996年,6月5日


覺得本文有幫助?請分享給更多人

關注「算法愛好者」,修煉編程內功

相關焦點

  • 小波變換原理與應用_小波變換的基本原理_小波變換的應用
    打開APP 小波變換原理與應用_小波變換的基本原理_小波變換的應用 發表於 2018-01-13 09:42:37      小波變換的基本原理   傳統的信號理論,是建立在Fourier分析基礎上的,而Fourier變換作為一種全局性的變化,其有一定的局限性。在實際應用中人們開始對Fourier變換進行各種改進,小波分析由此產生了。
  • 小波變換教程(一):為什麼需要小波變換
    本文講解ROBI POLIKAR編寫的小波變換教程《THE WAVELET TUTORIAL》的第一部分:為什麼需要小波變換。
  • 小波的秘密1-小波變換概況與綜述
    可見,傅立葉變換處理非平穩信號有天生缺陷。它只能獲取一段信號總體上包含哪些頻率的成分,但是對各成分出現的時刻並無所知。因此時域相差很大的兩個信號,可能頻譜圖一樣。  然而平穩信號大多是人為製造出來的,自然界的大量信號幾乎都是非平穩的,所以在比如生物醫學信號分析等領域的論文中,基本看不到單純傅立葉變換這樣naive的方法。
  • 小波變換通俗解釋
    從傅立葉變換到小波變換,並不是一個完全抽象的東西,可以講得很形象。小波變換有著明確的物理意義,如果我們從它的提出時所面對的問題看起,可以整理出非常清晰的思路。下面就按照傅立葉-->短時傅立葉變換-->小波變換的順序,講一下為什麼會出現小波這個東西、小波究竟是怎樣的思路。
  • 圖像的二維提升小波變換的FPGA實現
    高階小波變化還可以用於實時處理視頻圖像信號,在減少編碼時間、提高壓縮比和降低失真度方面,都有很好的效果。因此,小波變換在圖像處理中具有十分優越的性能。本文引用地址:http://www.eepw.com.cn/article/150539.htm  國際標準化組織和國際電子技術聯盟聯合推出的新一代靜止圖像壓縮標準JPEG2000採用了基於提升算法的離散小波變換。
  • 小波變換通俗解釋版
    小波變換有著明確的物理意義,如果我們從它的提出時所面對的問題看起,可以整理出非常清晰的思路。下面就按照傅立葉-->短時傅立葉變換-->小波變換的順序,講一下為什麼會出現小波這個東西、小波究竟是怎樣的思路。
  • 小波閾值去噪的基本原理_小波去噪閾值如何選取
    打開APP 小波閾值去噪的基本原理_小波去噪閾值如何選取 發表於 2018-01-10 09:46:50 小波閾值去噪的基本原理 小波閾值去噪的基本思想是先設置一個臨界閾值λ,若小波係數小於λ,認為該係數主要由噪聲引起,去除這部分係數;若小波係數大於λ,則認為此係數主要是由信號引起,保留這部分係數,然後對處理後的小波係數進行小波逆變換得到去噪後的信號。
  • 小波變換 完美通俗解讀
    我們實驗室主要是搞圖像的,實力在全國也是很強的,進去後和師兄師姐聊,大家都在搞什麼小波變換,H264之類的。當時的我心思都不在這方面,盡搞什麼作業系統移植,ARM+FPGA這些東西了。對小波變換的認識也就停留在神秘的「圖像視頻壓縮算法之王」上面。後來我才發現,在別的很廣泛的領域中,小波也逐漸開始流行。比如話說很早以前,我們接觸的信號頻域處理基本都是傅立葉和拉普拉斯的天下。
  • 小波變換在差動熱分析儀信號處理中的應用
    1小波變換濾波的基本原理  小波變換在時、頻兩域都具有較好的表徵信號局部特徵的能力,為設備狀態檢測和故障診斷中非平穩信號分析、信噪分離、趨勢項的去除、弱信號和狀態特徵的提取、故障檢測提供了有效的途徑。
  • 基於小波變換的圖像壓縮算法改進研究
    1 小波變換1.1 小波變換的產生及原理  儘管傅立葉(Fourier)變換可以確切地告訴人們某個信號是否包含特定的頻率分量,但它無法說明該頻率分量發生在哪個時間段。因此,它僅適用於處理平穩信號,而不適用於處理非平穩信號。
  • 完美通俗解讀小波變換,終於搞懂小波是什麼東東了
    好,現在我們對變換有了基本的認識,知道他們其實就是在搞基。當然,搞基也是分形式的,不同的變換,搞基的妙處各有不同。接下來先看看,傅立葉變換是在幹嘛。傅立葉級數最早是Joseph Fourier這個人提出的,他發現,這個basis不僅僅存在與vector space,還存在於function space。
  • 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
  • 連續小波變換開關電流電路的實現
    本文在這種背景下提出了利用先進的開關電流集成電路技術來實現小波變換,以滿足實時信號處理的要求,並用實例驗證了該設計方法的正確性。 2 工作原理 小波函數的頻率響應h(jw)是幅頻特性比較集中的帶通函數。當採用不同尺度值a作處理時,各h(jaw)的中心頻率和帶寬都不一樣,但品質因數卻不變。從頻率上看,用不同尺寸作小波變換相當於用一組帶通濾波器對信號進行處理。
  • 小波變換和motion信號處理(二)
    這是《小波變換和motion信號處理》系列的第二篇,深入小波。第一篇我進行了基礎知識的鋪墊,第三篇主要講解應用。我們還講了一般小波變換的三個特點,就是小波級數是二維的,能定位時域和頻域,計算很快。但我們並沒有深入講解,比如,如何理解這個二維?它是如何同時定位頻域和時域的?在這一篇文章裡,我們就來討論一下這些特性背後的原理。首先,我們一直都在講小波展開的近似形式。那什麼是完整形式呢?之前講到,小波basis的形成,是基於基本的小波函數,也就是母小波來做縮放和平移的。
  • 基於提升小波變換的模糊圖像融合算法研究
    圖像的小波分解是一種像素級圖像融合普遍採用的方法,利用小波非冗餘性使圖像經小波分解後數據量不會增大;同時小波分解具有方向性的特性,可針對人眼對不同方向的高頻分量具有不同解析度這一視覺特性,在圖像融合時獲得效果更佳的融合圖像。基於提升方法的小波變換又稱第2代小波變換,它既保持傳統的小波時頻局部化等特性,又克服其局限性。
  • 小波變換在Internet網多媒體業務中的應用
    在這些標準、方案中,小波變換使信號的低頻長時特性和高頻短時特性同時得到處理,有效地克服了傅氏變換在處理非常平穩複雜圖像信號時所存在的局限性,因而各種多媒體業務應用領域受到了廣泛的重視[1、2]。本文將以此為基礎對小波變換這一工具應用到圖像壓縮、實時連續媒體流等領域做一些有益的嘗試與探討。
  • 基於FPGA實現多種小波變換
    在邏輯綜合時按不同小波的要求,改變參數可得到不同的結果。以圖像處理中常用的(5 ,3)濾波器為例說明依靠FPGA 的重組特性實現濾波器的小波變換核方法。實驗結果表明,利用FPGA 設計的提升小波變換核能滿足不同場合和不同運行的要求。 LS 小波變換理論 LS 變換過程如圖1 所示,逆變換與正變換相同,只是順序相反。
  • 小波變換和motion信號處理:第二篇
    和傅立葉級數有一點不同的是,小波級數通常是orthonormal basis,也就是說,它們不僅兩兩正交,還歸一化了。我們還講了一般小波變換的三個特點,就是小波級數是二維的,能定位時域和頻域,計算很快。但我們並沒有深入講解,比如,如何理解這個二維?它是如何同時定位頻域和時域的?在這一篇文章裡,我們就來討論一下這些特性背後的原理。
  • 基於小波變換的JPEG2000圖像壓縮編碼系統的仿真與
    與傳統JPEG基於離散餘弦變換不同,JPEG2000基於離散小波變換,它不僅在壓縮性能方面明顯優於JPEG,還具有很多JPEG無法提供或無法有效提供的新功能,比如,同時支持有損和無損壓縮、大幅圖像的壓縮、漸進傳輸、感興趣區編碼、良好的魯棒性、碼流隨機訪問等。一個典型的JPEG2000的壓縮過程如圖1所示。
  • 基於SI濾波器的一種小波變換的實現
    小波變換是80年代後期發展起來的應用數學分支,是Fourier變換發展史上裡程碑式的進展,以Fourier變換理論為基礎,但在許多性質上又要優於Fourier變換。小波變換作為時一頻分析方法,能聚焦到信號時段和頻段的任意細節,具有「自適應性」和「數學顯微鏡」的美譽而得到越來越多的重視,成為信號處理、圖像壓縮和模式識別等眾多領域中一個非常有效的數學分析工具。