一、傅里葉變換

(FT)

二、傅里葉變換(FT)的缺點與短時傅里葉變換(STFT)

三、短時傅里葉變換(STFT)的缺點與連續小波變換(CWT)

四、連續小波變換(CWT)的缺點與離散小波變換(DWT)

三、短時傅里葉變換(STFT)的缺點與連續小波變換(CWT)

1、解析度問題

首先,我們需要了解一下海德堡測不準原理: Delta tDelta f > CDelta t 為信號的時間不確定度, Delta f 為信號的頻率不確定度。即,我們永遠無法同時確定一個信號的確切時間和確切頻率。

原因比較簡單,頻率其實就是時域周期性。如果我只給你一個數據點,問你這個數據點的頻率是多少,這肯定是做不到的。要確定頻率,就需要一個時域區間(包含幾個時域周期)的信號。

時域區間越寬,信號的時間定位越不準,時間不確定度 Delta t 越大,但是得到的頻率越准,頻率不確定度Delta f 越小;我們稱之為:低的時域解析度,高的頻域解析度。

時域區間越窄,信號的時間定位越准,時間不確定度 Delta t 越小,但是得到的頻率越不準,頻率不確定度 Delta f 越大;我們稱之為:高的時域解析度,低的頻域解析度。

如上兩圖,對於第一個圖中 sin(0.5t) 的信號,要確定頻率,即使把 (0,20) 都拿來,還是不太准,因為只包含了一個周期;對於第二個圖中 sin(5t) 的信號,要確定頻率,取個 (0,5) 就差不多了,因為已經包含了好幾個周期了。

我們來總結一下。

對於低頻信號,為了更好地確定頻率,我們希望,時域區間寬一些,即時間不確定度 Delta t 大一些,根據海德堡測不準原理,頻率不確定度Delta f 自然小一些;即低頻信號,我們希望:寬窗子,低的時域解析度,高的頻域解析度。

對於高頻信號,為了更好地在時域定位,我們希望,時域區間窄一些,即時間不確定度 Delta t 小一些,根據海德堡測不準原理,頻率不確定度Delta f 自然大一些;即高頻信號,我們希望:窄窗子,高的時域解析度,低的頻域解析度。

上圖所示是我們希望的動態解析度。圖中每個小矩形的 Time 軸方向的寬度是時間區間大小, Frequency 軸方向的寬度是頻率區間大小。注意,每個小矩形的面積是相等的,這保證了時域解析度乘上頻域解析度是定值,最大程度滿足海德堡測不準原理。通過圖可以看出,我們希望,對於低頻信號:低的時域解析度,高的頻域解析度;對於高頻信號:高的時域解析度,低的頻域解析度。

對於整體低頻、局部高頻的信號,這種動態調整解析度的規則特別有用。在實際信號中,頻率非常高的高頻信號往往是一種雜訊,只在局部出現,基本都滿足整體低頻、局部高頻這一條件。

最後,我們再來看兩張解析度圖來強化一下對於解析度的理解。

上圖是一張採集信號的解析度圖。每個小矩形的 Time 軸方向的寬度是很小, Frequency 軸方向的寬度很大。也就是說,其時域解析度很好,可以確切地確定每個信號採樣點的時間,但是其頻域解析度很差,或者說完全不具有頻域解析度。

上圖是一張傅里葉變換(FT)的解析度圖。每個小矩形的 Time 軸方向的寬度是很大, Frequency 軸方向的寬度很小。也就是說,其頻域解析度很好,可以比較精確地確定信號中的頻率成分,但是其時域解析度很差,或者說完全丟失了時域解析度。

傅里葉變換的這一特性,這一點我在上一篇文章里講過,這也是我們轉而使用短時傅里葉變換(STFT)的原因。

2、短時傅里葉變換(STFT)的缺點

我們來回憶一下STFT(詳見:1335:從傅里葉變換進階到小波變換(二)),STFT的窗長是固定的,即時域解析度是固定的,根據海德堡測不準原理,其頻域解析度也是固定的。其解析度圖如下:

每個小矩形的 Time 軸方向的寬度和Frequency 軸方向的寬度是恆定的!也就是說,不論高頻低頻,其時域和頻域解析度都不可調,這與我們之前討論的「對於低頻信號:低的時域解析度,高的頻域解析度;對於高頻信號:高的時域解析度,低的頻域解析度」這一原則不符合。

這種不符合會帶來什麼後果呢?

如圖所示正弦信號,0~250ms:300HZ,250~500ms:200HZ ,500~750ms:100HZ , 750~1000ms:50HZ。

選擇一個較窄的窗子width = 0.02 做STFT,結果如下:

當窗子較窄的時候,STFT的時域解析度還行,但是頻域解析度不佳。

我們選擇一個寬一些的窗子 width = 0.1 做STFT,結果如下:

當窗子較寬的時候,STFT的頻域解析度很好,基本可以確定頻率,但是時間軸上開始出現交疊了,也就是時域解析度下降了。

我們選擇一個更寬的窗子 width = 0.3 做STFT,結果如下:

當窗子更寬的時候,STFT的頻域解析度非常好了,但是時域解析度已經很差了,時間軸上出現了大規模的交疊現象。

我們來總結一下,對於STFT,如果窗子的寬度選擇合適,是可以得到時域和頻域解析度都「還可以」的結果的(由於STFT的解析度固定,只能說「還可以」,不能說「滿意」,因為我們最想要的是動態解析度)。但是,在變換之前,我們也不知道選擇多寬的窗子是合適的。

這就是STFT的缺點:1、時間和頻率解析度都固定,不能隨著頻率的高低實現動態可調;2、選擇一個合適的窗寬十分困難。

3、連續小波變換(CWT)

為了實現動態解析度,我們引入了小波母函數。

需要說明,小波母函數並不是一個特定的函數,而是一種函數的集合,滿足了一定條件的函數均可以作為小波母函數。小波母函數 psi(t) 需要滿足的有:

條件1,緊支撐性: exists a >0 , forall |t|>a, psi(t) = 0 ,即僅在一小部分定義域里不為0,剩下部分均為0。這個性質帶來的便利我們在前一篇文章講過了,就是具有緊支撐性的基函數,在原信號的時間軸上平移,就相當於對於原信號就行了加窗操作。

條件2,波動性: int_{-infty}^{+infty}psi(t) dt = 0 ,即在所有定義域內積分值為0,這說明小波母函數是一個波。

條件3,容許條件: c_psi = 2pi int_{-infty}^{infty} frac{|	ilde{psi(f)}|^2}{|f|}df < +infty ,這個條件使變換可逆。其中, 	ilde{psi(f) } 是小波函數傅里葉變換的共軛。由3可知 psi(f)|_{f = 0} = 0 ,也就是條件2。

條件4,正交性:這個條件也是為了使變換可逆。

PS:條件3、4的數學證明比較複雜,所以僅僅提了一下他們的作用,就是使得變換可逆。

上圖就是一個小波母函數的例子,我們看到了:

1、緊支撐性:僅在一小部分定義域里不為0,剩下部分均為0;2、波動性: 在所有定義域內積分值為0。這兩個條件是滿足的。

小波母函數既然是一個波,那麼就具有頻率。根據我們第一篇文章講的內容(1335:從傅里葉變換進階到小波變換(一)),將小波母函數作為基函數,與採集到的信號相乘並積分,可以篩選出:信號在小波母函數非0部分,頻率與小波母函數相近的成分。

需要說明,不同於FT的基函數 sin,cos ,小波母函數不具有特定的某一頻率,而是具有一個範圍內的頻率,因此篩選的是一定範圍的頻率,類似於一個帶通濾波器。

接下來我們講一講,小波母函數的變換,變換公式如下:

psi^*(	au,??)=  frac{1}{sqrt{??}} psi(frac{??}{{??}}?	au)

一是平移,用上式中的 	au 控制,	au改變,就相當於 psi(t) 在時間軸上不斷的平移。

二是縮放,用上式中的 s 控制。

變換後的函數 psi^*(	au,??) 稱為小波函數。

如下圖,中間的圖,s較小,相當於擠壓;右側的圖, s 較大,相當於拉伸。變換公式前的frac{1}{sqrt s}是為了能量守恆,沒有特別目的。

我們再來仔細觀察一下上圖。中間的圖,s較小,相當於擠壓,是不是頻率提高了?右側的圖,s較大,相當於拉伸,是不是頻率降低了?咦?有點意思了吧?縮放就是改變頻率!另外,一定記住, s 越大,頻率 f 越低, s,f 是倒數關係。

我們再來更仔細地觀察一下上圖。回憶一下上一篇文章,具有緊支撐性的基函數,滑動相當於分窗。那麼,這個窗長有多大呢?是不是就是基函數不為零的長度呢?那麼,中間的圖,s較小,相當於擠壓,頻率提高了,窗長是不是變小了?右側的圖,s較大,相當於拉伸,頻率降低了,窗長是不是變大了?

這不正是我們需要的「低頻,寬窗,差的時間解析度,好的頻域解析度;高頻,窄窗,好的時間解析度,差的頻域解析度」嗎?

和上圖對一下,是不是一模一樣了呢?這就是動態調解析度,得來全不費工夫啊!

接下來我們對一個信號就行一次連續小波變換(CWT)。下圖中藍色部分為小波函數(但原圖沒畫成波的形式,只是表示小波函數的時間軸位置和不為0的部分的寬度),黃色部分為信號。

圖源:THE WAVELET TUTORIAL

如上圖,選擇較小的s 對小波母函數進行縮放,此時小波函數頻率較高,窗子較窄(小波函數不為0的部分窄),用來篩選高頻部分。小波函數在時間軸上平移,每一次平移就先相乘,再積分,篩選出信號中與自己頻率相近的部分。

此時,窗子較窄(小波函數不為0的部分窄),時間解析度好,頻率解析度差。

圖源:THE WAVELET TUTORIAL

如上圖,將s 增大,對小波母函數進行縮放,此時小波函數頻率降低,窗子變寬(小波函數不為0的部分變寬),用來篩選中頻部分。小波函數在時間軸上平移,每一次平移就先相乘,再積分,篩選出信號中與自己頻率相近的部分。

此時,窗子變寬了(小波函數不為0的部分變寬),時間解析度變差,頻率解析度變好。

圖源:THE WAVELET TUTORIAL

如上圖,將s 進一步增大,對小波母函數進行縮放,此時小波函數頻率再次降低,窗子更寬(小波函數不為0的部分更寬),用來篩選低頻部分。小波函數在時間軸上平移,每一次平移就先相乘,再積分,篩選出信號中與自己頻率相近的部分。

此時,窗子很寬(小波函數不為0的部分很寬),時間解析度差,頻率解析度很好。

這就是連續小波變換CWT啦!

將上述CWT的過程寫成公式就是: CWT_x^psi (	au,s) = frac{1}{sqrt{s}} int_{-infty}^{+infty}x(t)psi(frac{t}{s}-	au) dt

注意:上圖中我們只列舉了三種 s (即三次縮放)和4種 	au (每種縮放對應四個時間位置,但是事實上, s,	au 是連續的,無窮多個的。

還是這個正弦信號,0~250ms:300HZ,250~500ms:200HZ ,500~750ms:100HZ , 750~1000ms:50HZ。

其小波變換如下圖所示(忽略圖中坐標,原圖如此,坐標不太對,還得映射一下,有空了我自己再畫一張改一改):

圖源:THE WAVELET TUTORIAL

我們來看,綠色的小峰,對應小的 s(scale) ,也就是高的頻率。他們的時間解析度很好s 的區間很小,根據s,f 的倒數關係,對應的 f 的區間就很大,因此頻率解析度不好

粉色的高峰,對應高的s(scale) ,也就是低的頻率, s 的區間很大,根據s,f 的倒數關係,對應的 f 的區間就很小,因此頻率解析度很好,時間解析度不好(有混疊)。

這也就再一次說明了CWT是動態解析度的,這也是CWT相對於STFT的優勢所在。

4、FT、STFT、CWT基函數對比

最後,再來看看,FT、STFT、CWT的基函數之間的不同,以便加深理解。

圖源:百度圖片

FT的基函數,是分布在 (-infty,+infty)sin,cos,不具有緊支撐性,只能篩選頻率,使得FT完全喪失了時間信息,不具有時間解析度。

STFT的基函數,是用窗函數截斷的sin,cos (圖中是被高斯窗截斷的),具有了緊支撐性,時域平移等同於分窗,使得STFT既能篩選頻率,也能篩選時間。但是STFT基函數是:先確定頻率,再與窗函數相乘構成的。因此不同的頻率,具有同樣的時間和頻率解析度。另外,窗函數的長短也比較難以確定。

CWT的基函數,是小波函數,具有緊支撐性,時域平移等同於分窗,使得CWT既能篩選頻率,也能篩選時間。小波函數在改變頻率的時候,是通過「縮放」實現的,這使得小波函數在改變頻率的同時,改變了窗長。因此不同的頻率,具有不同的時間和頻率解析度,實現了解析度動態可調。

最後,再說一下,有很多類型的小波母函數,比如haar小波,db系列小波,sym系列小波,coif系列小波等等等等。具體哪一個小波適應哪種情況,估計都能寫一本書了,我也沒深入鑽研過。我在利用小波變換做肌電信號識別的時候就是讀一讀有關肌電信號識別的論文,看看別人試過哪些小波,是一種上手比較快的方法。

1335:從傅里葉變換進階到小波變換(一)?

zhuanlan.zhihu.com
圖標
1335:從傅里葉變換進階到小波變換(二)?

zhuanlan.zhihu.com
圖標
1335:從傅里葉變換進階到小波變換(四)?

zhuanlan.zhihu.com
圖標

feihu.eng.ua.edu/NSF_TU (再次安利教程)


推薦閱讀:
相关文章