• 沒有找到結果。

短時傅利葉轉換(STFT)

第二章 感知訊號處理基礎

2.2 短時傅利葉轉換(STFT)

雖然傅利葉轉換(Fourier Transfrom)可以讓我們清楚的得知一段訊號的頻譜成份究竟 為何,然而在生活中的訊號與系統,卻是無法直接用傅利葉轉換來分析;其主要原因是:

傅利葉轉換假定該段訊號為非時變的,換句話說,該訊號的頻譜組成為固定不變的;然而 這樣的假設並不符合實際情況,因為現實生活中的訊號隨時都在改變。

若是直接以傅利葉轉換來分析時變訊號,會無法得知某個頻率真正存在的時間點。以 圖 13 為例:

圖 12 以 1KHz 為基準的等響度曲線 資料來源:〔20〕

圖 13 中,(a)與(b)是時變訊號的時間訊號及頻譜圖,是由 5Hz、10Hz、20Hz 和 50Hz 的弦波相加混合而成,其頻譜圖也顯示出這樣的特性。而(c)小圖中、前 50 點為 5Hz 的弦波,50~100 點為 10Hz 的弦波、100~150 點為 20Hz 的弦波,而最後 50 點為 50Hz 的弦波;觀察(d)小圖,似乎可以解釋為:在 5Hz、10Hz、20Hz 和 50Hz 處有最強的能 量,而最強的能量稍微散開、且頻譜有高頻成份產生是因為在第 50、100、150 點的地方 有不平滑而造成的現象。

然而以上的解釋並不合理,因為訊號是時變的,我們無法從頻譜圖中還原時域的圖形;

換句話說,我們無法準確說出那一個頻率成份存在那一段時間之內;因此,用傅利葉轉換 來分析時變訊號是不合理的,因為頻譜不具代表性。

因此,為了能夠使用 FFT(Fast Fourier Transform)直接對時變訊號做頻譜上的處理,

我們把連續訊號分為一個區塊一個區塊,並假設在該區段之內的訊號是非時變的,再進行 傅利葉分析,也就是所謂的短時訊號傅利葉轉換(STFT);然而,以 STFT 來分析訊號與 合成經過頻譜處理的訊號時,有非常多需要細部注意的事項,以下一一分析說明之。

圖 13 非時變訊號與時變訊號之時-頻比較圖

2.2.1 訊框長度、訊框位移、分析視窗

因此,為了使訊框在邊界上也可以連續,選擇視窗則變成一個很重要的議題;一般來 說,我們希望視窗的頻譜愈像脈衝愈好,也就是指主頻帶的寬度愈窄、副頻帶的高度愈小 愈好,而漢明視窗(hamming window)是很常見的一個選擇(圖 14)。

舉例來說,圖 15(a)是一個從無窮長的弦波取下來的一段訊號,可視為是弦波與矩 形視窗相乘而得,(b)則為其頻譜;從(b)圖中得知,因為在邊界的不平滑現象,使得 頻譜散開了。而(c)、(d)圖則是弦波與漢明視窗相乘而得的訊號及其頻譜;因為漢明視 窗的關係,使得訊號在邊界處連續(均為零),因此頻譜也較為集中。

圖 14 左圖為漢明視窗的時間訊號;右圖為漢明視窗與矩形視窗的頻譜響應比較 資料來源:diracdelta.co.uk

圖 15 矩形視窗與漢明視窗的結果比較圖

除了選取一個好的視窗之外,在分析頻譜的時候,我們也會讓每一段框架訊號有重疊;

我們認為這樣子得到的 STFT 是較為連續變化的,而相關參數則是框架位移。

2.2.2 快速傅利葉轉轉換點數(FFT size)

我們將連續訊號分解成一個個的框架訊號,並乘上適當的視窗之後,接下來要開始進 行傅利葉的分析了,這時候我們要考慮的是,到底要做幾點的 FFT?

從分析的角度來看,如果想要看到比較細部的頻譜變化,則點數愈多愈好,其原因是 DFT(Discrete FT)的分析是從 DFS(Discrete Fourier Series)而來,而 DFS 是針對週期性 訊號所做的分析,是我們想要分析的訊號的連續頻譜取樣而來的;當點數愈多的時候,頻 率軸的取樣率高,因此我們可以看到較為細緻的頻譜。

若是以訊號合成的觀點來看,則根據〔31〕第八章所提到的,連續訊號與一個系統響 應做旋積時,我們可以把訊號框架化成有限點訊號,分別與此系統響應做旋積之後,經過 OLA(overlap and add)或 OLS(overlap and save)合成訊號,得到與連續訊號直接做旋積 相同的結果。而框架訊號與系統響應做旋積的這個步驟,我們可以利用 FFT 將其轉換到頻 域相乘之後再轉回來,如此一來可以降低運算量。圖 16 即為 OLA 的分解步驟,左圖是框 架訊號補零之後的結果;右圖是分段與系統響應做旋積的結果;而右下圖則是重疊相加後 的結果。

特別注意的是 DFT 架構中,頻域軸的相乘相當於時域軸做迴旋旋積(circular

convolution),而迴旋旋積與旋積只有在兩個訊號的週期均大或等於兩個訊號旋積結果的長 度時才相等,也就是說,我們必頇把框架訊號補上足夠數目的零點才行。

連線性非時變系統的旋積,我們都必頇補零點,更何況是直接要在頻域上做一些複雜 的、非線性的處理—Kulkarni 與 Pandey 在〔23〕提到,雖然框架訊號只有 200 點,然而在 進行頻譜上的處理時,大約需要 1024 點的 FFT 才會有比較好的結果—我們認為這些非線

其中 f 為一個用於合成的函數;更有以數學推導出來的,使修改能量頻譜的框架訊號最接 近時域上存在的訊號的 LSEE-MSTFT(Least Squares Error Estimation-Modified STFT)

〔22〕:

相關文件