3.5 TFA (Time-Frequency Analysis)

本模組群提供時頻分析之計算:

  1. Short Term Fourier Transform:短時傅立葉轉換。

  2. Morlet Transform:小波轉換,此處之母函數為Morlet function。

  3. Enhanced Morlet Transform (*Only in Professional):改良過的Morlet轉換,融合了Morlet與短時傅立葉之特性。

  4. Hilbert Spectrum:將輸入訊號經Hilbert Transform後,計算出每個時間點的瞬時頻率。

  5. Marginal Frequency / Marginal Time:將計算出之時頻分析結果對頻率域/時域作積分計算。

  6. Transpose Spectra:將時頻圖的時間軸與頻率軸對換。

3.5.1 Short-Term Fourier Transform

傅立葉轉換(FourierTransform)是將時間訊號轉換至頻率域。相較於傅立葉轉換,僅能呈現訊號振幅與相位隨頻率變化,但無法知道該頻率發生的時間點。 而短時傅立葉轉換 ( Short-Term Fourier Transform, STFT, or spectrogram ) 用以計算訊號強度與相位隨時間與頻率的分佈,解決傅立葉轉換(Fourier Transform)無法得知頻率發生的時間的缺點。

說明

數學式為

其中,是輸入訊號, 是一個窗函數。數學式中的意義為:每一時間點對作傅立葉轉換,再將窗函數沿著時間軸方向挪移並計算得到的結果即為 代表了訊號某一時間與頻率上的強度或相位。各窗函數的定義,請參閱 Fourier transform。

Windows size 與 Frequency resolution 之間的關係如下:

其中,,Frequency Resolution 設定的越低,計算窗函數會越長,訊號周期性越強,所以頻率越確定,時間不確定。Frequency Resolution設定的越高,計算訊號的窗函數越短,時間越確定,頻率不確定

參數設定(Properties)

本模組接受實數(real number),單通道(single channel),rgular的訊號(signal)、聲音訊號(audio)輸入;輸出訊號格式為複數,單通道的時頻(spectra)資料結構。各參數定義詳如下方圖表。

參數名稱

參數定義

預設值

FreqAxis

時頻圖頻率的分佈可以設定為是 LinearAxis (線性尺度)或是 LogAxis ( 對數尺度),LogAxis 多用於聲音訊號分析。

LinearAxis

FreqMin; FreqMax

透過設定此參數,可決定繪圖時頻率的上下邊界。

0;0.5 * (Sample Frequency)

FreqResolution

此值會影響到窗函數的大小,設定的越低,窗函數會越長。

(Sample Frequency) / 40

FreqCount

設定 STFT 於頻率方向之格點數。

256

TimeCount

設定 STFT 於時間方向之格點數。

2048

RemoveDC

此值決定在進行 STFT 分析前,要不要先移除直流訊號。

True

Window

在STFT 分析,進行時間軸的分割時,會利用窗函數進行濾波,此處可選擇不同窗函數。關於各窗函數的定義,請參閱 Fourier transform。

Gauss

範例(Example)

以下範例以一個鳥鳴訊號 (Chirp ) 作輸入,利用 Visual Signal 作時頻分析,可以出現頻率隨時間線性變化。

  1. 按下 Network 工具列的,或以 Source / Open data from file 讀取訊號檔,檔案 chirp1000.tfa 位在安裝目錄下data資料夾 ( 預設為 C : \ Program Files \ AnCad \ Visual Signal \ demo \ Basic)。

  1. 點選 Chirp_1000 圖示,其 Properties 下顯示此訊號的通道數 (Channel Count) 為 1,取樣頻率 (Sampling Frequency) 為 1000 Hz,再用 Viewer / Channel Viewer 繪製訊號。可觀察此訊號頻率隨時間漸增。

  1. 選擇 Compute / TFA / Short Term Fourier Transform 直接對此訊號作 STFT,以 Viewer / Time Frequency Viewer 繪出計算結果。觀察時頻圖,訊號頻率隨時間呈一直線的變化,且由結果可得到某個時間點訊號的頻率值。

  1. 若是改變STFT 的參數 TimeCoant 或FreqCount,則STFT 會根據新設定的網格數量重新計算,因此會影響計算結果的解析度以及運算時間。現在改變 TimeCount 為 50,則運算速度變快,但結果的解析度亦變差。

  1. 若是改變 FreqMin 或 FreqMax 參數,STFT 仍然會對原頻率範圍作計算,不過僅截取參數設定範圍內的資料作輸出,不會影響作 STFT 的計算量。改變 FreqMax 為 50,計算時間並未因此縮短。

相關指令

Fourier Transform,Morlet Transform,Enhanced Morlet Transform。

參考資料

Stepphane Mallat, a Wavelet Tour of Signal Processing (2nd Ed), 1999.

3.5.2 Morlet Transform

小波分析 (Wavelet Analysis),或小波轉換 (Wavelet Transform) 是指用有限長或快速衰減的、稱為母小波 (Mother Wavelet) 的振盪波形來表示訊號。該波形被縮放和平移以匹配輸入的訊號。Morlet transform 即運用母小波 Morlet wavelet,對訊號進行小波分析的方法。

說明

與傅立葉轉換最大的不同,小波轉換將訊號轉為時間–頻率的訊號,根據測不準原理,頻率以及時間解析度的乘積為固定值,即是頻率解析度佳,則時間解析度一定差,反之亦然。短時傅立葉轉換的高低頻率帶的時間與頻率頻解析度皆為定值,但是在處理上,會希望在高頻帶的時間解析度佳,在低頻帶的頻率解析度較佳,唯有小波轉換,才能達到這樣的處理結果。小波轉換的方程式如下:

其中,a 參數為母小波縮放參數,b 為平移參數。再藉由轉換,將 a 值轉換為頻率。母小波必須符合三個條件

  1. ,

  2. ,

而 Morlet Transform 屬於小波轉換,其母小波的定義為,在 Visual Signal 中。

參數設定(Ploperties)

本模組接受實數(real number),單通道(single channel),regular的訊號(signal)、聲音訊號(audio)輸入;輸出訊號格式為實數,單通道,regular的時頻(spectra)資料。參數須設定起始與終點位置,其單位等於輸入訊號的時間單位。

參數名稱

參數定義

預設值

FreqAxis

時頻圖頻率的分佈可以設定為是線性尺度,或是 Log 尺度。Log 尺度提供聲音分析使用。

LinearAxis

FreqMin; FreqMax

透過設定此參數,可決定繪圖時頻率的上下邊界。

0;

0.5 * (Sample Frequency)

FreqCount

設定頻率方向之離散網格數。

128

TimeCount

設定時間方向之離散網格數。

2048

RemoveDC

此值決定在進行 Morlet Transform 分析前,是否先移除直流訊號。

True

範例(Example)

以下範例為一個鳥鳴訊號 (Chirp),利用 Visual Signal 分析其時頻圖,可以發現一個頻率隨時間線性變化。

  1. 按下 Network 工具列的,或以 Source / Open datafrom file 讀取訊號檔,檔案 chirp1000.tfa 位在安裝目錄下data資料夾 ( 預設為 C : \ Program Files \ AnCad \ Visual Signal \ demo\ Basic ),以 Viewer / Channel Viewer 繪出。

  1. 以 Compute / TFA / Morlet Transform 對輸入訊號作計算,再以 TFA Viewer 繪出,可明顯看到在越高頻的地方,頻率散佈範圍越大,轉換的效果越差。

相關指令

Short Term Fourier Transform,Enhanced Morlet Transform。

參考資料

1.Stepphane Mallat, a Wavelet Tour of Signal Processing (2nd Ed), 1999..

2. Y.-N.Jeng, C.-T. Chen and Y.-C. Cheng, ”The Enhanced Morlet Transform via Iterative Filter to Study Turbulent Data Strings”, The 6th Aslan Computational Fluid Dynamics Conference Taiwan, August, 2005.

3.5.3 Enhanced Morlet Transform*

*Only in Professional*

Morlet Transform 的缺點是在高頻部分,由於頻率解析度下降的關係,所以高頻會發散,請查閱Morlet Transform 章節。Enhanced Morlet transform 預先以 Gauss 函數處理,以解決高頻處能量發散的狀況。

說明

在小波轉換之前,會先乘上一個高斯函數,拿掉較邊緣、低震幅的訊號,使高頻解析度增加。此轉換的方程式如下,見 Morlet 章節:

其中為高斯函數:

由於高頻部分,Morlet 小波的 Scale 參數 a 會減小,導致高頻的解析度會變差,於是在進行小波轉換之前,會先對 Morlet Wavelet 乘上一個 Gaussian Window使得頻率解析度增加。

參數設定(Properties)

本模組接受實數(real number),單通道(single channel),regular的訊號(signal)、聲音訊號(audio)輸入;輸出訊號格式為實數,單通道,Regul(r的時頻(spectra)資料。各參數定義詳如下表。

參數名稱

參數定義

預設值

FreqAxis

時頻圖頻率的分佈可以設定為是線性尺度,或是 Log 尺度。

LinearAxis

FreqMin; FreqMax

透過設定此參數,可決定繪圖時頻率的上下邊界。

0;

0.5 * (Sample Frequency)

OverlappedFactor

Gaussian window 移動時之重疊量,即為原式的

1

FreqCount

設定頻率方向之離散網格數。

128

TimeCount

設定時間方向之離散網格數。

2048

RemoveDC

此值決定在進行 Morlet Transform 分析前,是否先移除直流訊號。

True

範例(Example)

以下範例為一個鳥鳴訊號 (Chirp),利用Visual Signal 分析其時頻圖,可以發現頻率隨時間線性變化。

  1. 按下Network工具列的,或以 Source / Open data from file 讀取訊號檔,檔案 chirp1000.tfa 位在安裝目錄下data資料夾 ( 預設為 C : \ Program Files \ AnCad \ Visual Signal \ demo \ Basic ),以 Viewer / Channel Viewer 繪出。

  1. 以 Compute / TFA / Enhanced Morlet Transform 對訊號作轉換, 以 TFA Viewer 繪出,可明顯看到在高頻段效果較 Morlet Transform 來的好。

相關指令

Short Term Fourier Transform,Morlet Transform。

參考資料

1.“觀察一維紊流數據的一種有效之新拆解法”, 鄭育能, 陳季聰, 鄭又齊, 第十二屆全國計算流體力學學術研討會。

2. A Wavelet Tour of Signal Processing (2nd Ed)

3.5.4 Hilbert Spectrum

Hilbert Spectrum 利用 Hilbert Transform,計算訊號每個時間點的瞬時頻率與瞬時振幅,並輸出為 時間-頻率 的矩陣。在 HHT 過程中,EMD後將 IMF 由訊號中提取出來後,我們可順利的把Hilbert Transform 應用在各個 IMF 上,觀看 Hilbert Spectrum 得出之時頻分析結果。利用模組 Haar Transform 之輸出結果也可直接接上 Hilbert Spectrum。

說明

在此模組內,包含了兩種 Hilbert Transform 的方法,請參考 Hilbert Transform 元件中的敘述。

我們可對計算得到其 Hilbert Transform如下:

,其中稱為的Hilbert pair。上式相當於和的 convolution後,再除以:

既。( P.V. 為 Cauchy Principle Value )

定義為瞬時角速度,而即為瞬時頻率。

因此,Hilbert transform 後,可以得到。

如欲畫為時頻圖,則依時間操作:

  1. 在時間為時,有頻率 可得在 Y軸上之高度

  2. 在時間為時,有強度 可得在 Z 軸上之大小

所有時間點操作,既可化為時頻圖,此為 Hilbert Transform 。而如此之操做實為將不連續的點畫在圖上,故多會插入高斯函數柔化數值。

若把 multi-channel 全部做 Hilbert transform 後,原訊號可表示成如下的形式(多用於 EMD 拆解後之下一步處理):

其餘操作同 single-channel。

參數設定(Properties)

本模組接受實數(real number),單通道(single channel)或多通道(multi-channel),regular的訊號(signal)、聲音訊號(audio)輸入;輸出訊號格式為實數,單通道,regular的時頻(spectra)資料。參數定義整理如下。

參數名稱

參數定義

預設值

Method 選擇 Hilbert Spectrum 計算的方法,"HilbertSpectrum"使用傳統的 Hilbert Transform;"byEnvelope"為逸奇科技自行開發之方法。 HilbertSpectrum

FreqMin

顯示Hilbert Spectrum時設定的最小頻率。

0

FreqMax

顯示Hilbert Spectrum 時設定的最大頻率。

0.5 * (Sample frequency)

FreqCount

設定Hilbert Spectrum於頻率之離散網格數。

256

TimeCount

設定Hilbert Spectrum於時間之離散網格數。

1024

Inst. Freq. Method

計算瞬時頻率的方法,有Simple法與Robust法,請參考微分Diff 元件。

Simple

Smoothing

因Hilbert Spectrum為離散之數值,Smoothing是利用Gaussian函數使其平滑。

True

範例(Example)

  1. 按下Network 工具列的,或以 Source / Open data from file 讀取訊號檔,檔案 chirp1000.tfa 位在安裝目錄下data資料夾 ( 預設為 C : \ Program Files \ AnCad \ Visual Signal \ demo \ Basic),以 Viewer / Channel Viewer 繪出。

  1. 在 Chirp_1000後接上 Compute / HHT / RADAC EEMD計算出 IMF (Intrinsic mode function),再以 Viewer / Channel viewer 繪出。

因 EMD 會計算出多通道訊號,用上圖表示不夠清楚,可以將 Channel viewer 的 Properties / ViewerHeight 調整為 300,Multi-channeldisplay 調為 List 使繪圖更清析可辨。

  1. RADAC EEMD 後接上 Compute / TFA / Hilbert Spectrum,再以Viewer / Time-frequency viewer 繪出結果,此程序即為運用黃鍔法計算瞬時頻率。

  1. Hilbert Spectrum 也可由 Haar Wavelet Transform 計算瞬時頻率。在 Chirp_1000 後方接上 Compute / Transform / Haar Wavelet Transform,再把 Properties / FilterBank levels 調為 9,Resampling method選 Spline,最後仿照步驟 2~3 進行時頻計算。

相關指令

RADAC EEMD,IMF Properties,TFA Viewer,Haar Transform。

參考資料

1. Proc. R. Soc. Land A 1998(903-995)

2. The Hilbert-huang Transform And Its Applications Huang, by Norden E. (EDT)/Shen, Samuel S. (EDT) World Scientific Pub Co Inc

3.5.5 Marginal Time / Marginal Frequency

利用時頻分析將一時域訊號轉為時頻二維陣列之後,提供使用者對 頻率軸 / 時間軸積分 後的 時間域 / 頻率域分佈。

說明

在已處理過時頻分析的訊號,,針對頻率軸積分,得到以時間為參數的分佈。數學上,這樣的操作可寫為:

其中為時頻二維陣列,為時間域分佈,此即為 Marginal Time。若針對時間軸積分,得到以頻率為參數的分佈。這樣的操作可寫為:

為頻率域分佈,此即為 Marginal Frequency,而若此是由處理而得者,將與做傅立葉轉換無異。

參數設定(Properties)

本模組接受實數(real number)、複數(complex number),單通道(single channel),regular的時頻(spectra)資料輸入;輸出訊號格式為實數,單通道,regular的訊號(signal)。

參數為 Marginal Method,主要針對時頻二維複數陣列處理,與 時間軸 / 頻率軸 積分上採取不同的方法,內建5種選項,內容整理如下圖表。

選項名稱

選項定義

Complex

分別對實、虛部積分。

,

,

Magnitude

對時頻訊號取 Norm 後再積分。

RealPart

對時頻訊號實部積分。

ImagPart

對時頻訊號虛部積分。

PowerSpectrum

對時頻訊號取 Norm2後再積分。

範例(Example)

範例以聲音訊號 hello.wav 作為訊號源,利用 Visual Signal 中的 Enhanced Morlet Transform 分析其時頻圖,再以 Marginal Time 計算訊號時間域的分佈。

  1. 按下 Network 工具列的,或以 Source / Open data from file 讀取訊號檔,檔案 hello.wav 位在安裝目錄下data資料夾 ( 預設為 C : \ Program Files \ AnCad \ Visual Signal \ demo \ Basic),接著做 Compute / TFA / Enhanced Morlet Transfoam,再以 Viewer / Time Frequency Viewer 繪出結果。

  1. 於 EnMorlet 後面作 Compute / TFA / Marginal Time,MarginalMethod 設定為 Magnitude 計算,以ChannelViewer 繪出,圖中縱軸為振幅。

  1. 將 MarginalMethod 調整為 Complex,代表 Marginal Time 直接對時頻訊號作積分。

  1. 再於 EnMorlet 後面作 Compute / TFA / Marginal Frequency,其計算結果之橫軸為頻率,縱軸為振幅。

相關指令

STFT,Morlet Transform,Enhanced Morlet Transform,Marginal Frequency。

3.5.6 Transpose Spectra

將時頻圖或階次圈數圖(Spectra)進行轉置,將資料的 X 軸和 Y 軸對調。

參數設定(Properties)

本模組接受實數(real number)、複數(complex number),單通道(single channel),regular的時頻(spectra)資料輸入

範例(Example)

以下範例為 OrderSpectrogram by STFT 的計算結果再經過轉置的結果,流程如如下圖。

將 OrderSpectrogram by STFT 結果接至 Transpose Spectra 轉換之後,最後利用 TF Viewer 觀看其結果。

相關指令

OrderSpectrogram by STFT、OrderSpectrogram by EnMorlet、STFT。