Chapter 3. 計算模組 (Compute)

Table of Contents

3.1 Channel
3.1.1 Channel Switch
3.1.2 Data Selection
3.1.3 Dup
3.1.4 Fill Null Value
3.1.5 Remove Channel
3.1.6 ReplaceValue
3.1.7 Resampling
3.1.8 Time Shift
3.1.9 Data Merge
3.1.10 Input Switch
3.2 Filter
3.2.1 FIR Filter
3.2.2 Median Filter
3.2.3 Moving Average Filter
3.2.4 Iterative Gaussian Filter
3.2.5 Trend Estimater
3.3 Mathematics
3.3.1 Remove DC
3.3.2 Mixer
3.3.3 Multiplier
3.3.4 Math
3.3.5 Diff
3.3.6 Integrate
3.3.7 DoMatlab
3.4 Statistics
3.4.1 Basic statistics
3.4.2 Covariance Matrix
3.4.3 Correlation Matrix
3.4.4 Equiphase Statistics
3.4.5 Kernel Smooth Density
3.5.6 Orthogonality Matrix
3.4.7 Quartiles and Quantiles
3.4.8 Rolling Statistics
3.4.9 Hypothesis Test
3.5 TFA (Time-Frequency Analysis)
3.5.1 Short-Term Fourier Transform
3.5.2 Morlet Transform
3.5.3 Enhanced Morlet Transform
3.5.4 Hilbert Spectrum
3.5.5 Marginal Time / Marginal Frequency
3.6 Transform
3.6.1 Fourier Transform and Inverse Fourier Transform
3.6.2 Discrete Cosine Transform and Inverse Cosine Transform
3.6.3 HaarWavelet Transform
3.6.4 Hilbert Transform
3.6.5 AutoCorrelation
3.6.6 CrossCorrelation
3.6.7 MSE
3.7 HHT ( Hilbert-Huang Transform)
3.7.1 RCADA EEMD
3.7.2 RCADA Instant. Frequency
3.7.3 RCADA Spectrum
3.7.4 IMF Property
3.7.5 AnCAD EMD
3.8 Enhanced
3.8.1 Fast Short-Term Fourier Transform
3.8.2 Remove Bump
3.8.3 Fast Trend Estimater
3.8.4 Fast Iterative Gaussian Filter
3.8.5 Fast MSE
3.8.6 Peak Detection
3.8.7 R-R interval
3.8.8 Teager
3.8.9 Rolling MSE
3.8.10 PCA
3.8.11 ICA
3.9 Matrix
3.9.1 Matrix Operatoin
3.9.2 Inverse Matrix
3.9.3 Trasnpose
3.9.4 Extract Region of Interest
3.9.5 Extract Vector
3.9.6 Diagonal Vector
3.9.7 Reciprocal Matrix Condition Number
3.10 External
3.10.1 ExternalDll
3.10.2 ExternalViewer
3.11 SVM
3.11.0 Overview of Sound and Vibration Module
3.11.1 RMS
3.11.2 Crest Factor
3.11.3 Peak
3.11.4 Digital Tachometer
3.11.5 OrderSpectrogram by STFT
3.11.6 OrderSpectrogram by EnMorlet
3.11.7 OrderInfo
3.11.8 Cepstrum
3.11.9 Envelope
3.11.10 Bearing Defect
3.11.11 Octave
3.11.12 Weighting
3.11.13 Scale
3.11.14 Transpose Spectra

3.1 Channel

本模組群提供訊號在計算前後所需之處理工具,計有下列功能:

  1. Channel Switch:由多通道(multi-channel)訊號選取單一通道(single-channel)的訊號資料。

  2. Data Selection:截取輸入訊號中任意時間段訊號資料。

  3. Dup:複製輸入訊號。

  4. Fill Null Value:以數值方法補齊訊號中之缺值。

  5. Remove Channel:將多通道(multi-channel)訊號中某一通道(single-channel)的訊號資料去除。

  6. Replace Value:將訊號資料進行替換及取代。

  7. Resample:將訊號重新取樣,可進行提高或降低取樣頻率。

  8. Time Shift:將訊號之時間軸作平移。

  9. Data Merge:將兩訊號進行相互連接。

  10. Input Switch:接受各種型態訊號,並且從中選擇其一。

3.1.1 Channel Switch

選取多通道(multi-channel)訊號內其中一個通道的訊號。

參數設定(Properties)

本模組接受實(real number)、複數(complexnumber),多通道(multi-channel),regular的訊號(signal)或聲音訊號(audio)輸入。參數定義詳如下面圖表。

參數名稱

參數定義

預設值

Channel Count

輸入訊號的總通道數。

0

Active Channel

設定欲選取的資料。

Channel 1,即第一個通道資料。

Select Last Channel

是否預設為選定最後一個通道資料。

false

範例(Example)

將正弦波與三角波合為一個 multi-channel 資料,用 Channel Switch 選擇正弦波訊號。

  1. 以 Source / Sine Wave 建立正弦波源,Source / Triangle Wave 建立三角波源,在 Sine 與 Triangle 這兩元件的 Properties / Source 裡,取樣頻率(SamplingFreq)設定為預設值 1000,訊號頻率(SignalFreq) 分別設定為 6 與 15,再用 Conversion / Merge to Multi-channel 將兩組格式相同的訊號結合為一組多筆 ( multi-channel ) 的訊號。

  1. 再將 ToMulti 的輸出接上 Channel Switch,再以 Viewer / Channel Viewer 繪製結果,並改變 Channel Switch 的 Properties / Active Channel,可觀察到只留下正弦或三角波。

注意 :

Channel Switch 只是將原本多通道訊號減為單通道(single channel)資料,並非分離波形。

相關指令

Merge to Multi-channel,Channel Viewer,Sine Wave ,Triangle Wave。

3.1.2 Data Selection

選取某段時間內的訊號資料。

參數設定(Properties)

本模組接受實數(real number)、複數(complex number),單通道(single channel)或多通道(multi-channel),regular的訊號(signal)或聲音訊號(audio)輸入。參數須設定起始與終點位置,其單位等於輸入訊號的時間單位。

參數名稱

參數定義

預設值

StartPosition

設定選取資料的時間起點。

輸入訊號的時間起點。

EndPosition

設定選取資料的時間終點。

輸入訊號的時間終點。

DownSampleStep

每多少個點重新取一個點,用來降低取樣頻率。

1

NewCount

擷取出新資料的數量。

0

範例(Example)

  1. 以 Source / Sine Wave 建立正弦波,在 Sine 元件的 Properties / Source ,此例的取樣頻率(SamplingFreq) 設定為預設值 1000,訊號頻率(SignalFreq) 設為 20,並用 Viewer / Channel Viewer 觀察之。

  1. 原本訊號接上 Data Selection,並設定選取的起點與終點 ( 在此例為起點 0.2 s,終點 0.4s ),可觀察到該段時間內訊號被截取出來。注意選取部份不可超過原長度( 以此例來說就是不在 [ 0 , 1]的範圍內 ),否則將無法運作。

相關指令

Channel Switch,Channel Viewer,Sine。

3.1.3 Dup

複製輸入訊號源。(主要可應用為 Macro 之起點,請參考 Chapter 8.1。)

參數設定(Properties)

Dup 接受所有訊號格式作為輸入,無需設定參數。

範例(Example)

將正弦波複製:

  1. 以 Source / Sine Wave 建立正弦波,並觀察之。

在 Sine 元件的 Source / Properties,此例的取樣頻率 ( SamplingFreq ) 設定為預設值 1000,訊號頻率 ( SignalFreq ) 設為 10。

  1. 原本訊號接上 Dup,可見複製出來者完全相同。

  1. 下面是將Dup 應用於 Macro 的實例:

    將訊號做傅立葉轉換以算出頻率;同時將原訊號做 Hilbert 轉換,比較兩者算出頻率之異同。處理程序如下配置:

    將此配置為 Macro (巨集),再匯入時會成為如下結果:

    (剛匯入時計算並不會執行,要按下 force update 才會有結果)

    由上圖可見,若將原訊號置換為其他訊號以進行計算,是需要以手動方式將新訊號源接上 FFT 以及 Hilbert 模組。在要做更多處理時會愈加複雜,並易出錯。

  1. 若現在將資料源與計算中間插入一 Dup :

    同樣地,存為巨集然後匯入 :

    可見到只要將資料替資並連結上 Dup,較之前方法方便極容易許多。

相關指令

Macro。

3.1.4 Fill Null Value

將缺值的資料補值。

說明

將輸入訊號資料為 NaN ( Not A Number ) 或 Null 之缺值部份補齊。

參數設定(Properties)

本模組接受實數(real number),單通道(single channel)或多通道(multi-channel),regular 的訊號(signal)或聲音訊號(audio)輸入。參數為 FillMethod,內有五個選項,相關定義與預設值整理如下表。

參數為 FillMethod 內有五個選項,可選擇不同的補值方法。相關定義與預設值整理如下表。

參數名稱

參數定義

預設值

FillMethod

填補方法,有 FixedValue、PrevValue、NextValue、LinearInterpolation 與 SplineInterpolation。

LinearInterpolation

選項名稱

選項定義

FixedValue

由使用者輸入一個定值作為缺值的大小。此參數下方會出現欄位 NullValue,即設定欲補入之數值。

PrevValue

缺值處之值以前方最鄰近非缺值之數值補值。

NextValue

缺值處之值以後方最鄰近非缺值之數值補值。

LinearInterpolation

缺值處之值,以前後第一個非 Null 的兩值做線性內插。

SplineInterpolation

做三次曲線內插補值。

MonotonicCubic

為有 damping 的三次內插法,此法在處理在斜率很大的訊號(如方波)時,可避免劇烈振盪,較 Spline 為佳。

範例(Example)

填補缺值複製:

  1. 打開安裝目錄 ( C:\ Program Files \ AnCAD \ Visual Signal \ demo \ Basic ) 下的 Demo53,可看見有缺值的訊號。

  1. 在 Demo53 中,利用 SplineInterpolation、Linear、Fixed Value、MonotonicCubic 四種方法補值,下圖是以 SplineInterpolation 方法補值後的圖形。

  1. 若是以 Linear Interp,補值後圖形可知填補法明顯不同。

  1. 在外部匯入資料時,Text Importer 即有一選項為填補缺值之功能,與此元件完全相同。

  1. 現在將一個缺值的訊號匯入(此資料為將原本的方波隨意去除部份值),匯入後不補值(將 Text Importer 的 Null Value Handle下的 Use Null Handle 關閉),結果如下。

  1. 現在將原始輸入訊號分別以 Spline Interpolation 以及 Monotonic Interpolation 填補。

  1. 由此可看出兩者填補的結果不盡相同,細黑線是 Spline Interpolation,藍粗線為 Monotonic Interpolation。

相關指令

Text Importer,Resampling。

3.1.5 Remove Channel

將多通道(multi-channel)訊號中的某中一個通道的訊號移除。

參數設定(Properties)

本模組接受實數(real number)、複數(complex number),多通道(multi-channel),regular或indexed的訊號(signal)或聲音訊號(audio)輸入,參數定義詳見下面圖表。

參數名稱

參數定義

預設值

Channel Count

輸入訊號的總通道數。

0

Remove Channel

選定欲移除的資料。

Channel 1

Select Last Channel

是否設為選定最後一筆資料。

False

範例(Example)

將正弦波、三角波及方波結合為同一個 (multi-channel) 訊號,再將其中某個通道訊號移除:

  1. 以 Source / Sine Wave、Square Wave 及 Triangle Wave 建立正弦波、方型及三角波,並用 Conversion / Merge to Multi-Channel 將三個輸入訊號整合為一個(multi-channel) 訊號。在各波源的取樣頻率 ( SamplingFreq ) 皆為預設值 1000,而訊號頻率 ( SignalFreq ),分別為 5 (Sine Wave )、8 ( Square Wave )、Triangle 設定為 15,以觀察不同波形。

  1. 在 Merge to Multi-Channel 後連結上 Compute / Channel / RemoveChannel ,選定移除第一通道訊號 ( Sine Wave ),可得如下頁圖之結果:

  1. 再改變 Remove Channel 的 Properties,將 Select Last Channel 調整為 True,則 Remove Channel 將自動設為 Channel 3,為刪除第三個通道資料,即也就是 Triangle Wave 訊號。

注意:

Channel Switch 為將選取的資料留下,其餘刪除;而 Remove Channel 恰相反:刪除選取訊號、其餘保留。

相關指令

Merge to multi-channel,Channel Switch。

3.1.6 ReplaceValue

將訊號中一數值取代為另一數值,或將一段訊號的數值全以另一數值取代。

參數設定(Properties)

本模組接受實數(real number),單通道(single channel)或多通道(multi-channel),regular的訊號(signal)與聲音訊號(audio)輸入。參數定義與預設值整理如下表。

參數名稱

參數定義

預設值

ReplaceMethod

設定取代的方法,包含 SingleValue、Segment、ByPass。

SingleValue

假設 ReplaceMethod 設定為 SingleValue,則可設定參數如下表。

參數名稱

參數定義

預設值

ReplaceFrom

設定欲取代的數值。

0

ReplaceTo

設定取代後的數值。

0

假設 ReplaceMethod 設定為 Segment,則可設定參數如下表。

參數名稱

參數定義

預設值

ReplaceValue

設定取代後的數值。

0

StartPosition

設定被取代訊號的起始點。

0

EndPosition

設定被取代訊號的終點。

End

範例(Example)

將一方波的峰值改變成另一數值:

  1. 以 Source / Square Wave 建立一方波,以 Viewer / Channel Viewer 繪出。

  1. 將 Square 連上 Compute / Channel / ReplaceValue,設定 Properties / ReplaceFrom 等於 1,ReplaceTo 為 -0.5,如此處理即為將訊號中所有 1 的數值由 -0.5 取代。可見圖形有明顯不同:

  1. 再將 ReplaceValue 中 Properties/ ReplaceMethod 調整為 Segment,進一步設定 Properties / ReplceValue 為 0.2,StartPosition 為 0.3 ,EndPosition 為 0.6,如下圖。

注意 : 一次只能取代單一數值,若有多項數值要處理,需使用多次 ReplaceValue。

注意 : 若要依據某些條件進行數值取代,例如訊號大小介於 5 至 10 的值要被取代為另一個值,請參考 Mathmatics / Math 的 Example。

相關指令

3.1.7 Resampling

將訊號的重新取樣,取樣後點數可比原本訊號少、也可比原本訊號多。

參數設定(Properties)

本模組接受實數(realnumber)、複數(complex number),單通道(single channel) 或多通道(multi-channel),regular的訊號(signal)與聲音訊號(audio)輸入。

參數 Properties / Data 下顯示輸入訊號的取樣頻率與資料長度,參數 ReSamplingMethod 代表對輸入訊號作重新取樣時所採用的計算方式,NewSamplingFrequency 則設定新的取樣頻率。參數定義詳見下面圖表。

參數名稱

參數定義

預設值

Step Downsampling

設定是否要顯示 StepDownsampling 模式控制。

False

NewSamplingFrequency

重新的取樣的頻率,既單位時間內的點數。

1000Hz

ReSamplingMethod

重新取樣時,補點之方法,在此有三:最近點(Nearest)、線性(Linear)、曲線逼近(Spline)以及(MonotonicCubic)。

Linear

NewCount

顯示重新取樣後的總點數。

若預設 StepDownsampling 為 False,則 ReSamplingMethod 的選擇及說明如下圖表所列。

選項名稱

選項定義

NextValue

以最臨近的原訊號值,做為新樣本點處之值。

LinearInterpolation

以前後第一個有定義的兩原訊號值做線性內插。

SplineInterpolation

將原訊號做三次曲線內插以從新取樣。

MonotonicCubic

有 damping 的三次內插取樣,此法在處理在斜率很大的訊號(如方波)時,可避免劇烈振盪,較Spline為佳。

若預設 StepDownsampling 為True,則參數的選擇及說明如下圖表所列。

參數名稱

參數定義

預設值

DownSamplingMethod

降低取樣的方法,方法 Sample、Average、MaxDetect、MinDetect、PeakDetect,說明如下圖表。

Sample

DownSamplingStep

降低取樣時,設定每多少個點重新取出一個點,此設定將影響 NewSamplingFrequency。

1

選項名稱

選項定義

Sample

根據 DownSamplingStep 設定點數,取出這些點的第一點。

選項名稱

選項定義

Average

根據 DownSamplingStep設定點數,取出這些點的平均。

MaxDetect

根據 DownSamplingStep 設定點數,取出這些點的最大值。

MinDetect

根據 DownSamplingStep 設定點數,取出這些點的最小值。

PeakDetect

根據 DownSamplingStep 設定點數,取出這些點的最大及最小值。

範例(Example)

建立一正弦波,並以 Resampling 作重新取樣。

  1. 以 Source / Sine Wave 建立正弦波,調整 Source 下的 SamplingFreq 以及 DataLength 為 100 以及 101,再接上 Viewer / Channel View 觀察之。可發現繪製正弦波因為取樣點數不夠多而有點扭曲。

  1. 將原本訊號 Sine 接上 Compute / Channel / Resampling,設定 Resampling 下的 NewSamplingFrequency 設為 50 以及ReSamplingMethod 方法為 Linear,觀察兩者之不同。

  1. 可由其他取樣法嘗試,比較結果之異同。

  1. 另外可以將 Step Downsampling 設定為 True,DownSamplingStep = 2,並且將DownSamplingMethod = Average,觀察於原圖形之不同。

  1. 可由其他 DownSamplingMethod 嘗試,比較結果之異同。

  1. 現在由 Source 下產生 Square Wave,參數使用預設值,分別以 Spline 與 MonotonicCubic 增點 100 倍 ( NewSamplingFrequency 設為100000 ) ,並畫在同一個 Channel Viewer 上。

    注意到在邊緣處,兩者結果相當不同,放大圖形來看為:

    其中黑細線為 Spline 的結果,藍粗線為 MonotonicCubic,在此可見後者之結果較佳。

相關指令

Square,Fillng Null Value。

參考 

1. Numerical Recipes 3rd Edition: The Art of Scientific Computing by H. Press , Saul A. Teukolsky , WilliamT. Vetterling , Brian P.Flannery

2.http://en.wikipedia.org/wiki/Monotone_cubic_interpolation

3.1.8 Time Shift

將訊號時間點移動,可以對訊號平移(ShiftStartTime)、或直接設定欲移動處之時間點(SetStartTime)、亦或指定起點時間日期(SetStartDateTime),即訊號的時間軸方向的平移。

參數設定(Properties)

本模組接受實數(real number)、複數(complex number),單通道(single channel)、多通道(multi-channel),regular的訊號(signal)與聲音訊號(audio)輸入。

主要參數為ShiftMode,其中包括三個選項,ShiftStartTime、SetStartTime、SetStartDateTime,每選項對應不同的設定,各選項設定之意義整理如下表。

參數名稱

參數定義

預設值

ShiftMode

設定時間起點的方法,包含 ShiftStartTime、SetStartTime、SetStartDate。

ShiftMode = ShiftStartTime

選項名稱

選項定義

選項參數

ShiftStartTime

將整個時間平移。

ShiftValue

SetStartTime

直接指定新的時間起點。

StartValue

SetStartDate

指定新時間起點的日期、為年月日時分秒之型式。

StartDate

StartTime

範例(Example)

建立一正弦波,並以 Time Shift 平移。

  1. 以 Source / Sine Wave 建立正弦波,調整 Properties / TimeStart為 3。可見得此正弦波初始點為第三秒。

  1. 將原本訊號 Sine 接上 Compute / Channel / TimeShift,設定移動方法為 ShiftStartTime,平移量為 2,可見時間起點改為第五秒。

  1. 若改用 SetStartTime,而起點 StartValue 設為 1,可發現時間起點移至第一秒。

注意 : RemoveDC 不只可移除直流訊(為訊號既有之縱向平移),亦可由 User_setting 讓使用者設定縱向平移量,可與 TimeShift 作對應。

相關指令

Time Shift,RemoveDC。

3.1.9 Data Merge

可以將一個單通道訊號連接至一個單通道訊號,形成一個單通道訊號。

或者將一個多通道訊號連接至一個多通道訊號,形成一個多通道訊號。

參數設定(properties)

本模組可以接受實數(real number),單通道(single channel)、多通道(multi-channel),等間距(regular),訊號(signal)、聲音訊號(audio)。各參數定義與預設值如下表:

參數名稱

參數定義

預設值

StartPosition

要被連接訊號的新位置,新位置以參考訊號的為基準,預設為參考訊號的最後位置。

end

ReferenceInput

設定參考訊號,StartPosition 是以參考訊號為準。

0

範例(Example)

本範例以 Source / Noise 及 Sine 為原始訊號,然後進行 Data Merge,產生一長度更長的訊號,然後進行運算,步驟如下:

  1. Network 視窗下選擇 Source / Noise,設定時間長度(TimeLength) 為 2s、振幅(Amplitude) 為 1.5,另外再選擇 Source / Sine,設定時間長度(TimeLength) 為 1.5s、振幅(Amplitude) 為 2,兩個模組再各自接至 Viewer / Channel Viewer,所有設定如下圖。

  1. 再將 Noise 及 Sine 連接至 Compute / Channel / Data Merge,設定 Data Merge 的參數 ReferenceInput 為 0: Noise,StartPosition 為 1.5,將 Data Merge 連接至 Viewer / Channel Viewer 顯示結果。

  1. 將 Data Merge 連接至 Compute / TFA / ShortTerm Fourier Transform,參數皆按照預設值,最後再將 STFT 計算結果以 Viewer / Time-Frequency Viewer顯示。可以看見100Hz 的 Sine 出現在 1.5s 至 3s 之間。

相關指令

Noise,Sine,ShortTerm Fourier Transform,Channel Viewer,Time-Frequency Viewer。

3.1.10 Input Switch

可以從多個資料型態訊號中選擇某一個通道訊號。

參數設定(properties)

本模組可以接受實數(real number)、複數(complex number),單通道(single channel)、多通道(multi-channel),等間距(regular)、不等間距(indexed),訊號(signal)、聲音訊號(audio)、數值資料(Numeric)、時頻資料(spectra)。各參數定義與預設值如下表:

參數名稱

參數定義

預設值

Input Count

進入此模組的通道數目。

0

Active Input

設定欲選取的資料通道。

1

範例(Example)

本範例以 Source / Noise 為原始訊號,然後進行各種運算,產生各種格式資料,最後利用 Input Switch 選擇出某個通道的訊號,步驟如下:

  1. 於 Network 視窗下選擇 Source / Noise,取樣頻率(SamplingFreq) 為 1000,時間長度( TimeLength) 為 1s、振幅(Amplitude) 為 1,設定如下圖。

  1. 將Noise 依順序接上 Compute / Transform / Fourier Transform,Compute / HHT / RCADA EEMD,Conversion / Convert to Audio ,Compute / TFA / Short Term Fourier Transform,Conversion / Convert to Matrix,所有模組設定都依照原本設定。

  1. 將 Noise 及所有運算結果連接至Compute / Channel / Input Switch,最後由 Input Switch 連接至 Viewer / Channel Viewer,並且調整 Input Switch 的參數 Active Input,觀察 Noise、FFT、RCADA::EEMD 和 ToAudio 的結果。

  1. 再將 Input Switch 連接至 Viewer / TFAViewer,並且調整 Input Switch 的參數 Active Input,觀察 STFT 的結果。

  1. 最後調整 Input Switch 的參數 Active Input 至 ToMatrix,可利用 DataViewer 觀察 Input Switch 內矩陣資料。

相關指令

Noise、Fourier Transform、RCADA EEMD 、Convert to Audio、ShortTerm Fourier Transform、Convert to Matrix。