3.8 Enhanced

  1. Fast Short-Term Fourier Transform:快速版本之 STFT:就以相同長度的資料而言,此元件運行速度比傳統 STFT 快速,記憶體需求量低。

  2. Remove Bump:將訊號中不連續點 ( Bump 或 Jump ) 移除,再以平滑曲線連接之,還原原本訊號。

  3. Fast Trend Estimater:快速版本的 Trend Estimater。

  4. Fast Iterative Gaussian Filter:快速版本的 Iterative Gaussian Filter。

  5. Fast Iterative Gaussian Filter:快速版本的 Iterative Gaussian Filter。

  6. Fast MSE:快速版本的 MultiScale Entropy。

  7. Peak Detection:截取訊號之峰值位置點,亦或是計算兩峰值間的時間差。

  8. R-R interval:計算 ECG 訊號中 R波與 R波間的時間差。

  9. Teager:計算訊號的瞬時頻率與瞬時振幅。

  10. Rolling MSE:時間隨時及和不同尺度觀察振幅的變化大小。

  11. PCA:目的是將多筆混合訊號拆解為少筆訊號 。

  12. ICA:將一組混合訊號拆解為另一組統計上互相獨立的訊號 。

3.8.1 Fast Short-Term Fourier Transform

短時距傅立葉轉換 (Short-Term Fourier Transform, STFT) ,為傳統 STFT 的方法,此為快速版本,功能與標準版相同(僅使用介面些許有異)。

說明

此模組為快速版本之 STFT:就以相同長度的資料而言,此模組運行速度快,記憶體需求量低(可以計算更多點數的訊號)。速度上 ,提升約百倍;而可以運算訊號長度,於 3Gb 的記憶體而言 ( Windows XP 32bit 上限 ),標準板的 STFT 能計算的訊號長度上限約為四百萬點,而快速版本的上限約為兩千兩百萬點,其他說明請參考標準版本的Short-Term Fourier Transform。

參數設定(Properties)

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

參數名稱

參數定義

預設值

Method

設定計算方法,包含FFT,SlidingFFT。FFT 提供 1st Order Solution,SlidingFFT 提供 1st、2nd Order Solution。SlidingFFT 的計算窗每次平移資料一點,所以計算結果的網格較密,但螢幕無法顯示所有網格,若設定 FreqCount 或 TimeCount 小於計算的資料時間、頻率網格數,將需要設定參數 DisplayType。

SlidingFFT

DisplayType

SlidingFFT 的結果中,若 FreqCount 、TimeCount 小於計算的資料網格數,並藉由幾個頻率和時間的範圍內資料取一點 (Downsample)、最大值 ( Maxima )、最小值 ( Minima )、平均值 ( Average ), 以便降到設定展示網格數。取 Maxima、Minima、Average是為了不因降低網格數無法看見其細部變化。

Downsample

Order

當使用 SlidingFFT,可以設定 First、Second Order Solution。FFT 只有提供 First Oder,無需設定。

FirstOrder

FreqAxis

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

LinearAxis

FreqMin ; FreqMax

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

0;0.5*(SampleFrequency)

FreqResolution

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

(Sample Frequency) /40

FreqCount

顯示STFT於頻率方向之格點數。

Auto

TimeCount

顯示STFT於時間方向之格點數。

Auto

RemoveDC

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

True

Window

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

Gaussian

範例(Example)

  1. 在此以 FastSTFT 分析青蛙叫聲為範例,元件在 Network 的配置如下。

得到的結果為下圖。

若想要了解範圍為 1000 Hz 至 3500 Hz 間,修改 FreqMax 與 FreqMin 後得到下圖。

頻率上的解析度不是相當好,所以把 Frequency Resolution 修改為 75 (原本為 225 )。

可發現頻率上的解析度較方才為佳。

  1. 地震儀資料

有一筆地震儀量取的訊號,訊號點數約為八百萬點。特別注意到,如此長度之資料若以標準板的 STFT 做計算,會因記憶體需求量太大 ( 超過3G ) 而無法處理。

經過補值與 RemoveBump 處理後資料圖形如下圖。

將此筆訊號接上 FastFrend 再接上 Fast STFT (參數全用預設), 得到結果如下圖。

可以知道低頻部份沒有完全濾除,所以把 Fast Trend 中的 trend frequency 調為 3000 (意指頻率 3000Hz 以下者視為趨勢,濾除之),得到結果如下

若想要了解範圍為 10000 Hz 至 40000 Hz 間,重新設定 FreqMax 與 FreMin ,結果如下圖。

可發現頻率上的解析度稍差了一些。調整 Frequency resolution為500 ( 原為2500 ) 後,結果為下圖。

  1. 比較 FirstOrder 及 Second Order 的結果。

首先利用 Source / Sine Wave 產生 Sine,在接上兩個 FastSTFT,最後以兩個 TF Viewer 顯示其結果,TF Viewer 參數 YValueType 設定為 Gain。

由TF Viewer 中,可以看出 Second Order 在高頻無訊號的範圍內,計算出 Amplitude 較 First Order 小。

  1. 以二十萬點資料的 Noise 分別以 FastSTFT 與標準版的 STFT 做處理。

以同樣的資料分別以 FastSTFT 與 STFT 處理,在 2.8GHz (Intel E6300 Dual Core) 的電腦上,計算時間分別為 0.35 秒與 21.84 秒。

將 Frequency Resolution 都設定為 250,快速版之計算時間為 0.3593 秒,而標準版為 64.2343 秒。

相關指令

Short term Fourier Transform, Enhanced Morlet Transform。

參考

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

3.8.2 Remove Bump

各種的訊號都可能會因量測硬體的影響 ( 如校正基準點產生偏差等 ),造成訊號產生不連續現象 ( Bump 或是 Jump ),如下面圖形表示。

本元件目的在於可將上述不連續點移除,再以平滑曲線連接之,還原原本訊號:

說明

本元件是以兩個條件之交集判定是否發生 Bump 或 Jump

  1. 判斷訊號是否有一連串資料值皆超過臨界值,並且連續遞增或連續遞減值。

  2. 另外判斷該點資料之斜率是否超過臨界斜率

在此說明 J 與 S 之不同:

下面訊號在0.4 秒時有一個突然 Bump 處,放大該處範圍並觀察,可發現其為不連續五點

這六點( t =0.4s 到 t = 0.405s, y 從 2.1756 到 5.0575) 的最大 J 值為 5.50575 - 2.1756 = 3.33015。

這六點 S 的值如下圖所表示

( 利用 Compute / Math / Diff 將原訊號做微分,即為斜率)

若訊號中之點,S 與 J 皆超過臨界值,則視為 Bump 並修正之。

參數設定(Properties)

本模組接受實數(real number),單通道(single channel)或多通道(multi-channel),regular的訊號(signal)或聲音訊號(audio)輸入;輸出訊號格式與輸入訊號相同。各參數定義如下。

參數名稱

參數定義

預設值

Output Type

Signal : 移除 Bump 或 Jump 後的修正訊號。

Bump : Bump 或Jump 的訊號值

Singal

Jump Threshlod

臨界遞增值:遞增 / 減值超過此值者,將被視為 Jump / Bump 的候選值

整條訊號中,最大遞增值的 90%

Jump Threshold Ratio

設定 J 的比例係數:整條訊號最大的 遞增 / 減值 為,則設

0.3

SlopeThreshold

臨界斜率:若斜率之絕對值超過此值者,為 Jump / Bump 候選值

整條訊號中,最大斜率的 90%

Slope Threshold Ratio

設定 S 的比例係數:整條訊號斜率最大絕對值為,則設

0.3

Number of iterations

重複次數,若參數的選擇不佳,則有可能程式無法將不連續處完全移除。此參數為重複尋不連續處之次數(功用等同於將此模組重複串接)

1

StartPosition

欲處理訊號不連續處之時間起點

整個訊號的時間起點

EndPosition

欲處理訊號不連續處之時間終點

整個訊號的時間終點

範例(Example)

  1. 下圖為一筆地震儀之資料,在不同時間,地震儀之基準點不同:

再將原始訊號連接 Compute / Enhanced / RemoveBump,最後利用 Channel Viewer 觀察結果,參數全用預設值,如下圖所示。

可見到最大的兩個不連續處已經被移除。 再原本的 RemoveBump 後方再接一個 RemoveBump,參數設定如下:

第二個 RemoveBump 的參數中的 Jump Threshold Ratio 與 Slop Threshold Ratio 皆設定為 0.1,其餘的參數皆用預設。

接下來的處理方法,有兩種:

做法一

由上圖可以發現在 t = 22.77 與 t = 41.27 處似乎有不連續處,但放大後觀察,發現非不連續現象。

,反是在 t = 37 至38 之間有不連續現象。

可發現在這區塊,不連續現象已被移除

做法二

若不修改 StartPostion 與 EndPosition,但 Jump ThresholdRatio與Slop Threshold Ratio 皆設定為 0.1 :

輸出為

相關指令

Data Selection,Diff。

3.8.3 Fast Trend Estimater

Fast Trend Estimater 與標準版的 Trend Estimater 完全相同,為速度較快,記憶體消耗量較少之版本。

說明

演算法請參閱 Iterative Gaussian Filter 章節。

參數設定(Properties)

本模組接受實數(real number),單通道(single chtnnel)或多通道(multi-channel),regular的訊號(signal)或聲音訊號(audio)輸入;輸出訊號格式與輸入訊號相同。各參數定義如下。

參數名稱

參數定義

預設值

Filter Type

與 Iterative GaussianFilter 的相同。

LowPass:( 低通 ) 萃取出低頻部分。

HighPass:( 高通 ) 萃取出高頻部分。

ByPass:無任何頻段訊號被濾除。

LowPass

Trend Basis

以 ( Period ) 周期為參考設定參數或 ( Frequency ) 頻率為參考設定參數

Frequency

若是Trend Basis 設定為 Period,其參數定義如下表。

參數名稱

參數定義

預設值

Trend Period

週期高於此值者,則視為趨勢訊號。與 Iterative Gaussian Filter 對應則為:

FL ( = 2/TrendPeriod)

FH ( = 4 / TrendPeriod)

0

Time Unit

設定 TrendPeriod 的單位。

Default

Default Time Unit

輸入訊號的原始時間單位。

sec

若是Trend Basis 設定為 Frequency,其參數定義如下表。

參數名稱

參數定義

預設值

Trend Frequency

頻率低於此值者,則視為趨勢訊號。與 Iterative Gaussian Filter 對應則為:

FL ( = 2 * TrendFrequency)

FH ( = 4* TrendFrequency)

0

Frequency Unit

設定 TrendFrequency 的單位。

Default

Default Frequency Unit

輸入訊號的經傅立葉轉換後的原始單位。

Hz

範例(Example)

  1. 請參考Trend Estimator。

  1. 以 CPU 速度 2.8 GHz ( Intel E6300 ) 的電腦為測試機器,分別以標準版與快速版的 Trend Estimater 計算不同長度的 Brown noise ,點數對運行時間的圖形如下。

相關指令

Fast Iterative Gaussian Filter、Trend Estimater、Iterative Gaussian Filter。

參考

1. Yih Nen Jeng, "Diffusive and Fast Filter Using Iterative Gaussian Smoothing", Department of Aeronautics and Astronautics, National Cheng Kung University

2. Yih Nen Jeng 、Yueh-Jiuan G. Hsu 、You-Chi Cheng, 2004, " 應用疊代式濾波法於潮汐數據修補的初步研究" , 第二十八屆中華民國力學學會年會暨全國力學會議

3.YIH-Nen Jeng P. G. Huang You-Chi Cheng, 2007, "Decomposition of one-dimensional waveform using iterative Gaussian diffusive filtering methods", Proc. R. Soc. A doi:10.1098/rspa

4. Yih-Nen Jeng, You-Chi Cheng, 2006, "Accuracy Comparison between Two Sharp and Diffusive Filters", Proc.R. Soc. A doi:10.1098/rspa

5.http://www.ancad.com/blog/AnCADSupport/wp-connent/uploads/2008/05/it-gauss-2008-7.pdf

3.8.4 Fast Iterative Gaussian Filter

Fast Iterative Gaaussian Filter 的演算法比較原本方法速度更快,記憶體消耗量較少,且結果更精確,尤其在邊界上。

說明

請參考於 Iterative Gaussian Filter 的說明。

參數設定(Properties)

本模組接受實數(real number),單通道(single channel)或多通道(multi-channel),regular的訊號(signal)或聲音訊號(audio)輸入;輸出訊號格式與輸入訊號相同。各參數定義如下。

參數名稱

參數定義

預設值

Filter Type

此 Iterative Gaussian Filter 的濾波形式

LowPass:低頻部分可通過,濾除高頻。

HighPass:低頻部分可通過,濾除高頻。

ByPass:無任何頻段訊號被濾除。

LowPass

Attenuation

濾波中 Gaussian 曲線的參數值

0.01

FH

過濾頻段中的較高值。

10

FL

過濾頻段中的較低值。

2

範例(Example)

這裡以 CPU 速度 2.8GHz (intel E6300),3. 25GRAM 的電腦為測試機器,分別以標準版與快速版的 Iterative Gaussian Filter 計算不同長度的 Brown noise ,計算資料量對運算時間的圖形如下。

然而更重要者,是標準版的 Iterative Gaussian Filter 在相同的記憶體量 ( 3.25G ) 情況下,僅能處理最多 200 萬個點的資料;而快速版本者,最多能處理 1600 萬點的資料。

相關指令

Trend Estimater,Iterative Gaussian Filter。

參考

1. Yih Nen Jeng, "Diffusive and Fast Filter Using Iterative Gaussian Smoothing", Department of Aeronautics and Astronautics, National Cheng Kung University

2. Yih Nen Jeng 、Yueh-Jiuan G. Hsu 、You-Chi Cheng, 2004, " 應用疊代式濾波法於潮汐數據修補的初步研究" , 第二十八屆中華民國力學學會年會暨全國力學會議

3. YIH-Nen Jeng P. G. Huang You-Chi Cheng, 2007, "Decomposition of one-dimensional waveform using iterative Gaussian diffusive filtering methods", Proc. R.Soc. A doi:10.1098/rspa

4. Yih-Nen Jeng, You-Chi Cheng, 2006, "Accuracy Comparison between Two Sharp and Diffusive Filters", Proc. R. Soc. A doi:10.1098/rspa

5.http://www.ancad.com/blog/AnCADSupport/wp-connent/uploads/2008/05/it-gauss-2008-7.pdf

3.8.5 Fast MSE

原本 MSE 演算法中,計算一個 Scale 所耗的時間為正比於訊號長度 N 的平方,。

參數設定(Properties)

本模組接受實數(real number),單通道(single channel)或多通道(multi-channel),regular的訊號(signal)、聲音訊號(audio)輸入;輸出訊號格式為實數,單通道或多通道,regular的訊號。參數說明詳見下表。

參數名稱

參數定義

預設值

Algorithm

演算法選項,有 Auto、Brute、Sort 與 K-D tree。其中Brute即為原MSE之算法。Auto是自動選擇 : 在訊號長度 大於 5000 點且記憶體量足夠時使用 K-D Tree,反之則用 Sort。

Auto

MinScale

最小尺度。作多尺度分析時設定尺度縮放之下限值

1

MaxScale

最大尺度。作多尺度分析時設定尺度縮放之上限值

20

ScaleStep

尺度步長,於尺度上限以下取一步幅長,依此步幅長遞增(減)尺度至最大(小)尺度。

預設值=1

MatchPoint

設定比較相似度之數列長度

2

MatchTolerance

判斷相似度所設定的容忍誤差值,即原式中的 r

0.15

範例(Example)

以測試的機器 ( Intel dual core E6300 2.8 GHz )為例,一般版本與快速版的 MSE 的訊號點數對計算時間圖,測試訊號為 pinknoise,其餘參數皆為預設值。

相關指令

Noise,Viewer。

參考資料

1. Pincus, S. M., Approximate entropy as a measure of systemcomplexity, Proceedings of the National Academy of Sciences, USA, Vol. 88, pp. 2297-2301 (1991).

2. Costa M., Goldberger A.L., Peng C.-K. Multiscale entropy analysis of physiologic time series. Phys Rev Lett 2002; 89:062102.

3. Costa M, Peng C-K, Goldberger AL, Hausdorff JM.Multiscale entropy analysis of human gait dynaiics. Physica A , 2003;330:53-60.

4. Costa M., Goldberger A.L., Peng C.-K.Multiscale entropy analysis of biological signals. Phys Rev E 2005;71:021906.

3.8.6 Peak Detection

Peak Detection 可用於截取訊號之峰值位置點,亦或是計算兩峰值間的時間差。

說明

(1) 峰值的定義為訊號在一周期內的最大值,此最大值為數學上的相對最大 ( Locala Maximum ) 。

(2) 訊號因為常因雜訊所造成的干擾,而造成判斷錯誤。雜訊可能為:硬體不穩定產生的 Speckle Noise、交流電訊號、或來自各處的白噪音…等,更增加峰值判斷困難。可由 FIR、IIR 或 EMD 等濾波器消除之,再做峰值截取。

模組中微分目的在於讓增強訊號的斜率,讓該區域陡峭,使的區域最大值更加凸顯。在此 EMD 鑲嵌在此模組中做為濾波器。若欲截取的峰值頻率為大略已知,以 EMD 做為濾波器會有相當不錯的效果,將有意義的訊號與雜訊分離。如將 Speckle Noise 與某一訊號混合,以 EMD 拆解之,可將雜訊抽離開來 。

使用此模組,須先定義在門檻值以上方視為峰值:

在此值以上之峰值,會被 Peak Detection 截取,以下者則略過。

若訊號有趨勢性,如下圖:

則可使用 EMD 分離、濾除趨勢性:

再截取無趨勢性訊號的峰值(如上圖的第二條訊),可得到:

參數設定(Properties)

本模組接受實數(real number),單通道(single channel),Regular的訊號(signal)或聲音訊號(audio)輸入;輸出訊號格式則為index型式。

參數名稱

參數定義

預設值

Differential

偵測波峰界限值是否依據輸入訊號的微分再平方。

False

Output Type

輸出類別,可為峰值對時間 ( PeakVsTime ) 或峰值間的時間差對時間 ( PeakToPeakInterval )

PeakVsTime

Relative Threshold

是否採用相對(訊號之最大值)界限比例值,判斷峰值的標準,否則為絕對界限值。

True

Threshold Ratio

判斷峰值之標準,為最大峰值的多少倍 ( 0.0~1.0 )

0.4

Threshold value

直接輸入判斷峰值之絕對值

0.4

Using EMD

是否以 EMD 濾除趨勢與高頻訊號

False

Target Frequency

目標頻率,在目標頻率以上的及率頻的 Residual 會被移除

40

StandardDeviation

判斷 IMF 收斂的標準差

0.1

Max. Sifting Iterations

IMF 疊代最多的次數

10

範例(Example)

  1. 人工訊號的波型

首先例欲用 Source / Custom Wave,參數皆為預設,Expression 為 sin(2*pi*10*t)*cos(2*pi*20*t),圖形為下圖:

再將其接上 Peak Detection 參數全用預設,最後將其接至原本的 Viewer,然後調整 Viewer 的 Plot ElemEditor,將 Peak Detection 的 Line Width 為 None,Line Color 為紅色,Marker Style 為 Circle。

若再將 Threshold Ratio 設定為 0.2。

其中 PeaktoPeakInterval 為下圖,其中時間軸為極值發生的時間點,縱軸為極值時間點與上個極值時間點的差值。

  1. 帶有趨勢的人工訊號

首先例欲用 Source / Custom Wave,參數皆為預設,Expression 為 cos(2*pi*30*t)*cos(2*pi*30*t)+exp(2*t),圖形為下圖:

若 Peak Detection 的預設參數截取峰值,則會無法截取到正確的峰值。

將 Peak Detection 的 EMD 功能開啟,設定 Threshold Ratio 為 0.6,並把 TargetFrequency 設為 70,輸出結果如下:

  1. 包含 Speckle Noise 的人工訊號:

以將 Sine Wave ( 頻率 10 ) 與 Speckle Noise 做混合,其中Speckle Noise 值取恆正( 用 Math 模組做處理 )、振幅為 Sine Wave 的 30%,再用 Mixer 做混合,波型如下:

今欲截取 Sine Wave 的峰值。

以 Peak Detection 截取,參數全用預設,得到結果為:

再使用 Peak Detection,開啟 EMD,由於欲截取的 Sine 頻率為10,而希望保留比 10 低的訊號,故設定 Target Frequency 為 12,而 Residual 與高頻訊號都濾除。

得到結果為:

較方才結果好。

  1. 脈診儀資料:

原始資料為下圖:

直接使用 Peak Detection 的所有預設參數,但是效果不是很好。

開啟 EMD,並設定 TargetFrequency 為 40 Hz,結果較預設參數好,這是因為此脈診儀訊號有不少雜訊,須以 EMD 做處理方可得到較正確之結果。

Peak to Peak Interval為

相關指令

RRinterval、AnCAD EMD。

3.8.7 R-R interval

R 波探測可為 ECG 訊號(心電訊號)診段中最重要的問題。R 波時間間隔可為判段一人心跳是否異常,進一步診斷各種疾病。

說明

心電訊號可分類為多種波,如 P、Q、R、S、T 等。

其中R 波通常為最明顯的峰波,此模組為截取兩 R 峰之間的時間間格值:輸出時,x 軸為 R 波發生之時間,y 軸為兩 R 波之間的時間差。

參數設定(Properties)

本模組需接受標準 ECG 訊號,可為兩電極間的差值 ( DeltaVoltage ) 亦或兩極之值 ( TwoElectrode),量測單位為伏特或微伏特。輸入資料最少為 3000 點( 實際上,前三千點並不做計算,而是做為參考標準)。

本模組接受實數(real number),單通道 ( DeltaVoltage ) 或雙通道 ( TwoElectrode ),Regular的型式;輸出訊號格式為 index 型式、單通道資料。各參數定義詳如下方圖表。

參數名稱

參數定義

預設值

Type

設定輸入的 ECG 為兩電極間的差值 ( DeltaVoltage ) 亦或是兩電極之絕對值 ( TwoElectrode) 。

DeltaVoltage

Unit

單位,可為 Volt 或 milliVolt 。

milliVolt

Gain

ADC 單位轉換為物理單位的比例值,與ECG 量測儀之規格有關。

200

DCvalue

ECG 量測儀之基準校正值。

0

範例(Example)

  1. 在此以 MITDB (http://www.physionet.org/physiobank/database/mitdb/)的 100 資料為例。

資料格式為 hea 檔,匯入時會出現下面視窗,可發現資料為雙通道(明顯為雙極資料),單位為 mV

:

資料匯入後,可利用 Channel Viewer 觀察之(下圖為上圖之放大圖):

再將資料接至 RR interval 處理此資料,並將 Type 設定為 TwoElectrode

:

注意 RR interval 的之輸出,時間是由 9.1 秒開始,這是因為前面 3000 點做為計算 RR interval 的參考,故不列入計算。

  1. 此為一人躺在床上時量測到的 ECG 訊號,為兩電極間的差值,單位為 Volt 。

再將資料接至 RR interval 處理此資料,並將 Type 設定為 DeltaVoltage

得到結果如下圖。

本模組對輸入訊號之特性相當敏感,若以非標準 ECG 訊號輸入之,會發出警告,並相當可能無法做計算。

若欲以非標準 ECG 訊號做 RR interval 處理,請使用 Peak Detection 模組。

相關指令

Peak Detection。

3.8.8 Teager

Teager 能量運算子 ( Teager Energy Operator ) 是基於時-頻乘積的非線性微分算子,可用以分析訊號的調變 ( modulation )。在調變的基礎上,得以定義訊號的瞬時頻率與瞬時振幅。

說明

基於調變 ( AM-FM model ),訊號可寫為下面型式 ( desa1演算法 ):

其中為 Carrier frequency,為 Information signal為最大偏差頻率為瞬時振幅,為初始相角。

令定義 Teager 能量運算子為:

,其中為取樣週期

在線性調變,與調變波為窄波的基礎下,上式可有下面近似:

另外再定義( backward difference,反向差 )

這時可得到:

所以可得到

即為瞬時頻率與瞬時振幅

參數設定(Properties)

本模組接受實數(real number),單通道(single channel)或多通道(multi-channel),Regular的訊號(signal)或聲音訊號(audio)輸入;輸出訊號格式與輸入訊號相同。

參數名稱

參數定義

預設值

OutputType

設定輸出選項,可為 TEO ( Teager Energy Operator)、InstantAmplitude 與 InstantFrequency。

TEO

範例(Example)

使用 Source / Custom wave 自行設定訊號 ,取樣頻率設定為 1,TimeLength 為 200,共 201 個點,Expression為 (1+0.25*cos(pi*t/100))*cos(0.2*pi*t+pi*pow(t-100,2)/4000)

使用 Teager 模組分析之,OutType 為 TEO,結果以 Channel Viewer 顯示結果。

OutType 為 InstantAmplitude,結果以 Channel Viewer 顯示結果。

I

OutType 為 InstanceFrequency,結果以 Channel Viewer 顯示結果。

3.8.9 Rolling MSE

Rolling MSE 是對訊號 ( 訊號資料長度 N ),取觀察窗口 ( 窗口長度 M ) 做 MSE 計算,再平移窗口重複此步驟,最後結果繪為為三維度的Time-ScaleEntropy Plot 的分析方法。與Fast MSE相同,提供了三種演算法: Brute(原本的算法,單一尺度耗時)、Sort (同為,但比例係數較小 ) 以及 SlidingKD tree(,但需使用較多的記憶體)

說明

首先對原訊號 ( 點數 N = 1001 ),取出一段資料,做 MSE ( 在此 t = 0,窗口寬為 0.2):

再向右平移此窗口,再做 MSE (在此 t =0.04,重疊量 ( overalp ) 為 160 點 ):

再度向右平移窗口,再進行 MSE。

直至窗口掃完整條訊號:

將在上述的所有平移窗口計算得的結果組合成三維圖形,如下圖顯示個時間點結果。

t = 0

t = 0.04

t = 0.08

t = 0.8

將所有窗口的結果依序並排,並繪製為三維圖,如下圖。

演算法要求窗口 M 必須要大於 25 點;並且,M 必需要是 max scale 的三倍以上才能做分析。

參數設定(Properties)

本模組接受實數(realnumber),單通道(single channel)或多通道(multi-channel),Regular的訊號(signal)、聲音訊號(audio)輸入;輸出訊號格式為實數,單通道或多通道,Regular的訊號。參數與原本的MSE完全相同,僅多了演算法的選項:說明詳見下表。

參數名稱

參數定義

預設值

Method

演算法選項,有 Auto、Brute、Sort 與 Sliding K-D Tree,其中 Brute 即為原 MSE 之算法。Auto 是自動選擇 ,在窗寬度大於五千且記憶體量足夠時使用 Sliding K-D Tree,反之則用 Sort。

Auto

MinScale

最小要計算的尺度。

1

MaxScale

最大要計算的尺度。

20

ScaleStep

尺度步長:從尺度下限開始,以此步長做尺度增加,分做 MSE 計算至尺度上限。

1

MatchPoint

設定比較相似度之數列長度。

2

MatchTolerance

判斷相似度所設定的容忍誤差值。

0.15

Overlap

窗口與窗口間重疊部份的點數。

依訊號長度而定

WinSize

窗口的大小,單位為點數。

依訊號長度而定。

GlobarSTD

是否計算整段訊號的 STD,反之則計算窗口內 STD。

False

範例(Example)

以下這個範例是量測睡眠時的生理訊號,包括 EEG ( 腦波訊號 )、ECG ( 心電訊號 )、EOG ( 眼動肌動訊號 ) 等,醫生透過各種生理訊號的人為判斷,分析出睡眠的分層。

下面這張圖是睡眠時的 EOG 訊號。

將 EOG 訊號作 Rolling MSE,隨著時間觀察 MSE 的變化。

若將上圖 Rolling MSE 的結果與下圖醫生根據各種訊後做的判讀結果相當一致。

開啟 demo73_1 ( C:\Program Files\AnCAD\Visual Signal\demo\Enhanced\demo73_1 - RollingMSE.vsn ),可以看見一個加速度訊號,量測電梯上昇到停止的振動。

將振動訊號經由 Fast STFT 運算,再利用 TF Viewer 觀察其結果,發現在 25 秒至 65 秒間有固定 20 Hz 的頻率,也是電梯產生抖動的時間點如下圖。

再將其經過 Rolling MSE 的分析,發現這段期間 MSE 的值相較其他時間來的小,如下圖。

相關指令

Fast MSE。

參考資料

L. Guzm´an-Vargas, A. Ram´ırez-Rojas, and F. Angulo-Brown:Multiscale entropy analysis of electroseismic time series;Nat. Hazards Earth Syst. Sci., 8, 855–860, 2008

Costa M, Peng C-K, Goldberger AL, Hausdorff JM. :Multiscale entropy analysis of human gait dynamics. Physica A2003;330:53-60。

Costa M., Goldberger A.L., Peng C.-K.:Multiscale entropy analysis of biological signals. Phys Rev E 2005;71:021906.

Costa M., Goldberger A.L., Peng C.-K :Multiscale entropy analysis of physiologic time series.Phys Rev Lett, 2002; 89 : 062102.

3.8.10 PCA

說明

PCA ( Principle Component Anaylsis ) 的目的是將 k 筆混合訊號 X,( Mixing signal ) 拆解為 q 筆訊號 Y ( k>q ),而 Y 為互相不相關 ( un-correlated ) 的訊號。如此可用較少的訊號個數來代表或重建此混合訊號。

數學描述:

假設輸入的訊號 X 有 k 筆、訊號長度為 n;而輸出的(拆解過的)訊號 Y 有 q 筆,長度亦為 n。PCA 的目的是要找一個矩陣 W,滿足。其中 X 為混合訊號( X 需先移除 DC 值 )。W 稱之為主分量 ( principle component ),Y 稱之為 reconstructed signal。可以證明:W 為 X 的 covariance 矩陣的特徵向量 ( eigenvector ),而其特徵值 ( eigenvalue ) 決定每一個 principle component 對於 X 貢獻。所以,可透過刪除較小的特徵值,而以較少的筆數 q 來代表 ( resconstruct ) 此混合訊號。

註:

PCA 與 ICA 初看之下很容易混淆。PCA 乃將訊號拆解為彼此不相關的訊號;而 ICA 乃將訊號拆解為彼此獨立的訊號。非相關的定義較獨立的定義寬鬆許多。

其中,非相關的定義為:,其中為期望值。獨立的定義為:

參數設定(Properties)

本模組接受實數(real number),單通道(single channel),多通道(multi-channel),Regular訊號(signal)或聲音訊號(audio)輸入

參數名稱

參數定義

預設值

PCA method

PCA 的求解方法,可為 Eig (特徵值法 ) 或 SVD ( Singular Valued Decomposition )。

Eig

Small Eigenvalue Threshold

特徵值大小在多少以下,視為冗餘訊號。

1E-08

Number of Output Components

求解出來的獨立訊號數。

僅輸出供使用者參考

Report

將特徵值,特徵向量以報表型式輸出。

僅輸出供使用者參考

範例(Example)

開啟範例 demo 82 ( C:\Program Files\AnCAD\Visual Signal\demo\Enhanced\demo 82 - PCA.vsn ),可以看到有三支股票GE、INTEL、YAHOO,將 GE 及 INTEL 由 Mixer 依照比列形成一檔基金,如下圖。

將兩檔股票與基金一起進行運算,基金與 GE、INTEL 運算 PCA,在將 PCA 中的 Report 展開,發現有 Eigenvalue 趨近 0,表示基金含有 GE 或 INTEL 的成分。

基金與 GE、YAHOO 運算 PCA,在將 PCA 中的 Report 展開,發現有 Eigenvalue 沒有趨近於 0,表示基金不含有 YAHOO 的成分。

參考

1. Independent Component Analysis, ATutorial Introduction Ch10,James V. Stone, A Bradford Book

2. Independent Component Analysis, Aapo Hyvärinen, Juha Karhunen, Erkki Oja, A Wiley-Interscience Publication

3.8.11 ICA

說明

ICA 為 Independent Component Analysis 的縮寫,為近十來年來發展的一個訊號分析演算法。

問題描述:

ICA 是將一組混合訊號 M ( MixingSignal ) 拆解為另一組統計上互相獨立的訊號 S( Source Signal)。

數學描述:

假設輸入的混合訊號 M 有筆長度為 n,輸出的拆解後原訊號 S 有

長為 n。

ICA 的問題是要找一個矩陣 W 與獨立訊號 S 滿足

,

亦可寫成

其中 A 為,W 為

在 ICA 中有兩個假設:一為 S 為互相獨立,二為最多一個 S 為 Gaussian 分佈。

應用例 :雞尾酒派對 (Cocktail Part Problem ) 問題

ICA 可用以處理混音分離之問題:假設聲速為無窮快,以隻位置不同麥克風接收個人說話的加總混音,由於每個人說話之音量,相對於麥克風位置皆不同,所以每隻麥克風接收到的混音皆不同。ICA 可將麥克風接收到的聲音,拆解出每個人說話之原聲。此外,若讓麥克風數量大於人數( 如此在做拆解時,會有冗餘訊號,見下 ) 時,做 ICA 分離有機會將雜訊極中於某一 ( 冗餘 ) 訊號,讓拆解出來的訊號更接近原聲,更利於做接下來的處理 ( 如做頻率分析 )。因此,ICA 讓做為語音辨識或除噪的數學工具。

演算法說明:

本模組採用 Fixed Point 方法求解W 及 S,描述如下:

信號之間的獨立可用 Non-Gaussian 分佈函數描述之,最大化此函數,以求到 S 之間的獨立。 此求法相當於求 Cost ( Objective ) Function 的導數等於零的解,求解時使用牛頓法疊帶求得 W:

For ( n=1: MaxIteration) {

}

(a) 在求解時,可一次求 W的一個分量(一列):稱之 Deflation Method;

或同時求得所有 W 的分量,稱之Symmetric Method。

注意:因 Deflation 法很容易累積 Round-Off 之誤差,所以除了少數情況外,Symmetric 法結果都較 Deflation 為佳。

(b) Cost Function可為 Tanh, kurtosis ( Fourth Order Moment )、Skewness ( 3rd Order Moment ) 。 一般情況下 tanh 可得到較佳的準度。

(c)在式中,A 與 S 皆為未知 ,故可改寫為,其中為任意非零常數。則信號 亦為一解。這是 ICA 演算法本身的模糊性 ( Ambigiosity )。若符號顛倒則訊號正負號將顛倒,有時顛倒的訊號會造成困擾:如雞尾酒派對問題中,矩陣 A 的的每一個元素,因為為非負的數(距離不該有負號)。因此,本模組提供選項 Flip signal sign ,會自動將 A 的每一個元素調整為非負值。

(d) 的不等式發生於訊號有冗餘 ( Redundancy ) 的情況:Covariance Matrix ( 詳見 PCA ) 的特徵值,表現了原始訊號間的關係。在特徵值有零的情況下,表示混合訊號有線性相依性 ( 好比三個聲源,卻有五個麥克風 ),ICA 將自動移除此訊號。使用者可選擇特徵值在特定的 Threshold 下時,自動刪除該訊號。而因某些雜訊的特徵值相較於其他訊號小的多,故也可把 ICA 當做一種除噪工具。

參數設定(Properties)

本模組接受實數(real number),多通道(multi-channel),Regular 的訊號(signal)或聲音訊號(audio)的入。

參數名稱

參數定義

預設值

ICA method

ICA 的求解方法,可為 Symmetric 或Delfation。

Symmetric

Cost function

求解 ICA 時所用的分佈函數,有 hyperbolicTan、skewing 以及 kurtosis。

hyperbolicTan

Max iteration Steps

疊帶次數的最大值。

100

Epsilon

收斂與否的判斷標準。

0.0001

Neglect small Eigenvalue

特徵值大小在多少以下,視為冗餘訊號

1E-08

Flip Signal Sign

輸出時,是否要將訊號做反轉。

True

Number of Independent Components

求解出來的獨立訊號個數

僅輸出供使用者參考

ComputedIteration Steps

計算時,實際的疊帶次數

僅輸出供使用者參考

Report

將特徵值,特徵向量以報表型式輸出

僅輸出供使用者參考

範例(Example)

開啟 demo79 ( C:\Program Files\AnCAD\Visual Signal\demo\Enhanced\demo79 - ICA.vsn ), 可見原訊號 "Bird and Frog" 是由兩支麥克風錄製錄製兩種青蛙的叫聲,其中一種青蛙聲音類似鳥叫,可以按下 Viewer 左上角的 Play,分別聽兩支麥克風錄到的蛙叫聲 。

其中一支麥克風的聲音訊號經過 Fast STFT 計算結果如下圖,可以看出有高頻及低頻聲音。

再將兩支麥克風訊號經過 ICA 拆解,可以看結果如下,亦可以按下 Viewer 左上角的 Play,分別聽拆解出來各別的蛙叫聲

參考

1. Independent Component Analysis by by Aapo Hyvtirinen, Juha Karhunen, and Erkki Oja A Wiley-Interscience Publication

2. E. Bingham and A. Hyv¨arine,. A fast fixed-point algorithm for independent component analysis of complex-valued signals. Int. J. of Neural Systems, 10(1):1–8, 2000.

3. A. Hyv¨arinen. A family of fixed-point algorithms for independent component analysis.In Proc. IEEE Int. Conf. on Acoustics, Speech and Signal Processing (ICASSP’97), pages 3917–3920, Munich, Germany, 1997.

4. A. Hyv¨arinen. Fast and robust fixed-point algorithms for inde7endent component analysis. IEEE Trans. on Neural Networks, 10(3):626–634, 1999.

5. Z. Koldovský, P. Tichavský and E. Oja, "Efficient Variant of Algorithm FastICA for Independent Component Analysis Attaining the Cramér-Rao Lower Bound", IEEE Trans. on Neural Networks, Vol. 17, No. 5, Sept2006.