Release Notes

Visual Signal 1.5在資料擷取模組上有重大的躍進,提供對更多廠牌裝置的支援,並納入了 Real-Time的擷取功能與顯示介面,無論您是生醫、工程或科學領域的使用者能都以最有效率 的方式進行資料蒐集與分析。

運算功能方面,在頻率變換、濾波、統計及數學模組內都新增了實用且強大的分析方法,部 分既有的模組也增加了許多使用者期待的選項,並支援更多檔案格式。此外,操作介面變得 更加直覺、友善、效率,並讓使用者可以自行定義顯示項目,您可以盡情享受行雲流水般的 分析過程。

詳細的新增功能請參考下列條目:

Function List

Visual Signal 1.5 Professional、Standard 與 DAQ Express 版本功能表

Functions DAQ Express Standard Professional
Compute
Channel
Channel Switch \(\checkmark\) \(\checkmark\) \(\checkmark\)
Data Merge \(\checkmark\) \(\checkmark\)
Data Selection \(\checkmark\) \(\checkmark\) \(\checkmark\)
Dup \(\checkmark\) \(\checkmark\)
Fill Null Value \(\checkmark\) \(\checkmark\) \(\checkmark\)
Input Switch \(\checkmark\) \(\checkmark\) \(\checkmark\)
Peak Detection \(\checkmark\) \(\checkmark\)
Remove Channel \(\checkmark\) \(\checkmark\) \(\checkmark\)
Replace Value \(\checkmark\) \(\checkmark\) \(\checkmark\)
Resample \(\checkmark\) \(\checkmark\) \(\checkmark\)
RR Interval \(\checkmark\) \(\checkmark\)
Time Shift \(\checkmark\) \(\checkmark\) \(\checkmark\)
Enhanced
Fast Iterative Gaussian Filter \(\checkmark\)
Fast MSE \(\checkmark\)
Fast STFT \(\checkmark\)
Fast Trend Estimater \(\checkmark\)
ICA \(\checkmark\)
PCA \(\checkmark\)
Rolling MSE \(\checkmark\)
Remove Bump \(\checkmark\)
Teager \(\checkmark\)
External
External dll \(\checkmark\)
External Viewer \(\checkmark\)
Filter
Comb Filter \(\checkmark\) \(\checkmark\)
FIR Filter \(\checkmark\) \(\checkmark\) \(\checkmark\)
Iterative Guassian Filter \(\checkmark\)
Median Filter \(\checkmark\) \(\checkmark\) \(\checkmark\)
Moving Average \(\checkmark\) \(\checkmark\) \(\checkmark\)
Notch Filter \(\checkmark\) \(\checkmark\) \(\checkmark\)
Trend Estimator \(\checkmark\)
HHT
AnCAD EMD \(\checkmark\)
HHT ListView Macro \(\checkmark\)
HHT SplitView Macro \(\checkmark\)
IMF Property \(\checkmark\) \(\checkmark\)
RCADA EEMD \(\checkmark\) \(\checkmark\)
Mathematics
Diff \(\checkmark\) \(\checkmark\) \(\checkmark\)
DoMatlab \(\checkmark\) \(\checkmark\)
Integrate \(\checkmark\) \(\checkmark\) \(\checkmark\)
Math \(\checkmark\) \(\checkmark\) \(\checkmark\)
Mixer \(\checkmark\) \(\checkmark\) \(\checkmark\)
Multiplier \(\checkmark\) \(\checkmark\) \(\checkmark\)
Normalize \(\checkmark\) \(\checkmark\) \(\checkmark\)
Remove DC \(\checkmark\) \(\checkmark\) \(\checkmark\)
RMS \(\checkmark\) \(\checkmark\) \(\checkmark\)
Matrix
Diagonal Vector \(\checkmark\)
Matrix Inverse \(\checkmark\)
Matrix Operation \(\checkmark\)
Matrix Condition Numbers \(\checkmark\)
Extract Region of Interest \(\checkmark\)
Transpose \(\checkmark\)
Extract Vector \(\checkmark\)
Statistics
Correlation Matrix \(\checkmark\)
Covariance Matrix \(\checkmark\)
Equiphase Statistics \(\checkmark\)
Hypothesis Test \(\checkmark\)
Kernel Smoothing Density \(\checkmark\)
Least Square Fitting \(\checkmark\)
Orthogonality Matrix \(\checkmark\)
Quartiles and Quantiles \(\checkmark\)
Rolling Statistics \(\checkmark\)
Basic Statistics \(\checkmark\)
TFA
Enhanced Morlet Transform \(\checkmark\)
EnMorlet Viewer Macro \(\checkmark\)
Hilbert Spectrum \(\checkmark\) \(\checkmark\)
Marginal Frequency \(\checkmark\) \(\checkmark\)
Marginal Time \(\checkmark\) \(\checkmark\)
Morlet Transform \(\checkmark\) \(\checkmark\)
Short-Term Fourier Transform \(\checkmark\) \(\checkmark\) \(\checkmark\)
Transpose Spectra \(\checkmark\) \(\checkmark\)
Transform
Auto Correlation \(\checkmark\) \(\checkmark\)
Cross Correlation \(\checkmark\) \(\checkmark\)
Discrete Cosine Transform \(\checkmark\) \(\checkmark\)
Demodulation Frequency \(\checkmark\) \(\checkmark\)
Fourier Transform \(\checkmark\) \(\checkmark\) \(\checkmark\)
FFT Viewer Macro \(\checkmark\)
Haar Wavelet Transform \(\checkmark\) \(\checkmark\)
Hilbert Transform \(\checkmark\) \(\checkmark\)
Inverse Discrete Cosine Transform \(\checkmark\) \(\checkmark\)
Inverse Fourier Transform \(\checkmark\) \(\checkmark\) \(\checkmark\)
Inverse Haar Transform \(\checkmark\) \(\checkmark\)
Multi Scale Entropy \(\checkmark\) \(\checkmark\)
Conversion
Convert from Matrix \(\checkmark\)
Convert from Spectra \(\checkmark\) \(\checkmark\) \(\checkmark\)
Map to Real \(\checkmark\) \(\checkmark\) \(\checkmark\)
Merge to Complex \(\checkmark\) \(\checkmark\)
Merge to Multi-Channel \(\checkmark\) \(\checkmark\) \(\checkmark\)
Split Complex \(\checkmark\) \(\checkmark\)
Convert to Audio \(\checkmark\) \(\checkmark\) \(\checkmark\)
Convert to dB \(\checkmark\) \(\checkmark\) \(\checkmark\)
Convert to Indexed \(\checkmark\) \(\checkmark\)
Convert to Matrix \(\checkmark\)
Convert to Regular \(\checkmark\) \(\checkmark\) \(\checkmark\)
Change X-axis Unit \(\checkmark\) \(\checkmark\) \(\checkmark\)
Source
Import Data \(\checkmark\) \(\checkmark\) \(\checkmark\)
Impulse \(\checkmark\)
Jaehne \(\checkmark\)
Custom Wave \(\checkmark\) \(\checkmark\) \(\checkmark\)
Noise \(\checkmark\) \(\checkmark\) \(\checkmark\)
Sine Wave \(\checkmark\) \(\checkmark\) \(\checkmark\)
Square Wave \(\checkmark\) \(\checkmark\) \(\checkmark\)
Triangle Wave \(\checkmark\) \(\checkmark\) \(\checkmark\)
Viewer
Annotation
Ellipse \(\checkmark\)
HLine \(\checkmark\)
HRegion \(\checkmark\)
Line \(\checkmark\)
Rect \(\checkmark\)
Text \(\checkmark\)
VLine \(\checkmark\)
VRegion \(\checkmark\)
Data Viewer \(\checkmark\) \(\checkmark\) \(\checkmark\)
Box Plot Viewer \(\checkmark\)
Channel Viewer \(\checkmark\) \(\checkmark\) \(\checkmark\)
Error Bar Viewer \(\checkmark\)
Histogram Viewer \(\checkmark\)
Time-Frequency Viewer \(\checkmark\) \(\checkmark\) \(\checkmark\)
XY Plot \(\checkmark\) \(\checkmark\) \(\checkmark\)
Writer
Export Data \(\checkmark\) \(\checkmark\) \(\checkmark\)
Export to Excel \(\checkmark\) \(\checkmark\) \(\checkmark\)
Data Writer \(\checkmark\) \(\checkmark\) \(\checkmark\)
Macro \(\checkmark\)
Container \(\checkmark\)
Batch Run \(\checkmark\)

Sound and Vibration Module(SVM)功能表

Functions 1.5 SVM
Bearing Defect \(\checkmark\)
Cepstrum \(\checkmark\)
Peak \(\checkmark\)
Crest Factor \(\checkmark\)
Digital Tacho \(\checkmark\)
Envelope \(\checkmark\)
Scale \(\checkmark\)
Order Spectrogram \(\checkmark\)
Order Info \(\checkmark\)
Weighting \(\checkmark\)
Octave \(\checkmark\)

Data Acquisition(DAQ)功能表

Functions 1.5 DAQ
Adlink-DAQ \(\checkmark\)*
Audio-DAQ \(\checkmark\)*
Mindset-DAQ \(\checkmark\)
NI-DAQ \(\checkmark\)

* Adlink-DAQ 以及 Audio-DAQ 包含於 Visual Signal DAQ Express 1.5 版本中。

Document Revision

1 應用程式介面

1.1 使用者操作介面(GUI)

Visual Signal 的外觀與介面。

說明(Description)

程式啟動後的畫面如下圖所示:


介面主要分成三大部份:元件編輯視窗(Network Window), 元件參數設定視窗 (Properties Window)與繪圖視窗(Visualization Window), 這三個視窗皆可以獨立於 Visual Signal 的桌面上。

只需點擊上述視窗的標題欄兩次,就能將該視窗獨立分離出來任意放大縮小, 其外觀如下;若再雙擊該視窗的標題欄,即可回復原視窗配置。


視窗介面還支援 Auto Hide 隱藏視窗的表現方式,點擊 Network 或 Properties 視窗的 按鈕,可將視窗設為自動隱藏。下圖為 Network 與 Properties 都設定為 Auto Hide,將看到兩視窗均隱藏至主畫面右方標籤。


1.2 下拉式選單(Pull-down Menu)

下拉式選單介紹:


選項說明

下拉式選單中的選項包括 File(檔案)、Edit(編輯)、View(顯示)、Layout (版面)、Tools(工具)、Help(幫助)等,其中 Edit、View 與 Tools 是用來控制繪圖區的功能,內容請參閱 視覺化繪圖區的說明, 以下分項介紹 File、Layout 以及 Help。

File 可以新增、儲存、讀取專案檔(副檔名為 .vsn),程式內所有模組元件的連結, 參數設定,繪圖設定等均儲存於專案檔內。儲存選項可以選擇是否要儲存所有元件的計算結果, 選擇「是」,則下次開啟專案時,無須重新計算可將每個元件的計算結果載入並繪圖。


若選擇「否」,則下次開啟專案時,所有元件將重新計算。File 選單內的選項 Close / Close All 可關閉目前開啟 / 全部的專案。

File 中的選項 Load Macro 與 Save Macro 為 Visual Signal 專業版的功能, 作用是可以將常使用到的訊號處理步驟儲存為巨集(Macro), 讓使用者在不同的專案中快速、方便地建立特定的計算流程與元件設定, 無須再重新建立、連結與設定各元件。 巨集的操作方法請參閱 Macro 巨集 的說明文件。

Tools 中有 Preference 設定,幫助使用者設定 Visual Signal 的執行預設值,其中詳細內容請參考 偏好設定

Help 提供了 Visual Signal 的相關使用文件,其中 Online Reference Guide 幫助使用者了解元件演算法,如何應用於實際訊號。Online External Module Reference 包括 API XML Protocol 、ExternalBase Class Library;API XML Protocol 提供 Visual Signal 與外部 DLL 的溝通協定,ExternalBase Class Library 解說這個 Library 中各種函數屬性、回傳資料型態等,幫助使用者進行開發。 License Manager 可以進行 License 管理、移除、新增等。

1.3 元件編輯視窗(Network Window)

Network 視窗為連接各種元件的區域,在這裡可以用滑鼠拖曳的方式連結各元件, 快速且直覺地組合出訊號處理所需的計算分析流程。

下圖為視覺化元件編輯視窗外觀,主要分成三大部份: 工具列、元件模組編譯區以及運算控制。分別說明如下。


1.3.1 元件編譯區

元件編譯區為 Visual Signal 的核心,提供一個簡單的操作環境,以視覺化與直覺的操作編輯訊號處理流程。下面簡單說明訊號輸入、 執行運算以及輸出相關之元件。


上圖為使用者在元件編輯區按滑鼠右鍵後的選單,可以看到選單內分為六大群組 Compute、Conversion、External、Source、Viewer、Writer, 所有模組元件都分門別類放在滑鼠右鍵的選單中, 模組元件的介紹與操作方法在 Chapter 2 中有詳細的說明,各個運算模組元件內容在手冊 Chapter 3、Chapter4 等有介紹。元件編輯區在操作上就像是畫訊號處理的流程圖,Visual Signal 具備了各種訊號處理的方法, 從訊號前端處理、訊號分析演算、到視覺化繪圖呈現,使用者僅需要從選單中建立出這些方法, 並且連接它們,就能夠以簡單的步驟執行複雜的訊號分析。


1.3.2 工具列(Toolbar)

元件編輯視窗的工具列負責處理數據部份以及運算的控制。前四個功能與資料輸入及輸出相關,分別為

讀取資料檔(Import Data)、

儲存資料為檔案(Export Data)、

資料瀏覽器(Open Data Viewer)、

輸出資料到 Excel(Export to Excel)。

其中資料瀏覽器由於功能繁雜,將於 1.3.4 節再作說明,其餘部份說明如下:

  1. 讀取資料檔:

    藉此從外部讀取資料檔。接受的檔案格式以純文字(ASCII file) 為主,另配合各種需求,可讀取 MATLAB(.mat)、地震研究 (.sac)、生醫研究(.hea) 等不同的檔案格式。支援檔案的副檔名整理如下表,若檔案為 .txt、.csv 等純文字格式,程式會跳出 Text Importer 視窗以設定資料的時間資訊。


    如果欲匯入的檔案副檔名不在支援格式中,則程式會出現警告訊息 (如下圖), 詢問使用者是否將此檔案以純文字的格式讀取,選擇是則會繼續以 Text Importer 讀檔。

    使用者必須使用 Text Importer 設定訊號時間軸,譬如時間單位、取樣頻率,與選擇讀取資料的範圍。本功能在 Open Data 中有詳細的解說。


    副檔名 檔案類型
    vsb Visual Signal 二進位(Binary)檔案。
    mat MATLAB 資料檔。
    sac SAC 檔是套裝軟體 SAC(Seismic Analysis Code) 的訊號檔,用在與地震相關之研究。
    txt 純文字(Plain-Text)檔案。
    uff Universal File Format。
    tfa Visual Signal 訊號檔。
    csv Comma-Separated Values。
    eeg EEG Files。
    wav, mp3, aac, ac3, mp4, m4a, amr, ape, wma Audio 聲音檔。
    hea & atr 生醫訊號通用檔案格式,說明請參考 www.physionet.org 網頁內容。
    tdms & tdm NI LabVIEW 資料檔。
    adl & dat ADLink 資料檔。
  2. 儲存資料為檔案, 輸出資料為 Excel:

    將元件内的計算結果輸出為檔案,這兩項功能也可以在元件 Writer 中找到,在本程式所有元件中, 除群組 Viewer 外,每個元件的輸出訊號皆可藉由本功能將資料儲存為檔案。檔案格式可選擇儲存為 mat、tfa、txt、csv 等檔,而屬於聲音訊號的資料則可儲存為 wav、mp3 等檔。 這兩個功能是截取自群組 Writer 下的元件,因此請參考訊號輸出模組(Writer)的說明。

  3. 資料瀏覽器(Data Viewer):

    可以直接點選元件,以資料瀏覽器檢視元件的計算結果,資料瀏覽器會偵測輸出資料類型, 自動調整數據展示方式,以圖形搭配數據的方式呈現元件的輸出結果。此功能在 Data Viewer 章節中另作說明。


  4. 強制執行(Force Update):

    點擊強制執行後,專案會從頭到尾重新計算、執行所有模組元件。

  5. 批次執行(Open Batch Run Dialog)*Only in Professional:

    如果已經建立好一套訊號處理流程,現在需要輸入不同的資料檔執行這個程序, 或者需要對其中某些元件改變參數以計算出不同的結果,就可以利用 Batch Run 功能批次處理。此功能將在 1.3.5 節中介紹操作介面與用法。

1.3.3 運算控制

運算控制位於元件編輯區下方,用以顯示以及控制計算過程。位在左邊的文字在計算過程中, 會即時顯示目前程式正在處理的元件名稱與執行進度的百分比,文字下方的進度條會即時顯示該元件計算的進度。 而右邊有三個控制項提供使用者控制運算過程,其說明如下:


  1. Auto:

    此功能可決定程式是否會即時更新計算。當 Auto 被勾選時,使用者改變元件參數後,程式會馬上重新計算該元件以及接於該元件輸出埠以下的所有元件。 而使用者常碰到一種狀況是不只修改一個元件的參數,此時可取消勾選 Auto,等到各個元件都修改完畢後, 再按下,或者再次回復勾選 Auto,都可以重新計算修改後的元件。

  2. 執行運算:

    當 Auto 的狀況為沒有勾選時,按下可以命令程式執行剛修改過的元件,相較於 “Auto”,此功能可以說是 “Manual”。

  3. 中止運算:

    在程式運算過程中,若想終止計算,可藉由按下鈕終止目前正在處理的元件計算。 使用時須注意此功能僅終止單一的、正在處理中的元件計算,所以如果只按一次, 則僅有一個元件以及其後方的元件會被終止,其它的元件仍然會接續執行。

1.3.4 資料瀏覽器(Data Viewer)

對於元件輸出的結果,常需要臨時性地快速瀏覽資料類型,查詢訊號的相關資訊,因此我們提供一項快速檢視資料的工具 ─ 資料瀏覽器。資料瀏覽器以視窗化介面展示資料的數值、波形以及相關訊號資訊,只要在元件編輯區點選元件, 再按下本按鈕,瀏覽器就會依照不同的訊號類型 (如訊號、頻譜分析結果、數值資料亦或是時頻分析結果) 展示相關資訊。以下先簡單介紹資料瀏覽器的視窗介面,再依照不同的訊號類型說明資料瀏覽器的展示內容。

首先介紹資料瀏覽器的視窗介面如下圖;主要分作三個部份,左上半部為資料繪圖區,以圖形檢視訊號內容, 左邊下半部顯示資料表格,列出訊號的數據資料,右半部 Channel Information 則呈現此訊號的相關資訊 (如訊號通道數、取樣頻率、時間單位等),上述每塊區域都會按照不同的資料類型改變展示內容。


此視窗上方共同都有的控制項為 ,當使用者開啟許多個 Data Viewer,程式會將資料以不同分頁展示在同一視窗。按下 可關掉目前的分頁內容,按下 則為關閉所有的 Data Viewer 分頁內容。使用 Data Viewer 時需注意,Data Viewer 之內容並不會隨著 Network 中元件參數的改變自動更新,因此必須按下 才可以檢視元件運算過後的內容,。

下面依照不同資料類型說明 Data Viewer 介面。

  1. 時序訊號資料(Signal)

    上圖為時序訊號的 Data Viewer 內容,以下依照 Data Viewer 的三大部份作説明。首先是繪圖區。左上半部的繪圖區是以時間為 X 軸,訊號值為 Y 軸繪製,繪圖區分為上下兩張圖,上圖是繪出訊號的全部內容,下圖則依照使用者所設定的範圍, 繪出該範圍下的訊號時域圖,範圍是在兩圖中間的部份設定。參數 From 是設定調整範圍的起始點, 須注意訊號第一點的編號為「0」,Step 是設定放大的取樣間隔,預設為「1」,「N」設定調整範圍的長度, 「Channels」為設定需要被顯示通道,預設為輸入所有通道,例如「1-16」, 在 Data Viewer 中最多一次可以顯示 16 個通道訊號,使用者可以自行輸入想要顯示通道,例如「1-3,4,7-9」。


    以上圖為例,繪圖區第二張圖是從訊號第 1 點(編號為 0)開始算,總共 500 點的訊號,而且沒有 down-sample。

    使用者利用訊號的位置精確指定放大範圍後,可以在圖上看到紅色線,紅色線內的範圍即為剛選擇的區域, 使用者選擇範圍可以利用時域圖下方的捲軸,或在時域圖上利用按下滑鼠左鍵拖拉方式選擇, 就能夠調整放大範圍的位置。若是按下 便在 Network 中利用 Data Selection 輕易地將紅色區域資料擷取出來。


    Data Viewer 左下半部的表格部份顯示訊號的內容,訊號資料依時序排列為一行,不同列(row) 代表不同的時間。第一行標題為 Index,是訊號每個資料點的編號,再來是 X Value,是訊號每個資料點所對應的時間點;之後每行代表各通道訊號的資料,以上圖為例, 此訊號是單通道訊號,因此資料只有 CH1 一組,若訊號為多通道,則會依照通道編號 CH1、CH2…依序排列。 訊號資料的個數、 位置與在繪圖區設定的放大範圍一致,當使用者調整範圍或是改變捲軸的位置, 表格內容都會即時的更新,讓使用者在看圖之餘,能馬上比對圖上的數據。若資料顯示的顏色為藍色(如下圖) 代表該筆資料可供編輯,編輯完的資料會改為以紅色顯示;若資料顯示為黑色,則代表資料是不可編輯的。


    Data Viewer 右邊即是 Channel Information 視窗,會顯示資料的相關資訊。 Histogram 是簡單的統計直方圖, 橫軸為訊號資料值的範圍,程式會將訊號資料值分作21等分, 縱軸是資料數量, 每一個長條柱就代表資料值落在該區間的資料點個數。


    Histogram 下方是 Data Table 以及 Data Channel Table,顯示訊號的時序與統計資訊, 須注意這邊僅單純顯示訊號格式,使用者無法在此編輯或修改欄位。 此處簡單說明每個欄位的意義: Sampling Frequency 為訊號取樣頻率;Data Count 顯示訊號資料點數;Time Length 顯示此段訊號的時間長度; Unit 為時間單位。Data Channel 下的欄位則針對不同通道的訊號資料,計算基本的統計值如訊號最小、 最大值、平均值以及標準差,Data Channel 下的統計值均以單一通道內的資料計算, 預設計算訊號第一個通道(1st Channel)之資料,使用者可在 Channel 欄位切換訊號的不同通道。

  2. 頻譜訊號(Spectrum)

    頻譜訊號為時序訊號經過轉換後,由時域訊號變為頻率域的訊號。其視窗介面如下圖所示, 可以看到主視窗的工具列增加了六個按鈕, , 這些控制按鈕等於選擇繪製不同的圖形。這些按鈕由左到右依序為示 Magnitude、Phase、Real Part、Imaginary Part、Gain、Power Spectrum。 使用者可藉由點選這些按鈕改變頻譜訊號的繪圖,另外 Channel Information 內 Data Channel 的內容也會因選擇不同的表現方式跟著改變。預設值為 Magnitude, 圖面橫軸為頻率,縱軸則依照不上述設定繪製不同的值。


    下方表格顯示頻譜訊號的內容,X Value 在這裡儲存圖上橫軸,也就是頻率的值,每一個 Channel 的頻譜訊號包括四個行向量:分別是訊號實部(RE)、虛部(IM)、振幅 (MAG)、相位角(PHASE)等。


    Histogram 顯示統計的直方圖,X 軸為資料數值的範圍;縱軸為單一區間下資料出現的個數。 由於頻譜訊號能夠以多通道訊號儲存,所以可調整參數 Channel 計算訊號不同通道的統計值。 下圖為頻譜訊號的 Histogram 與相關統計值。


  3. 時頻訊號(Spectra)

    時頻訊號為時序訊號經過小波法等時頻分析方法(Time-Frequency Analysis) 計算後的結果,其視窗介面如下圖,主視窗工具列與頻譜分析相同的部分不再贅述, 其中為 Marginal Freq Time 按鈕,功用將在繪圖區說明, 分為 ExtractRow 及 ExtractColumn,將在下面介紹。


    視窗左上半部的繪圖區顯示出時頻圖(即位於中央的彩色圖),此圖橫軸為時間, 縱軸則依照不同設定(如 Magnitude、Phase 等),可以用滑鼠左鍵指定紅色十字游標位置, 在圖左下方會顯示此點的 X(時間)、Y(頻率)與計算值, 並可以用鍵盤上的 W、A、S、Z 或上、下、左、右鍵來進行上下左右移動紅色十字游標位置。 時頻圖的左邊圖形表示紅色游標上鉛錘線的切面,即為在某一固定時間內的頻率分佈情形, 時頻圖的下面圖形表示紅色游標上水平線的切面,即為在某一固定頻率振幅隨著時間變化。

    中的 ExtractRow 可以將紅色游標上水平切線萃取出來, 在 Network 中利用 Convert from Spectra 擷取出 Time Signal,ExtractColumn 可以將 紅色游標上鉛錘線萃取出來,在 Network 中利用 Convert from Spectra 擷取出 Spectrum Signal。

    Marginal Freq Time 按鈕的功能可參考模組 Marginal Frequency / Marginal Frequency 的說明文件。


    上方表格顯示時頻訊號值,預設為 Magnitude,其中行向量(Column Vector) 代表同一時間,不同頻率的值,列向量代表同一頻率,不同時間的值。時間軸由左至右變大, 頻率軸由上而下向小。

    Histogram 直方圖與其它訊號相同,在直方圖下方有控制繪圖顏色的參數如 ColorMap Type、ColorMap Min、ColorMap Max 等,這些參數設定可以參考 Viewer / Time- Frequency Viewer 的說明。


  4. 數值資料(Numeric)

    Visual Signal 有部份模組輸出的資料類型為數值,譬如說矩陣、標準差、相關係數矩陣等, 這些數值資料在 Data Viewer 上僅會以表列的方式呈現, 如下圖是用 Data Viewer 檢視時頻圖的矩陣資料, X Value 表示矩陣中的位置, CH1(RE)、CH1(IM)、CH1(MAG)等代表該位置的值。


1.3.5 批次執行(Batch Run)*

*Only in Professional*

Batch Run(批次執行),是為節省時間,可重複執行同一流程的功能。類似於 for 迴圈的概念,使用者可設定在每次執行時更換匯入之檔案,或是改變元件中的參數, 並讓結果存於指定的資料夾中。若有多筆的數據需要處理,利用此功能就不需要隨時待在電腦前面操控, 設定完成後便可去做其他的事情,等電腦跑完再來觀看結果。

Batch 按鈕在 Network 工具列的最右方,圖示為 。以下以 demo 51 為例,介紹 Batch Run 的介面與用法。

首先由主視窗工具列上 Open Project 開啟 C:\Program Files\Ancad\Visual Signal\demo\Extended 中的 demo 51,然後再按下 Batch Run 按鈕,視窗如下圖:


按下 Batch Run 之後,顯示介面如下圖。


工具列上的圖示: 分別是清除以及儲存 Batch Run 的設定內容;為新增一個 Run,為從檔案增加 Run 的快捷鍵。選擇可新增一個 Run 並改變其中任意的參數,而為改變匯入檔案之快捷選項, 可直接由資料夾中選取檔案,不必透過手動輸入檔案名稱。是刪除已存在的 Run;可打開參數欄位,用來新增要加以改變的參數;是執行設定完成的 Batch Run 而可中斷正在執行的 Batch Run。最後 Output Directory 可設定輸出結果的位置,Batch Run 會輸出結果包含所有專案下 Viewer 的結果並轉為圖片檔以及用 Writer 元件所匯出的檔案。

下面透過實作說明 Batch Run 的使用方法。

  1. 批次改變不同的參數值

    第一步先點擊按鈕 ,可以在下面新增 Run。


    第二步是要點擊工具列上的 Add Parameters, 也可在滑鼠右鍵清單中找到此功能,如下圖。


    點擊後介面會分隔為兩區,左邊的區域列出專案內所有元件,右邊視窗則放置新增的 Run, 並在右邊視窗下,利用滑鼠右鍵增加多個 Run,結果如下圖。


    接著在右邊就是改變參數,在左邊視窗選擇 EnhancedMorlet(Linear-Morlet), 點擊樹狀圖的加號 + 即可以看到該元件下所有的參數,並勾選將要改變的參數, 例如現在選擇 FreqCount,然後再按下 ,左邊的視窗會再度隱藏,且此參數會新增至 Run 中。


    功能 的差別在於, 會把勾選的參數新增至右邊區域所有的 Run, 使全部的 Run 都可以修改此參數,如下圖。


    僅會將勾選的參數新增至被選取的 Run 中, 如下圖只有一個 Run 有可以改變的參數。


    把 Run1 的樹狀圖全都點開就能看到 FreqCount 為 128。若要改變參數值 128, 先點選參數值,於參數值上再點擊一次(操作上比較像速度較慢的雙擊), 就可以進入編輯模式,修改此參數值。所有的參數都可依上述步驟修改至 Batch Run 中,而且一個 Run 可以改變多個參數值。完成設定之後,點擊執行鈕 就開始批次計算。


    執行 Batch Run 後,如需中止計算,可點擊按鈕 停止批次計算。計算過程中每個 Run 都會將專案中 Viewer 的結果(如果專案中有 Writer 模組,則包括 Writer 匯出的資料) 以圖檔的形式輸出至 Output Directory (路徑預設為專案檔的目錄下,也可以在 Batch Run 的欄位 Output Directory 作設定),如需改變圖檔處儲存格式可在主視窗中 Tool / Preference 中設定。

  2. 批次計算多個訊號資料檔

    用同一個 .vsn 檔或專案來批次計算多個訊號資料檔。下面將先建立一個訊號處理流程,並且示範讀取多個資料檔進行批次計算。

    首先點擊 Network 工具列的 Import Data,至 Visual Signal 安裝目錄下 (預設為 C:\ Program Files\AnCAD\Visual Signal\demo\Basic),選取檔案 Chirp1000.tfa。



    讀進資料檔後,以 Viewer / Channel Viewer 繪出訊號圖,並且對訊號作 Compute / TFA / Enhanced Morlet Transform,轉換之後以 Viewer / Time-Frequency Viewer 繪圖。




    建立好這個處理程序後,就可以操作 Batch Run 用一樣的處理程序批次計算不同的資料檔。點擊 Batch Run 按鈕進入 Batch Run 操作介面。


    進入 Batch Run 操作介面後,第一步也是要點擊 Add Parameters。


    先在左邊的 Parameter 視窗勾選 DataSource,若專案檔內有多個訊號資料, 則需點開 DataSource 的樹狀顯示,選擇要變更的訊號資料。第二步是按下 ,就會跳出選取檔案的視窗, 選擇要批次計算的訊號資料檔。


    本例選取 111.tfachirp1000.tfachirp10000.tfa 作為批次計算的資料檔再按下開啟。 這時候在 Batch Runs 區會自動新增三個 Runs,如要再加資料檔,只要用 功能並重覆後序步驟即可。


    假設訊號資料檔已經選取完畢,在執行 Batch Run 之前要再檢查輸出檔路徑 (Output Directory)。Output Directory 預設是與 .vsn 專案檔的目錄相同,由於本專案尚未存檔,因此要自行設定輸出檔的路徑,點下按鈕 就能選擇(如下圖 ),本例將路徑設在 C:\ 下。



    最後按下執行鈕 啟動 Batch Run,運算過程中無論是成功還是失敗, 執行過程的訊息都會在 Batch Run Status Report 中記錄下來。


1.4 參數設定視窗(Properties)

顯示與調整元件參數的視窗,此視窗位置預設在畫面的右下角。

說明(Description)

元件編輯區中所有的元件,參數調整都是在參數設定視窗內控制。雖然 Properties 的內容因不同元件而異,不過項目 Module 是所有元件都有,此項目下之參數可控制視覺化元件的各項參數,下面就以正弦波 Sine Wave 元件的 Properties 當作例子說明。

點選 Source 下面的 Sine Wave,觀看其參數設定視窗,並點擊 Module 前方的箭頭來展開 Module 的內容:


Class 列出該元件名稱。

Name 則是元件圖示上的顯示文字,使用者可自行輸入想要的元件名稱。

Output Port Side 是調整輸出埠在元件上下左右的哪一邊,可由使用者調整。

Execute Time 則顯示產生或計算此元件所花費的時間。

Output Data Type 顯示此元件輸出的資料格式做為參考。

若元件同時具有輸入與輸出的功能,如 Compute 與 Conversion 下的元件,則 Module 會顯示更多欄位,譬如下圖是傅立葉轉換元件的 Properties / Module,


比 Sine Wave 多出幾個欄位:

Input Port Side 可調整輸入埠在元件圖示上面的位置,

Acceptable Data Types 是以下拉式選單的方式呈現此元件接受的訊號或資料格式,供使用者查詢用。元件可以接受不同的資料格式,譬如 Real Multi-Channel Signal of Rank-1(Regular) Data,代表實數、多通道、等間距的一維時序資料。資料格式的分類請參閱下面的表:

資料種類 參數意義
依數值區分 Real:實數 Complex:虛數
依通道(Channel)區分 Single-Channel:單通道 Multi-Channel:多通道
依資料格式區分 Signal:時序訊號或頻譜訊號 Audio:聲音訊號 Numeric:數值資料 Spectra::時頻分析輸出資料
依資料離散情況區分 Regular:等時間間距 Indexed:非等時間間距

許多元件有內建 Reporter 視窗,用來展現計算結果。譬如 Basic Statistics、Correlation Matrix、Covariance Matrix、Orthogonal Matrix、Quartiles and Quantiles 等,都有 Reporter 視窗的設計 。以模組元件 Basic Statistics 為例,其 Properties 如下圖所示:


Reporter 在 Properties 中都稱為「View 元件名… 」,點選欄位右邊的按鈕,即可見 Reporter 視窗跳出,如下圖所示。


工具列可決定下方表格中數值的表現方式。第一欄可改變小數位數的展示方式,預設為 General,其他參數選項詳列如下表;第二欄的數字可控制顯示小數點以下第幾位,預設為 3;變更設定後需要點擊右方藍色 Refresh 鈕,才可生效。

參數名稱 參數定義
General 程式自動產生的預設表示形式 。
Scientific 以科學記號顯示數值,如 1.234E-001。
Fixed 固定小數點後的顯示個數。

1.5 視覺化繪圖區

當使用者利用 Viewer 群組內的模組元件展示訊號與計算結果時,在繪圖區就會產生一個圖形, 圖形依照產生的順序, 由上而下排列。Visual Signal 提供了一系列觀察訊號分析圖形時常用的功能, 諸如控制圖面、瀏覽、繪圖、匯出圖片等方面的工具,以利於使用者可作直覺且方便的操作。


繪圖區控制功能可分為兩部份,一部份是繪圖區上方的工具列右半部份的圖軸控制工具,如下圖:


另外一部份是在圖面上緣的群組功能及播放控制,如下圖:


工具列中的圖軸控制


與繪圖相關的功能按鈕如上圖,前兩項功能Copy to Clipboard 與Export to File 可複製圖片至剪貼簿以及將圖片存成圖檔。複製圖片到剪貼簿提供兩種圖片格式,Bitmap 與 Metafile。而輸出圖檔格式支援 PNG、BMP、JPEG、TIFF、WMF 等格式。

中間的七個按鈕與都是跟瀏覽圖形相關。分項來看各按鈕的功能。

  1. Home

    功能是將圖面回到預設的圖軸範圍。每張圖在被繪出時,皆預設繪出全部的資料範圍, 當圖面經過放大,平移,想再回復原始的圖軸範圍,就可以點擊

  2. Zoom X

    將圖在 X 軸方向上的放大。使用方法為按下滑鼠左鍵並沿 X 軸方向拖曳至您想放大的範圍(如下圖所示),鬆開滑鼠左鍵後,即可將選取範圍內的圖形沿 X 軸方向放大至整個圖面。


  3. Zoom Y

    將圖在 Y 軸方向放大。使用方法為按下滑鼠左鍵並沿 Y 軸方向拖曳至您想放大的範圍(如下圖所示),鬆開滑鼠左鍵後,即可將選取範圍內的圖形沿 Y 軸方向放大至整個圖面。


  4. ZoomRect

    將矩形區域內的圖形放大。使用方法為按下滑鼠左鍵並拖曳一個想放大的矩形範圍(如下圖所示), 鬆開滑鼠左鍵後,即可將選取範圍內的圖形放大至整個圖面。


  5. Pan X、Pan Y

    即 X 方向與 Y 方向的平移,使用上直接以按住滑鼠左鍵,然後進行圖面拖曳。

  6. Show Value

    本功能有兩個按鍵,左邊為啟用功能開關,右邊的含有下拉選單可選取模式。啟用功能後, 透過滑鼠在圖面上移動可見藍色十字線,十字線交點為數據點所在,其數值會顯示於整個視窗最左下角。 顯示數值之模式有四種:Pick Any(任何數據點)、Pick Maximum(只抓極大值)、 Pick Minimum (只抓極小值)、Pick Extrema (只抓極值),可以透過右邊按鍵的下拉選單切換所需模式。

    在 Channel Viewer 所繪出之圖面使用此功能,視窗左下角會顯示此點之索引號碼、XY 座標值;若是在以 Time Frequency Viewer 繪出的圖面上使用此功能,則會顯示 X、Y 座標值以及該位置所對應的計算值。


  7. Preference

    關於 Preference 的詳細內容及設定請參考於下一節 偏好設定

排序與群組功能

Visual Signal 擁有控制繪圖排列順序的圖面工具,當滑鼠移至每張圖的左上角,就會出現一組控制項, 這組控制項包括兩個功能,其一為可控制圖上下順序的小工具(見下圖), 使用者把游標置於並按下滑鼠左鍵,往上或往下拉就能使圖向上或者向下移動一個欄位。


旁邊的是 Group 群組工具,作訊號分析時, 常碰到一種狀況是有多張圖需要在同一個範圍縮放或者同時平移, Group 可以完成這樣的操作行為。首先在圖的左上角 Group 前打勾, 打勾後程式會自動顯示如下圖的編輯項目,其中出現可調整的數字是群組編號, 使用者可將圖區分作數個不同群組。Sync 後面有三個選項 X、Y、XY,這項參數決定縮放時的連動座標軸。


完成設定之後,設定參數會簡單的顯示在圖面左上角,方便使用者檢視每個圖形的群組設定。

播放功能

若 Viewer 繪出的資料為音源訊號,則在圖面的右上角可以見到播放功能。


為重複播放鍵,勾選後訊號會重複播放。

為正在播放的指示燈,若顯示表示播放中斷, 而表未播放。

為開始鈕,按下後即可開始播放音源資料。

為暫停鈕,開始播放後可以使用此鍵暫時停止播放。

為停止鈕,開始播放後可用此鍵中止播放程序。

下面將簡單示範 Group 與 Sync 的用法。現在於 Network 創造一個 Source / Noise ,以 Viewer / Channel Viewer 繪圖。然後在 Noise 後面以 Compute / TFA / Morlet Transform 做時頻分析,再用 Viewer / Time-Frequency Viewer 繪圖,Network 裡的程序如下。



現在將滑鼠游標移至第一張圖的左上角,先勾選 Group,後面的參數為群組編號,參數 Sync 先選擇 X。


接下來到第二張圖,同樣在第二張圖面左上角勾選 Group,群組編號調整為 1, 這樣第二張圖就會與第一張圖歸類為同一群組。 而參數 Sync 會依據初始設定應用在本群組下的所有圖面, 須注意改變群組中任一張圖的 Sync 設定值,其餘圖面的 Sync 會連動改變。


再來就利用圖軸控制工具示範 Sync 的作用。先選擇工具Zoom X, 放大第一張圖在 X 軸 0.4 秒到 0.7 秒的區間,可發現兩張圖會同時放大相同的 X 軸範圍。


若使用Pan X 功能也一樣會對群組下所有的圖連動 X 軸。 由於參數 Sync 的設定是 X 軸,因此若第一張圖用工具Zoom Y 放大 Y 軸, 同群組下的其它繪圖並不會連動放大。Sync Y 與 Sync XY 分別為連動 Y 軸與連動 XY 矩型區域, 在操作上與 Sync X 相同。

但是請注意一旦 X 和 Y 軸的型態或範圍不相同,將無法同步放大、縮小等, 將會取消同一個 Group 中無法同步的 Viewer,例如下圖, TF Viewer 的 Y 的型態不同於上面兩個 Channel Viewer,將會被取消群組; 若因範圍不同無法同步,可以將要同步 Viewer 的 X、Y 軸的 Max 或 Min 設定為相同,再進行同步放大、縮小等功能。


相關指令(Related Functions)

Channel ViewerTime-Frequency ViewerBox Plot ViewerError Bar ViewerHistogram ViewerXY Plot

1.6 偏好設定(Preference)


Preference 是設定系統預設參數的工具,包含四大部分系統設定 (System)、繪圖設定(Plot)、匯出設定(Output)、元件(Component)。

首先介紹系統設定(System),在 Start-Up Options,可以選擇是否要啟動 Visual Signal 的同時並且也啟動 Matlab Engine (如果使用者的系統中有安裝 Matlab)。

可以選擇運算控制功能中 Auto 是否要被勾選,也可以讓使用者選擇 Visual Signal 介面的使用語言, 目前僅支援英文(English)、繁體中文(Traditional Chinese)以及簡體中文(Simplified Chinese), 語言選擇之後必須重新啟動 Visual Signal。

Forced Garbage Collection 可以選擇何時 (無設定、每次專案更新、每次元件更新) 進行記憶體回收,可以幫助釋放記憶體空間。


再來說明繪圖設定(Plot),第一項 Default Plot Size 與繪圖相關, 可設定繪圖區圖面的預設寬度及高度;Hold Plot Range 設定 Viewer 元件參數, 決定圖形 XY 範圍是否要保持不變 ;Retain Plot 設定 Viewer 元件沒有被連接時, 是否要保留原圖形;Auto Legend Name 設定是否自動顯示圖例說明, 最後有 Line Color Preferences,此設定在 Viewer 中各通道訊號的呈現顏色, 如下圖。第二項 Time Frequency Plot,可設定 Time Frequency Viewer 中 CMin 的預設及 CMax 的預設, 並依據時頻資料的最大值(Absolute Maximum Value)的百分比或者所有時頻資料的百分位數。 所有設定參考下圖。


Writer 中的 Output Directory 可設定輸出檔案(如圖檔、訊號資料檔) 時儲存的預設目錄路徑;Output Encoding 設定輸出編碼格式; Filename {default} format shrink-threshold 可以設定使用 Writer 元件時的輸出檔名格式的縮減門檻, 詳細設定請參閱 Data Writer; Graph 中的 Graph Export Format 則是設定在 Batch Run 的時候輸出之圖片格式; Viewer title {default} format shrink-threshold 可以設定 Viewer 元件的標題格式的縮減門檻, 其功用與 Filename {default} format shrink-threshold 相同,詳細設定可參閱 繪圖模組; Reporter 中 Default number of decimal places 可以設定 Reporter 的結果中,小數點後的顯示位數。


接著為元件設定(Component)。FFT Algorithm 可以選擇 FFT 的演算法,預設為 Auto, 程式會依據硬體的使用狀況來選擇演算法;Silent Error Notification 勾選可以關閉警示音, 若運算過程中有錯誤或警告訊息產生,就會產生警告音來提示使用者; Check for null values before computation 會檢查載入的檔案是否有空值, 若有空值則會出現警告訊息; Automatically convert “Indexed” data using ToRegular 在 Visual Signal 中大部分的運算元件都需要 Regular 的資料格式,此選項若被選取, 則會在使用 Regular 格式的運算元件前將 Indexed 資料格式自動產生 ToRegular 元件將資料做轉換; Pre-Collapsed Property 則是設定每個元件之 Properties 的內容格式, 預設參數是 Module、Grid,代表說每個元件的 Properties 內容中 Module 的樹狀圖為收起來的狀態(如下圖)。



2 元件編譯區(Network Editor)

2.1 視覺化模組元件

在元件編輯視窗中點擊右鍵會跳出模組元件的功能選單,所有模組元件都必須由此選單中叫出。 模組依照功能與運算內容細分為六大類,分別是 Compute 計算群組、Conversion 轉換群組、 External 外掛模組、Source 訊號源群組、Viewer 展示群組與 Writer 資料輸出群組等, 其中 Compute 計算群組下又依照計算方法細分為 Channel、Filter、Mathematics、TFA、 Transform 等模組以及外掛的特殊模組(DAQ、SVM 等模組),各群組之特性說明如下。


2.1.1 模組元件種類

  1. Compute:本群組下模組元件的顏色為粉紅色,可對輸入訊號提供不同的訊號處理方法與運算,Channel 針對輸入之多通道訊號作資料截取、改變取樣頻率方面的處理;Filter 提供多種濾波器;Math 提供多種數學運算模組;Statistics 的內容包括基本的統計運算模組;Transform 中包含數值訊號處理常見的分析轉換方法;TFA 則為時頻分析運算,詳細各種模組介紹請參閱 Chapter 3。


  2. Conversion:本群組提供訊號的格式轉換,譬如實數、複數換算,轉換為聲音檔,時序訊號時間單位換算等。模組元件的顏色均為棕色。


  3. External:本群組提供 Visual Signal 內建的自定義函式範例,主要利用 External Dll / External Viewer。詳細介紹可參閱 External


  4. Source:本群組提供正弦波、方波、三角波、雜訊(Noise) 以及自訂波型產生器等不同的訊號源模組。模組元件的顏色為綠色。


  5. Viewer:本群組對於不同的訊號處理運算 (如統計、頻率域轉換、時頻分析的結果等),提供相對應的繪圖展示模組,以圖形呈現結果。模組元件的顏色為黃色。


  6. Writer:本群組提供將訊號資料與頻率分析之運算結果輸出為不同格式之文字檔的方法,模組元件的顏色為藍色。


2.2 圖示組成

元件組成單元如下圖所示,以下章節說明各單元之功用。


2.2.1 輸入、輸出埠、模組元件名稱


  1. 輸入埠:功能為接收資料進入元件。上圖為 EMD 模組元件圖示,元件左邊藍色三角形是模組輸入埠,接收其它的模組輸出資料,輸入埠數量可能因不同模組之需求而有所不同,譬如 Merge To Complex 模組有兩個輸入埠。

  2. 輸出埠:元件右邊紅色三角形為輸出埠,是將 EMD 計算結果輸出的位置,需注意只要有輸出埠的模組,都只有一個輸出埠,不過可將一個輸出訊號資料連至多個模組元件作為輸入訊號。

    輸入與輸出埠在圖示上的位置都可以在模組的 Properties / Module 中調整,如下圖 InputPortSide 調整為 Top,元件的輸入埠就移至元件頂位置。



  3. 圖示上的文字 EMD 顯示此模組的名稱,也可以在 Properties / Name 欄自行設定,直接在 Name 後方欄位鍵入,即可改變模組元件上的文字,如下圖。



2.2.2 控制與運算更新狀態

文字左邊的橘色方塊是控制該模組輸入及輸出資料的開關,預設橘色代表打開,若滑鼠再點擊一次則關閉此模組,橘色方塊會變成底色 (如下圖之 EMD 元件),此時模組將不會接受資料並進行計算,且也沒有結果輸出,輸出埠後方所連接的模組將無法計算,於此模組後方的連接線也會變成虛線。


文字下方藍色的橫條代表模組元件運算過程的更新狀態,在計算過程中,若資料尚未傳至此模組,則計算進度為 0,如左下圖藍色條是空的。當該模組開始計算後,如右下圖藍條會隨計算進度增加。


如果模組操作視窗中的自動更新 Auto 被取消勾選,然後變更模組參數,此模組元件與連接在它後方的所有模組元件之底部會變為青色的底線,提醒使用者這些元件計算結果將會有所更動。


2.2.3 模組元件接收與輸出模式

模組元件之接收、輸出模式會因模組本身之功能而異,主要區分為單方向輸出、單方向接收、與接收-輸出兼備等三種模式。

  1. 單方向輸出模組:此類模組僅有輸出埠,如訊號源 Source 下的模組與 Viewer 下之 Annotation 模組均是輸出模組。


  2. 單方向輸入模組:此類模組僅有輸入埠,不需要輸出,如 Viewer 下的模組與 Writer 下的模組。


  3. 接收 - 輸出兼備的模組:只要與運算過程相關的模組都必須能夠接收資料與輸出運算結果,因此如 Compute 下的所有模組,與 Conversion 下之所有模組都備輸入埠與輸出埠。


2.3 模組元件操作行為模式

模組元件的操作行為模式,包括模組元件的選取狀態、元件的連接規則與元件的連線狀態。

2.3.1 模組元件選取狀態

下圖為簡單的訊號處理流程,我們可以由模組元件的視覺變化判斷模組被選取的狀態,在 Network 中突起的方塊代表沒有被選擇,如圖中的 Sine、HSPEC、Channel Viewer、Time-Frequency Viewer 等模組,而被按下的方塊代表被選取的模組,如圖的 EMD 模組,此時 Properties 的內容即為 EMD 模組的參數。


2.3.2 模組元件連線狀態

簡單說使用 Visual Signal 分析就像是在畫訊號處理的流程圖,Visual Signal 已經準備好了各種訊號處理的方法,使用者僅需要呼叫出這些方法,並且連接它們, 便能夠以簡單的步驟實現複雜的訊號分析。

  1. 元件連接線建立方式

    建立模組元件之間的連線有兩種方式,第一將游標移至欲建立連線的元件中, 然後再按滑鼠右鍵選擇要接的模組,或者直接以拖拉的方式連接兩元件間的輸出、 輸入埠,方法詳細說明如下。

    先選取欲處理的模組元件,譬如說 Sine 元件,然後在元件上方按滑鼠右鍵, 出現模組功能選單,在選單中點選要連接的元件(如 EMD),在新增模組的同時, 程式會自動建立連接線。


    上述做法的好處是,在模組功能選單出現時,程式會偵測各元件之輸入資料格式限制, 自動判斷將資料格式不符的元件功能反白。以下圖為例,因為 Sine 元件的輸出是訊號, 而非時頻分析結果,因此在 Viewer 下的 Time-Frequency Viewer 會自動的反白且無法選取, 避免模組元件之間連接錯誤的機會發生。


    使用者也可先行建立需要的元件,再以滑鼠直接拖曳建立連接線。如下圖已經在元件編譯區建立了 Sine 與 Mixer 元件。先點選 Sine 模組元件輸出埠(紅色三角型處),再拖拉至下個元件 Mixer 的輸入埠 (藍色三角型處),即可成功建立連接線。


    上述作法的優點是十分直覺,藉由輸入、輸出埠之間的拖拉即可建立連線, 缺點為可能造成輸入資料格式不符該元件要求的狀況,若出現上述狀況, 程式出現錯誤訊息提醒使用者連線發生錯誤。


  2. 元件連接線刪除方式

    利用滑鼠點選元件之輸入埠,反向拖拉連接線至前一元件的輸出埠,即可刪除連接線。


  3. 元件連接線狀態表示

    各模組元件間的連接線,會按照不同顏色、不同類型(實線、虛線、寬實線) 來表示各模組元件間使用、執行的狀態,各類型詳見下表說明。

    線條顏色 對應資料格式說明
    藍色 實數形態的訊號。
    紫色 複數形態的訊號。
    紅色 時頻分析結果的訊號。
    黑色 矩陣形式的訊號。
    米色 註解(Annotation)模組元件的連接線。
    線條顏色 對應資料格式說明
    實線(細) 單通道的訊號格式(Single-Channel)。
    實線(寬) 多通道的訊號格式(Multi-Channel)與時頻分析的結果(Spectra)。
    虛線 尚未執行計算,或模組沒有輸出運算結果(Unavailable)。
  4. 元件連接警告表示

    當模組元件接收埠沒有資料傳入,或是輸入的訊號資料不完備,甚至是運算發生問題時,在元件的橘色方塊上會產生紅色驚嘆號,若將鼠標移至紅色驚嘆號則可進一步觀看詳細的錯誤訊息,以提醒使用者該元件的接收埠或者在或算過程中有問題產生。


3 計算模組 (Compute)

3.1 Channels

3.1.1 Channel Switch

說明(Description)

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

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number),多通道 (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 Wave 與 Triangle Wave 這兩元件的 Properties / Source 裡,取樣頻率(SamplingFreq)設定為預設值 1000 Hz,訊號頻率(SignalFreq)分別設定為 6 Hz 與 15 Hz,再用 Conversion / Merge to Multi-channel 將兩組格式相同的訊號結合為一組多筆(Multi-Channel)的訊號。



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






注意:

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

相關指令(Related Functions)

Merge to Multi-ChannelChannel ViewerSine WaveTriangle Wave

3.1.2 Data Selection

說明(Description)

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

參數設定(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 Hz,訊號頻率(SignalFreq)設為 20 Hz,並用 Viewer / Channel Viewer 觀察之。



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



相關指令(Related Functions)

Channel SwitchChannel ViewerSine Wave

3.1.3 Dup

說明(Description)

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

參數設定(Properties)

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

範例(Example)

將正弦波複製:

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



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

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



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

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


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


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

由上圖可見,若將原訊號置換為其他訊號以進行計算,是需要以手動方式將新訊號源接上
FFT 以及 Hilbert 模組。在要做更多處理時會愈加複雜,並易出錯。
  1. 若現在將資料源與計算中間插入一 Dup 元件:


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


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

相關指令(Related Functions)

Macro

3.1.4 Fill Null Value

說明(Description)

將缺值的資料補值。將輸入訊號資料為 \(X = \{x_0, x_1, \dots, \text{NaN}, \dots, \text{Null}, \dots, x_{N-1}\}\) 的 NaN(Not A Number)或 Null 之缺值部份補齊。

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel)或多通道 (Multi-Channel),Regular 的訊號(Signal)或聲音訊號(Audio)輸入。參數為 FillMethod,內有六個選項,相關定義與預設值整理如下表。


參數名稱 參數定義 預設值
FillMethod 填補方法,有 FixedValue、PrevValue、NextValue、LinearInterpolation、 SplineInterpolation 與 MonotonicCubic。 LinearInterpolation
選項名稱 選項定義
FixedValue 由使用者輸入一個定值作為缺值的大小。此參數下方會出現欄位 NullValue,即設定欲補入之數值。
PrevValue 缺值處之值以前方最鄰近非缺值之數值補值。
NextValue 缺值處之值以後方最鄰近非缺值之數值補值。
LinearInterpolation 缺值處之值,以前後第一個非 Null 的兩值做線性內插。
SplineInterpolation 做三次曲線內插補值。
MonotonicCubic 為有 damping 的三次內插法,此法在處理在斜率很大的訊號(如方波)時,可避免劇烈振盪,較 SplineInterpolation 為佳。

範例(Example)

填補缺值複製:

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


  2. 在 demo53 中,利用 SplineInterpolation、LinearInterpolation、FixedValue、MonotonicCubic 四種方法補值,下圖是以 SplineInterpolation 方法補值後的圖形。



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


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


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



  6. 現在將原始輸入訊號分別以 SplineInterpolation 以及 MonotonicCubic Interpolation 填補。


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


相關指令(Related Functions)

Text ImporterResample

3.1.5 Remove Channel

說明(Description)

將多通道(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 Hz,而訊號頻率(SignalFreq),分別為 5 Hz(Sine Wave)、8 Hz (Square Wave)、以及 15 Hz(Triangle Wave),以觀察不同波形。




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




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



注意:

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

相關指令(Related Functions)

Merge to Multi-ChannelChannel Switch

3.1.6 Replace Value

說明(Description)

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

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel)或多通道 (Multi-Channel),Regular 的訊號(Signal)與聲音訊號(Audio) 輸入。參數定義與預設值整理如下表。


參數名稱 參數定義 預設值
ReplaceMethod 設定取代的方法,包含 All、Expression、ByPass。 Expression

假設 ReplaceMethod 設定為 Expression,則可設定參數如下表:

參數名稱 參數定義 預設值
Condition Expression 輸入要取代的條件式。可使用 +, -, *, /, <, >, ==, !=, &, || 等運算元。 y == null
Replace Value Type 設定取代數值的型態,包含Custom、Null、Mean 與 Median。 Custom
ReplaceValue 設定取代後的數值。 0
StartPosition 設定被取代訊號的起始點。預設為輸入訊號的起始點。 start
EndPosition 設定被取代訊號的終點。預設為輸入訊號的終點。 end

假設 ReplaceMethod 設定為 All,則可設定參數如下表:

參數名稱 參數定義 預設值
Replace Value Type 設定取代數值的型態,包含Custom、Null、Mean 與 Median。 Custom
ReplaceValue 設定取代後的數值。 0
StartPosition 設定被取代訊號的起始點。 start
EndPosition 設定被取代訊號的終點。 end

假設 ReplaceMethod 設定為 Outlier,則可設定的參數如下表:

參數名稱 參數定義 預設值
Outlier Boundary 設定離群邊值(訊號標準差的倍數)。 3
Replace Value Type 設定取代數值的型態,包含Custom、Null、Mean 與 Median。 Custom
ReplaceValue 設定取代後的數值。 0
StartPosition 設定被取代訊號的起始點。 start
EndPosition 設定被取代訊號的終點。 end
Sliding Window Mode 設定開啟 / 關閉移動計算窗模式。 False

若設定 ReplaceMethod 為 ByPass,則輸出與輸入相同。

範例(Example)

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

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



  2. 將 Square 連上 Compute / Channel / ReplaceValue,設定 Properties / Condition Expression 為 y == 1,ReplaceValue 為 -0.5,StartPosition 為 0.2 ,EndPosition 為 0.6。



    如此處理可將訊號中 0.2 秒到 0.6 秒中所有等於 1 的數值取代成 -0.5。可見圖形有明顯不同:


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



相關指令(Realted Functions)

3.1.7 Resample

說明(Description)

Resample 為重新取樣,常用的用途有下列兩種:

  1. 當資料量過大時,用來降低資料量。

  2. 資料點數不足時,以內插的方式獲得比原數據點數更多的資料。

不管是做以上哪一種用途,重新取樣可能會造成 混疊的現象(Aliasing), 因此,如果要用重新取樣完的數據來做頻譜分析時,應特別小心。 另外,內插方式的選擇也會影響重新取樣完的數據,若需做較精細的分析時,也應該考慮此因素來選擇內插的方式。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number),單通道 (Single Channel) 或多通道(Multi-Channel),Regular 的訊號(Signal)與聲音訊號 (Audio)輸入。

參數 Properties / Data 下顯示輸入訊號的頻率單位、取樣頻率與資料數量長度。


參數 Properties / Resample 定義詳見下面圖表。其中若 Step Downsampling 為 True 時,NewSamplingFrequency 以 DownSamplingStep 為基準 (DownSamplingStep 必須為整數);若 Step Downsampling 為 False 時,NewSamplingFrequency 可任以更改。


參數名稱 參數定義 預設值
Step Downsampling 設定是否要顯示 StepDownsampling 模式控制。 True
DownSamplingMethod 降低取樣的方法,方法 Sample、Average、MaxDetect、MinDetect、PeakDetect,說明如下圖表。 Sample
DownSamplingStep 降低取樣時,設定每多少個點重新取出一個點,此設定將影響 NewSamplingFrequency。 1
NewSamplingFrequency 重新的取樣的頻率,既單位時間內的點數。 與 Source 相同
NewCount 顯示重新取樣後的總點數。

DownSamplingMethod 參數的選擇及說明如下圖表所列。

選項名稱 選項定義
Sample DownSamplingStep 設定點數,取出這些點的第一點。
Average DownSamplingStep 設定點數,取出這些點的平均。
MaxDetect DownSamplingStep 設定點數,取出這些點的最大值。
MinDetect DownSamplingStep 設定點數,取出這些點的最小值。
PeakDetect DownSamplingStep 設定點數,取出這些點的最大及最小值。

若參數 StepDownsampling 為 False,參數 ReSamplingMethod 代表對輸入訊號作重新取樣時所採用的計算方式, ReSamplingMethod 的參數選擇及說明如下圖表所列。


參數名稱 參數定義 預設值
ReSamplingMethod 重新取樣時,補點之方法,在此有三:最近點(Nearest)、線性(Linear)、曲線逼近(Spline)及(MonotonicCubic)。 Linear
選項名稱 選項定義
Nearest 以最臨近的原訊號值,做為新樣本點處之值。
Linear 以前後第一個有定義的兩原訊號值做線性內插。
Spline 將原訊號做三次曲線內插以從新取樣。
MonotonicCubic 有 damping 的三次內插取樣,此法在處理在斜率很大的訊號(如方波)時,可避免劇烈振盪,較 Spline 為佳。

範例(Example)

範例 I:建立一取樣頻率較高的正弦波,並以 Resampling 中 Step Downsampling 重新取樣。

  1. 以 Source / Sine Wave 建立正弦波,調整 Source 下的 SamplingFreq 以及 DataLength 為 100000 以及 100001,再接上 Viewer / Channel Viewer 觀察之。



  2. 將 Sine 接至 Compute / TFA / Enhanced Morlet Transform 可以看到計算時間為 12.47 秒。


  3. 將 Sine 接至 Compute / Channel / Resampling ,於 Resampling 的 Property 中更改 DownSamplingStep 為 2000,再接上 Viewer[1] 與原訊號一起比較 (黑線為原始訊號,藍線為 Resampling 後),可以看出此降低取樣頻率造成了資料失真。




    故將 Resampling 的 Property 中更改 DownSamplingStep 為 500,再接上 Viewer[1] 與原訊號一起比較,可以看出此降低取樣頻率沒有造成了 資料失真,接著接至 Compute / TFA / Enhanced Morlet Transform 可以看到計算時間不需 1 秒,僅 0.12 秒就可計算完成。



範例 II:建立一取樣頻率太低的正弦波,並以 Resampling 重新取樣。

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



  2. 將原本訊號 Sine 接上 Compute / Channel / Resample,設定 Resample 下的 Step Downsampling 設定為 False。 若將 ReSamplingMethod 取 SplineInterpolation 且 NewSamplingFrequency 提高至 500,再接上 Viewer / Channel Viewer,可以看出由於增加了採樣頻率而還原出較正確的正弦波。




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

範例 III:比較不同 ReSamplingMethod 的差異。

  1. 由 Source 下產生 Square Wave,參數使用預設值,接上兩個 Compute / Channel / Resampling,Step Downsampling 設定為 False,分別以 SplineInterpolation 與 MonotonicCubic 增點 100 倍 (NewSamplingFrequency 設為100000),並接上 Viewer / Channel Viewer,畫在同一個 Viewer 上,比較不同的 ReSamplingMethod 差異。


    注意到在邊緣處,兩者結果相當不同,放大圖形來看為 (於 Viewer[1] 中 Property 將 XMin 改為 0.048, XMax 改為 0.054 )。如下圖,其中黑細線為 Spline 的結果,藍線為 MonotonicCubic,可見後者之結果較佳。


範例 IV : 比較 StepDownsampling 為 True 或 False 的差異。

  1. 以 Source / Sine Wave 建立正弦波,調整 Source 下的 SamplingFreq 以及 DataLength 為 100 以及 101,接上 Compute / Channel / Resampling,將 DownSamplingStep 改為 2。

  2. 再接上 Viewer / Channel Viewer,設定 Viewer 的 Representation 中的 PlotEditor,將 MarkerStyle 改成空心圓 ○ 及實心稜形 ◆。可以清楚看到當 DownSamplingMethod 為 Sample 時,是根據 DownSamplingStep 設定點數,取出這些點的第一點。



  3. 可由其他 DownSamplingMethod 嘗試,下圖 DownSamplingMethod 的參數選擇依序為Average、MaxDetect、MinDetect、PeakDetect,比較結果之異同。

  4. 設定 Resample 下的 Step Downsampling 設定為 False ,選取不同的 ReSamplingMethod 嘗試,比較結果之異同。

相關指令(Related Functions)

Square WaveFill Null Value

參考資料(Reference) 

  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

說明(Description)

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

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number),單通道 (Single Channel)、多通道(Multi-Channel),Regular 的訊號(Signal)與聲音訊號 (Audio)輸入。

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


參數名稱 參數定義 預設值
ShiftMode 設定時間起點的方法,包含 ShiftStartTime、SetStartTime、SetStartDate。 ShiftStartTime
選項名稱 選項定義 選項參數
ShiftStartTime 將整個時間平移。 ShiftValue
SetStartTime 直接指定新的時間起點。 StartValue
SetStartDate 指定新時間起點的日期、為年月日時分秒之型式。 StartDate StartTime

範例(Example)

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

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



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




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



注意:

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

相關指令(Related Functions)

RemoveDC

3.1.9 Data Merge

說明(Description)

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

參數設定(Properties)

本模組可以接受實數(Real Number),單通道(Single Channel)、多通道 (Multi-Channel),等間距(Regular)的訊號(Signal)與聲音訊號 (Audio)。各參數定義與預設值如下圖表:


參數名稱 參數定義 預設值
StartPosition 要被連接訊號的新位置,新位置以參考訊號的為基準,預設為參考訊號的最後位置。 end
ReferenceInput 設定參考訊號,StartPosition 是以參考訊號為準。 0

範例(Example)

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

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





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




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



相關指令(Related Functions)

NoiseSine WaveShort-Term Fourier TransformChannel ViewerTime-Frequency Viewer

3.1.10 Input Switch

說明(Description)

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

參數設定(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 Hz,時間長度(TimeLength)為 1 秒、振幅(Amplitude)為 1,設定如下圖。



  2. 將 Noise 依順序接上 Compute / Transform / Fourier Transform、Compute / HHT / RCADA EEMD、Conversion / Convert to Audio、Compute / TFA / Short Term Fourier Transform 並將 STFT 模組接上 Conversion / Convert to Matrix,所有模組設定都依照模組預設值。


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



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


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


相關指令(Related Functions)

NoiseFourier TransformRCADA EEMDConvert to AudioShort-Term Fourier TransformConvert to Matrix

3.1.11 Peak Detection

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

說明(Description)

  1. 調整 Minima Interval 和 Peak Threshold,劃分欲擷取之波峰值。

  2. 如訊號帶有趨勢性,可利用 Median Filter 濾除趨勢。

  3. 依訊號特性,透過 Preprocess Transform 加強峰值顯現。

此模組雖然會自動算出 Minima Interval 和 Peak Threshold,但如欲得到好的結果還是得要知悉 Minima Interval 和 Peak Threshold 的設定。 兩峰值間隔須大於 Minima Interval 才視為是兩個分別的峰值:

如使用 Minima Interval 的 auto 值,可能抓到同樣高於界限值但卻非需求的峰值,


此時可適當地增加 Minima Interval 的寬度,忽略過於靠近主峰值的 Peak。


界限值(Peak Threshold)上方視為上峰值:


在此值以上之峰值,會被 Peak Detection 擷取,以下者則略過;抓取下峰值則相反,界限值下方者視為下峰值,此值以上者則被忽略 。


若訊號有趨勢性,


則可使用 Median Filter 濾除趨勢性,再做擷取:


參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號 (Signal)或聲音訊號(Audio)輸入;輸出訊號格式受不同的 Output Type 影響。


參數名稱 參數定義 預設值
OutputType 選擇偵測波峰後輸出的形式,包含 PreprocessOutput(輸出前處理轉換後的訊號)、 PeakIntervalVsTime(波峰間隔與時間關係)、 PeakIntervalVsPeakNumber(波峰間隔與波峰數的關係)、 PeakDetection(抓取波峰)、 RemovePeak(移去峰值)。 PeakDetection
UseMedian Filter 是否使用中值濾波器移除趨勢性。 False
PeakType 抓取 Upper(上波峰)或 Lower(下波峰)。 Upper
PreprocessTransform 在抓取峰值前根據選擇下述的峰值特性對訊號做轉換, None(不使用)、 Width(波寬)、 WidthByArea(波寬乘面積)、 WidthByExtrema(波寬乘極值)、 Area(面積)、 Extrema(極值)。 Extrema
MinimaInterval 兩波峰間的最短時間間隔。 Auto
PeakThreshold 如訊號超過此界限值,則視為波峰。 Auto
OutputType 參數選項 選項定義
PreprocessOutput 輸出前處理轉換後的訊號,格式為 Indexed。
PeakIntervalVsTime 波峰間隔與時間關係,輸出格式為 Indexed。
PeakIntervalVsPeakNumber 波峰間隔與波峰數的關係,輸出格式為 Regular。
PeakDetection 抓取波峰,輸出格式為 Indexed。
RemovePeak 移去峰值,輸出格式為 Regular。
PreprocessTransform 參數選項 選項定義
None 不使用任何前處理轉換,輸出移除均值後之訊號。
Width 輸出移除均值後的過零點及波寬值。
WidthByArea 輸出移除均值後的過零點和波寬值與波面積之乘值。
WidthByExtrema 輸出移除均值後的過零點和波寬值與局部極值之乘值。
Area 輸出移除均值後的過零點及波面積。
Extrema 輸出移除均值後的過零點及局部極值。

範例(Example)

  1. 人工訊號的波型

    利用 Source / CustomWave,參數皆為預設,Expression 為 sin(2*pi*10*t)*cos(2*pi*20*t),圖形如下:


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




    紅線為目前使用的 Threshold 位置。

    若再將 Threshold 設定為 0.2,則可擷取較低的峰值。


    調整 OutputType 為 RemovePeak,可得移去峰值後的訊號(紅線)。



  2. 帶有趨勢的人工訊號

    使用 Source / Custom Wave,Expression 為 cos(2*pi*20*t)+exp(2*t),其餘參數為預設,得到下圖:


    依 Peak Detection 的預設參數擷取峰值,無法得到正確的峰值。


    開啟 Peak Detection 的 UseMedianFilter 功能,並將 PreprocessTransform 設為None:



  3. 利用 PreprocessTransform 加強訊號峰值特性

    使用 Source / Custom Wave,Expression 為 abs((sin(20*pi*t)-0.5)>0?(sin(20*pi*t)-0.5)/0.5:(sin(20*pi*t)-0.5)/1.5),其餘參數為預設,得到下圖:


    利用 Peak Detection 的所有預設參數,的確所有峰值都抓取到了:


    但如果今天較細的峰值是不需要的,除了調整 Minima Interval 外,亦可利用 PreprocessTransform 加強峰值的特性;如此例,可知較寬的峰值有較大的面積或是較寬的波寬,改變 PeakDetection 的參數 OutputType 為PreprocessOutput,PreprocessTransform 分別設為 Width 及 WidthByArea,如下圖:





    可看出不同的 PreprocessTransform 參數可針對不同波峰做特性強化。



  4. 脈診儀資料

    原始資料為下圖:


    直接使用 Peak Detection 的所有預設參數,但是效果不是很好;紅線為 PeakThreshold 為 auto 時的位置。



    此時有兩種調整方式:

    1. 加大 MinimaInterval,忽略過近的峰值:


    2. 降低 PeakThreshold:


    如需更進一步利用 Multi-Scale Entropy(MSE)分析心跳,可選擇輸出 PeakIntervalVsPeakNumber:


相關指令(Related Functions)

CustomWaveMulti-Scale Entroy (MSE)

3.1.12 R-R interval

說明(Description)

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

一個典型的心電訊號如下圖,可分類為多種波,如 P、Q、R、S、T 等。


實際量測時 P、Q、S、T 常不如其中 R 波明顯,因此通常以 R 波來計算時間間隔。將一量測到的 ECG 訊號輸入本軟體繪圖,可見如下圖:


經過本模組的計算後,可得到 X 軸為 R 波發生之時間(或心跳數)、Y 軸為兩 R 波之間的時間差之輸出,如下圖:


參數視窗中也有選項可開啟 HRV 參數表格供使用者參考。

注意本模組判定標準較為嚴苛,需接受標準的 ECG 訊號,若為非標準之心電訊號,可使用 Peak Detection 模組達到抓取極值之功能。輸入之 ECG 訊號可為兩電極間的差值或兩極之值,而數據前面 3000 點做為計算 R-R interval 的參考,故不列入計算。

參數設定(Properties)

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

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


參數名稱 參數定義 預設值
Input Channel Type 設定輸入的 ECG 為兩電極間的差值(DeltaVoltage) 亦或是兩電極之絕對值(TwoElectrode)。 DeltaVoltage
Outout Channel Type 輸出的結果有 HeartBeatIntervalVsBeatNumber (x 軸為 beat number,y 軸為兩 R 波之間的時間差) 或 HeartBeatIntervalVsTime (x 軸為 R 波發生之時間,y 軸為兩 R 波之間的時間差) 兩種形式。 HeartBeatIntervalVsTime
Unit 單位,可為 Volt 或 milliVolt 。 milliVolt
Gain ADC 單位轉換為物理單位的比例值,與 ECG 量測儀之規格有關。 200
DCvalue ECG 量測儀之基準校正值。 0
View Time-Domain Measures.. 打開 HRV 參數表。

輸出的結果可進一步分析得到 Heart Rate Variables (HRV),目前此模組可自動產生時域分析的 HRV,包括數值統計(Statistical) 和幾何(Geometric)兩大部分,其詳細的定義如下表。

分析值 數學式 說明
Statistical Measures
Mean 詳見 Basic Statistics 的 Mean 計算 R-R interval 算數平均值
Variance 詳見 Basic Statistics 的 Variance 計算 R-R interval 變異數(標準差的平方)
SDNN 詳見 Basic Statistics 的 StdDev 計算 R-R interval 標準差
SDANN \(\sqrt{\frac{\sum_{i=1}^N (\overline{RR}_i-mean\overline{RR}_i)^2}{M-1}}\) R-R interval 每五分鐘平均值的標準差
RMSSD \(\text{RMS of} \Delta RR_i\)
\(\Delta RR_i = |RR_{i+1} - RR_i|\)
相鄰的 R-R interval 差值的 RMS
SDANN index \(\frac{1}{M}\displaystyle\sum_{j=1}^M \sqrt{\frac{\sum_{i=1}^N(RR_i-meanRR_i)^2}{N_j-1}}\) R-R interval 標準差指標,為每五分鐘標準差的平均值
SDSD \(\text{StdDev of}\;\Delta RR_i\) 相鄰的 R-R interval 差值的標準差
NN50 Count \(\text{Count of}\;\Delta RR_i > 50\) 相鄰的 R-R interval 差值超過 50 毫秒的個數
PNN50 \(\frac{\text{NN50 count}} {\text{Total RR intervals}}\) 相鄰的 R-R interval 差值超過 50 豪秒的個數與 R-R interval 總數百分比
Geometric Measures
HRV triangular index
\(\frac{\text{Total RR intervals}}{Y}\)
R-R interval 總數除上 R-R interval 直方圖最高點 \(Y\)
TINN \(M - N\) R-R interval 直方圖底寬

範例(Example)

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

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


資料匯入後,可利用  Viewer / Channel Viewer 觀察之 (上圖為 Viewer[1],下圖為上圖之放大圖,於 Viewer[1] 中 Properties 將 XMin 改為 792.1、XMax 改為 795.9)


再將資料接至 Compute / Channel / RRinterval 處理此資料,並將 Type 設定為 TwoElectrode,在將之接至 Channel Viewer 觀察之 (Viewer[2])。




若將 Output Type 改為 HeartBeatIntervalVsBeatNumber,輸出結果之 X 軸為 Beat Number,Y 軸為兩 R 波之間的時間差,使用者可以自行調整觀察。現在依然持續觀察 HeartBeatIntervalVsTime 的結果,將 Viewe[1] 與 Viewer[2] 的 XMin 改為 0、XMax 改為 25,觀察 R-R interval 的之輸出,時間是由 9.1 秒開始,這是因為前面 3000 點做為計算 R-R interval 的參考,故不列入計算。


點選 View Time-Domain Measures… 屬性,其右方會出現一按鈕,點選按鈕可顯示此元件的分析結果如下。


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



再將資料接至 RRinterval 處理此資料,並將 Type 設定為 DeltaVoltage,得到結果如下圖。


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

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

相關指令(Related Functions)

Peak Detection

參考資料(Reference)

Heart rate variability ** European Heart Journal (1996) 17,354–381

3.2 Filter

本模組提供數種常見之濾波器,以濾除訊號中特定的資料內容。

  1. FIR Filter:基本的有限脈衝響應濾波器 (Finite Impulse Response Filter)。

  2. Median Filter:對抑制脈衝雜訊效果顯著的中值濾波器。

  3. Moving Average Filter:移動平均濾波器可消除隨機產生之雜訊。

  4. Iterative Gaussian Filter(*Only in Professional):此元件目的在於濾除訊號非週期之部份。

  5. Trend Estimator(*Only in Professional):為 Iterative Gaussian Filter 之簡化版,可抓取非週期訊號。

  6. Notch Filter:此元件目的在於濾除訊號中的某個頻率。

  7. Comb Filter:為一梳形濾波器,用於濾除一系列等間距的頻率。

3.2.1 FIR Filter

有限脈衝響應(Finite Impulse Response) 濾波器,是訊號處理中基本(Basis) 濾波器原型,可針對高頻、低頻或指定的頻段濾波。有限(Finite) 是指此濾波器對於訊號的反應時間是有限的。

說明(Description)

假設有一訊號,為如下圖形:


傅立葉轉換後圖型如下,在此希望將其高頻部份濾除,只保留低頻部份:


(黑細線為原本訊號的傅立葉轉換,紅粗線為希望保留與濾除的頻率分界)

因此,在傅立葉空間定義出上述紅線的函數,並將此函數與原本訊號的傅立葉轉換相乘:


再做傅立葉逆轉換,就可得到濾除高頻部份的圖型 :


以上是為低通(LowPass) 濾波器,若為高通(HighPass) 則為:


帶通(BandPass):


反帶通或稱帶阻(BandStop)


ByPass 則為全通。

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel) 或多通道 (Multi-Channel),Regular 的訊號(Signal) 或聲音訊號(Audio) 輸入;輸出訊號格式與輸入訊號相同。

FIR Filter 的主要參數為 FilterType,預設包括 LowPass、HighPass、BandPass、BandStop、ByPass 等五種型態。LowPass 表示過濾掉頻率 F1 以上的訊號,HighPass 則過濾頻率 F1 以下的訊號。BandPass 代表保留頻段 F1 至 F2 間的訊號,BandStop 則是濾掉頻段 F1 至 F2 間的訊號。ByPass 則為所有頻率皆可通 (即為原輸入訊號)。各參數定義與預設值如下表:


參數名稱 參數定義 預設值
FilterType 預設五種形態,包括 LowPass、HighPass、BandPass、BandStop、ByPass。 LowPass
UseIPP 設定是否使用 IPP(Integrated Performance Primitives) 函式庫的演算法計算 FIR。 True
F1 對於 LowPass 以及 HighPass 而言,F1 代表濾波器過濾頻段的分界點;對於 BandPass、BandStop,F1 代表濾波器過濾頻段的起始點,單位為 Hz。 10
NormalizedF1 顯示以輸入訊號之 Sampling Frequency 為依據,正規化後的F1值。 因應輸入訊號不同而異。
Freq Unit 指定過濾頻段的單位。 Default
F2 對於 FilterType 選擇 BandPass 與 BandStop 者,會出現濾波器過濾頻段不終點 F2,單位為 Hz。 50
FilterOrder 濾波器轉換函數的離散點,N 即為 N-order Filter。 101
Window 指定計算 FIR 濾波器係數的窗函數,預設有五種函數分別為 Barlett、Blackman、Hamming、Hann、Rectangle。 Barlett

範例(Example)

本範例將示範以三個頻率各為 10、51、193 Hz 的 Sine Wave 加上振幅 0.3 的 White Noise 當作輸入訊號,再用 FIR Filter 過濾不同頻率的訊號,步驟如下:

  1. Network 視窗下選擇 Source / Noise 產生一個白色雜訊,設定 Properties / Amplitude 為 0.3,再用 Source / Sine Wave 產生三個 Sine Wave,並改變其 Properties / SignalFreq 為 10、51、193 Hz,最後以 Compute / Mathematics / Mixer 將上述訊號混合(將各訊號源之 Output 拉至 Mixer 的 Input),用 Viewer / Channel Viewer 繪出。




    可以將 Mixer 的結果接上 Compute / Transform / Fourier Transform, 以觀察頻譜圖,以方便接下來的 FIR Filter 設計


  2. 於 Mixer 圖示選擇 Compute / Filter / FIR Filter,調整 Properties / F1 為 25 Hz,FilterType 預設為 LowPass,用 Channel Viewer 顯示濾波結果。觀察結果,輸入訊號在頻率 25 Hz 以上的部份皆被濾除,輸出訊號類似 10 Hz 的 Sine Wave,不過因 FilterOrder 僅101,所以波形有所影響。





  3. 重覆步驟 2 新增一 FIR Filter,調整參數 FilterType 等於 HighPass,F1 改為 100 Hz,FilterOrder 為 500,結果如下圖所示,濾波器過濾掉頻率 100 Hz 以下之訊號,結果為頻率 193 Hz 的 Sine Wave 加上 White Noise。




  4. 再重覆步驟 2 新增一 FIR Filter,調整參數 FilterType 為 BandPass,F1 改為 25 Hz,再設定頻率下限 F2 為 100 Hz,FilterOrder 設為 500,在頻段 25~100 Hz 的訊號會通過,其它訊號則被濾掉,所以結果為 51 Hz 的 Sine Wave。




相關指令(Related Functions)

NoiseSine WaveMixer

參考資料(Reference)

1.http://en.wikipedia.org/wiki/Finite_impulse_response

2.http://cnx.org/content/m11918/latest/

3.2.2 Median Filter

Median Filter 是一維的非線性濾波器,計算濾波範圍(filter order) 內訊號之中位數作輸出結果,對於抑制脈衝雜訊(Speckle noise) 效果顯著,同時能保持訊號波形邊緣的可辨度(edge detection)。

說明(Description)

\(X = \{x_0, x_1 \dots x_{N-1}\}\) 代表長度為 \(N\) 之輸入訊號,\(Y = \{y_0, y_1 \dots y_{N-1}\}\) 為濾波後的訊號,\(M\) 為作濾波計算時所取的訊號長度,則 Median filter 定義為:

\[y_i = median(\{x_k\}), {i - \frac{M - 1}{2}} \leq k \leq {i + \frac{M + 1}{2}} \]

上式表示,在第 \(i\) 個位置為中心,前後分別取 \(\frac{M - 1}{2}\) 個點成為一組數列,再找出該數列的中位數以取代訊號第 \(i\) 個位置的值;若點數不足時如(\(M > N\),或在\({N - i} < \frac{M - 1}{2}\)) ,則將範圍內最邊界點的值複製,用以填補至足夠的點為址。程式預設 \(M\) 為奇數,若輸入為偶數,則自動將個數加一,以使成為為奇數。

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel) 或多通道 (Multi-Channel),Regular 的訊號(Signal) 或聲音訊號(Audio) 輸入;輸出訊號格式與輸入訊號相同。


參數名稱 參數定應 預設值
FilterType 為設定濾波器對訊號高、低頻段的過濾,選項為 LowPass、HighPass 及 ByPass。 LowPass
FilterOrder 作Median filter 所選取的數列長度,即為 M,設定為奇數,如輸入偶數,則程式自動加1變為奇數。 101

範例(Example)

本範例(Example) 將示範以一個方波加上 Speckle Noise 當作輸入訊號,再用 Median filter 濾波的過程,步驟如下:

  1. 於 Network 視窗下按右鍵,選擇 Source / Noise 產生一個雜訊,設定 Properties / NoiseType 為 Speckle,Probability 設為 0.25,另外選擇 Source / Square Wave 產生一方波,以 Compute / Mathematics / Mixer 將兩訊號混合,用 Viewer / Channel Viewer 顯示於視窗。




  2. 另點選 Mixer 圖示選擇 Compute / Filter / Median Filter,調整 Properties / FilterOrder 為 5,再用 Viewer / Channel Viewer 顯示濾波結果。




  3. 步驟 2 已可得到不錯的濾波效果,如再調整 Median Filter 的參數 FilterOrder 為 21,結果如下圖所示,FilterOrder 增加了約 4 倍,不但 speckle noise 已經完全濾掉,而且在波形邊緣仍維持良好的陡峭度。



  4. 最後回到 Noise 圖示,將 NoiseType 由 Speckle noise 改為 White noise 藉此測試 Median filter 的特性,結果如下,可觀察到 Median filter 無法完全過濾 White noise 造成的影響,但波型邊緣仍大部份維持著,此即為 Median filter 的主要功用。


相關指令(Related Functions)

NoiseSquare WaveMixerMoving Average Filter

參考資料(Reference)

http://en.wikipedia.org/wiki/Median_filter

3.2.3 Moving Average Filter

Moving Average Filter 是藉由對濾波範圍內訊號取平均值,目的為降低離散時間訊號中的雜訊,增加峰值的可辨度。其特點為理論簡單,計算快速。

說明(Description)

\(X = \{x_0,\,x_1 \dots x_{N-1}\}\)代表長度為 \(N\) 之輸入訊號,\(Y = \{y_0, y_1 \dots y_{N-1}\}\)為濾波結果,若濾波範圍為 (Average Length)為 \(M\) 個訊號,則其輸出為:

\[y_i = \frac{1}{M} \displaystyle\sum_{j = -\frac{M - 1}{2}}^{\frac{M - 1}{2}} x_{i + j} \]

上式的意義為:總面積為 1,時間軸上長度為 \(M\) 的長方形濾波器對輸入訊號做折積(Convolution)。

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel) 或多通道 (Multi-Channel),Regular 的訊號(Signal) 或聲音訊號(Audio) 輸入;輸出訊號格式與輸入訊號相同。

Moving Average Filter 包括兩個參數:FilterType 與 AverageLength,AverageLength 代表求平均所取的訊號個數 M,單位為時間。FilterType 為設定濾波器高、低頻段的過濾,內有三個選項分別為 LowPass、HighPass 及 ByPass,LowPass 即為執行上述理論的計算值;HighPass 則為輸入訊號減去 LowPass 之計算結果;而 ByPass 的輸出,即等於輸入訊號(因為 HighPass + LowPass = 原訊號),參數預設值詳見下表。


參數名稱 參數定義 預設值
FilterType 為設定濾波器對訊號高、低頻段的過濾,選項為 LowPass、HighPass 及 ByPass。 LowPass
AverageLength 作平均所設定的訊號長度,單位為時間。 0.05
AverageCount 顯示 AverageLength 所對應的訊號個數。 依 AverageLength 而自動調整。

範例(Example)

本例將混合一個頻率為 2Hz、振幅為 1、長度 2 秒的方波與一個振幅為 0.5,長度為 2秒的 White Noise,以 Moving Average Filter 濾波,並設定不同的 AerageLength 觀察對原訊號所造成的影響。

  1. 按右鍵選用 Source / Square Wave 創造方波,改變 Properties / TimeLength 欄位為 2,SignalFreq 欄位改為 2。接著再按右鍵點選 Source / Noise/White Noise 創造 White Noise,TimeLength設為 2,Amplitude 設為 0.5。最後按右鍵選 Compute / Channel / Mixer 將兩訊號相加,再用 Viewer 繪出。





  2. 於 Mixer 按右鍵選擇 Compute / Filter / Moving Average,對輸入訊號作 Moving Average,可於 Properties / AverageLength 欄位看到預設值等於 0.1s,AverageCount 欄位顯示共 101 個資料,代表 MA 輸出的每一點為其輸入訊號前後共 101 個資料點的平均,FilterType / LowPass 表示輸出為 Moving Average 的計算值,最後用 Viewer / Channel Viewer 將結果繪出。




  3. 按照步驟 2 對 Mixer 再做一次 Moving Average,產生名為 MA2 圖示,但改變其 AverageLength 為 0.2,並將結果用 Viewer 繪出。




  4. 比較步驟 1、2、3 的結果,可發現調高 Average Length 可明顯降低輸入訊號的雜訊,但是此濾波器之缺點為:原始方波訊號陡峭的邊界隨著 Average Length 提高而變的越來越平緩。

  5. 再對 Mixer 做 Moving Average,將 FilterType 修改為 HighPass,可看到結果等於輸入訊號減去 MA2 的輸出訊號。




相關指令(Related Functions)

Square WaveNoiseMixer

參考資料

http://www.dspguide.com/ch15.htm

3.2.4 Iterative Gaussian Filter*

*Only in Professional*

各種訊號大部分可視為一周期性訊號加上非週期性訊號。透過 Iterative Gaussian Filter(Smoothing) 得到其周期性部分或非周期性部分的訊號。

產生一個 Sine 波(Sine wave),經由 Fourier Transform 會產生如下圖所示的一個單一峰值的頻譜。由此可知 Sine 波的頻率為 3Hz。



但如下圖所示的訊號 (Sine + Exponential term);其頻率或週期為何?將此訊號透過 Fourier Transform 則得到如下圖所示的頻譜:訊號多分佈在低頻處,它掩蓋了 Sine 波的頻率特徵而不是我們希望得到的答案 (3Hz)。為解決此問題,我們可把此訊號拆成一個 Sine 波加上一個指數函數;換言之我們希望把一個訊號拆解成一個周期性訊號 (periodic signal) 加上一個非周期性訊號 (non-periodic signal)。如此對此訊號我們希望同時回答兩件事:(1) 訊號的周期性部分為何?或其頻譜為何?(2) 其趨勢(trend) 為何?



說明(Description)

但訊號也可能是因為量測時間不夠長 (小於一個周期),使得此訊號看起來含有非周期性訊號。那訊號的趨勢究竟為何?我們可以平均的概念描述之。對訊號 \(\{y_i\}\) 每一點而言,其高斯平均(Guassian Average):

\[y_i = \frac{1}{L} \displaystyle\sum_{i = -\infty}^\infty \mathrm{e}^{\frac{(t_i - t_j)^2}{2 \sigma^2}} \]

此數學式說明 \(\{\bar{y_i}\}\) 點的值乃由其鄰近的點的平均值來代表,離 \(j\) 點愈遠其權重愈小。 \(\{\bar{y_i}\}\)所組成的新訊號較\(\{y_i\}\)平滑,也就是其高頻部分 \(\{y_j^1\} = \{y_j - \bar{y_j}\}\) 被平滑化後消失了。再將 \(\{y_j^1\}\) 做高斯平均,疊代 (反覆此步骤) 若干次後得到的 \(\{y_j^m\}\),(\(m\) 為疊代次數) 的總和即為周期性訊號趨勢訊號。原訊號減去周期性訊號即為其較低頻的趨勢訊號。數學上可證明 Gaussian Filter 相當於如下圖的濾波器。


以趨勢訊號(Low-Pass Filter) 為例,會將小於\(F_L\)的部分完全通過,而濾除(絕大部分) 大於\(F_H\)而中間的部分則為高斯分佈。疊代次數 \(m\) 與參數\(\sigma\)可由\(F_L\)\(F_H\)以及 \(b\)(Attenuation Factor)求得。 \(b\) 為很小的值,較常用的值為 0.01 或 0.001,\(F_H/F_L\) 可選定為 2 至 10。

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel) 或多通道 (Multi-Channel),Regular 的訊號(Signal) 或聲音訊號 (Audio)輸入;輸出訊號格式與輸入訊號相同。各參數定義如下。


參數名稱 參數定義 預設值
Filter Type 此 Iterative Gaussian Filter 的濾波形式 LowPass
LowPass:低頻部分可通過,濾除高頻。
HighPass:低頻部分可通過,濾除高頻。
ByPass:無任何頻段訊號被濾除。
Attenuation 濾波中 Gaussian 曲線的參數值 0.01
FH 過濾頻段中的較高值。 10
NormalizedFH
FL 過濾頻段中的較低值。 2
NormalizedFL
Freq Unit
Default Unit
Iteration

範例(Example)

範例為將一個 \(\mathrm{e}^{at} + sin(\omega t)\) 形式的訊號(即如一開始圖型的訊號),以 Iterative Gaussian Filter 濾除掉 \(\mathrm{e}^{at}\) 部份。

  1. 建立一個 Sine Wave,設定時間長度為 10秒,頻率為 3 Hz;再建立一個 Custom Wave,在 Expression 內輸入 exp(t/3.2),同樣時間長度設為 10 秒。之後將此兩訊號以 Mixer 混合,並接上Channel Viewer 繪製圖形。



    (可將此訊號接上傅立葉轉換以觀察其特性)

  2. 之後由 Mixer 處,連結上 Iterative Gaussian Filter,並設定 Filter Type 為 HighPass、FH 為 0.5,FL 為 0.1 (因為已知 Sine 的頻率為 3Hz,是故只要設定 FH 為一低於3 Hz ,以讓 Sine Wave 通過)。



  3. 濾除後結果接上 Channel Viewer,可發現結果還算接近原本的 Sine Wave。而在訊號尾端,濾除結果與原本 Sine 訊號有差異,是濾除不夠乾淨,而需調整參數以獲得更佳結果。


    (細黑線:為原本的 Sine;粗紅線:為經濾波後還原的結果。)

  4. 可將 Iterative Gaussian Filter 裡的 FH 設為 2.5、FL 設為 0.01,再重新計算一次。在此可發現濾波效果更佳、更接近原本的 Sine。


相關指令(Related Functions)

Trend EstimatorCustomWaveFourier Transform

參考資料(Reference)

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

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

3.2.5 Trend Estimator*

*Only in Professional*

Trend Estimator 是 Iterative Gaussian Filter 的簡易參數版,詳細可參閱 Iterative Gaussian Filter。在對訊號特性掌握較不完全時,無需詳細設定,即可用 Trend Estimator 算出其趨勢。

說明(Description)

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

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel) 或多通道 (Multi-Channel),Regular 的訊號(Signal) 或聲音訊號(Audio) 輸入;輸出訊號格式與輸入訊號相同。各參數定義如下。


參數名稱 參數定義 預設值
Filter Type 與 Iterative Gaussian Filter 的相同。 LowPass
LowPass:(低通) 萃取出低頻部分。
HighPass:(高通) 萃取出高頻部分。
ByPass:無任何頻段訊號被濾除。
Trend Basis 以(Period) 周期為參考設定參數或(Frequency) 頻率為參考設定參數。 Frequency

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

參數名稱 參數定義 預設值
Trend Period 週期高於此值者,則視為趨勢訊號。與 Iterative Gaussian Filter 對應則為: 0
\(F_L = 2 / TrendPeriod\)
\(F_H = 4 / TrendPeriod\)
Time Unit 設定 TrendPeriod 的單位。 Default
Default Time Unit 輸入訊號的原始時間單位。 sec

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

參數名稱 參數定義 預設值
Trend Frequency 頻率低於此值者,則視為趨勢訊號。與 Iterative Gaussian Filter 對應則為: 0
\(F_L = 2 \times TrendFrequency\)
\(F_H = 4 \times TrendFrequency\)
Freq Unit 設定 TrendFrequency 的單位。 Default
Default Unit 輸入訊號經傅立葉轉換後的原始單位。 Hz

範例(Example)

  1. 先從 Yahoo Finance:Yahoo Finance Link下載一筆 2330.TW(台積電) 2005-01-01 到 2014-02-10 的開盤價,另存 CSV 檔案,由於星期六、日或假期沒有開盤,所以暫且不將日期資料加入,利用 Text Importer 開啟檔案,Data Range / Specify Time Column 為 Unchecked 和 Columns:2 to end,Date Axis / Auto 為 Unchecked,Time Coordinate / Time Unit 為 day 以及 Sampling Frequency 為 1,讓讀取進來訊號屬於 Regular,時間單位為day。最後連接至 Viewer / Channel Viewer 顯示。



  2. 將訊號源接上 Trend Estimator,其中參數皆為預設值,最後將結果接至同一個 Channel Viewer 顯示其結果,黑線為原始股價變化,藍線為股價趨勢。



  3. 最後要將日期資訊取代現有的時間軸,將 Regular 訊號轉成 Indexed 訊號,利用 Text Importer 再開啟 CSV 檔案,Data Range / Specify Time Column 為 Checked,和 Columns:2 to end,讀取進來訊號屬於 Indexed,時間單位為 day。

    最後將 Trend 運算結果連接 Conversion / Convert to Indexed,接下來將剛才讀取進來的 Source(2330.TW2) 也連接至 Convert to Indexed,最後將 Convert to Indexed 連至 Viewer / Channel Viewer 展示,可以看見有日期的資訊出現在 X 軸,並可以根據當時發生的事件去推斷股價趨勢變化。



    也利用 Trend Estimater 可以幫助找出地層下陷、大氣溫度、股票等訊號的長時間趨勢。

相關指令(Related Functions)

Iterative Gaussian Filter

參考資料(Reference)

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

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

3.2.6 Notch Filter

Notch Filter 為帶拒濾波器,也可稱為帶阻濾波器,目的在將某一特定頻率濾除。

說明(Description)

Notch Filter 的主要濾除某一特定頻率,若假設濾波器設計為濾除為 60 Hz 的訊號,其 Frequency Response Function 如下圖。


參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel) 或多通道 (Multi-Channel),Regular 的訊號(Signal) 或聲音訊號(Audio) 輸入;輸出訊號格式與輸入訊號相同。各參數定義如下:


參數名稱 參數定應 預設值
FilterType 為設定濾波器對訊號進行帶阻或帶通的過濾,選項為 BandStop、BandPass 及 ByPass。 BandStop
CenterFrequency 被濾除的中心頻率。 60
Freq Unit 設定 CenterFrequency 的頻率單位。 Default
Default Unit 輸入訊號經傅立葉轉換後的原始單位。 Hz
DecibelPoint 設定衰減點,設定的越小所產生帶拒越尖銳。 -3
BandWidth 設濾波器帶寬,定義為衰減點的帶寬,單位為(\(\pi \times 弧度 / 取樣頻率\))。 0.01
PhaseCorrection 開啟修正相位偏差功能,選 True 開啟此功能,選 False 則不啟用。 True

範例(Example)

  1. 建立一個 Source / Advanced / Impulse,設定 ImpulseShape 為 Square,而且 SingleImpulse 為 True,再接上 Compute / Transform / Fourier Transform,最後以 Channel Viewer 觀察頻率分佈。



  2. 在 Impulse Source 後面接上 Compute / Filter / Notch Filter,在 Notch 後面接上 Compute / Transform / Fourier Transform,最後以 Channel Viewer 觀察頻率分佈可以清楚看見濾除 60 Hz。



  3. 改變 Notch Filter 中 DecibelPoint 為 -10,以及 BandWidth 為 0.001,被濾除的頻率和範圍變得更尖銳。


相關指令(Related Functions)

Comb Filter

3.2.7 Comb Filter

Comb Filter 為梳型濾波器,目的在將某一系列等間距的頻率濾除或保留。

說明(Description)

Comb Filter 的頻率響應函數(Frequency Response Function) 如下圖。


本模組接受實數(Real Number),單通道(Single Channel) 或多通道 (Multi-Channel),Regular 的訊號(Signal) 或聲音訊號(Audio) 輸入;輸出訊號格式與輸入訊號相同。各參數定義如下。


參數名稱 參數定義 預設值
FilterType 濾波形態,包含 CombNotching、CombPeaking。 CombNotching
NotchNum 設定 0 至取樣頻率之間的帶拒數目,若濾波型態為 CombPeaking,實際帶拒數目 = 設定帶拒數目 - 1。 4
DecibelPoint 設定衰減點,設定的越小所產生帶拒越尖銳。 -3
BandWidth 設濾波器帶寬,定義為衰減點的帶寬,單位為(\(\pi \times 弧度 / 取樣頻率\))。 0.01
PhaseCorrection 開啟修正相位偏差功能,選 True 開啟此功能,選 False 則不啟用。 True

範例(Example)

  1. 建立一個 Source / Advanced / Impulse,設定 ImpulseShape 為 Square,而且 SingleImpulse 為 True,再接上 Compute / Transform / Fourier Transform,最後以 Channel Viewer 觀察頻率分佈。



  2. 在 Impulse 後面接上 Compute / Filter / Comb Filter,在 Comb 後面接上 Compute / Transform / Fourier Transform,FFT 的 Max 設定為訊號取樣頻率 1000,最後以 Channel Viewer 觀察頻率分佈可以發現頻率是呈現等間距濾除。


  3. 改變 Comb Filter 中 FilterType 為 CombPeaking,以及 NotchNum 為 11,濾波結果為保留一系列的頻率,其他則濾除。



相關指令(Related Functions)

Notch Filter

3.3 Mathematics

本模組群可對訊號之間或是對訊號的內容作數學計算,模組元件如下:

  1. RemoveDC:消除訊號之直流部份。

  2. Mixer:將輸入之多筆訊號依據相同之時間座標相加(減)。

  3. Multiplier:將輸入之多筆訊號依據相同之時間座標相乘。

  4. Math:可輸入數學方程式,計算輸入訊號。

  5. Diff:計算輸入訊號之微分近似值。

  6. Integrate:計算輸入訊號之累加式積分近似值。

  7. DoMatlab:可將輸入訊號連接至 Matlab,編譯並執行 Matlab 程式碼。

  8. RMS:代表一段時間內的方均根 (Root Mean Square),可代表振動能量的平均值。

  9. Normalize:將訊號正規化,即訊號除以正規化參數。

3.3.1 Remove DC

將訊號的直流部份消除,即消除訊號之平移值。

說明(Description)

訊號源為\(X = \{x_0, x_1, \dots, x_{N-1}\}\),訊號平均值為 \(\bar{x}\),而此平均值即為 DC,今將 \(Y = \{x_0-\bar{x}, x_1-\bar{x}, \dots, x_{N-1} - \bar{x}\}\),是 Remove DC。

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號 (Signal)、聲音訊號(Audio) 輸入。參數為 DC type,內有四個不同演算法計算訊號在 Y 軸方向,對 \(y = 0\) 的平移量,預設方式是 Mean,各計算方式的意義詳列如下表。


DC type 參數選項 選項定義
Mean 算數平均數。
DFTZerothTerm 將原資料做傅立葉變換後,定義 X 軸為零,該點之數值為 \[DC = \frac{a_0}{2} = \int_{-\infty}^\infty f(x)\mathrm{e}^{-i \omega t} dt, \omega = 0\]
TrapezoidIntegration 以較精確的積分矩型法計算後,再除以總點數為 DC。
UserSetting 使用者自行輸入欲上下平移的數值,可以 由此功能設定上下平移量。
User DC Value 輸入平移量。

範例(Example)

建立一個 Y 軸平移過的正弦波訊號,並用 RemoveDC 消除平移 。

  1. 以 Source / Sine Wave 建立正弦波,調整 Properties / Source / AmplitudeOffset 為 1.2,可將訊號對 Y 軸往正方向平移 1.2,再以 Viewer / Channel Viewer 觀察。




  2. 將原本訊號 Sine 接上 Compute / Math / RemoveDC,並設定 DCType 下的方法為 Mean,再將結果以 Viewer / Channel Viewer 顯示結果,可發現平移量被消除了。




  3. 可嘗試調整不同之 DC Type,如 DFTZerothTerm,但對此範例來說並不影響結果。


  4. 可將訊號接上 Compute / Transform / Fourier Transform 做傅立葉轉換。關掉 FourierTransform 下的 Remove DC,可發現在時間原點的值確實為 1.2 之 2 倍。




注意:欲做時間橫向的平移量請參考 Time Shift 模組。

相關指令(Related Functions)

Fourier TransformTime Shift

3.3.2 Mixer

將多筆資料混成為一筆訊號。

說明(Description)

\(N\) 組訊號源 \(x_{t_i}^{(n)}\),其中每組訊號的時間軸 \(t_i\) 、取樣頻率不一樣,混合後之訊號 \(Z_{t_i}\)

\[Z_{t_i} = a \cdot x_{t_i}^{(1)} + b \cdot x_{t_i}^{(2)} + c \cdot \sum_{k = 3}^N x_{t_i}^{(k)}\]

,其中 \(a\)\(b\)\(c\) 為增益數。

由於本模組假設輸入訊號的時間軸並不一致,因此會先行偵測輸入訊號中最小的取樣頻率 \(Freq_{min}\),其它訊號再依照 \(Freq_{min}\) 重新取樣,統一所有輸入訊號的時間軸後 再做疊加。需注意,本模組將第三筆後的混合增益數皆視為 \(c\)

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號 (Signal) 、聲音訊號(Audio) 輸入,並接受多個訊號輸入。

參數 Gain1、Gain2、GainN 分別為第一、第二及第三筆之後輸入訊號的增益數。此模組與 Math 的差異在於,Mixer 可較快速的處理加減運算,而且可對於訊號長度不同的訊號做加 減運算,這一點是 Math 沒有支援。


參數名稱 參數定應 預設值
Gain1 設定第一筆資料的增益數。 1
Gain2 設定第二筆資料的增益數。 1
GainN 設定第三筆以後資料的增益數。 1

範例(Example)

將時間軸相異的正弦波與方波混合為同一筆資料。

  1. 以 Source / Sine Wave 產生一訊號頻率(SignalFreq) 為 5 Hz、取樣頻率(SamplingFreq)為 1000 Hz、時間長度(TimeLength) 為 1.5 秒的正弦波;另外再產生一訊號頻率(SignalFreq) 為 10 Hz、取樣頻率(SamplingFreq)為 300 Hz、時間長度(TimeLength) 為 1.3 秒,時間起始點(TimeStart) 為 0.333 秒的方波。然後以 Viewer / Channel Viewer 先觀察波形。


    Sine 的參數設定內容 Properties 如下圖所示。


    Square 的參數設定內容 Properties, 如下圖所示。



    設定 Channel Viewer 的 Properties / Plot Elem Editor,將 Sine 的線條加上符號 ‘o’,Square 線條加上符號 ‘x’,並使用 Zoom X 工具放大兩訊號時間重疊處,可以看到訊號資料點在 X 軸方向上的分佈完全不同。Plot Elem Editor 的設定如下。


    將 Channel Viewer 的結果放大如下。


  2. 將此兩訊號相加輸出成一個新的訊號。以 Compute / Math / Mixer 混合,如下圖 Network 所示,Mixer 的第一個 Input 為 Sine,對應 Mixer 的參數 Gain1,第二個 Input 為 Square,對應參數 Gain2,參數預設值皆為 1。再來以 Viewer / Channel Viewer 繪出 Mixer 之波形,其結果如下。




  3. 現在用 Data Viewer 檢視 Mixer 輸出訊號的取樣頻率與訊號時間,Mixer 輸出訊號的取樣頻率(Sampling Frequency) 為 300 Hz,訊號時間由 0 秒開始到 1.63333 秒結束。Mixer 的計算方法就是以合併輸入訊號的時間軸作為時間總長度,取樣頻率採取輸入訊號中的最小值,將各輸入訊號乘以對應的加權數累加。因此在使用 Mixer 時對於輸入訊號與輸出訊號的取樣頻率需加以留意。


  4. 注意三筆以上資料依然可以混合,但第三筆以後的加權數皆設定為 GainN,故單一 Mixer 不建議連結三筆以上的資料。建議使用多層 Mixer 以實現三筆以上資料相加,下圖就是利用這個方式累加多筆訊號。


相關指令(Related Functions)

Channel SwitchMultiplierSine WaveSquare Wave

3.3.3 Multiplier

將多筆輸入訊號相乘。

說明(Description)

以數學來表示,有 \(N\) 組訊號源 \(x_{t_i}^{(n)}\),其中每組訊號的時間軸 \(t_i\) 、取樣頻率不需要一樣,混合後之訊號 \(Z_{t_i}\)

\[Z_{t_i} = x_{t_i}^{(1)} \cdot x_{t_i}^{(2)} \cdot \dots \cdot x_{t_i}^{(N)}\]

由於本模組假設輸入訊號的時間軸並不一致,因此會先行偵測輸入訊號中最小的取樣頻率 \(Freq_{min}\),其它訊號再依照 \(Freq_{min}\) 重新取樣,統一所有輸入訊號的時間軸後再做相乘。

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號 (Signal) 與聲音訊號(Audio) 與輸入,並接受多個訊號輸入。本模組無須設定參數,並可對訊號長度、取樣頻率不同的訊號源進行相乘的運算。

範例(Example)

將正弦波與三角波相乘。

  1. 以 Source / Sine Wave、Triangle Wave 建立正弦波與三角波,三角波的 Properties / SignalFreq 調整為 5 Hz,以 Viewer / Channel Viewer 觀察其原本波形。




    將此兩訊號以 Compute / Math / Multiplier 相乘,輸出波形如下圖所示。



  2. 如同 Mixer,Multiplier 允許兩訊號的取樣頻率與時間長度(TimeLength) 不相同,輸出訊號之取樣頻率為輸入訊號最小的取樣頻率,僅在輸入訊號時間軸交集的部份相乘,沒交集的訊號則維持原貌。調整三角波的 SignalFreq 為 100 Hz,TimeLength 為 2,則運算結果的 Signal Frequency 將會等於 100 Hz,Time Length 為等於 2 秒。



相關指令(Related Functions)

Channel SwitchMixer

3.3.4 Math

將輸入之訊號做點對點的數學運算。

說明(Description)

本模組接受實數(Real Number)、複數(Complex Number),單通道(Single Channel)、多通道(Multi-Channel),Regular 的訊號(Signal)與聲音訊號 (Audio) 輸入。

操作方法為點選 Properties / Expressions 欄位右方的按鈕,即會跳出 Multi-Channel Expression Editor,視窗介面如下圖所示。



此視窗分作三大部份:輸入訊號清單(Input List)、工具列以及輸出通道欄 (Output Channel)。運作流程如下:由輸入訊號清單中選擇訊號,於工具列中的 Expression 欄輸入數學運算式;完成後將算式新增到輸出欄作為輸出訊號其中一個通道。以下就說明各功能。

  1. 輸入訊號清單:

    輸入訊號清單(Input List) 顯示連接到 Math 元件的輸入訊號。 輸入訊號預設為多通道訊號,並以樹狀圖方式列出輸入訊號內個通道 (如下圖所示),第一筆輸入訊號在工作列 Expression 中以代號 X1 表示,第二筆訊號以 X2 表示,以下類推,代號後方接中括號, 裡面的數字代表該通道編號,例如 X1[1] 代表第一筆輸入訊號的第一個通道資料, 另外 X1[1] 也可以直接用 X 表示。


    1. 操作上,雙擊樹狀圖的單筆訊號可將該訊號新增於 Expression 欄中。

    2. 倘若僅單純將選取之輸入訊號作為輸出值而不作計算, 則可利用鍵將該通道訊號傳至輸出訊號清單。

    3. 於樹狀圖上用 checkbox 選擇多個訊號進行多樣化運算; 另外也允許直接在 Expression 欄中鍵入訊號代號及運算符號 (例如 +、-、……..、sin、log 等)。

  2. 工具列


    上圖為 MultiChannel Expression Editor 的工具列,Expression 欄位是編輯數學算式的地方。

    可清空輸出訊號清單(Output Channel) 內的所有訊號。

    可將 Expression 欄位的數學算式加入輸出訊號清單 (Output Channel);另外

    將選擇輸出訊號清單中某個通道內的數學算式,替換為 Expression 中的數學算式。

    工具列上其它功用與意義整理如下表。

    基本運算工具 功能說明
    + 於 Expression 欄中新增加號,等於直接在欄位裡輸入 " + “。
    - 於 Expression 欄中新增減號,等於直接在欄位裡輸入 " - “。
    * 於 Expression 欄中新增乘號,等於直接在欄位裡輸入 " * “。
    / 於 Expression 欄中新增除號,等於直接在欄位裡輸入 " / “。
    特殊運算工具 功能說明
    此功能可轉換集體運算型式,集體運算型式又分為 By Channel 與 By Input, 內容分述如下。
    By Channel 代表對多重選取的多個通道(Channel)作通道對通道 (Channel by Channel) 的運算,計算結果為單通道訊號,例如 Y[1] = X1[1] + X1[2] + X2[1] + X2[2]
    By Input 對多重選取的多個輸入訊號作訊號對訊號(Input by Input) 的運算,計算結果為多通道訊號,例如 Y[1] = X1[1] + X2[1], Y[2] = X1[2] + X2[2]
    \(\pi\) 等於在 Expression 欄中新增圓周率 \(\pi\)
    \(t\) 等於在 Expression 欄中新增時間軸的向量 \(t\), 為所選取的輸入訊號所對應的時間軸向量。

    這兩個工具為一組,下拉式選單是內建函式的清單,選定函式後, 按 fn 即可於 Expression 欄新增該函式, 等於在 Expression 欄中直接鍵入函式(例如 sin(X1[1])abs(X1[1]))。

    常用內建函式清單內容與說明如下表。

    函式 函式說明 函式 函式說明
    abs 取絕對值。 ceiling 小數點以下無條件進位。
    floor 無條件捨去小數點以下。 round 小數點以下四捨五入。
    sin 作正弦運算。 asin 作逆正弦運算。
    cos 作餘弦運算。 acos 作逆餘弦運算。
    tan 作正切運算。 atan 作逆正切運算。
    sinh 作 hyperbolic sine (雙曲正弦)。 cosh 作 hyperbolic cosine(雙曲餘弦)。
    tanh 作hyperbolic tan(雙曲正切)。 exp exp(x)等於\(e^x\)
    log 作自然對數。 log10 作 10 為底的對數。
    pow pow(x,a)等於\(x^a\) sqrt sqrt(x)等於\(\sqrt{x}\)
    square \(x^2\) sign 數值大於 0 取 1, 小於 0 取 -1。
    truncate 小數點以下,往 0 的方向四捨五入,若 \(x < 0\), 則 truncate(x) 等於 ceiling(x), 若 \(x > 0\),則 truncate(x) 為等於 floor(x) conj 輸入為複數訊號,則將取其共軛。

    另外提供了 大於 “>” 、小於 “<” 、 大於等於 “>=”、小於等於 “<=”、 等於 " == " 、不等於 " != “,當滿足條件將回傳 1,若不滿足條件則回傳 0。下面範例將會提供如何使用以上功能。

  3. 輸出訊號清單:

    輸出訊號清單(Output Channels)顯示目前輸出的各通道及其計算的數學式(Expression)。 在輸出欄中通道的順序即為輸出訊號的通道編號順序。利用清單右方的按鈕可編輯輸出訊號之通道, 可調整通道前後順序, 利用則可刪除該通道。

    我們也可以直接於輸出欄中編輯通道名稱與修改數學式。滑鼠雙擊欲修改名稱的通道欄位, 即可編輯該通道的名稱;若要改變數學式,先點選要變更通道的 Expression, 再以滑鼠左鍵點擊一次(動作上序似雙擊,但速度較慢),就可直接修改 output channels 的 Expression。

範例(Example)

下面將示範各種運算的方法及功能之使用:

  1. 首先以 Source / Triangle Wave 產生一個三角波,再以 Compute / HHT / AnCAD : EMD 運算,目的是產生一組 Multi-Channel 訊號,以 Viewer / Channel Viewer 繪出,改變 Channel Viewer 的 Properties/Multi-Channel Display 為 List,便能將各通道的訊號分開顯示。



  2. 仿照步驟1,不過將三角波換成方波(Square Wave)。



  3. 將 AnCAD : EMD 與 AnCAD : EMD2 連至Compute / Mathematics / Math,再點選 Properties / Expression Editor 叫出操作介面,於輸入清單點擊Input 前的 + 號打開 Input 樹狀圖。



  4. 若要將 X1 的 CH2 加上 X2 的 CH4,先選取 CH2 與 CH4,再點選基本運算工具 " + “,即可將運算式新增於 Expression 欄,也可直接輸入 X1[2]+ X2[4]


  5. 按下鍵即可將 Expression 內的算式傳至輸出欄(Output Channels)。


  6. 下一步,將 X1 的 CH9 乘以相對應的時間 t,再加上X2 之CH1。點擊 X1下面 CH9 兩下,可直接新增 CH9 於 Expression欄,再選擇基本運算工具內的運算元完成算式,或直接輸入 X1[9]*t + X2[1]


  7. 若想對 X1[9]*t 取絕對值,可以直接改變 Expression 為 abs(X1[9]*t)+ X2[1],或者以游標選擇 X1[9]*t 區域,再選取內建函式清單中之 abs,再按下 fn 即可將選取範圍內的算式包入 abs() 中計算,所有的內建函式均可藉上述方法完成。最後須記得點擊鍵將 Epression 欄內的算式傳至輸出訊號清單。



  8. 如果要對兩個以上的輸入訊號作 CH1+CH1、CH2+CH2…之類的計算, 則可以利用特殊運算工具的 By Input 選項,由於是 By Input, 所以選擇的單位是最上層的輸入訊號,選後該訊號下所有的通道會自動被勾選。 以本例而言,選取輸入清單中 X1 與 X2,選擇 By input, 再點擊基本運算工具中的 \(+\) 號,就將運算式新增至 Expression 欄中。


    最後記得點擊鍵將 Expression 欄內的算式傳至輸出訊號清單。


    看輸出訊號清單的部份,除先前的兩運算式之外,又新增了 8 個 channel 的計算,由於 X1 有 10 個 channel, X2 有 8 個 channel,故 Math 會選擇 channel 數少的為基準,應用至 CH1 ~ CH8。


  9. 在輸出欄右方的三個按鈕,可針對輸出內的單一通道作上、下移動,以及刪除單一通道的運算式。確定 Output channels 內容後,按 Done 或 Apply 即可完成。回到 Network,用 Channel Viewer 繪出結果。


  10. 將輸出訊號設為 X 與 X1,按下 Apply 後以 Channel Viewer 繪出,可看到兩者一模一樣,這是因為預設變數 X = X1[1]



  11. 另外 Expression 也可進行大於、小於、等於、不等於運算,首先在 Network 下產生 Noise 元件,NoiseType 調整為Brown,利用 Viewer / Channel Viewer 顯示其結果。


  12. 將 Noise 元件連接 Compute / Mathematics / Math,Math 元件最後以 Channel Viewer 顯示結果。


    要將原本 Noise 中,只要振幅介於 0 至 10 的訊號以 Sine 取代 ,其中在 Expression 的方程式內容為:


  13. 將 Math 元件連接至於 Noise 連接的 Channel Viewer,在同一個 Vewer 下比較結果。


相關指令

ViewerMixerMultiplierSource

3.3.5 Diff

可對輸入訊號做前後兩元素相減或對訊號微分。

說明(Description)

\(X = \{x_0, x_1, \dots, x_{N-1}\}\) 代表長度 \(N\) 之訊號,則:

Forward difference:(Simple)

\[\Delta x_i = x_{i+1} - x_i,\]

若再除以取樣週期 \(h\),則得到微分近似值:

\[\frac{\Delta x_i}{h} = \frac{x_{i+1}-x_i}{h} \cong \frac{dx_i}{dt}。\]

Central difference:(Symmetrized)

\[\Delta x_i = \frac{x_{i+1}-x_{i-1}}{2},\]

若再除以取樣週期 \(h\),則得到微分近似值:

\[\frac{\Delta x_i}{h} = \frac{x_{i+1}-x_{i-1}}{2h} \cong \frac{dx_i}{dt}。\]

Smooth-noise Robust difference:(Robust)

\[\Delta x_i = \sum_{k=1}^M c_k (x_{i+k}-x_{i-k}),\]  where \(c_k = \frac{1}{2^{2m+1}} \left[ \left(\begin{array}{c}2m \\ m-k+1\end{array}\right) - \left(\begin{array}{c}2m \\ m-k-1\end{array}\right)\right], m = \frac{N-2}{2}, M = \frac{N-1}{2},\)

若再除以取樣週期 \(h\),則得到微分近似值:

\[\frac{\Delta x_i}{h} = \frac{1}{h} \sum_{k=1}^M c_k(x_{i+k}-x{i-k}) \cong \frac{dx_i}{dt},\]

其中 \(N\) 為數值微分的取樣點數,表示共由多少離散函數點來決定此點的微分值, \(N\) 值越大越能準確地估計出微分值。詳細推導請見參考資料1。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number),單通道(Single Channel)或多通道(Multi-Channel),Regular 的訊號(Signal)與聲音訊號 (Audio) 輸入。

提供之選項包括微分與否,而提供之微分選項有 Simple、 Symmetrized 與 Robust。相關參數定義如下。

參數名稱 參數定義 預設值
Method 微分方法有 Simple、Symmetrized 、Robust 三種。Simple 為 forward difference,Symmetrized 為 central difference,Robust 為 Smooth-noise Robust difference。 Simple
Differentiate 將結果除以取樣週期 \(h\),得到微分的近似值。 False
Zero Padding 可以將計算後訊號多補一個零,保持於輸入訊號長度相同,選項包含 None(不補零)、First(第一位補零)、Last(最後一位補零)。 None

當 Method 選擇 Robust 時,Zero Padding 選項會關閉,出現的是另一個選項 FilterLength,說明如下:

選項名稱 選項定義
FilterLength 濾波器長度為數值微分的取樣點數,表示由多少離散函數點來決定此點的微分值;需介於 5~999 之間,並小於訊號長度的奇數。

範例(Example)

示範對 Sine Wave 作微分:

  1. 於 Network 視窗下按右鍵,選擇 Source / Sine Wave 產生一個正弦波,並用 Viewer / Channel Viewer 顯示於視窗。



  2. 另點選 Sine 圖示後,按右鍵選擇 Compute / Math / Diff,再用 Viewer / Channel Viewer 繪製計算結果,圖示如右下圖。結果呈現正弦波經 Diff 後變為餘弦波的訊號,但由於參數 Differentiate 預設為 False,所以振幅很小。



  3. 調整 Diff 的 Properties / Differentiate 為 True,即可得到微分近似值,以此例來說:Source / Sine Wave 的訊號為 \(\sin{(2\pi ft)}\),其中 \(f\) 是訊號頻率, \(t\) 是訊號時間,正弦波微分的值應為 \(2\pi f \cdot \cos{(2\pi ft)}\)。回到本範例 \(f\) 是 10,\(2\pi \approx 6.28\),所以振幅最大值應為 \(2\pi f \approx 62.83\),經比對下圖結果,驗證結果無誤。


相關指令(Related Functions)

Integrate

參考資料(Reference)

  1. http://www.holoborodko.com/pavel/numerical-methods/numerical-derivative/smooth-low-noise-differentiators/

3.3.6 Integrate

對訊號做累積數值積分。

說明(Description)

\(X = \{x_0, x_1, \dots, x_{N-1}\}\) 代表長度為 \(N\) 的訊號,\(T = \{t_0, t_1, \dots, t_{N-1}\}\) 是對應的 X 軸(時間) 座標,以長方形法(Simple) 作數值積分可由下式表示:

\[y_i = \int_{t_0}^{t_i} x dt = \sum_{k=0}^i x_k (t_{k+1} - t_k)\]

若以梯形法(Trapezoidal) 計算積分,計算方法等同於 Matlab 中的 “cumtrapz”, 計算式為:

\[y_i = \int_{t_0}^{t_i} x dt = \sum_{k=0}^i \frac{1}{2}(x_{k+1} + x_k)(t_{k+1} - t_k)\]

若以辛普森法(Simpson’s Rule) 計算積分,計算式為:

\[y_i = \int_{t_0}^{t_i} x dt = \sum_{k=0}^i \frac{t_{k+2} - t_k}{6} \left[x_k + 4x_{k+1} + x_{k+2}\right]\]

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number),單通道(Single Channel) 或多通道(Multi-Channel),Regular 或Indexed 的訊號 (Signal)、聲音訊號(Audio)與數值資料(Numeric) 輸入。相關參數說明如下表。


參數名稱 參數定義 預設值
Method 數值積分的方法,可選擇 Simple(長方形法)、Trapezoidal(梯形法)與 Simpson(辛普森法)。 Trapezoidal
StartPosition 設定橫軸上的積分起始值。 輸入訊號的起始值
EndPosition 設定橫軸上的積分終點值。 輸入訊號的終點值
Const 設定積分後縱軸方向的平移量。 0

範例(Example)

對正弦波進行積分:

  1. 於 Network 視窗下按右鍵,選擇 Source / Sine Wave 創造一個正弦波,改變其 Properties / SignalFreq 為 1 Hz,SamplingFreq 為 20 Hz,TimeLength 設定為 1 秒,再用 Viewer / Channel Viewer 顯示於視窗,圖示如左下圖。



  2. 為了使每個點的位置看的更清楚,點選 Viewer[1] 元件下的 Properties / Representation / PlotElemEditor 的 PlotEditor,會跳出 Plot Element Setting 視窗,選擇 Marker Style 為 ‘+’,在訊號線上每個時間點就會畫出「+」號。




  3. 對正弦波作 Compute / Math / Integrate 數值積分,再如步驟 1、2 改變 Marker Style 為「x」,繪出的圖就是積分後的結果。



  4. 調整 Int 的 Properties / StartPosition 為 0.3,計算結果改變如下圖所示,再使用 DataViewer 看 Int 輸出的訊號資訊,可發現 DataCount 由原本的 21 變為 15,因此須注意改變 Integrate 的參數 StartPosition 與EndPosition 會影響輸出的訊號長度。




相關指令(Related Functions)

DiffSine WaveChannel Viewer

3.3.7 DoMatlab

透過 DoMatlab 可將 Visual Signal 元件的資料輸入至 MATLAB Engine,再執行 MATLAB 語法運算,運算之後再傳回 Visual Signal 顯示結果,等同於讓使用者創造出擁有獨特演算法的模組。

參數設定(Properties)

DoMatlab 接受 Visual Signal 所有元件的輸出格式。元件一但連接 DoMatlab,程式會自動執行 MATLAB Command Window 視窗,Command Window 具有基本的 MATLAB 功能譬如 Workspace Browser、Path Browser 等,操作上使用者必須參閱 MATLAB 說明文件。


須注意執行 DoMatlab 前,系統必須已安裝 The MathWorks, Inc 所出品的 MATLAB Version 6.5 以上的版本 ,若系統已安裝 MATLAB,但仍無法執行 DoMatlab,原因可能有四種。注意以下解決方案在設定完之後須重新開啟 Visual Signal 才會生效。

  1. 可能為 MATLAB 在安裝時沒有被註冊為 COM Server。解決方法是進入 Windows 的 [執行],鍵入 cmd,然後在命令提示字元(DOS) 視窗下鍵入 matlab /regserver,問題應能解決。


  2. 可能是在 Window 環境變數定義的設定。不同 Windows 版本的方法如下:

    在 Windows 7 下,請於 [開始] 找到 [控制台],如圖進入 [系統及安全性] 中的 [系統]。接著在左欄中點選 [進階設定],並於跳出的視窗中找到 [進階] 的分頁。分頁下即有環境參數的按鍵可點選進入。

    進入後,新增一使用者變數,變數名稱為:matlab;變數值為 MATLAB 程式安裝之路徑。以 MATLAB R2011a 版本於 64 bit 環境下之預設目錄為例,輸入之路徑為 C:\Program Files\MATLAB\R2011a\bin\win64 ,再按確定即可。

    注意以上變數值應該隨使用者的安裝位置而修改,一般而言都在 C:\Program Files 下面,而 32 bit 環境與 64 bit 環境之路徑也會不相同。


    在 Windows Vista 下按一下 [開始],在 [開始搜尋] 方塊中輸入 [帳戶],然後按一下 [程式集] 下的 [使用者帳號]。如果提示您的系統管理員密碼或確認訊息,請輸入您的密碼,或按一下 [允許];然後在 [使用者帳戶] 對話方塊中,按一下在 [工作] 下 [變更我的環境變數]。


    選擇 [新增],在環境變數名稱欄位輸入 “Matlab”,在變數值欄位輸入程式路徑,以 32 bit 環境下的 MATLAB 7.1 版為例,輸入 C:\Program Files\MATLAB71\bin\win32, 點選確定即可。

    注意以上變數值應該隨使用者的安裝位置而修改,一般而言都在 C:\Program Files 下面,而 32 bit 環境與 64 bit 環境之路徑也會不相同。另外請注意不同版本的Matlab預設安裝資料夾格式也不盡相同。


  3. 在環境變數中的使用者變數,選擇 [新增],並且輸入變數名稱 MATLAB_RESERVE_LO,變數值為 “0”,如下圖顯示。


  4. 在系統變數中的 Path,選擇 [編輯],並且在變數值中加入 C:\Program Files\MATLAB\R2011a\bin\win64,上述變數值是以 MATLAB 2011a 版本為例,如下圖顯示。

    建議將新加入的變數值放置第一個,確保路徑可被讀取。


DoMatlab 的 Properties 的參數如下圖所示,各參數意義整理如下表。


參數名稱 參數定義 預設值
MatlabEditor 此視窗類似於 M File Editor,在欄位右方有按鈕可以呼叫 DoMatlab Editor,撰寫 MATLAB 語法或呼叫 MATLAB Function。
Column-Vectors 訊號傳入 MATLAB 時,資料排列格式是否為 Column-wise。 True
ServerVisible 是否需顯示 MATLAB Command Window True
DumpOutput 回傳 MATLAB 產生的訊息出來。 False
BufferLength 當 DumpOutput 為 True,會新增此參數,設定回傳訊息字元個數的最大值。 5000
ViewBuffer 當 DumpOutput 為 True,會新增此參數,跳出 MATLAB Script Output Dump 視窗列出 MATLAB 產生的訊息。
ReferenceInput 若有多個輸入訊號,此參數決定輸出變數之預設時間軸是要參考那一個輸入訊號。 第一個輸入訊號
AsSource 設定 DoMatlab 是否要轉變為一個訊號源,由 DoMatlab 產生訊號資料。 False

DoMatlab Editor 是 DoMatlab 的程式碼編輯器,下面將詳細說明 DoMatlab 的輸入、輸出等基本設定。

DoMatlab Editor 介面說明


上圖為 DoMatlab Editor 的外觀,工具列上的按鈕功能分別依下表。

圖形 參數說明
開啟已儲存的 M file,可以引入 DoMatlab Editor。
將 DoMatlab Editor 之內容儲存為 M File。
清除編輯區(Script) 的文字。
執行 Script。

Script 分頁是使用者撰寫 MATLAB 程式的工作區(如上圖),預設的指令是 Y=X1;。Help & Examples 分頁(見下圖) 則詳細地介紹 DoMatlab 對於輸入、輸出格式的規則,與簡單的範例,以方便使用者查詢。


輸入訊號之變數儲存格式

DoMatlab 允許輸入多個訊號源,依照輸入順序,訊號將依序被定義為 X1X2Xn,然後每個訊號到 DoMatlab,DoMatlab 會新增五個變數 XXnXn_DATAXn_DESCXn_Freq,DoMatlab 的輸出訊號僅允許一個輸出訊號,定義為變數 Y。下面說明各變數的意義。

X:為方便使用者操作的預設變數,定義為第一個輸入訊號內的第一個通道 (1st Channel) 值,即 X = X1_DATA{1}

Xn_DATA:定義為第 \(n\) 個輸入訊號之完整的輸入訊號值,因訊號可為多通道訊號 (Multi-Channel),所以使用 cell array 的格式儲存,不同通道的訊號資料依序存在不同的 cell 內。

Xn:定義為第 n 個輸入訊號之第一個通道的訊號值,即 Xn = Xn_DATA{1},資料以 double array 儲存。

輸入訊號類別可分為三大類,分別為訊號(Signal) (包含時間序列與頻譜分析結果)、時頻分析結果(Spectra) 以及數值資料 (Numeric),如 Basic Statistics 模組的計算結果。下表說明這三大類輸入訊號是如何被存為變數 Xn_DATA

資料類型 內容格式說明
訊號(Signal) 如果 Column-Vectors 為預設 True,則訊號為 \(m \times 1\) 的 double array 或 Complex double array ,其中 \(m\) 為資料長度,若 Column-Vectors 為 False 則相反。
時頻分析(Spectra) 如果 Column-Vectors 為預設 True,則訊號為 \(m \times n\) 的 Complex double array,其中 \(m\) 為時域的離散長度,\(n\) 為頻率域的離散長度,每元素即對應到該位置的時間與頻率,若 Column-Vectors 為 False 則相反。需注意時頻分析 (Spectra) 資料僅支援單通道。
數值資料(Numeric) 如果 Column-Vectors 為預設 True,則為 \(m \times 1\) 的 double array 或 Complex double array,若 Column-Vectors 為 False 則相反。

Xn_DESC 以 structure array 儲存訊號的各項資訊,資訊存於不同欄位 (field),各欄位名稱、MATLAB 格式與其意義整理如下表。

欄位名稱 說明 格式
name 顯示輸入訊號名稱。 Char [1 * length]
type 顯示訊號類型,目前有 SignalNumericSpectra 三種類型。 Char [1 * length]
channelcount 輸入訊號的 channel 數量 Integer
channelnames Channel 名稱,如 CH1。 Char array [nch * max(length)]
lengths Channel 中的資料長度。 Integer array [ndim * 1]
starts 訊號起始的時間點,對 Numeric 來說此欄無意義。 Double array [ndim * 1]
intervals 訊號的取樣週期,對 Numeric 來說此欄無意義。 Double array [ndim *1]
units 訊號 X 軸的單位可能為時間或頻率單位。 Char array [ndim * max(length)]
formats 訊號時間軸的格式,目前有 RegularIndexed Char array [ndim * max(length)]
coords   輸入訊號 X 軸的座標值,對時列訊號(Signal)與時頻(Spectra)來說是時間, 對頻譜訊號(Signal) 來說是頻率。 Double array [ndim * max(length)]

註:Char 為字串,Length 為字元或數值長度,ndim 是矩陣維度(若訊號為 Numeric),nch 是通道數量,max 為最大值。

Xn_FREQ 儲存輸入訊號的取樣頻率。若資料與取樣相關 (如 SignalSpectra),取樣頻率會儲存至 Xn_FREQ,若資料無關取樣 (如數值 Numeric),則 Xn_FREQ 會儲存 1。

輸出訊號之變數儲存格式

變數 Y 是 DoMatlab 的輸出變數,訊號格式儲存在變數 Y_DESC,內容與輸入訊號的 Xn_DESC 相同。Y_DESC 預設值與 DoMatlab 的 Properties / ReferenceInput 設定的輸入訊號格式相同,使用者也可自行修改 Y_DESC 內容,DoMatlab 最後會依據 Y_DESC 的設定決定輸出訊號為何種訊號。 下表整理 Y_DESC 每個欄位的意義、預設值與必要性。

欄位名稱 說明 必要性 預設值
name 顯示輸入訊號名稱。 Optional DoMatlab
type 顯示訊號類型,目前有 SignalNumericSpectra Optional Signal
channelnames Channel 名稱,如 CH1。 Optional
starts 訊號起始的時間點,對 Numeric 來說此欄無意義。 Optional 0
intervals 訊號的取樣週期,對 Numeric 來說此欄無意義。 Required
units 訊號的單位可能為時間或頻率單位。 Optional sec
formats 訊號時間軸的格式,目前有RegularIndexed Optional Regular
coords 輸入訊號 X 軸的值,對時列訊號(Signal)與時頻(Spectra)來說是時間, 對頻譜訊號(Signal)來說是頻率。 Required (若 formatsIndexed

範例(Example)

以下三個例子示範 DoMatlab 的操作。

DoMatlab 基本變數結構

  1. 先以 Source / Sine Wave 與 Square Wave 產生兩組訊號,其中 Square Wave 後連接 Compute / HHT / AnCAD EMD 產生一組多通道(Multi-Channel) 訊號,Sine 與 AnCAD:EMD 都連接至 DoMatlab。


  2. 產生 DoMatlab 元件後會自動跳出 MATLAB Command Window,先在 MATLAB Command Window 中鍵入 whos 查看目前 MATLAB 的變數有那些。


    因有兩筆輸入訊號,因此 DoMatlab 定義了 X1X2 兩組變數群,X1 為 Single Channel 的 Sine Wave,X2 為 Multi-Channel 的 AnCAD:EMD 訊號,而預設變數 X 則為第一個輸入訊號的第一個通道值,我們可以在 DoMatlab Editor 中以 plot 繪出 XX1


    鍵入指令後,直接按下或者關閉此 Editor,便會開始執行 DoMatlab,圖形如下,兩組訊號完全重合。


    但由於還沒有定義輸出訊號 Y,程式會跳出錯誤訊息提醒使用者輸出訊號尚未定義。


  3. 若需要查詢輸入訊號之基本資料。譬如在 Command Window 中鍵入 X2_DESC,按下 Enter,就能得到輸入訊號 X2 的資料。


  4. 步驟 3 的查詢也可利用 DoMatlab 的參數 DumpOutput 達成。先將 DoMatlab Editor 之內容改為 X2_DESC,並保留 Y = X1; 以定義輸出訊號 (如下圖)。


    關閉 Editor 並將 Properties / DumpOutput 調為 True,調整 DumpOutput 之後 DoMatlab 會把 Command Window 所出現的訊息記錄下來。


    Properties / ViewBuffer 可觀看 DumpOutput 的記錄,這樣在執行 DoMatlab 時若出現錯誤 ,仍然能得到 Matlab 產生的錯誤訊息。


  5. 這裡將示範參數 ReferenceInput 的意義。回到 Visual Signal 的 Network 視窗,點選 Sine,將 Properties / Time Unit 設為 min (分鐘),SamplingFreq 調為 300 Hz,TimeStart調為 0.5。


    然後再開啟 DoMatlab Editor,鍵入 Y_DESC,關閉 Editor 之後用 ViewBuffer 看 MATLAB 輸出的訊息。


    發現雖然在 DoMatlab Editor 中並沒有設定輸出訊號,即變數 Y,但是 Y_DESC 的部份內容已經依照參數 ReferenceInput 作了設定,如下圖 Y_DESC.startsY_DESC.intervalsY_DESC.unitsY_DESC.coords 都跟 ReferenceInput(Sine) 相同。


注意 DoMatlab 的參數 ReferenceInput 與其它元件 (Merge to Multi-Channel、Merge to Complex、Math) 的 ReferenceInput 在運作上略有不同,此參數在 DoMatlab 是作為預設輸出訊號的時間軸座標;在其它元件則會直接將所有輸入訊號的時間軸座標值替換為 ReferenceInput 設定的訊號時間軸座標值。

使用 DoMatlab 呼叫已存在之 M-file

下面示範如何將已編寫好的 M-file,藉由 DoMatlab 執行。假設有一個檔名為 round2.m 的 M-file 儲存在路徑 C:\M File 中,其內容為 B = round(10 * A) / 10,對 A 小數點以下一位做四捨五入。現在要將 A 代入 X2 第一個通道的訊號資料計算結果,其步驟如下。

  1. 首先在 Editor 中鍵入 cd('C:\\M File'),把路徑(current directory) 設定至 C:\M File 資料夾,並將變數 X2_DATA 的第一個通道設為 A


  2. 於 DoMatlab Editor 中輸入 round2 以執行此 M-file,須注意 round2 的輸出變數為 B,而 DoMatlab 的輸出變數為 Y,因此最後需將 B 代入 Y 中。


  3. 關閉 Editor,並以 Viewer / Channel Viewer 繪出 DoMatlab結果。可看到對 EMD 第一個通道中的資料做四捨五入的結果。



使用 DoMatlab 產生新的 Source

  1. 以 Compute / Math / DoMatlab 產生一個 DoMatlab,將 Properties / AsSource調為 True,可將 DoMatlab 由計算元件變為訊號源元件,並由紅色變成青綠色,原本藍色的輸入埠也消失。




  2. 在 MATLAB Command Window 中鍵入 whos 查詢變數的結果如下圖,因為沒有輸入資料,變數僅有 Y_DESC,因此需先創造輸出變數 Y,再將資料格式之設定填入變數 Y_DESC 內。


  3. 接下來以 Properties / MatlabEditor 產生訊號。藉由設定 Y_DESC,基本上 DoMatlab 可以產生所有格式的資料。本步驟示範產生一個 Impulse Signal。新開一個 Project 並重覆步驟 1 產生 DoMatlab Source, 然後由 Properties / MatlabEditor 進入編輯頁面。


    然後在編輯視窗下鍵入程式碼以產生一個 Impulse 訊號,程式內容如下。


    建立變數 p = 0.001 作為取樣週期,變數 t 是各訊號資料點對應的時間,變數 n 是訊號長度,變數 Y 就是輸出訊號,所有資料點的值先設為 0,並在訊號長度約一半的位置將值設為 1, 這樣輸出訊號 Y 的數值部份已經創造完成。接下來需設定訊號的時間軸定義變數 Y_DESC,程式碼如下:


    DoMatlab 為方便使用者操作,已預設輸出訊號的 type 為 Signal、開始時間 starts 為 0、時間單位 units 為 sec、離散格式 formats 為 Regular 等參數,因此預設的參數值就是上圖被 comment 的部分,使用者僅需設定取樣週期 Y_DESC.intervals,就可以把 Y 輸出。現在關閉 DoMatlab Editor 回到 Network 視窗,在 DoMatlab 後面接上 Channel Viewer 可以看到產生了一組 Impulse 訊號。



  4. 本步驟利用 MATLAB 內建的函式 peaks 產生大小為 49 * 49 的矩陣,並將其訊號格式設為時頻分析資料(Spectra) 輸出。新開一個 Project,按照步驟 2 產生 DoMatlab 訊號源,並打開 Properties / MatlabEditor。先產生一個 peaks 作為輸出訊號 Y。


    然後如下圖內容定義 Y_DESC 的所有欄位。


作法說明如下:

設定項目 程式碼 說明
輸出資料名稱 Y_DESC.name = "PEAKS"; 設定訊號名稱為 PEAKS。
輸出訊號類別 Y_DESC.type = "Spectra"; 設定訊號類別為 Spectra。
X 軸、Y 軸之離散點個數 Y_DESC.lengths = [49, 49]; 因為 Y 是二維矩陣,所以需依序設定列(row)與行(column)的長度;
如果對應 Spectra 對兩軸的定義的話,列代表不同時間,即 x 軸;行代表不同頻率,即 y 軸。
X 軸、Y 軸起始點 Y_DESC.starts = [0 0]; 設定兩軸之起始值都為零。
X 軸、Y 軸之的間隔 Y_DESC.intervals = [1 1]; 將兩軸的間隔均設為 1。
X 軸、Y 軸之單位 Y_DESC.units = ['sec'; 'Hz']; 設定 x 軸之單位為秒,y 軸的單位為 Hz。
X 軸、Y 軸之離散方式 Y_DESC.formats = ['Regular' ;'Regular']; 設定兩軸的離散方式都為 Regular 等間隔分布。

上表之 X、Y 軸與行、列的關係以 Column wise 為前提,然而參數 Y_DESC.coords 只有當座標軸格式是 Indexed 才必須設定的參數,在此例無須設定。

關閉 DoMatlab Editor 後開始執行 DoMatlab,回到 Network 視窗,此時點選 DoMatlab,看 Properties / OutputDataType,輸出訊號格式為 Real Single-Channel Spectra of Rank-2(Regular : Regular) Data,而且能夠以接上 Viewer / Time-Frequency Viewer 畫出時頻圖。




相關指令(Related Functions)

DiffIntegrate

3.3.8 RMS

RMS(Root Mean Square) 為工業界中最為普遍用來評估振動的參考值,代表一段時間內振動能量的平均值,在主軸和軸承等迴轉機械製造商皆大量利用 RMS 值作為品管和檢測的重要指標,主軸製造商量測主軸運作中振動加速度 \(G\),最後計算後 RMS 值,也被廣泛稱為 \(G\) 值,用來判斷主軸或軸承的組裝精密度及穩定性。

理論(Theory)

\[\begin{aligned} \text{RMS} &= \sqrt{\frac{1}{T} \int_0^T a^2 (t) dt}\\[0.5em] \text{Peak} &= \sqrt{2} \times \text{RMS}\\[0.5em] \text{Peak-to-Peak} &= 2 \sqrt{2} \times \text{RMS}\\ \end{aligned}\]

其中 \(T\) 表示某段時間,\(a(t)\) 主要表示振動的加速度 \(G\),也可以以振動速度或位移來表示。

參數設定(Properties)

本模組接受實數(Real Number),單(Single Channel)、多通道 (Multi-Channel),Regular 的訊號(Signal) 輸入。各參數定義詳如下方圖表。


參數名稱 參數定義 預設值
Method 數值積分的方法,可選擇 Simple(長方形法)、Simpson 與 Trapezoidal(梯形法)。 Trapezoidal
StartPosition 設定時間軸或橫軸上的積分起始值。 輸入訊號的起始值。
EndPosition 設定時間軸或橫軸上的積分終點值。 輸入訊號的終點值。
RemoveDC 設定積分前,是否移除直流訊號。 False
WindowUnit 設定 Time Window 之單位,可為訊號點數(Sample)或時間(Second)。 Second
TimeWindow WindowUnit 選擇 Second 時的對應參數。設定窗函數的大小,數值之單位為秒。一般而言,迴轉機械檢測以時間為 1 秒為一個計算窗。 0.1
TimeOverlap WindowUnit 選擇 Second 時的對應參數。設定窗與窗之間重疊的時間長短。訊號元素數量。TimeOverlap < TimeWindow。 0.05
Window WindowUnit 選擇 Sample 時的對應參數。設定窗函數的大小,數值之單位為資料點數。 0
Overlap WindowUnit 選擇 Sample 時的對應參數。設定窗與窗之間重疊的資料點數。Overlap < Window。 0

Vibration Level 中的 Type 選項定義如下,根據 ISO15242-1(2004)

提供 RMS、Peak 和 PeaktoPeak 計算方法,預設的 Type = RMS。

選項名稱 選項定義
RMS 計算一段時間內振動的能量平均值。
Peak 假設振動訊號為正弦波,正弦波的振幅最大值為正弦波的 RMS 的 \(\sqrt{2}\) 倍。
PeaktoPeak 假設振動訊號為正弦波,正弦波的振幅最大值與最小值的差距為 \(2 \times Peak\)

範例(Example)

以下範例為兩根內藏式主軸,a 主軸經過完整跑合,b 主軸並未完全跑合,由 0 rpm 加速至 16000 rpm,並將加速規放置於兩主軸上量測振動。

  1. 首先將振動訊號經過 Scale 調整單位為 G ,再以 Channel Viewer 觀察,如下圖。




  2. 將調整過後的訊號經由 RMS 處理,Window 設定為取樣頻率,時間為 1 秒,即可以隨著時間及轉速增加,觀察振動能量的變化,b 主軸振動隨轉速增加而增加,a 主軸振動則是逐漸穩定。





相關指令(Related Functions)

Scale

參考資料(Reference)

ISO Standard 2372,ISO Standard 10816

3.4 Statistics*

*This module is available in Professional only*

本模組群提供計算訊號各項統計值之工具,包含的模組如下:

  1. Basic Statistics:計算訊號之基本統計參數,諸如最大值、最小值、平均、標準差等。

  2. Covariance Matrix:計算多筆訊號之共變異數矩陣。

  3. Correlation Matrix:計算多筆訊號之相關係數矩陣。

  4. Equiphase Statistics:計算輸入訊號之等相位統計值。

  5. Kernel Smoothing Density:利用特定之核函數(kernel function) 計算出輸入訊號之機率密度線,並將其平滑化。

  6. Orthogonality Matrix:對多筆訊號計算出彼此之正交性矩陣。

  7. Quartiles and Quantiles:可計算訊號之各種分位數與四分位數。

  8. Rolling Statistics:計算訊號之滾動統計值。

  9. Hypothesis Test:對資料及訊號進行設定假設、選擇檢定方法、判斷是否接受假設。

  10. Least Square Fitting:以最小平方法對訊號做回歸曲線,從一組時間序列或兩組時間序列中的找出最佳的相關曲線。

3.4.1 Basic Statistics*

*Only in Professional*

Basic statistics 是一項讓使用者能快速檢視輸入數列之基本統計數據的工具。

說明(Description)

\(X = \{x_0, x_1, \dots, x_{N-1}\}\)代表長度為 \(N\) 的數列 (不限定為時間序列), Basic Statistics 將計算下列各項統計資訊。

統計值 數學式 說明
Sum \[\sum_{i=0}^{N-1} x_i\] 資料中每個元素的總合。
Min - 資料中的最小值。
Max - 資料中的最大值。
Mean \[\frac{1}{N} \sum_{i=0}^{N-1} x_i\] 計算資料算數平均值。
Geometric Mean \[(x_0 \cdot x_1 \cdot \dots \cdot x_{N-1})^\frac{1}{N}, \quad x_i > 0, \; \textit{for all i}\] 計算資料幾何平均值,多用於計算比率、人口成長等呈幾何變化的數列。
Harmonic Mean \[N \left(\sum_{i=0}^{N-1} \frac{1}{x_i}\right)^{-1}, \quad x_i > 0, \; \textit{for all i}\] 計算調合平均數,多用於計算平均速率。
Trimmed Mean - 截頭尾平均數,算法為先設定的濾除比例(%),將資料 X 排序後,頭尾各濾除比列的部份的數列部份濾除,剩下的訊號值作算數平均,如此可排除數列中極端值所造成的影響。
Median - 資料的中位數。
StdDev \[\sigma = \left(\frac{1}{N}\sum_{i=0}^{N-1} (x_i - \bar{x})^2\right)^{\frac{1}{2}}\] 標準差,可推估母體資料距離平均值的離散程度,假設此資料為樣本,無法利用樣本去推估母體標準差(Biased Moment Estimation)。
\[s = \left(\frac{1}{N-1}\sum_{i=0}^{N-1} (x_i - \bar{x})^2\right)^{\frac{1}{2}}\] 當此資料為樣本,計算樣本不偏估之標準差(Unbiased Moment Estimation),可以用來推估母體標準差。
Variance \[\sigma^2 = \frac{1}{N}\sum_{i=0}^{N-1} (x_i - \bar{x})^2\] 母體資料的變異數(標準差的平方),假設此資料為樣本,無法利用樣本去推估母體變異數(Biased Moment Estimation)。
\[s^2 = \frac{1}{N-1}\sum_{i=0}^{N-1} (x_i - \bar{x})^2\] 當此資料為樣本,計算樣本不偏估之變異數(Unbiased Moment Estimation),可以用來推估母體變異數。
Coefficient of
Variation
\[\frac{\sigma}{\bar{x}} \times 100\%\] 母體變異係數,表示標準差佔平均值的百分比,用於比較多組資料個別間的離散程度(Biased Moment Estimation)。
\[\frac{s}{\bar{x}} \times 100\%\] 當此資料為樣本,計算樣本不偏估之變異係數(Unbiased Moment Estimation),可以用來推估母體變異係數。
Skewness \[g_1 = \frac{1}{N \cdot \sigma^3} \sum_{i=0}^{N-1} (x_i-\bar{x})^3\] 母體偏度,用以推估資料分佈圖形的對稱性,即第三中央慣性矩除以標準偏差的三次方(Biased Moment Estimation)。
\[G_1 = \frac{\sqrt{N(N-1)}}{N-1} \cdot g_i\] 當此資料為樣本,計算樣本不偏估之偏度(Unbiased Moment Estimation),可以用來推估母體偏度。
Kurtosis \[g_2 = \frac{1}{\sigma^4} \sum_{i=0}^{N-1} (x_i-\bar{x})^4 - 3\] 母體峰度,用來推估資料分佈圖形是高瘦或者是矮胖,即第四中央慣性矩除以標準偏差的四次方減 3(Biased Moment Estimation)。
\[G_2 = \frac{n(n+1) \cdot \sum_{i=0}^{N-1} (x_i-\bar{x})^4} {(n-1)(n-2)(n-3)s^4} - \frac{3(N-1)^2}{(N-2)(N-3)}\] 當此資料為樣本,計算樣本不偏估之峰度(Unbiased Moment Estimation),可以用來推估母體峰度。
Semi Variance \[\frac{1}{N} \sum_{i=0}^{N-1} [(x_i-\bar{x})b_i]^2, \quad b_i = \begin{cases} 1, & \; x_i < \bar{x}\\ 0, & \; x_i > \bar{x}\\ \end{cases}\] 計算母體資料之半變異數,預設以數列平均值\(\bar{x}\)為門檻值(Biased Moment Estimation)。
\[\frac{1}{N-1} \sum_{i=0}^{N-1} [(x_i-\bar{x})b_i]^2\] 當此資料為樣本,計算樣本不偏估之樣本半變異數(Unbiased Moment Estimation),可以用來推估母體之半變異數。
Semi Standard
Deviation
\[\sqrt{\frac{1}{N} \sum_{i=0}^{N-1} [(x_i-\bar{x})b_i]^2}\] 將母體資料之半變異數(Biased Moment Estimation)開根號即為資料之半標準偏差(Biased Moment Estimation)。
\[\sqrt{\frac{1}{N-1} \sum_{i=0}^{N-1} [(x_i-\bar{x})b_i]^2}\] 當此資料為樣本,計算樣本不偏估之樣本半標準差(Unbiased Moment Estimation),可以用來推估母體半標準差。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number),單通道(Single Channel)或多通道(Multi-Channel),Regular 的訊號(Signal) 輸入,相關參數定義詳列如下表。


參數名稱 參數定義 預設值
Stats Mode 如果輸入訊號為多通道,此參數將會被開啟,包含 PerChannel 和 AcrossChannel。
若如預設 PerChannel ,結果會為一個 \(15 \times n\) 的矩陣,其中 \(n\) 為輸入的 channel 數,15 個值為計算的統計值,輸出格式是 Indexed 的數值資料。
若設定為 AcrossChannel,計算同一個時間點下,輸入訊號中所有通道的 15 個統計值,最後輸出一個多通道訊號包含 15 個 channel ,長度跟輸入訊號相同。
PerChannel
View Statistics… 開啟 Reporter 視窗顯示模組元件計算結果。
Unbiased Moment Estimation 如果輸入資料為樣本(Sample),則選擇 True(Unbiased Moment Estimation)進行統計量修正,進一步去推估母體(Population)的統計量。
反之若資料為母體(Population),即可以設定 False(Biased Moment Estimation),計算母體統計量
True
Trimmed Fraction 截頭尾平均的截去比例,以百分比表示 %。 0.05
Trimmed at Ceiling 當截去比例下之資料點位置為小數點時,選擇取前一點(參數設為 False)或是後一點(參數設為 True)作為 Trimmed 的點數。 False

範例(Example)

計算白色雜訊與方波的基本統計分析:

  1. 於 Network 視窗下選擇 Source / Noise 創造一個雜訊 (預設為白色雜訊),後接上 Compute / Statistics / Basic Statistics,再點選 Basic Statistics 的 Properties / View Statistics… 顯示計算結果。




  2. 另新增一正弦波,用 Conversion / Merge to multi-channel 將此波與 Noise 結合為 Multi-channel 訊號,先以 Viewer / Channel viewer 繪製結果,再拉入 Stats,點選 Basic Statistics 的 Properties / View Statistics…,Basic Statistics 視窗即更新如下。





  3. 設定 Basic Statistics 工具列上的參數,使數值顯示為 Scientific,小數點位數調整為 5 位,最後記得按 Refresh 鈕更新,其結果顯示如下。


  4. 另外在一個新的專案中,Source / Noise 產生一個 White Noise,再將其接至 HHT / RCADA EEMD,最後以 Channel Viewer 觀看其結果。



  5. 最後再將 RCADA EEMD 連接至 Compute / Statistics / Basic Statistics,然後 Properties / Stats Mode 選擇 AcrossChannels, 最後以連接 Compute / Channel / Channel Switch, Channel Viewer 觀看其結果,可以利用 Channel Switch 選擇不同通道,檢視不同的統計量。



相關指令(Related Functions)

Equiphase Statistics、Rolling Statistics、Merge to Multi-Channel

參考(Reference)

  1. Michel Loeve, “Probability Theory”, Graduate Texts in Mathematics, Volume 45, 4th edition, Springer-Verlaf, 1977

  2. Joanes, D. N.&Gill, C. A.(1998) Comparing measuresof sample skewness and kurtosis. Journal of the Royal Statistical Society (Series D): The Statistician 47 (1), 183–189.

3.4.2 Covariance Matrix*

*Only in Professional*

共變異數是計算兩組數列各自對其平均值的變化相關程度,若值為正,代表兩數列呈正相關,值為負代表兩數列呈負相關。倘若有多比數列資料互相比較,則可將各資料對應之共變異數組成一個共變異數矩陣。

說明(Description)

\(X = \{x_0, x_1, \dots, x_{N-1}\}\)\(Y = \{y_0, y_1, \dots, y_{N-1}\}\)為兩組數列,則總量之共變異數 (Covariance) 計算如下:

\[cov_{xy}^{(b)} = \frac{1}{N} \sum_{i=0}^{N-1} (x_i-\bar{x})(y_i-\bar{y})\]

其中\(\bar{x}\)\(\bar{y}\)分別為兩數列的平均值。若考慮樣本不偏估之估計量 (Unbiased estimator),則方程式為

\[cov_{xy}^{(s)} = \frac{1}{N-1} \sum_{i=0}^{N-1} (x_i-\bar{x})(y_i-\bar{y})\]

若有一組多通道(Multi-Channel)的數列,通道數為 M,則各通道間對應的總量 / 樣本相關係數可表示為共變異數矩陣

\[[C_{lk}] = cov_{lk},\]

其中 \(l\)\(k\) 為數列通道編號。其中矩陣的對角項(Diagonal terms)就是該通道數列的變異數,即:

\[cov_{kk}^{(b)} = \frac{1}{N} \sum_{i=0}^{N-1} (x_i^{(k)}-\bar{x}^{(k)})(y_i^{(k)}-\bar{y}^{(k)})\]

\[cov_{kk}^{(s)} = \frac{1}{N-1} \sum_{i=0}^{N-1} (x_i^{(k)}-\bar{x}^{(k)})(y_i^{(k)}-\bar{y}^{(k)})\]

參數設定(Properties)

本模組接受實數(Real Number),多通道(Multi-Channel),Regular 的訊號 (Signal) 輸入。輸出為一個 M * M 的方形矩陣,其中 M 為通道數,輸出格式是 Indexed 的數值資料。計算結果於 Properties / View Matrix… 即可開啟 Reporter 視窗看到。


參數為 Unbiased Moment Estimation,可選擇是否計算樣本不偏估之共變異數矩陣,預設為 False。

範例(Example)

以不同相位角與頻率的正弦波為輸入訊號計算其相關係數矩陣:

  1. 於 Network 視窗下按右鍵,選擇 Source / Sine Wave 創造一個正弦波,此波預設頻率為 10 Hz,接著再創造兩個正弦波,一個波設定其 Properties / SignalFreq = 5Hz,另一個波設定其 Properties / Phase=180 度 (單位為 Degree),最後使用 Conversion / Merge to Multi-Channel 將三個訊號結合成一個 Multi-Channel 的訊號。以上步驟將創造一個頻率為 10 Hz 的正弦波,頻率為 5 Hz 的正弦波以及相位角偏移 180 度 的正弦波。以 Viewer / Channel Viewer 繪出結果,其中黑線代表 Sine,藍線代表 Sine2,紅線代表 Sine3。



    Sine2 的參數設定如上圖。


    Sine3 的參數設定如上圖。


  2. 在 ToMulti 後方接上 Compute / Statistics / Covariance Matrix,點選其 Properties / View Matrix…跳出計算結果。矩陣元素\(C_{ij}\)為各訊號對自己的共變異數,也就是各訊號的變異數約 0.499,\(C_{12}\)\(C_{21}\)是 Sine 與 Sine2 的比較,其值極小,表示兩訊號無相關性,\(C_{23}\)\(C_{32}\)同樣為極小值,同理 Sine 與 Sine2 也是無相關性;Sine 與 Sine3 為與 X 軸對稱的兩數列,其計算結果為 -0.499,代表兩訊號為負相關。




  3. 再開一個新的專案,以 Source / Triangle Wave 產生一組三角波,再接上 Compute / HHT / RCADA EEMD 計算出三角波的 IMF,計算結果以 Channel Viewer 繪出。Viewer 的 Properties / Multi-channel Display 調為 List,Viewer Height 調為 350,可以看到共分出 9 個通道的訊號。



  4. 於 RCADA EEMD 後面再接上 Compute / Statistics / Covariance Matrix,計算各 IMF 之間的共變異數矩陣。



共變異數值的大小可衡量兩數列值變化的程度,值為正代表兩數列值相對於平均的變化趨勢相同,為正的線性相關,值為負代表兩數列值相對於平均的變化趨勢相反,為負的線性相關。另外可注意到矩陣的對角項為各通道的變異數。

相關指令(Related Functions)

Correlation Matrix、Orthogonality Matrix、Merge To Multi-Channel、RCADA EEMD

參考(Reference)

N.G. van Kampen, Stochastic processes in physics and chemistry. New York: North-Holland, 1981.

3.4.3 Correlation Matrix*

*Only in Professional*

相關係數(Correlation Coefficient) 即是正規化的共變異數,可指出兩組數列的相關程度,倘若有多筆數列相互交差比較,則可將各相關係數組成相關係數矩陣。

說明(Description)

\(X = \{x_0, x_1, \dots, x_{N-1}\}\)\(Y = \{y_0, y_1, \dots, y_{N-1}\}\)為兩組數列,則相關係數 (Correlation Coefficient) 之計算如下:

\[\rho_{xy} = \frac{1}{N\sigma_x\sigma_y} \sum_{i=0}^{N-1} (x_i-\bar{x})(y_i-\bar{y})\]

其中 \(\bar{x}\)\(\bar{y}\) 分別為兩數列的平均值, \(\sigma_x\)\(\sigma_y\) 分別為兩數列的標準偏差。若考慮樣本不偏估之估計量 (Unbiased Moment estimator),則方程式為

\[r_{xy} = \frac{1}{(N-1)s_x s_y} \sum_{i=0}^{N-1} (x_i-\bar{x})(y_i-\bar{y})\]

其中\(r_{xy}\)為兩樣本數列的相關係數,\(s_x\)\(s_y\)分別為兩數列的樣本標準偏差。相關係數之定義可視為共變異數除以兩數列之標準偏差。

若有一組多通道(multi-channel) 的數列,通道數為 M,則各通道間對應的總量 / 樣本相關係數可表示為相關係數矩陣

\[[R_{lk}] = r_{lk},\]

其中 \(l\)\(k\) 為通道代碼。

參數設定(Properties)

本模組接受實數(Real Number),多通道(Multi-Channel),Regular 的訊號 (Signal) 輸入。輸出為一個 \(M \times M\) 的方形矩陣,\(M\) 為 channel 數,輸出格式是 Indexed 的數值資料。於 Properties / View Matrix…即可用 Reporter 視窗看到計算結果。


參數為 Unbiased Moment Estimation,可選擇是否計算樣本不偏估之相關係數矩陣,預設為 False。


範例(Example)

以不同相位角與頻率的正弦波為輸入訊號計算其相關係數矩陣結果:

  1. 於 Network 視窗下按右鍵,選擇 Source / Sine Wave 創造一個正弦波,此波預設頻率為 10Hz,接著再創造兩個正弦波,一個波設定其 Properties / SignalFreq = 5Hz,另一個波設定其 Properties / Phase = 180 度 (單位為Degree),最後使用 Conversion / Merge to Multi-channel 將三個波結合成一個 Multi-Channel 的訊號。以上步驟將創造一個頻率為 10Hz 的正弦波,頻率為 5Hz 的正弦波以及相位角偏移 180 度的正弦波。以 Viewer / Channel Viewer 繪出結果,其中黑線代表 Sine,藍線代表 Sine2,紅線代表 Sine3。



    Sine2 Properties


    Sine3 Properties


  2. 在 ToMulti 後方接上 Compute / Statistics / Correlation Matrix,點選其 Properties / View Matrix… 跳出計算結果。矩陣對角項\(R_{ij}\)為各訊號對自己的相關係數,因此為 1 完全相關,\(R_{12}\)\(R_{21}\)是 Sine 與 Sine2 的比較,其值約為\(7.91537 \times 10^{-14}\),表示兩訊號無相關性,\(R_{32}\)\(R_{23}\) 同樣為極小值,同理 Sine 與 Sine2 也是無相關性;Sine 與 Sine3 為與x軸對稱的兩數列,其計算結果為 -1,代表完全負相關。



  3. 再開一個新的專案,以 Source / Triangle Wave 產生一組三角波,再接上 Compute / HHT / RCADA EMD 計算出三角波的 IMF,計算結果以 Channel Viewer 繪出。Viewer 的 Properties / Multi-channel Display 調為 List,Viewer Height 調為 350,可以看到共分出 10 個通道的訊號。




  4. 於 RCADA EMD 後面再接上出 Compute / Statistics / Correlation Matrix,這樣可計算出各 IMF 之間的相關係數。



  5. 矩陣的對角項為各通道對自己的相關係數,所以等於 1;除了對角項之外,值最大的相關係數為 IMF_h5 與 IMF_h1,表示這兩組訊號有較強的相關性,其餘大多數的相關係數值都小於正負 0.1,代表其餘 IMF 彼此間的相關性很小。

相關指令(Related Functions)

Covariance Matrix、OrthogonalityMatrix、Merge To Multi-Channel、Channel Viewer、RCADA EMD

參考(Reference)

Cohen, J., Cohen P., West, S.G.,&Aiken, L.S. (2003). Applied multiple regression/correlation analysis forthe behavioral sciences. (3rd ed.) Hillsdale, NJ: Lawrence Erlbaum Associmtes.

3.4.4 Equiphase Statistics*

*Only in Professional*

等相位統計值,為設定一段長度為 \(M\) 的週期,在此週期下計算每個同相位元素的統計值, 譬如計算月均值,週均值等,此計算方式即為 Equiphase Statistics。

說明(Description)

\(X = \{x_0, x_1, \dots, x_{N-1}\}\) 為一組個數為 \(N\) 的數列,而 Equiphase Statistics 所設定的週期大小為 \(M\)\(M < N\),則此數列可分作 \(K = Ceiling(N / M)\) 個小數列,\(Ceiling()\) 表示小數點後無條件進位,令小數列為 \(P_j^k\)\(k\) 標示小數列編號,\(j\) 標示數列內之元素,則

\[P_j^k = \{x_{k\cdot M + j}\}, \\ 0 \leq j \leq {M-1}, 0 \leq k \leq {K-1}\]

如下圖所示:


Equiphase Statistics 就是抽出每個 \(P_j^k\) 中相同相位的元素作為一組,計算其統計值,譬如 equiphase mean 的計算如下。

\[EM_j = \frac{1}{K} \sum_{k=0}^{K-1} P_j^k, \\ 0 \leq j \leq {M-1}\]


須注意當 \(N / M\) 不整除時,最後一組小數列長度 \(M_{last} < M\), 因此當相位元素\(j \leq M_{last}\) 時,計算之元素數量為 \(K\),當元素 \(j > M_{last}\) 時,計算元素數量為 \(K-1\)

Equiphase statistics 可計算多種統計值,其中大部份與 Basic statistics 模組相同,此處不再贅述,算式請參照 Basic statistics 內容,其它部份,譬如 First quartile、Third quartile 與 Quantile 的詳細定義請參考 Quartiles and Quantiles 模組。

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel)或多通道 (Multi-Channel),Regular 的訊號 (Signal)、聲音訊號(Audio)輸入。參數定義如下。


參數名稱 參數定義 預設值
Period 設定週期,單位為時間。 輸入訊號時間總長的百分之十
Period Start 設定起始點位置,單位為時間。 0
TimeUnit 時間單位。 sec
Type 設定要計算的統計量。 Mean

Type選項定義如下,計算於窗內範圍的統計量。

選項名稱 選項定義
Sum 數列總合。
Min 數列中最小值。
Max 數列中最大值。
Mean 平均值。
Geometric Mean 幾合平均數。
Harmonic Mean 調合平均數。
Trimmed Mean 截尾平均數。
First quartile 數列值四分位值。
Median 數列的中位數。
Third quartile 數列的四分之三位值。
Quantile 數列的分位數。
StdDev 數列的標準偏差。
Variance 數列的變異數。
VarianceCoef 變異係數。
Skewness 數列的偏度。
Kurtosis 數列的峰度。
SemiVariance 半變異數。
SemiStdDev 半標準偏差。

部分選項會再出現參數需要設定,Quantile 的參數請參閱 Quartiles and Quantiles 模組說明,其餘統計量的定義請參考模組Basic Statistics內容。

範例(Example)

以一組 Brownian Noise 為輸入訊號,計算 Equiphase Statistics 的各項統計值。

  1. 於 Network 按右鍵新增 Source / Noise,調整 Properties / Noise Type 為 Brown,以 Viewer / ChannelViewer 繪出結果。




  2. 於 Noise後方接 Compute / Statistics / Equiphase Statistics,其統計值預設為 Mean,調整 Properties / Period 為 0.1,讓它以 0.1秒為週期,計算該週期下每個元素的平均值。最後以 Viewer / Channel Viewer 輸出結果。




  3. 調整 Type 為 Third Quartile,則模組會計算週期下每個元素位置的四分之三位值。



相關指令(Related Functions)

Basic Statistics、Rolling Statistics、Quartiles and Quantiles、 Channel Viewer

參考(Reference)

  1. Michel Loeve, “Probability Theory”, Graduate Texts in Mathematics, Volume 45, 4th edition, Springer-Verlaf, 1977

  2. Joanes, D. N.&Gill, C. A. (1998)Comparing measures on sample skewness and kurtosis. Journal of the Royal Statistical Society (Series D): The Statistician 47 (1), 183–189.

3.4.5 Kernel Smooth Density*

*Only in Professional*

Kernel smoothing density estimation 是以非參數化(non-parametric) 的方法計算出數列的機率密度函數(probability density function)。

說明(Description)

設數列為\(X = \{x_0, x_1, \dots, x_{N-1}\}\),則數列的 kernel density estimation 為:

\[\hat{f}_h(x) = \frac{1}{N h} \sum_{i=0}^{N-1} K(\frac{x-x_i}{h})\]

其中 \(h\) 是控制平滑程度的參數,即平滑窗(smoothing window)的長度,\(K\) 是核函數 (kernel function)。此方法是將離散分佈之每個點代入核函數中, 再疊加每個點的核函數計算結果,以達到平滑之目地。在概念上與作統計直方圖類似。

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel)或多通道 (Multi-Channel),Regular 的訊號(Signal) 輸入;輸出訊號格式為實數,多通道,Regular 的訊號。

參數定義整理如下表。須注意 KS Density 輸出的訊號格式,一組輸入訊號會產生一組兩個通道的輸出訊號,第一個通道為 X 軸資料,以資料的極大及極小為上下界限,第二個通道為 Y 軸資料,為數列數值相對應之機率密度值。


參數名稱 參數定義 預設值
Type 核函數的種類,內建函數包括Uniform、Triangle、Epanechnikov、Quartic、Triweight、Gaussian、Cosine,其定義整理至下一個表格中。 Gaussian
No. of Points 輸出訊號之離散點數。 100
Width 平滑窗之寬度, 即 \(h\),為控制平滑程度的常數,預設值 Auto 是假設標準常態分佈下計算最佳的寬度。 Auto

下表整理常見核函數之定義。

核函數名稱 定義
Uniform \[K(u) = \begin{cases} \frac{1}{2}, & \quad |u| \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\]
Triangle \[K(u) = \begin{cases} 1 - |u|, & \quad |u| \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\]
Epanechnikov \[K(u) = \begin{cases} \frac{3}{4}(1-u^2), & \quad |u| \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\]
Quartic \[K(u) = \begin{cases} \frac{15}{16}(1-u^2)^2, & \quad |u| \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\]
Triweight \[K(u) = \begin{cases} \frac{35}{32}(1-u^2)^3, & \quad |u| \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\]
Gaussian \[K(u) = \begin{cases} \frac{1}{\sqrt{2 \pi}} \mathrm{e}^{-\frac{1}{2}u^2}, & \quad |u| \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\]
Cosine \[K(u) = \begin{cases} \frac{\pi}{4}\cos(\frac{\pi}{2}u), & \quad |u| \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\]

範例(Example)

  1. 建立一個 Source / Noise,調整其 Properties / Noise Type 為 Gaussian,Time Length 設為 10 秒,再接上 Kernel Smooth Density,連結上 XY Plot。



  2. 另一方面將 Noise 直接以 Viewer / Histogram Viewer 繪出,將 Histogram 的 Properties / BinCount 調整為 50,Percentage 調為 True,則可畫出下面的直方圖。



    這兩張圖的基本概念是相同的,kernel smooth density 是以 kernel function 將數值出現的機率轉為連續的密度函數表示,而 histogram 是以值區間計算每個區間內數值發生的機率;且本模組所計算的密度函數其 X 軸以上的面積為 1,而 histogram 的 Y軸直接是發生次數。

    將 KSDensity 的 Properties / Width 調大一點,調整到 1.2,可看到結果更為平順。



相關指令(Related Functions)

Histogram、Noise、XY Plot

參考(Reference)

T. Hastie, R. Tibshirani and J. Friedman, The Elements of Stbtistical Learning, Chapter 6, Springer, 2001.

3.4.6 Orthogonality Matrix*

*Only in Professional*

正交性矩陣是計算數列間的正規化的內積 (Dot Product),若兩訊號正交,則其值為零,可以用在 EMD 計算的 IMF 上,判斷各 IMF 彼此間是否正交。

說明(Description)

\(X = \{x_0, x_1, \dots, x_{N-1}\}\)\(Y = \{y_0, y_1, \dots, y_{N-1}\}\)為兩組數列, 則其正交性定義為兩數列的內積,計算如下:

\[orth_{xy} = \frac{X \cdot Y}{\|X\| \|Y\|} = \frac{\sum_{i=0}^{N-1} x_i y_i}{\sqrt{\sum_{i=0}^{N-1} x_i^2 \sum_{i=0}^{N-1} y_i^2}}\]

若有 \(M\) 組數列,與其對應的正交性矩陣表示如下:

\[[O_{lk}] = orth_{lk}\]

其中 \(l\)\(k\) 為通道編號。

參數設定(Properties)

本模組接受實數(Real Number),多通道(Multi-Channel),Regular 的訊號 (Signal) 輸入。輸出為一個 \(M \times M\) 的方形矩陣,\(M\) 為輸入訊號的通道數,輸出格式是 Indexed 的數值資料。於 Properties/View Matrix…即可用 Reporter 視窗看到計算結果。



範例(Example)

以不同相位角與頻率的正弦波為輸入訊號計算,正交性矩陣:

  1. 於 Network 視窗下按右鍵,選擇 Source / Sine Wave 創造一個正弦波,此波預設頻率為 10 Hz,接著再創造兩個正弦波,一個波設定其 Properties / SignalFreq = 5Hz,另一個波設定其 Properties / Phase =180 度 (單位為 Degree),最後使用 Conversion / Merge to Multi-channel 將三個波結合成一個 Multi-Channel 的訊號。以上步驟將創造一個頻率為10Hz 的正弦波,頻率為 5Hz 的正弦波以及相位角偏移 180 度的正弦波。以 Viewer/ Channel Viewer 繪出結果,其中黑線代表Sine,藍線代表Sine2,紅線代表Sine3。



    Sine2 Properties


    Sine3 Properties


  2. 在 ToMulti 後方接上 Compute / Statistics / Orthogonality Matrix,點選其 Properties / View Matrix…跳出計算結果。 矩陣對角項 \(O_{ij}\) 為各訊號對自己的正交性,也就是訊號對自己作內積,其值為1; \(O_{12}、\)O_{21}$ 是 Sine 與 Sine2 的比較,其值極小,表示兩訊號相互正交, \(O_{32}\)\(O_{23}\) 同樣為極小值,同理 Sine 與 Sine2 也是相互正交; Sine 與 Sine3 為對 X 軸對稱的兩數列,因此其計算結果為 -1。




相關指令(Related Functions)

Covariance Matrix、Correlation Matrix、Merge To Multi-Channel、Channel Viewer

參考(Reference)

Probability, Random Variables and Stochastic Processes. McGraw-Hill, 211.

3.4.7 Quartiles and Quantiles*

*Only in Professional*

四分位數與分位數。分位數為一數列經排序後,其分佈位置占總量某個百分比的數值,而四分位數是在總量25%、50%、75%的位置的數值。

說明(Description)

\(X = \{x_0, x_1, \dots, x_{N-1}\}\) 為一組個數為 \(N\) 的數列,則四分位數可表示為

\[P(X \leq x_q) \leq p = \frac{1}{4}\]

若以較明確的說法,一數列的四分位數是其累積分佈函數等於 25% 的數值,位置 \(q\)\(N \times 0.25 - 1\) 處,中位數與四分之三位數也是相同的概念。分位數 Quantile 則是更一般化的分位數,以百分比為標準,如 17 位數(17th quantile) 代表在數列中累積分佈函數等於 17% 的數值。

若估計分位數時,該分位位置在兩點之間 (即 \(q = N \times p - 1\) 不為整數), 則需要推估該分位的位置,估計方法眾多,本元件整理五種較常用的計算式供使用者選擇。

內插方法 定義 說明
Linear \(x_q = x_i + (q-i)(x_{i+1}-x_i)\)
其中 \(i\) 代表 \(q\) 的整數部分
分位位置的前一點與下一點的數值作線性內插計算分位數。
Next point \(\begin{cases} x_{floor(q)}, & \quad r=0\\ x_{floor(q+1)}, & \quad r>0\\ \end{cases}\) 以分位位置下一點的數值當作分位數。
Average \(x_q = \frac{1}{2}(x_{i+1}+x_i)\) 分位位置的前一點與下一點的數值取平均作為該分位數。
Weighted Average \(x_q = x_{i+1}+g(x_{i+2}-x_{i+1})\)
其中 \(i\)\((N-1) \times p\) 的整數部份, \(g\) 是小數部份。
分位位置的前一點加上前後兩點之差的加權值,此方法被 Microsoft Office Excel 所採用。
Nearest \(\begin{cases} 離 x_i, & \quad g<0.5\\ x_{i+1}, & \quad g \geq 0.5\\ \end{cases}\)
其中 \(i\)\((N-1) \times p\) 的整數部份, \(g\) 是小數部份。
分位位置最近的位置作分位數。

參數設定(Properties)


本模組接受實數(Real Number)、複數(Complex Number),單通道(Single Channel)或多通道(Multi-Channel),Regular 的訊號(Signal)輸入。

參數設定介面如下圖,本模組預設就計算數列的四分位數、中位數、四分之三位數等 Quartiles 值,另外可在參數 Quantile Fractions 下設定希望計算的 Quantiles 值。參數 View Quartiles and Quantiles…會跳出視窗顯示計算結果。參數 Quantile Method 則可選擇 Quantile 的估計方法。下面就各參數內容分項說明。


上圖為按下 View Quartiles and Quantiles… 右方鈕即跳出視窗, 每一筆訊號的計算結果以 Column 為單位呈現,第一個 Column 顯示 Quartile 與 Quantile 名稱,第二 Column 之後每個 Column 都對應至輸入訊號每個 Channel,前三 Rows 計算三個四分位值, 後面的 Rows 計算Quartiles,使用者利用參數 Quartile Fractions 來設定。 下面將介紹參數 Quantile Fractions。

Quantile Fractions 有兩種方式可以設定分位數。第一種方法是直接在欄位裡更改數據,譬如在0.1與0.25之間鍵入「0.2,」(如下圖),就可以新增分位數。


第二種方法是按下 Quantile Fractions 右方鈕, 跳出分位數編輯視窗 (如下圖),如果一次需要新增或移除很多個分位數, 可以採取此作法。左邊為設定的 Quantile Member,使用者可以用下面的 Add / Remove 按鈕新增/移除計算項目,另外可以在右邊視窗編輯每個 Member 要計算的 Quantile 的比例,如 0.01 代表 1% Quantile,編輯完成後,按下 OK 鈕即完成設定。設定後這些 Quantiles 的計算結果會顯示在成 View Quartiles and Quantiles…視窗中。


Quantile Method 內有五種方法,分別為 linear、next、mean、weighted mean、nearest,其估計原理在理論中都有詳述。

參數名稱 參數定義 預設值
View Quartiles and Quantiles 顯示計算的 Quartiles 和 Quantiles結果。
Quantile Method Linear、Next、Mean、Weighted mean、Nearest。 Linear
Quantile Fractions 可設定多個 Quantile 的百分比。 [0.01; 0.1; 0.25; 0.5; 0.75; 0.9; 0.99]

範例(Example)

以一組 Brownian Noise 為輸入訊號,計算 Quartiles 與 Quantiles。

  1. 於 Network 按右鍵新增 Source / Noise,調整 Properties / Noise Type 為 Brown,以 Viewer / Channel Viewer 繪出結果。





  2. 於 Noise 後方接 Compute / Statistics / Quartiles and Quantiles 計算各項分位數值,點擊 Properties / View Quartiles and Quantiles…檢視結果。




  3. 點選 Properties / Quantile Fractions 來編輯不同的分位值,按下編輯介面的 Add 按鈕(如下圖),會在 Members 處新增一個值為 0 的 member。


    接下來,於編輯介面的右邊可設定分位數的百分比,譬如說設定為 0.17,完成後按下 OK 鈕。


  4. 再次點選 View Quartiles and Quantiles…,可以看到已經新增了一個 17th Quantile。


相關指令(Related Functions)

Basic Statistics、Rolling Statistics、Channel Viewer

3.4.8 Rolling Statistics*

*Only in Professional*

滾動統計值,為設定一段元素數量為 \(M\) 的窗,統計函數計算窗內部份的統計值, 譬如平均值,並且移動此窗以計算出的新的數列,此計算方式即為 Rolling statistics。

說明(Description)

\(X = \{x_0, x_i, \dots, x_{N-1}\}\) 為一組個數為 \(N\) 的數列,而 Rolling statistics 所設定的窗 \(W_j\) 長度為 \(M\)\(M < N\),則此窗內的元素可表示為 \(W_j = \{x_j, x_{j+1}, \dots, x_{j+M-1}\}\),其中 \(0 < j < {N-M}\),Rolling statistics 就是計算此窗內的統計值,譬如 Rolling mean

\[\mu_i = \frac{1}{M} \sum_{j=i}^{i+M-1} x_j, 0 \leq p < M\]

另外定義一個 overlap 值 \(p\)\(p\) 代表計算下一段窗時, 有多少窗內的元素是與前一段重疊的。以 Rolling means 為例,設定窗大小 \(M = 10\),則輸出值第一點

\[\mu_0 = \frac{1}{10} \sum_{j=0}^9 x_j\]

即下圖


範圍是訊號位置 0 至 9 ,如上圖所示,若 \(p = 9\), 則計算下一段窗的範圍是在訊號位置 1至 10處,即

\[\mu_0 = \frac{1}{10} \sum_{j=1}^{10} x_j\]


兩段相比有 9 個位置重疊。倘若 \(p = 7\),則

\[\mu_0 = \frac{1}{10} \sum_{j=3}^{12} x_j\]


與前段相比有 7 個訊號位置重疊,以此類推,輸出數列的長度為

\[K = \frac{N-p}{M-p}\]

須注意當 \(m - p < 1\) 時,輸出數列的長度 \(K\) 可能無法整除的狀況,而處理方式為捨去餘數,僅保留完整的窗所計算的結果,因此

\[K = floor(\frac{N-p}{M-p})\]

Rolling statistics 可計算某種統計值,項目與 Basic statistics 模組相同,此處不再贅述。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number),單通道 (Single Channel) 或多通道(Multi-Channel),Regular 的訊號(Signal) 輸入。參數定義如下。


參數名稱 參數定義 預設值
Type 可選擇想要計算的統計值,詳細清單可見下表。 Mean
Window 設定窗的大小,單位為訊號元素個數。 2
Overlap 設定 rolling 時重疊元素的數量。 Window -1

Type 選項定義如下,計算於窗內範圍的統計量。

選項名稱 選項定義
Sum 計算總合。
Min 數列中最小值。
Max 數列中最大值。
Mean 平均值。
Geometric Mean 幾合平均數。
Harmonic Mean 調合平均數。
Trimmed Mean 截頭尾平均數。
First quartile 數列的四分位值。
Median 數列的中位數。
Third quartile 數列的四分之三分位值。
Quantile 數列的分位數。
StdDev 數列的標準偏差。
Variance 數列的變異數。
VarianceCoef 變異係數。
Skewness 數列的偏度。
Kurtosis 數列的峰度。
Semivariance 半變異數。
SemiStdDev 半標準偏差。

部分選項會再出現參數需要設定,Trimmed Mean 請參考 Basic Statistics 說明文件,Quantile 的參數請參閱 Quartiles and Quantiles 說明文件,其餘統計量的定義請參考模組 Basic Statistics 內容。

範例(Example)

以一組 Brownian Noise 為輸入訊號,計算 Rolling statistics 的各項統計值。

  1. 於 Network 按右鍵新增 Source / Noise,調整 Properties / Noise Type 為 Brown,以 Viewer / Channel Viewer 繪出結果。




  2. 於 Noise 後方接 Compute / Statistics / Rolling Statistics,其統計值預設為 Mean,window 預設為 2。以 Channel Viewer 輸出結果。




  3. 因為 window = 2,所以步驟 2 之計算結果與原訊號差異不大,調整 window 大小為 50,算出的結果如下圖所示;再點選 RollingStats 圖示,按 Network 工具列上 Data Viewer 功能看 Data count 長度,長度為 952,可套用理論中 K 值驗算。



相關指令(Related Functions)

Basic Statistics、Equiphase Statistics、Quartiles and Quantiles、Merge To Multi-Channel、Channel Viewer

3.4.9 Hypothesis Test*

*Only in Professional*

先針對母體做出一個適當暫時性假設,再依據隨機樣本統計量的抽樣分配,定義出一個拒絕假設的標準,如果樣本統計量計算後落在拒絕區,則推翻原先建立之暫時性假設,否則必須接受暫時性假設。

理論(Theory)

實驗所得到數據包含機會誤差、真實誤差以及其他影響,利用假設檢定來解決這類問題。一般而言包含三個步驟,設定假設、選擇檢定方法、判斷是否接受假設。

虛無假設(Null Hypothesis):實驗數據間的差異屬於機會誤差。

對例假設(Alternative Hypothesis):實驗數據間的差異屬於真實誤差。

  1. Z-test:

    Z-test 中為輸入訊號的平均(樣本平均),為假設母體平均,為母體標準差,

    n 為輸入訊號數量(樣本數量)。

  2. T-test:

    T-test 中為輸入訊號的平均 (樣本平均),為假設母體平均,為樣本標準差,n 為輸入訊號數量 (樣本數量)。

    實驗過程中,進行重複相當多次的實驗,實驗結果的平均將會呈現常態分佈 (如下圖),若要檢驗某次實驗結果是否擁有機會誤差,可以利用 Z-test、 T-test,計算出此次實驗平均結果座落常態分佈何處。研究者假設一個拒絕虛無假設範圍,(以佔常態分佈面積的比例,又稱 Significant Level),再依照檢定方法 Null(雙尾)、RightTail(右尾) 和 LeftTail(左尾)( 如下圖),判斷實驗平均結果是否落入拒絕範圍。



  3. Var-Test(Chi-square variance test):

    Var-test 中為樣本變異數,為母體變異數, n 為輸入訊號數量 (樣本數量)。

  4. Runs-Test(Runs test of Randomness, Geary test):

    在 Runs-Test 中,為樣本中大於樣本平均值的數量,為樣本中小於樣本平均值的數量,R 為由 a , b 的交替出現次數,列如 aaabbaaba,則 R=5。

參數設定(Properties)

Hypothesis Test 目前有四種 One-sample 檢定方法,下面將個別介紹四種檢定方法的參數設定,各參數定義與預設值如下:

參數名稱 參數定義 預設值
View Test Results 利用 Hypothesis Test 檢視計算結果。
TestType z_Test、t_Test、var_Test、runs_Test。 z_Test

如果按下 View Test Result 將會出現檢定結果,顯示結果如下表。

參數名稱 參數定義
Rejected 顯示檢定結果落入拒絕範圍,若顯示 True,表示可以反對虛無假設,反之則只能接受假設。
SignificanceLevel 顯示輸入資料平均值落在母體分佈何處。
CI-Low 虛無假設的範圍的最小值,也是信賴區間的最小值。
CI-High 虛無假設的範圍的最大值,也是信賴區間的最大值。
Run Count 參考理論(Theory),此值顯示即為 Runs-Test 的 R。
Above Threshold 資料中大於設定門檻的數量。
Below Threshold 資料中小於設定門檻的數量。
z-Value 此結果只出現在 Runs-Test 中,表示計算出的 Z 值。

Z-Test


參數名稱 參數定義 預設值
Mean 設定母體的平均值。 0
Sigma 設定母體的標準差。 1
SignificanceLevel 設定拒絕虛無假設的範圍,佔常態分佈面積的比例。一般常見設定為 0.1、0.05 或 0.01,設定越小,要拒絕虛無假設就越嚴苛。 0.05
Hypothesis 設定檢定方法為 Null(雙尾),RightTail(右尾,其中輸入資料平均值必須大於樣本平均值),  Nu ll
LeftTail(左尾,其中輸入資料平均值必須小於樣本平均值)

T-Test


參數名稱 參數定義 預設值
Mean 設定母體的平均值。 0
SignificanceLevel 設定拒絕虛無假設的範圍,佔常態分佈面積的比例,一般常見設定為 0.1、0.05 或 0.01,設定越小,要拒絕虛無假設就越嚴苛。 0.05
Hypothesis 設定檢定方法為 Null(雙尾),RightTail(右尾,其中輸入資料平均值必須大於樣本平均值), Nu ll
  LeftTail(左尾,其中輸入資料平均值必須小於樣本平均值)

Var-Test


參數名稱 參數定義 預設值
Variance 設定母體的變異數。 0
SignificanceLevel 設定拒絕虛無假設的範圍,佔常態分佈面積的比例,一般常見設定為 0.1、0.05 或 0.01,設定越小,要拒絕虛無假設就越嚴苛。 0.05
Hypothesis 設定檢定方法為 Null(雙尾),RightTail(右尾,其中輸入資料平均值必須大於樣本平均值),  Nu ll
  LeftTail(左尾,其中輸入資料平均值必須小於樣本平均值)

Runs-Test


參數名稱 參數定義 預設值
RunsMethod AboveBelow,UpDown。 AboveBelow
IsExact 計算 P-Value 是否用正確的演算法,此參數只存在 RunsMethod = AboveBelow。 True
RunThreshold 設定門檻,決定資料是否大於小於門檻,如果為(Auto),則是輸入資料的平均值。 (Auto)
SignificanceLevel 設定拒絕虛無假設的範圍,佔常態分佈面積的比例,一般常見設定為 0.1、0.05 或 0.01,設定越小,要拒絕虛無假設就越嚴苛。 0.05
Hypothesis 設定檢定方法為Null(雙尾),RightTail(右尾,其中輸入資料平均值必須大於樣本平均值), Nu ll
  LeftTail(左尾,其中輸入資料平均值必須小於樣本平均值)

範例(Example)

本範例將舉出幾個範例,解釋各種檢定方法的使用。

範例一

  1. 假設一個秤重儀器,儀器釋格指出無載重時,平均重量為 0.0,標準差為 0.03,每次做實驗之前,需要經校正,利用無秤重時,讀取其顯示重量值,假設讀取 1001 次資料,利用這些資料判斷其儀器是否有偏差,首先虛無假設為儀器無偏差,進行 z-test 檢定。

  2. 首先以 Source / Square Wave 產生一組量測磅秤的資料,Amplitude 設定為 0.1,再連接至 Compute / Statistics / BasicStatistics,在 Basic Statistics 按下 View Statistics,觀察 Mean。





  3. 將 Square 接至 Hypothesis Test,設定 TestType = z_Test,Sigma = 0.03,然後再以 View Test Results,觀察其檢定的結果,資料計算出的 SignificanceLevel 大於預設值,虛無假設無法被拒絕,所以只能相信虛無假設,儀器並無偏差產生。




  4. 若再設定 Hypothesis Test 中 SignificanceLevel 為 0.1,將拒絕虛無假設的範圍加大,然後再以 View Test Results,觀察其檢定的結果,資料計算出的 SignificanceLevel 小於設定值,虛無假設被拒絕,所以否定虛無假設,故儀器有偏差產生,需重新加以校正。



範例二

  1. 假設一個班級有 51 人,因為班上導師請假,想了解班上總成績是否因故下滑,而全校成績平均 55 分,假設虛無假設為班上成績並無因為老師請假而下滑,進行 t-Test。

  2. 首先以 Source / Noise 產生一組學生的成績,SamplingFreq 設定為 50,Amplitude 為 30,AmplitudeOffset 為 50,再連接至 Compute / Statistics / Basic Statistics,在 Basic Statistics 按下 View Statistics,觀察 Mean。




  3. 將 Noise 接至 HypothesisTest,設定 TestType = t_Test,Mean = 55,然後再以 View Test Results,觀察其檢定的結果,資料計算出的 SignificanceLevel 小於預設值,虛無假設被拒絕,所以因為老師請假而導致班上成績下滑。




  4. 若再設定 Hypothesis Test 中 SignificanceLevle 為 0.01,將拒絕虛無假設的範圍變小,然後再以 View Test Results,觀察其檢定的結果,資料計算出的 SignificanceLevel 大於設定值,虛無假設無法被拒絕,所以相信虛無假設,並不因為老師請假而造成成績下滑。



範例三

  1. 假設某銀行有五個窗口進行處理,客戶等待時間變異數為 10 分鐘,如今改成單一窗口處理,針對 101 位客戶進行調查,檢驗是否因為改成單一窗口之後,因此等待時間變異數變小,虛無假設為並無因為改變成單一窗口而使等待時間變異數變小,進行 Var-Test。

  2. 首先以 Source / Noise 產生 101 位客戶等待的時間資料,SamplingFreq 設定為 100,Amplitude 為 4.5,AmplitudeOffset 為10,再連接至 Compute / Statistics / Basic Statistics,在 BasicStatistics 按下 View Statistics,觀察 Variance。




  3. 將 Noise 接至 HypothesisTest,設定 TestType = var_Test,Variance = 10,因為資料的變異數小於預設變異數,所以設定 Hypothsis = LeftTail,然後再以 View Test Results,觀察其檢定的結果,資料計算出的 SignificanceLevel 小於預設值,虛無假設被拒絕,因此推斷單一窗口等待時間的變異數變小。




相關指令(Related Functions)

Noise、Square Wave、Basic Statistics

3.4.10 Least Square Fitting*

*Only in Professional*

用最小平方法算出兩組訊號的回歸線,包括線性回歸、多項式回歸、指數回歸等。此功能如同 Excel 圖表裡加上趨勢線的功能。元件上顯示的名稱為 LeastSquareFit 。

說明(Description)

最小平方法是用來計算回歸曲線的一種方法,藉由此元件計算出來的回歸曲線來近似數據與時間或是兩組數據之間的關係。本元件提供之回歸曲線種類以及其方程式如下表:

回歸曲線種類 方程式
Linear 線性回歸 \[y = a_0 + a_1 x\]
Polynomial 多項式回歸 \[y = a_0 + a_1 x + \dots + a_k x^k\]
PowerLaw 冪次回歸 \[y = A x^B\]
Exponential 指數回歸 \[y = e^{a x + b}\]
Logarithm 對數回歸 \[y = a + b \ln x\]

以線性回歸為例,我們可用方程式 \(y = ax + b\) 可說明 \(X\)\(Y\) 兩組數據之間代表的物理型態。例如在驗證虎克定律的實驗裡面,通常會量測兩組數據:掛在彈簧上的砝碼重以及彈簧的總長度。接著可利用彈簧總長對砝碼重作圖,來求得彈簧的彈性係數 \(k\),如下圖:


上圖黑點為量測的數據點,藍線為經由線性回歸算出來的直線。求得的線性回歸的方程式為

\[\text{Spring length(彈簧總長)} = 0.0907 \times \text{Force(受力)} + 4.99\]

此即彈簧總長以及受力之間的關係,同時比對虎克定律 \(F = kx\) ,上述式子可寫成

\[\text{Force} = 1 / 0.0907 \times (\text{Spring length} - 4.99)\]

因此可知道彈簧原長為 4.99 cm,彈簧的彈性係數為 11.02 g/cm。 由此例子見到我們可藉由線性回歸式得到兩組數據(彈簧長度與受力) 之間的關係。雖然量測數據點是離散的,但也可藉由線性回歸式來推測沒有數據之處的數值,例 如從上圖可以推測受力為 20 g 時彈簧的總長約為 8.6 cm 。對於在介在數據範圍內裡面不知道的 \(x_j\),可以透過 \(a x + b\) 來得到 \(y_j\); 而數據範圍外的部分也可以利用線性回歸式來求得, 但是由於線性方程是最簡單的近似模型,數據範圍外的預測可能會比較不準。

可是如何判定回歸線的準確度呢?通常會利用 R square 值來說明數據點與線性方程相近的程度, 也用來評估以此線性方程式來代表兩數據關係的是否可信。R sqaure 的計算可見Coefficient of Determination,是一介在 0-1 之間的數值,1 代表完全吻合、0 代表完全不吻合。因此若是要說 \(y = a x + b\) 可以代表此兩組數據的話,通常會要求 R square 值在 0.95 以上 (更嚴格的會要求 0.99)。

使用說明

本元件把回歸分成兩種類型:

TimeSeries(線性回歸方程式為 \(x = a t + b\)),以及

XY(線性回歸方程式為 \(y = a x + b\)

您可以在參數視窗(Property Window) 看到的目前所使用的形式,注意所使用形式是*無法手動修改*的,本元件中會依照輸入數據的格式來自動判斷應該選用 TimeSeries 或是 XY,所以務必確認您使用正確的方式連接此元件。

首先,先決定您想要知道的是 1. 一組數據與時間的關係或是 2. 兩組數據之間的關係 ,再依照下列所敘述的方法來連接。

  1. 一組數據與時間的關係:形式為 TimeSeries 。

    將訊號直接與本元件連接,並將用 Channel Viewer 來觀看結果。如以下流程圖:


    依照上述流程圖, Viewer 畫出來的圖表中有兩條線,一條為原來的時間序列,另一條為回歸後的曲線 (下圖使用線性回歸),經過 Viewer 的編輯後,可以得到下列圖表。


    特別注意當為時間序列時,用 Channel Viewer 來觀看結果,不要用到 XY Plot。

  2. 兩組數據之間的關係:形式為 XY

    將第一組數據 X 與第二組數據 Y 依序連接至本元件,再將 LeastSquareFit 的結果與數據 X 和 Y 連接至 Merge to Multi-Channel 合併成多通道,最後接入 XY Plot 觀看結果。連接方式如下面的流程圖:


    注意在連接至 ToMulti 時,連接順序必須是 LeastSquareFit, X, Y 或是 X, Y, LeastSquareFit 才能在 XY Plot 圖表中正確的顯示。上述流程範例可經過 XY Plot 的編輯,產生如說明中的虎克定律圖表:


以上兩種方式為使用本元件的基本方法。

LeastSquareFit 在判斷要使用 TimesSeries 或 XY 時,是從輸入的數目來判斷。如果只有一個輸入,LeastSquareFit 會將此輸入中每一個通道的時間與數值做回歸,而輸出 \(x = a t + b\) 中的 \(x\)。若有兩個輸入,則第一個輸入為 X,第二組輸入為 Y,使用 XY 方式做回歸後,輸出回歸方程式裡的 x 與 y。若一個輸入含有多通道時,其中 TimeSeries 可以依照前段 1. 中流程圖把每通道中的回歸曲線以及原本數據畫出,但是使用 XY 線性回歸時,兩輸入的第一通道會互相配對做回歸 (第二通道互相配對、第三通道互相配對…以此類推),而輸出通道依序為 x1, y1, x2, y2…等等。若要將所有 X-Y 配對之數據以及其回歸曲線畫出,特別注意輸入 XY Plot 的通道順序必須要是 x1, y1, x2, y2,…(即奇數通道與偶數通道配對),才能在圖表中正確顯示。可以參閱 XY Plot 的說明。

欲得知此回歸後的係數,找到屬性視窗中的 View Regression Parameters,會跳出如以下的方框:


即可查詢回歸曲線的相關參數。如圖 Slope 為斜率,即線性方程式中的係數 a;Intercept 為截距,即線性方程式中的b。Error StdDev 為每一數據點與回歸誤差的平均標準差,用來的得知是回歸線之可信度; R square 值也是用來得知回歸線的可信度,詳見參考資料。

參數說明(Properties)

本元件接受實數(Real Number),單或雙通道(Single or Multiple Channel),Regular 的訊號(Signal)、聲音訊號(Audio) 輸入。相關參數說明如下表。

參數名稱 參數定義 預設值
TimeSeries 時間序列的回歸 自動選擇,無法更動
XY 兩物理量的回歸 自動選擇,無法更動

回歸曲線報表之參數定義

參數名稱 參數意義
Channel 通道名
Error StdDev 數據點與回歸誤差的平均標準差
R-Square Coefficient of Determination
Linear Fitting 線性回歸 Slope 斜率,見公式中的 \(a_1\)
Intercept 截距,見公式中的 \(a_0\)
Polynomial Fitting 多項式回歸 \(a_0 ~ a_n\) 公式中不同項的係數
PowerLaw Fitting 冪次回歸 Scale 為公式中的 \(A\)
Exponent 為公式中的 \(B\)
Exponential Fitting 指數回歸 Intercept 為公式中的 \(a\)
Rate 為公式中的 \(b\)
Logarithmic 對數回歸 Constant 為公式中的 \(a\)
Scale 為公式中的 \(b\)

相關指令(Related Functions)

XY Plot

參考資料(Reference)

  1. Coefficient of Determination : http://en.wikipedia.org/wiki/Coefficient_of_determination

  2. http://mathworld.wolfram.com/LeastSquaresFitting.html

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

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

說明(Description)

數學式為

\[STFT[x(t)] = X(\tau,\omega) = \int_{-\infty}^{\infty} x(t) \omega(t-\tau) \mathrm{e}^{-i \omega t} dt\]

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

Windows Size 與 Frequency Resolution 之間的關係如下:

\[\textit{Window Size} = \frac{f_s}{\delta f}, \\ \textit{Freq Resolution} = 2 \cdot \frac{f_s}{\textit{Window Size}}\]

其中,\(f_s\) 為取樣率(Sample Frequency)。

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

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號 (Signal)、聲音訊號(Audio)輸入;輸出訊號格式為複數,單通道的時頻 (Spectra)資料結構。各參數定義詳如下方圖表。


參數名稱 參數定義 預設值
FreqAxis 時頻圖頻率的分佈可以設定為是 LinearAxis(線性尺度)或是 LogAxis(對數尺度),LogAxis 多用於聲音訊號分析。 LinearAxis
FreqMin; FreqMax 透過設定此參數,可決定繪圖時頻率的上下邊界。 0;\(f_s / 2\)
FreqResolution 此值會影響到窗函數的大小,設定的越低,窗函數會越長。 \(f_s / 40\)
FreqCount 設定 STFT 於頻率方向之格點數。 256
TimeCount 設定 STFT 於時間方向之格點數。 2048
RemoveDC 此值決定在進行 STFT 分析前,要不要先移除直流訊號。 True
Window 在 STFT 分析,進行時間軸的分割時,會利用窗函數進行濾波,此處可選擇不同窗函數。關於各窗函數的定義,請參閱 Fourier transform。 Gauss

範例(Example)

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

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


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




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



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



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



相關指令(Related Functions)

Fourier Transform、Morlet Transform、Enhanced Morlet Transform

參考資料(Reference)

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,對訊號進行小波分析的方法。

說明(Description)

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

\[X_w(a,b) = \frac{1}{\sqrt{|(a)|}} \int_{-\infty}^{\infty} x(t) \Psi \left[ \frac{t-b}{a} \right] dt\]

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

  1. \(\int_{-\infty}^{\infty} |\Psi(t)|^2 dt = 1\)

  2. \(\int_{-\infty}^{\infty} |\Psi(t)| dt < \infty\)

  3. \(\int_{-\infty}^{\infty} \Psi(t) dt = 0\)

而 Morlet Transform 屬於小波轉換,其母小波的定義為

\[\Psi_{\sigma}(t) = \mathrm{e}^{i \alpha t} \mathrm{e}^{\frac{-|t|^2}{2}}\]

在 Visual Signal 中 \(\alpha = 6\)


參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號 (Signal)、聲音訊號(Audio)輸入;輸出訊號格式為實數,單通道,Regular 的時頻(Spectra) 資料。參數須設定起始與終點位置,其單位等於輸入訊號的時間單位。


參數名稱 參數定義 預設值
FreqAxis 時頻圖頻率的分佈可以設定為是線性尺度,或是 Log 尺度。Log 尺度提供聲音分析使用。 LinearAxis
FreqMin; FreqMax 透過設定此參數,可決定繪圖時頻率的上下邊界。 0;\(f_s / 2\)
FreqCount 設定頻率方向之離散網格數。 128
TimeCount 設定時間方向之離散網格數。 2048
RemoveDC 此值決定在進行 Morlet Transform 分析前,是否先移除直流訊號。 True

範例(Example)

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

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



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



相關指令(Related Functions)

Short Term Fourier Transform、Enhanced Morlet Transform

參考資料(Reference)

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

  2. 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 函數處理,以解決高頻處能量發散的狀況。

說明(Description)

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

\[X_w(a,b) = \frac{1}{\sqrt{|(a)|}} \int_{-\infty}^{\infty} x(t) \Psi \left[ \frac{t-b}{a} \right] G(\sigma, b, t) dt\]

其中 \(G(\sigma, b, t)\) 為高斯函數:

\[G(\sigma, b, t) = \sqrt{\frac{1}{4\pi} \frac{1}{\sigma}} \mathrm{e}^{\frac{1}{4 \sigma} (t-b)^2}\]

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

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號 (Signal)、聲音訊號(Audio)輸入;輸出訊號格式為實數,單通道,Regular 的時頻(Spectra)資料。各參數定義詳如下表。


參數名稱 參數定義 預設值
FreqAxis 時頻圖頻率的分佈可以設定為是線性尺度,或是 Log 尺度。 LinearAxis
FreqMin; FreqMax 透過設定此參數,可決定繪圖時頻率的上下邊界。 0;\(f_s / 2\)
OverlappedFactor Gaussian window 移動時之重疊量,即為原式的 1
FreqCount 設定頻率方向之離散網格數。 128
TimeCount 設定時間方向之離散網格數。 2048
RemoveDC 此值決定在進行 Morlet Transform 分析前,是否先移除直流訊號。 True

範例(Example)

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

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


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



相關指令(Related Functions)

Short Term Fourier Transform、Morlet Transform

參考資料(Reference)

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

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

3.5.4 Hilbert Spectrum

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

說明(Description)

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

我們可對 \(x(t)\) 計算得到其 Hilbert Transform \(y(t)\) 如下:

\[H[x(t)] = y(t) = \frac{1}{\pi} P.V. \int_{-\infty}^{\infty} \frac{x(\tau)}{t-\tau} dt,\]

其中 \(y(t)\) 稱為 \(x(t)\) 的 Hilbert pair。上式相當於 \(x(t)\)\(1/t\) 的 Convolution 後,再除以 \(\pi\),即 \([x(t) * (1/t])] / \pi\) 。(P.V. 為 Cauchy Principle Value)

\[z(t) = x(t) + iy(t) = a(t) \mathrm{e}^{i\theta(t)}\]

\[a(t) = \sqrt{x^2 + y^2}\]

\[\theta(t) = \tan^{-1}{\frac{y(t)}{x(t)}}\]

定義 \(\omega(t) = \frac{d\theta(t)}{dt}\) 為瞬時角速度,而 \(\frac{1}{2\pi}\omega(t)\) 即為瞬時頻率。

因此,Hilbert Transform 後,可以得到 \(y(t)\)\(z(t)\)\(\omega(t)\)

如欲畫為時頻圖,則依時間 \(t\) 操作 \(a(t)\)\(\omega(t)\)

  1. 在時間為 \(t\) 時,有頻率 \(\omega(t)/{2 \pi} \to\) 可得在 Y軸上之高度

  2. 在時間為 \(t\) 時,有強度 \(|a(t)| \to\) 可得在 Z 軸上之大小

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

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

\[\sum x_j(t) = Re \left( \sum a_j(t) \mathrm{e}^{i\int \omega_j dt} \right)\]

其餘操作同 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 Window 工具列的,或以 Source / Import Data 讀取訊號檔,檔案 chirp1000.tfa 位在安裝目錄下 data 資料夾(預設為 C:\ Program Files\AnCad\Visual Signal\demo\Basic), 以 Viewer / Channel Viewer 繪出。



  2. 在 Chirp_1000後接上 Compute / HHT / RADAC EEMD 計算出 IMF (Intrinsic Mode Function),再以 Viewer / Channel Viewer 繪出。



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


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



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






相關指令(Related Functions)

RADAC EEMD、IMF Properties、TFA Viewer、Haar Transform

參考資料(Reference)

  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

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

說明(Description)

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

\[x(t) = \int_{-\infty}^{\infty} X(t, \omega) d\omega\]

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

\[x(\omega) = \int_{-\infty}^{\infty} X(t,\omega)dt\]

\(x(\omega)\) 為頻率域分佈,此即為 Marginal Frequency, 而若此 \(X(t, \omega)\) 是由 \(STFT[x(t)]\) 處理而得者,\(x(\omega)\) 將與做傅立葉轉換無異。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number),單通道(Single Channel),Regular 的時頻(Spectra) 資料輸入;輸出訊號格式為實數,單通道,Regular 的訊號(Signal)。

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


選項名稱 選項定義
Complex 分別對實、虛部積分。 \[Re[x(t)] = \int Re[X(t,\omega)] d\omega, \quad Im[x(t)] = \int Im[X(t,\omega)] d\omega\] \[Re[x(\omega)] = \int Re[X(t,\omega)] dt, \quad Im[x(\omega)] = \int Im[X(t,\omega)] dt\]
Magnitude 對時頻訊號取 \(Norm\) 後再積分。 \[x(t) = \int \sqrt{Re[X(t,\omega)]^2 + Im[X(t,\omega)]^2} d\omega\] \[x(\omega) = \int \sqrt{Re[X(t,\omega)]^2 + Im[X(t,\omega)]^2} dt\]
RealPart 對時頻訊號實部積分。 \[x(t) = \int Re[X(t,\omega)] d\omega\] \[x(\omega) = \int Re[X(t,\omega)] dt\]
ImagPart 對時頻訊號虛部積分。 \[x(t) = \int Im[X(t,\omega)] d\omega\] \[x(\omega) = \int Im[X(t,\omega)] dt\]
PowerSpectrum 對時頻訊號取 \(Norm^2\) 後再積分。 \[x(t) = \int Re[X(t,\omega)]^2 + Im[X(t,\omega)]^2 d\omega\] \[x(\omega) = \int Re[X(t,\omega)]^2 + Im[X(t,\omega)]^2 dt\]

範例(Example)

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

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



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




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



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



相關指令(Related Functions)

Short-Term Fourier Transform、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 觀看其結果。


相關指令(Related Functions)

OrderSpectrogram by STFT、OrderSpectrogram by EnMorlet、STFT

3.6 Transform

本模組為提供各種訊號處理常用之轉換運算。

  1. Fourier Transform / Inverse Fourier Transform:傅立葉轉換與反轉換。

  2. Discrete Cosine Transform / Inverse Discrete Cosine Transform:離散餘弦轉換與反轉換。

  3. Haar Wavelet Transform:小波轉換中的 Haar 轉換。

  4. Hilbert Transform / Inverse Hilbert Transform:Hilbert 轉換與反轉換。

  5. Auto Correlation:計算訊號的自相關性。

  6. Cross Correlation:計算訊號的互相關性。

  7. Multi-Scale Entropy(MSE):計算訊號之多尺度熵。

3.6.1 Fourier Transform and Inverse Fourier Transform

傅立葉轉換為將時間訊號轉換為頻率之訊號,藉此檢視訊號內之的頻率與振幅分佈,其結果可以用傅立葉反轉換計算回原始的時間訊號。此理論廣泛的應用於通信、聲音訊號、系統分析以及自然科學等領域。

說明(Description)

\(x_n\) 為輸入訊號的第 \(n\) 個資料,一般而言,則訊號 \(x_n\) 之離散傅立葉轉換為 \(X_k\) 定義如下:

\[X_k = \sum_{n=0}^{N-1} x_n \mathrm{e}^{-2\pi ikn/N}, \quad k \in \mathbb{Z}\]

其離散傅立葉反轉換之定義如下:

\[x_n = \frac{1}{N} \sum_{n=0}^{N-1} X_k \mathrm{e}^{2\pi ikn/N}, \quad n \in \mathbb{Z}\]

而在 Visual Signal 中,離散傅立葉轉換定義為:

\[X_k = \frac{2}{N} \sum_{n=0}^{N-1} x_n \mathrm{e}^{-2\pi ikn/N}, \quad 0 \leq k \leq {N-1}\]

離散傅立葉反轉定義為:

\[x_n = \sum_{n=0}^{N-1} X_k \mathrm{e}^{2\pi ikn/N}, \quad 0 \leq n \leq {N-1}\]

當輸入訊號,並不是周期性訊號 (既訊號頭與訊號尾並不連續且可微,此不良結果稱為洩漏效應 Spectral Leakage), 插入窗函數(window)可降低 Spectral Leakage 的效應。

在離散傅立葉轉換,Resolution 屬性可用以增加頻率上的解析度。訊號長度越長,訊號的周期性越明確,所以增大 Resolution 可以增加訊號長度,可以增加頻率上的解析度。

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel)或多通道 (Multi-Channel),Regular 的訊號(Signal)、聲音訊號 (Audio)輸入;輸出格式為複數,單通道,Regular 的訊號 (Signal)。參數定義與相關設定如下。


參數 RemoveDC 計算出訊號的平均值並減去,參數 Min 與 Max 可調整計算傅立葉轉換的頻率範圍,Window 參數內有六種常用的窗函數,目的是將離散訊號變的較為平滑並改善因 Spectral Leakage 而造成的數值誤差。

參數名稱 參數定義 預設值
RemoveDC 為消除訊號於縱軸之平移量,使訊號之平均值為零。 True
Min 設定傅立葉轉換的頻率下限。 0
Max 設定傅立葉轉換的頻率上限,大小依輸入訊號不同而異。 auto
Resolution 調整傅立葉轉換時採用之解析度,意思為將整個資料列重複接續在原資料後面。
如原資料數列為 1-100,若將 Resolution 設為 2,既為第 101 個數列值同第一個,第 102 個數列值同第二個…以此類推,持續至 200。 1
Window 以窗函數降低洩漏效應對轉換的影響,採用之函數包括 Barlett、Blackman、Flat Top、Hanning、Hamming、Gauss 等六種類型,
各函數之定義詳見下節窗函數說明。 none

窗函數說明(Window Function)

窗函數 定義與圖形
None \[w[n] = \begin{cases} 1, \quad 0 \leq n \leq {N-1}\\ 0, \quad \text{otherwise}\\ \end{cases}\]
Barlett \[w[n] = \begin{cases} \frac{2n}{N-1}, \quad 0 \leq n \leq \frac{N-1}{2}\\ 2-\frac{2n}{N-1}, \quad \frac{N-1}{2} \leq n \leq {N-1}\\ 0, \quad \text{otherwise}\\ \end{cases}\]
Blackman \[w[n] = \begin{cases} \frac{\alpha-1}{2}-\frac{1}{2}\cos\left(\frac{2\pi n}{N-1}\right) + \frac{\alpha}{2}\cos\left(\frac{4\pi n}{N-1}\right), \quad 0 \leq n \leq {N-1}\\ 0, \quad \text{otherwise}\\ \end{cases}\]
FlatTop \[w[n] = \begin{cases} 1 - 1.93\cos\left(\frac{2\pi n}{N-1}\right)+ 1.29\cos\left(\frac{4\pi n}{N-1}\right)- 0.388\cos\left(\frac{6\pi n}{N-1}\right)+ 0.032\cos\left(\frac{8\pi n}{N-1}\right), \quad 0 \leq n \leq {N-1}\\ 0, \quad \text{otherwise}\\ \end{cases}\]
Hanning \[w[n] = \begin{cases} 0.5-0.5\cos\left(\frac{2\pi n}{N-1}\right), \quad 0 \leq n \leq {N-1}\\ 0, \quad \text{otherwise}\\ \end{cases}\]
Hamming \[w[n] = \begin{cases} 0.54-0.46\cos\left(\frac{2\pi n}{N-1}\right), \quad 0 \leq n \leq {N-1}\\ 0, \quad \text{otherwise}\\ \end{cases}\]
Gauss \[w[n] = \begin{cases} \mathrm{e}^{-\frac{1}{2}\left(\frac{n-(N-1)/2}{\sigma(N-1)/2}\right)^2}, \quad \sigma \leq 0.5\\ 0, \quad \text{otherwise}\\ \end{cases}\]

下圖為傅立葉反轉換的參數設定。


傅立葉反轉換的參數為 Resolution,意義與上述傅立葉轉換中的參數雷同,調整後,傅立葉反轉換之訊號數量將依 Resolution 值倍增。

範例(Example)

本範例(Example)運用 Source 模組產生頻率 10 Hz,TimeLength 為 0.9 秒的 Sine Wave,與頻率 3 Hz;TimeLength 為 0.9 秒 的 Sine Wave 相加的訊號,先以 Fourier Transform 計算出訊號之頻譜,調整 Resolution 與 Window 提高頻譜的辨視度,再將頻譜以 IFFT 反轉換計算出原來的訊號。

  1. 於 Network 視窗新增 Source / Sine 建立 Sine Wave,於 Properties 視窗 Name 欄位修改名稱為 Sine, freq = 10,Signal frequency 預設即為 10 Hz,調整 TimeLength 欄位為 0.9 秒。



  2. 再新增一 Sine Wave,並設定 Signal frequency 為 3 Hz,TimeLength 為 0.9 秒的 Sine Wave,再新增 Compute / Math / Mixer 模組將兩訊號相加,並用 Viewer / Channel Viewer 繪出。




  3. 於 Mixer 圖示上選取 Compute / Transform / Fourier Transform,即可將該訊號作傅立葉轉換,用 Channel Viewer 將頻譜繪至左邊視窗。




    由於頻率集中在 20 Hz 以下,而 Viewer 的 Properties 內的 Xmax 預設是 500 Hz,因此將該欄位設為 30 Hz,以便於觀察頻譜。

  4. 經傅立葉轉換產生的頻譜圖,可辨識主要之頻率在 10 Hz 與 3 Hz 處,不過 3 Hz 附近的 Magnitude 被低估,可能與訊號頻率過低有關,現在調整 Resolution 來改善頻譜。於 Project 1 點選 FFT 圖示,設定 Properties / Resolution 等於 5,結果如下:

    改變 Resolution 後, 3 Hz 處之頻譜有明顯的改善,然而須留意改變 Resolution 後,FFT 輸出的資料長度也會隨之倍增,譬如本例輸入訊號長度為 901,經 FFT,預設 Resolution = 1 的時候,輸出長度為 451,Resolution = 5 時輸出長度則倍增五倍為 2255。


  5. 將 FFT 之 Resolution 調回 1,並在 FFT 圖示上點右鍵選擇 Compute / Transform / Inverse Fourier Transform,再用 Channel Viewer 輸出,即可得到原輸入訊號。



相關指令(Related Functions)

Short-Term Fourier TransformHaar Wavelet Transform

參考(Reference)

http://en.wikipedia.org/wiki/Fourier_transform

3.6.2 Discrete Cosine Transform and Inverse Cosine Transform

Discrete Cosine Transform(以下簡稱 DCT)離散餘弦轉換,可將訊號轉換為由 Cosine 構成的序列,類似於作離散傅立葉轉換的實數部份;訊號轉換後大部份能量分佈於低頻處。 其應用在音訊或影像方面的壓縮,以及求解偏微分方程的數值方法。

說明(Description)

常見的離散餘弦轉換可概分八種不同類型,本模組採用的是第二型。 令\(X = \{x_0, x_1, \dots, x_{N-1}\}\) 代表長度為 \(N\) 之時間序列, 則離散餘弦轉換 \(Y = \{y_0, y_1, \dots, y_{N-1}\}\) 定義如下:

\[y_k = C_k \sum_{n=0}^{N-1} x_n \cos \frac{(2n+1)\pi k}{2N}, \quad C_k = \begin{cases} \frac{1}{\sqrt{N}}, \quad \text{for} \quad k = 0\\ \sqrt{\frac{2}{N}}, \quad \text{for} \quad k > 0.\\ \end{cases}\]

其反轉換定義如下:

\[x_n = \sum_{k=0}^{N-1} C_k y_k \cos \frac{(2n+1)\pi k}{2N}, \quad C_k = \begin{cases} \frac{1}{\sqrt{N}}, \quad \text{for} \quad k = 0\\ \sqrt{\frac{2}{N}}, \quad \text{for} \quad k > 0.\\ \end{cases}\]

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel)或多通道 (Multi-Channel),Regular 的訊號 (Signal)、聲音訊號(Audio)輸入;輸出格式為實數,單通道,Regular 的訊號 (Signal)。離散餘弦轉換其參數設定如下,反轉換則無設定參數。


參數名稱 參數定義 預設值
RemoveDC 消除訊號於振幅方向的平移量 True
Window 訊號於轉換前是否需加窗函數濾波,詳細說明可參閱 FFT 內容。 none

範例(Example)

本範例(Example)運用 Source 產生頻率 10 Hz、TimeLength 為 0.9 秒的 Sine Wave 與頻率為 3 Hz,TimeLength 為 0.9 秒的 Sine Wave 相加的訊號。先以 DCT 計算出訊號之頻譜,再將頻譜以 Inverse DCT 計算出原來的訊號。

  1. 於 Network 視窗新增 Source / Sine 建立 Sine Wave,於 Properties 視窗調整 TimeLength 欄位為 0.9 秒。



  2. 如上面步驟新增一 Signal Frequency 為 3 Hz,TimeLength 為 0.9 秒的 Sine Wave,再新增 Compute / Math / Mixer 將兩訊號相加,並用 Viewer / Channel Viewer 繪出。




  3. 對 Mixer 後的訊號作 Compute / Transform / Discrete Cosine Transform,並將結果用 Channel Viewer 繪出。圖上訊號頻譜集中在低頻處。



  4. 接著作 Compute / Transform / Inverse Cosine Transform,即轉換回原訊號。



相關指令(Related Functions)

Fourier TransformChannel Viewer

參考(Reference)

http://en.wikipedia.org/wiki/Discrete_cosine_transform

3.6.3 Haar Wavelet Transform

Haar Wavelet 是首先發表的小波函式,由 Alfréd Haar 所提出,小波理論也自此發展。Haar Wavelet 是最簡單的小波,但由於不是連續函數,所以作為基本小波,性能並不是特別好。但 Haar 小波是最簡單的正交小波,為二進小波變換的基礎,仍有其存在的價值。

說明(Description)

Haar Wavelet 小波理論的母小波可由以下函式表示:

\[\Psi(t) = \begin{cases} 1, \quad 0 \leq t \leq \frac{1}{2}\\ -1, \quad \frac{1}{2} \leq t \leq 1\\ 0, \text{otherwise}\\ \end{cases}\]


而 Haar 的傅立葉變換為:

\[\psi(\omega) = \frac{1-2\mathrm{e}^{-i\omega/2}+\mathrm{e}^{-i\omega}}{i\omega}\]


參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號 (Signal)、聲音訊號(Audio)輸入;輸出格式為實數,多通道,Regular 的訊號 (Signal)。參數說明詳見下表。


參數名稱 參數定義 預設值
Filter Bank Level 正交基底數,從零開始。1是兩組基底,5是六組基底,以此類推。 1
Resampling Method 逼近方法,請參考 Resampling Linear

範例(Example)

  1. 製造一個方波全採用預設值,再疊加上一 White Noise 並設 Noise 振幅為 0.2。



  2. 將此混合後之訊號接上 Compute / Transform / Haar Transform,並設定 Filter Bank level 為 3:


    明顯方波的特性集中在第四條,而在原方波不連續點處,第二與三條依然強烈地保留此跳躍特性,高頻雜訊大多集中在第一條。

  3. 將第二與第三訊號相乘,以縮小雜訊所造成的影響,再與第四條相加。



    如此處理,可見雜訊被消除,原方波的特性被保留下來。

  4. 類似於 EMD,可將 HaarTransform 後的結果經由 Hilbert Spectrum 處理,即可看到時頻圖:



相關指令(Related Functions)

MixerMultiplierFourier TransformHilbert Spectrum

參考(Reference)

http://amath.colorado.edu/courses/4720/2000Spr/Labs/Haar/haar.html

3.6.4 Hilbert Transform

Hilbert Transform 為對輸入訊號 \(x(t)\)\(\frac{1}{\pi t}\) 作折積 (即 Convolution),將一個實數的時間訊號轉換為一個複數平面上的解析訊號, 而它的實部為輸入訊號,虛部則是對輸入訊號做折積後的部份, 根據解析訊號的性質可定義出訊號瞬時的瞬時頻率、瞬時振幅, 其應用在通訊系統及無線電訊號處理及分析上有相當不錯的成果。

說明(Description)

\(x(t)\) 代表時間序列,則它的 Hilbert Transform \(y(t)\) 定義為:

\[y(t) = H[x(t)] = \frac{1}{\pi} \textit{P.V.} \int_{-\infty}^{\infty} \frac{x(\tau)}{t-\tau} d\tau\]

並定義一解析函數 \(z(t)\)

\[z(t) = x(t) + i y(t) = a(t) \mathrm{e}^{i\theta(t)},\\ a(t) = \sqrt{x^2(t) + y^2(t)}, \theta(t) = \tan^{-1}\frac{y(t)}{x(t)}.\]

其中 \(a(t)\) 為振幅 (亦原訊號之包絡線),而 \(\theta(t)\) 為相角; 在解析函數 \(z(t)\) 的極座標表示中,可進一步定義 Hilbert Transform 的瞬時頻率 \(\omega(t)\)(instantaneous frequency):

\[\omega(t) = \frac{d\theta(t)}{dt}\]

除此之介紹外,可參考 Hilbert Spectrum

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel)或多通道 (Multi-Channel),Regular 的訊號(Signal)、聲音訊號(Audio) 輸入;輸出格式為複數,單通道,Regular 的訊號(Signal)。

Hilbert Transform 的參數為 Output Type,設定轉換結果呈現的格式,選項有 Complex、Split Complex、Phase、InstantFrequency 與 Instant Amplitude 等,其中 InstantFrequency 演算上可分為 Simple 法 與 Barne 法,各選項之意義詳見下表說明。

選項名稱 選項定義
Complex 輸出解析訊號 Z,資料儲存為複數。
SplitComplex 將解析訊號 Z 的實部 X 與虛部 Y 分作兩個通道,儲存其數值大小。
Phase 解析訊號 Z 的相位角對應各時間點的值(介於 -180 度 ~ 180 度之間)。
Unwrapped Phase 解析訊號 Z 的相位角對應各時間點的值(過 360 度後不歸零)。
InstantAmplitude 解析訊號 Z 的振幅 \(a(t)\) 對應各時間點的值。
InstantFrequency 解析訊號 Z 的相位角 \(\theta(t)\) 對時間的微分,既瞬時頻率 \(\omega(t)\)

範例(Example)

用 Source 模組產生一個 Sine Wave 訊號,直接作 Hilbert Transform,並藉調整 Hilbert Transform 的 Output Type 以瞭解各參數項之意義。

  1. 先用 Source / Sine Wave 產生 Sine Wave,用 Viewer / Channel Viewer 繪出訊號,再於 Sine 圖示點選 Compute / Transform / Hilbert Transform 直接作計算,Output Type 預設為 Complex,用 Viewer / Channel Viewer 繪出結果。(須注意輸出訊號是複數,而 Channel Viewer 的 Properties / YValueType 預設是 Magnitude,因此在 Viewer 上畫的是輸出訊號的 Magnitude)。




    若將 Sine 與 Hilbert Spectrum 輸出者畫在同一個 Channel Viewer上,可見 \(a(t)\) 確實為原訊號之包絡線。

    )

  2. 對訊號源 Sine 再作一次 Hilbert Transform,將 Properties 內 Hilbert / Output Type 調整為 Split Complex,這樣 Hilbert Transform 會把實、虛部分為兩個通道,用 Viewer / Channel Viewer 即繪出實部與虛部的值,其中黑線為實部,藍線為虛部。




    再將 Hibert2 再作一次 Hilbert Transform,將 Properties 內 Hilbert / Output Type 調整為 Phase, 可看到虛部為實部對相位角作 90∘的相位偏移 (Phase Shift)。



  3. 重覆步驟 2 的作法,僅改變 Output Type 為 InstantFrequency,圖示名稱也改為 Instant Frequency,結果為輸入訊號在每個時間點上的瞬間頻率。




  4. Channel Viewer 不能繪出解析函數 Z(t) 在複數平面的圖型,必需使用 Viewer / XY Plot 的功能。將 Split Complex 的輸出用 Viewer / XY Plot 即可繪出解析函數 Z(t) 在複數平面的圖型,改變 XY Plot 的 ViewerWidth 與 ViewerHeight 為相等的數值(如 350),就能使 X Y 軸的比例一樣。



相關指令(Related Functions)

XY PlotHilbert Spectrum

參考資料(Reference)

http://en.wikipedia.org/wiki/Hilbert_transform

3.6.5 Auto Correlation

自相關性就是一個時間訊號與它自身作折積 (Convolution),以作為相關性分析之依據,自我相關性分析可瞭解一個訊號在時間尺度上改變的有多快,及觀察訊號是否有週期性的變化。

說明(Description)

如果訊號為遍歷訊號(ergodic,即訊號的整體統計特性可以決定於一段隨機取樣),則自相關的的解析定義為:

\[\begin{aligned} R_{xx}(\tau) & = \lim_{T \to \infty} \frac{1}{T} \int_0^T x^*(t) \cdot x(t+\tau) dt\\ & = \lim_{T \to \infty} \frac{1}{T} \int_0^T x(t) \cdot x^*(t-\tau) dt \end{aligned}\]

其中 \(x^*(t)\)\(x(t)\) 之共軛,\(T\) 為訊號之週期,\(\tau\) 為時間延遲。

在離散化的情況下,令 \(X = \{x_0, x_1, \dots, x_{N-1}\}\) 代表長度為 \(N\) 之時間序列,相關公式為:

\[\begin{aligned} R_{XX}[j] & = \lim_{T \to \infty} \frac{1}{N} \sum_{i=0}^{N-1} x^*_ix_{i+j}\\ & = \lim_{T \to \infty} \frac{1}{N} \sum_{i=0}^{N-1} x_i x^*_{i-j} \end{aligned}\]

Visual Signal採用Intel IPP函式庫的公式:

\[R_{XX}[j] = \sum_{i=0}^{N-1} x^*_i x_{i+j}, \quad 0 \leq j < N \quad \text{(normal)},\]

並加以鏡像對稱化,即

\[R_{\textit{mirrored}}[j] = \begin{cases} R_{XX}[-j], \quad -N < j < 0\\[1em] R_{XX}[j], \quad 0 \leq j < N,\\ \end{cases}\]

其中 \(R_{\textit{mirrored}}\) 的長度為 \(2N-1\),以 \(R[j=0]\) 為對稱點。

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號 (Signal)、聲音訊號(Audio)輸入;輸出訊號格式為實數,單通道,Regular 的訊號。

範例(Example)

本範例分別對 Sine Wave 與一個 White Noise 訊號作自我相關分析,再以兩輸入訊號混合後之訊號作自我相關分析。

  1. 於 Network 新增一個 Source / Sine Wave,Properties / DataLength 改為 2 秒,訊號頻率為 10 Hz 不變,以此訊號作 Compute / Transform / AutoCorrelation ,並用 Viewer / Channel Viewer 繪出結果。




  2. 上圖即為 Sine Wave 在不同延遲(既原式中的 \(\tau\))下之自我的相關性,對 AutoCorr 的輸出作 FFT,可發現 AutoCorr 的輸出訊號其頻率也等於 10 Hz,驗證對一個週期性訊號作自我相關轉換,則結果保有與輸入訊號同樣的頻率。



  3. 創造一個 White Noise,再重複步驟1前半部份的作法,結果如下。



  4. 以 Compute / Channel / Mixer 將 Sine 與 Noise 混合後作自我相關分析,可得到下面的結果:


相關指令(Related Functions)

Cross CorrelationMixer

參考(Reference)

http://en.wikipedia.org/wiki/Autocorrelation

3.6.6 CrossCorrelation

CrossCorrelation,交互關聯是將一時間訊號與另一時間訊號作旋積 (Convolution),以作為相關性分析之依據;通常將不了解的訊號與一已知性質的訊號作交叉相關分析,藉此探求該訊號之特性。

說明(Description)

CrossCorrelation 之解析數學定義為:

\[(x * y)(t) = \int_{-\infty}^{\infty} x^*(t) y(t+\tau) d\tau,\]

其中 \(x^*(t)\)\(x(t)\) 之共軛,\(\tau\) 為時間延遲。

在離散數列的情況下,假設 \(X = \{x_0, x_1, \dots, x_{N-1}\}\)\(Y = \{y_0, y_1, \dots, y_{M-1}\}\) 在延遲為 \(j\) 的交互關聯定義為:

\[R_{XY}[j] = \sum_{i=0}^{N-1}x^*_i y_{i+j}, \quad -(N-1) \leq j < M\]

交叉相關轉換結果訊號長度為 \(L=N+M-1\)\(R_{XY}[j]\) 不具對稱性,其最大值遵守下述的不等式:

\[R_{XY}[j] \leq \sqrt{R_{XX}[0] \cdot R_{YY}[0]}\]

若對兩輸入訊號在統計上來說是兩獨立事件,則 \(R_{XY}[j] = R_{YX}[j]\);若是分析訊號對自身的相關性, 計算 \(R_{XX}[j]\),此分析即為Auto Correlation。

Visual Signal採用Intel IPP函式庫的公式:

\[R_{XY}[j] = \sum_{i=0}^{N-1}x^*_i y_{i+j+a}, \quad 0 \leq j < L, \quad -L \leq a < L\]

其中

\[y_j = \begin{cases} y_j, \quad 0 \leq j < M\\[1em] 0, \quad \text{otherwise}\\ \end{cases}\]

並加以鏡像化,即:

\[R_{\textit{mirrored}}[j] = \begin{cases} R_{YX}[j + L], \quad -M < j < 0, \quad a = -L\\[1em] R_{XY}[L - j - 1], \quad 0 \leq j < N, \quad a = -(L-1)\\ \end{cases}\]

在此定義下,如果 \(X\) 訊號與 \(Y\) 訊號有相關性,\(R_{\textit{mirrored}}\) 中最大波峰所位於的時間 (由 \(j=0\) 開始算起)即為 \(Y\) 訊號相對於 \(X\) 訊號的延遲時間。

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號 (Signal)、聲音訊號(Audio) 輸入,且須有兩個輸入訊號;輸出訊號格式為實數,單通道,Regular 的訊號。輸入兩個訊號長 (可以不一樣,不過限制是兩訊號的取樣頻率與時間單位必須一樣)。

範例(Example)

先產生一組 White Noise 作原訊號,截取其中一段資料,產生另一個雜訊合成出第二組訊號,以這兩組訊號作 Cross Correlation 觀察兩者間關係。

  1. 產生一個 Source / Noise,Properties / TimeLength改為 5 秒,再用 Viewer / Channel Viewer 繪出。




  2. 點選 Noise,按右鍵選擇 Compute / Channel / Data Selection,於 Properties / EndPosition欄改為 3.5,然後接著連上 Compute / Channel / Time Shift,Properties / Shift Value 設為 1.5,目的為將原訊號 0 ~ 3.5 秒的資料移至新訊號 1.5 ~ 5 秒處。




  3. 再產生一組 TimeLength 為 1.5 秒的 Noise,將此 Noise 與 Time Shift 後的訊號作 Compute / Channel / Mixer 形成第二個訊號源,再以 Channel Viewer 繪出。



  4. 將訊號 Noise 與 Mixer 一起作 Cross Correlation,再用 Channel Viewer 繪出結果。



    上圖代表輸入訊號 1 與訊號 2 在時間點為 -1.5 sec 時有很強的相關性,基本上第二個輸入訊號在 1.5 sec 至 5 sec 的資料與第一個輸入訊號 0 秒至 3.5 秒的資料是完全一樣的,此結果符合兩輸入訊號的特性。

相關指令(Related Functions)

Auto CorrelationData SelectionMixerTime Shift

3.6.7 MSE

MSE 是 Multi-Scale Entropy(多尺度熵) 之縮寫,是分析系統的時間序列的複雜度。複雜度越高代表系統愈健康。此法可應用於分析生物 (biological)、地球科學(earth science)及機械振動(mechanical vibration) 的訊號。

此複雜度的意義與傳統熵(Entropy) 值有所不同;在傳統熵值觀念中若系統愈規則熵值愈低反之系統愈混亂熵值愈高。在新的観念中,複雜度愈高代表系統愈健康 (在此高低是相對量),系統太規則或系統太混亂都是不健康的狀況 (因為此時複雜度較健康系統低)。將每個尺度的時間序列,計算出對應的熵值,即為多尺度訊號熵分析,訊號的複雜度則展現在多種尺度下熵值的變化。



本模組中熵的計算的採用 Sample Entropy。它改進了 Approximate Entropy;更具體的說,它比 Approximate Entropy 所需的資料量更短。

多尺度的概念,假設尺度(scale) 為 \(\tau\) 則該尺度下之時間序列 \(y_j^{(x)}\) 經定義表示為:

\[f_j^{(x)} = \frac{1}{T} \sum_{i-(j-1)x+1}^{jx} f_i, \quad 1 \leq j \leq \frac{N}{\tau}\]

數列中每個點 \(f_j^{(x)}\) 即為每尺度內之平均數。對於每個尺度 \(\tau\) 計算 Sample Entropy :

\[S_E(scale, m, r, N) = \ln \frac{\displaystyle\sum_{i=1}^{N-m} n_i^m}{\displaystyle\sum_{i=1}^{N-m-1} n_i^{m+1}} = \ln \frac{n_n}{n_d}\]

在上式中,\(n_i^m\) 表式滿足 \(d[f_m(i), f_m(j)] \leq r\),其中 \(d\) 是為歐幾里德幾何學中的距離函數 :

\[d[f_m(i),f_m(j)] = \max\{|f(i+k)-f(j+k)|, 0 \leq k \leq {m-1}\}\]

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel)或多通道 (Multi-Channel),Regular 的訊號(Signal)、聲音訊號(Audio) 輸入;輸出訊號格式為實數,單通道或多通道,Regular 的訊號。參數說明詳見下表。


參數名稱 參數定義 預設值
MinScale 最小尺度。作多尺度分析時設定尺度縮放之下限值 1
MaxScale 最大尺度。作多尺度分析時設定尺度縮放之上限值 20
ScaleStep 尺度步長,於尺度上限以下取一步幅長,依此步幅長遞增(減)尺度至最大(小)尺度。 預設值 = 1
MatchPoint 設定比較相似度之數列長度 2
MatchTolerance 判斷相似度所設定的容忍誤差值,即原式中的 r 0.15

範例(Example)

本範例針對人體生理訊號為分析:

  1. 於 Project 視窗下,載入兩筆資料,分別為年輕人及老年人站立時的 Center of Pressure(COP),在 X 方向隨時間的變化,利用 Viewer / Channel Viewer 觀察結果。


  2. 為了解保持身體平衡的能力,再將其原始訊號經過微分,得到 COP 的速度變化,如下圖。


  3. 最後將兩速度訊號經過 Compute / Transform / MSE 計算,利用 Viewer / Channel Viewer 觀察結果,發現年長者平衡感較差,COP 之改變較無彈性,是故熵隨尺度變大而衰減;而年輕人平衡感好,COP 移動靈活,熵幾不隨尺度而改變。



  4. 再討論另一個例子,18 歲健康年輕人及 55 歲健康中年人,分別量取其 ECG,ECG 結果如下圖顯示。


  5. 分別將兩個人的 ECG 分別計算出兩心跳間的時距,即所謂的 R-R Interval ,最後利用 MSE 計算,其結果如下圖。並可以解釋年輕人的 ECG 與中年人的 ECG 作比較,年輕人的訊號複雜度較中年人來的高,年輕人心臟比較能應付外在各種變化,並進行調節心臟跳動。


相關指令(Related Functions)

NoiseR-R IntervalChannel Viewer

參考資料(Reference)

  1. Pincus, S. M., Approximate entropy as a measure of system complexity, 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.7 HHT(Hilbert-Huang Transform)

Hilbert-Huang Transform(HHT) 是一種根據經驗而來的訊號處理方式,利用這個方式可由非穩態(Unsteady) 及非線性(Nonlinear) 的訊號中提取有物理意義的資訊。一般傳統的訊號處理方式多半建立於線性和穩態的假設上,一直到近年才發展出一些數學方法處理非穩態或非線性的訊號,但現實生活中很多情況是需要處理同時具有非穩態和非線性的訊號,這正是做訊號處理時令人頭痛的難題,然而由黃鍔博士所發展的一套數學方法─ Hilbert-Huang Transform(HHT)即針對上述情況提供一種解決方案。HHT 計算包含兩個部份:EMD(Empirical Mode Decomposition)和 Hilbert Spectrum,結合 EMD 與 Hilbert Transform 讓此方法具有處理非穩態且非線性訊號的潛力,特別是需要同時知道時間、頻率、能量的變化關係時。在多數研究中,HHT 可得到更豐富的時間、頻率、能量的關係,且在很多情形下,我們可藉由 HHT 提取出更有物理意義的資訊,從而解釋物理現像,並解決工程問題。

  1. RCADA EEMD:中央大學數據中心所提供的一種 EEMD 演算法。

  2. IMFProperty:列出各 IMF 的過零點個數、極值個數、過零點個數的平均頻率、各 IMF 間的正交性、各 IMF 具有的功率比例。

  3. AnCAD EMD(*Only in Professional): 逸奇科技所提供的各種不同的 EMD 拆解演算法,提供使用者更多選擇。

3.7.1 RCADA EEMD

RCADA EEMD 為中央大學數據中心的最新(2009)EEMD 演算法,此模組的預設條件與數據中心提供 MATLAB 原始碼的 EEMD 函式相同,但本模組更提供多種邊界條件、亂數產生方式等參數選擇,以供使用者選擇,並且運算速度較原本數據中心提供 MATLAB 原始碼增加 200 倍以上。

說明(Description)

詳請參考http://rcada.ncu.edu.tw/research1.htm

參數設定(Properties)

本模組接受實數(Real Number)訊號。RCADA EEMD 僅接受單通道(Single Channel), Regular 的訊號(Signal)或聲音訊號(Audio)輸入。


參數名稱 參數定義 預設值
SplineType 提供三種邊界條件(Boundary Conditions), 包括 Clamped Spline、Nature Cubic Spline、Not A Knot。下面表格將說明。 NotAKnot
Number of Ensembles   運行 EEMD 時,添加 Noise 的次數,並且會計算出多少組的 IMF 結果再進行平均。 例如預設為 20,將原訊號加入 20 次的 Noise ,並個別計算出20組 IMF 結果,並平均之。 20
Noise Level 即在運行 EEMD 時,添加的 Noise 之振盪,相對於原本訊號標準差之比值。 0.1
Max. Sifting Iterations 進行 EEMD 求解時,疊代次數的上限。 10
Number of IMFs 拆解出來的 IMF 通道總數。 -1
Modify Envelope Endpoints 設定包絡線端點是否要進行外插計算。 True
Use Guassian Noise 設定是否使用 Guassian Noise,否則將使用 White Noise。 Fasle
邊界條件 定義
NotAKnot 邊界(最鄰近)上的點,其三次導數相等。此預設邊界條件等同於中央大學數據中心的 MATLAB 原始碼的 EEMD, 但由於 Visual Signal 與 MATLAB的亂數產生不相同,拆解結果會稍有不同。
NatureCubicSpline 邊界上的點,其二次導數為零。
ClampedSpline 邊界上的點,其一次導數為定值(=0)。

範例(Example)

  1. 本範例是採用中央大學網站上提供的範例資料 (gsta.dat)。為一年一筆之地球表面平均溫度之資料,可以參考 C:\Program Files\AnCAD\Visual Signal\demo\HHT\demo68.vsn


  2. 再將原訊號連接 Compute / HHT / RCADA EEMD 做拆解,參數設定為預設,其結果如下,注意到 Residual (即最後一條訊號,淡藍色線條),代表溫度的趨勢:



  3. 再對相同的訊號,比較 RCADA 提供 MATLAB 原始碼在 MATLAB 程式 與 Visual Signal的速度, \(\sin(5\cdot 2\pi t)+\sin(30\cdot 2\pi t)+\sin(50\cdot 2\pi t)+\sin(100\cdot 2\pi t)\), 訊號長度為 20000,RCADA EEMD 拆解後結果如下:



在 Intel Dual Core E6300(2.8GHz)的電腦上,Visual Singal 的所花費計算時間為 1.65 秒,MATLAB為376.60 秒, 速度相差超過 200 倍。

  1. 先參考 C: \ Program Files \ AnCAD \ Visual Signal \ demo \ HHT 中的 demo68_1,裡面資料(Wave)為錄製一段 Hello 的聲音,如下兩張圖。



  2. 在 RCADA : EEMD 的參數中,Number of Ensembles 為 200,Noise Level 為 0.25,並觀察第三個通道的訊號,結果如下圖。。


  3. 在 RCADA : EEMD2 的參數中,Number of Ensembles 為 1,Noise Level 為 0.1,並觀察第三個通道的訊號,結果如下圖。。


兩個拆解出來的訊號聽起來,發現第一個 EEMD 拆解出來的聲音比較清楚,第二個 EEMD 的結果含有一些噪音干擾。

相關指令(Related Functions)

RCADA Instant Frequency、RCADA Spectrum、AnCAD EMD

參考資料(Reference)

1.http://rcada.ncu.edu.tw/research1_clip_reference.htm

2. Norden E. Huang, Zheng Shen, Steven R. Long, Manli C. Wu, Hsing H. Shih, Quanan Zheng, Nai-Chyuan Yen, Chi Chao Tung and Henry H.Liu :“The Empirical Mode Decomposition and the Hilbert Spectrum for Nonlinear and Non-Stationary Time Series Analysis” , Proceedings of the Royal Society , Vol.454, No.1971, 1998

3. Huang, N. E., M. L. Wu, S. R. Long, S. S. Shen, W. D. Qu, P. Gloersen, and K. L. Fan (2003): “A confidence limit for the Empirical Mode Decomposition and Hilbert Spectral Analysis”, Proc. Roy. Soc. London, 459A, 2317-2345.

4. ZhaoHua Wu and Norden E. Huang, 2009, " Ensemble Empirical Mode Decomposition : A Noise-Assisted Data Analysis Method " , Advances in Adaptive Data Analysis, Vol. 1, No. 1 (2009) 1–41

3.7.2 IMF Property

訊號經過各種 EMD 運算後,可分解成數個 IMF 和一個 剩餘訊號,IMF property 的功能是觀察各 IMF 的特性,目的是了解各種 EMD 是否適當的將訊號分離。

說明(Description)

EMD 分解出的 IMF 有零點和極值之數量差小於一的特性,為驗證 EMD 分解訊號的能力,可由此元件觀察各 IMF 的特性。此元件列出各 IMF 的過零點個數、極值個數、過零點個數的平均頻率、各 IMF 間的正交性、各 IMF 具有的功率比例。

參數設定(Properties)


參數名稱 參數定義
General Properties 顯示個通道訊號的過零點次數(Zero Crossings)、局部最大(或最小)值的次數(Extreme Counts)、 平均瞬時頻率、平均瞬時週期,與各通道能量比例(Power)。其中平均瞬時頻率是以過零點次數與局部最大(或最小)值的次數來概略估計其訊號頻率, 而各通道的能量為各個通道佔原訊號總能量(不算殘餘訊號 Residual)的百分比。
Orthogonality 輸入訊號之各通道彼此之間的正交性矩陣。

範例(Example)

範例以 IMF Property 元件觀察 RCADA EEMD 運算分解後之訊號特性,點選 EMD 運算元件,按右鍵選擇 Compute / HHT / IMF Property,如下圖所示。分析的各個 IMF 特性可在屬性中,點選 Report… 屬性,其右方會出現一按鈕,點選按鈕可顯示此元件的分析結果,顯示的結果如下。




左上角第一個欄位是選擇顯示方法,可為一般(General)、科學記號 (Scientific)以及固定小數點位數 (Fixed);第二欄是決定位數,對一般決定總位數,而對固定小數點位數與科學記號是只決定小數點位數。第三個按鈕是決定前兩者後,更新顯示結果。

相關指令(Related Functions)

EMD、Channel Viewer

3.7.3 AnCAD EMD*

*Only in Professional*

EMD 全名為 Empirical Mode Decomposition,是個依照訊號特性將訊號分解成數個 IMFs (Intrinsic Mode Functions) 和一個剩餘訊號(Residual) 的數學工具。較傅立葉級數分解更為優異的是,EMD 分出的 IMF ,其振幅和瞬時頻率可以隨時間變化,並包留了原訊號中非線性和非穩態的特性。

說明(Description)

EMD 可依據訊號特性將原訊號分解為多個子訊號。相較於其他數學方法,EMD 是一個適應性的運算方法,無論訊號為何,這個方法皆可以把訊號初步分解成較具意義的分量,但是要分得好就需要一點經驗與技巧了。這個訊號處理方法假設每一個訊號內部都包含不同的簡單振動模態,此振動模態稱為 Intrinsic Mode Function(IMF),理想的 IMF 均包含下面幾個特性:

  1. 零點和極值的數量相差在一個以下。

  2. 任一處的上包絡線(由局部極大值定義)和下包絡線(由局部極小值定義) 的平均值為零(即對稱)。

Sifting 是做 EMD 計算時,從訊號中提取 IMF 的過程,依據上述對 IMF 的描述, Sifting 的運算流程如下:

  1. 取得一段要處理的訊號 \(x(t)\),找出其局部極大值所在點,並以 Cubic Spline 方法將所有局部極大值相連,可得此訊號的上包絡線。

  2. 同樣的找出此訊號的局部極小值並以 Cubic Spline 方法相連,可得訊號的下包絡線。

  3. 計算上包絡線和下包絡線的平均值,可得一平均線,令此平均線為 \(m(t)\)

  4. 將原訊號和平均線相減,令相減後所得的訊號為 \(h(t)\),則 \(h(t) = x(t) - m(t)\)

上述由 \(x(t)\) 減去上下包絡線的平均線 \(m(t)\),求得 \(h(t)\) 的過程即為 Sifting。

本模組提供兩種 Sifting 疊代終止準則:

  1. Cauchy 收斂測試,疊代過程中連續兩次 Sifting 後的訊號標準差 \(SD_k\) (參數 StandardDeviation)小於一給定的數值,則終止後續的 Sifting 動作

    \[SD_k = \frac{\sum_{t=0}^T|h_{k-1}(t)-h_k(t)|^2}{\sum_{t=0}^T h_{k-1}^2(t)}\]

  2. 先選定一個篩選次數上限,將原訊號做 Sifting,直到新訊號過零點個數和極值個數之差小於 1 為止,但篩選次數不超過所選定的次數上限(參數 Max. Sifting Iterations)。*注意此條件與論文中的不一樣,但是為避免篩選後的訊號無法收斂到終止條件,而做此設計。

1 與 2 兩種準則是同時比較,兩者只要滿足其一即達收斂標準,Sifting 動作就結束。Visual Signal 會將拆解出來的結果依高頻至低頻方式輸出 (Channel 1 頻率最高,Channel 2 次之,以此類推),殘餘訊號放在最後一條 Channel。

EMD 的運算如下:將一原始訊號做若干次 Sifting 後,訊號上、下包絡線的平均線會漸漸和水平軸重合,直至訊號的上、下包絡線對稱於水平軸。此新訊號即為第一個 IMF,故稱為 IMF1。將 IMF1 從原始訊號減去,得到第一個殘餘訊號 (First Residual),稱為 r1,將 r1 依同樣方式做若干次 Sifting,可獲得 IMF2,再將 IMF2 從 r1 扣除,得到第二個殘餘訊號 r2,依此規則重複計算,則可將原始訊號拆解成數個 IMF 和最後的殘餘訊號,此即為 EMD 的運算流程。

參數設定(Properties)

本模組接受實數(Real Number)、單通道(Single Channel),Regular 的訊號 (Signal)或聲音訊號(Audio)輸入,其參數意義與設定如下:


參數名稱 參數定義 預設值
Method 設定 EMD 運算時的方式,以下介紹可設定的功能:   
1. Standard:以一般標準方式計算。
2. IntermittencyTest:訊號中若有個極微幅的震動會產生一個局部極大值和及局部小值, 利用此方法可適當忽略過於微小振動產生局部極值。
3. EnsembleEMD:於輸入訊號上加一微小振幅的 white noise 後再作 EMD,此法無需預先設定參數, 即可有效分離各尺度之IMF。
IntermittencyTest
Normalized IMF 將所有 IMF 正規化。 False
StandardDeviation 設定門檻值,即公式中的 \(SD_k\)。利用 Sifting前後訊號的平方差小於門檻值時停止 Sifting。 見說明疊代終止準則 1。 0.3
Max. Sifting Iterations Sifting 的最高次數。見說明疊代終止準則 2。 10
MaxImfCount 決定每次 EMD 運算時,提取 IMF 的最大個數。 11

若是 Method 為 IntermittencyTest,必須有多一個參數 Intermittency 要設定,如下表。

參數名稱 參數定義 預設值
Intermittency 兩極值間的最大的點數間距。超過的此範圍的極值會被忽略。此數值在每一模態中會自動增加成前一模態的兩倍。 4

若是 Method 為 EnsembleEMD,必須有多兩個參數要設定,如下表。

參數名稱 參數定義 預設值
Number of Ensembles 運行 EEMD 時,添加 Noise 的次數,並且會計算出多少組的 IMF 結果再進行平均。例如預設為 20, 將原訊號加入 20 次的 Noise ,並個別計算出 20 組 IMF 結果,並平均之。 20
Noise Level 即在運行 EEMD 時,添加的 Noise 之振盪,相對於原本訊號標準差之比值。 0.1

範例(Example)

示範一混合訊號作 EMD 分析:

  1. 於 Project 視窗選擇 Source / Sine Wave 產生訊號,並設定其參數,時間長度為 1.5 秒,頻率為 20 Hz;並再設定一 Custom Wave 為 ‵exp(1.8*t)‵,一樣時間長度為 1.5 秒。以 Compute / Math / Mixer 混合兩者:



  2. 在 Mixer 後接上 Compute / HHT / EMD,再以 Channel Viewer 繪製計算結果,於 Viewer 的 Properties / Channel / Multi-Channel Display 選擇 List,將每個 IMF 分開顯示,其圖示如下。




在此可發現原本的 Sine 函數與 Exponential 函數被徹底拆解,原本的 Sine 為 Channel 4,Exponential 函數則為殘餘訊號 (因為 Exponential 函數毫無週期性,無法再從中拆解出其他訊號)。其餘三筆訊號(Channel 1 ~3) 是 EMD 在計算上過渡出來的結果,並無實質意義。

特別注意,EMD 具有自發性的依頻率拆解能力。若我們將不同頻率的 Sine Wave 混合,間隔 30 Hz,由頻率 10 Hz 至 130 Hz,再以 EMD 處理後接上傅立葉轉換,可得下面結果:





在此可發現 EMD 把訊號依頻率分離,但並沒有分的十分清楚。

EMD 使用上多結合 Hilbert transform 與 Hilbert Spectrum,做為 HHT 標準程序。

EMD 輸出結果接上 Channel Switch ,選擇有興趣的通道後再連結上 Hilbert Transform 可求得該通道之瞬時頻率;亦可將 EMD 輸出直接接上 Hilbert Spectrum,觀查 EMD 拆解後的 HHT 時頻圖。

相關指令(Related Functions)

Hilbert Transform、IMF Properties、Hilbert Spectrum

參考資料(Reference)

Norden E. Huang, Samuel S.P. Shen, “Hilbert-Huang transform and its applications,” London : World Scientific, c2005

3.8 Enhanced*

*This module is available in Professional only*

  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 MSE:快速版本的 Multi-Scale Entropy。

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

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

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

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

3.8.1 Fast Short-Term Fourier Transform*

*Only in Professional*

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

說明(Description)

此模組為快速版本之 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 \times \text{SampleFrequency}\)
FreqResolution 此值會影響到窗函數的大小,設定的越低,窗函數會越長。 \(\text{SampleFrequency} / 20\)
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 )。


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

  2. 地震儀資料

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


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



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


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


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


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


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

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

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



  4. 以二十萬點資料的 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 TransformEnhanced Morlet Transform

參考資料

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

3.8.2 Remove Bump*

*Only in Professional*

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


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


說明

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

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

  2. 另外判斷該點資料之斜率是否超過臨界斜率 \(S_{crit}\)

在此說明 \(J\)\(S\) 之不同:

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



這六點(t 從 0.4s 到 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 後的修正訊號。 S Bump:Bump 或Jump 的訊號值。 ingal
Jump Threshlod \(J_{crit}\) 臨界遞增值:遞增 / 減值超過此值者,將被視為 Jump / Bump 的候選值 整條訊號中,最大遞增值的 90%
Jump Threshold Ratio 設定 \(J\) 的比例係數 \(J_{ratio}\):整條訊號最大的 遞增 / 減值 為 \(J_{max}\), 則設 \(J_{crit} = J_{max} \times J_{ratio}\) 0.3
SlopeThreshold \(S_{crit}\) 臨界斜率:若斜率之絕對值超過此值者,為 Jump / Bump 候選值 整條訊號中,最大斜率的 90%
Slope Threshold Ratio 設定 \(S\) 的比例係數 \(S_{ratio}\):整條訊號斜率最大絕對值為 \(S_{max}\), 則設 \(S_{crit} = S_{max} \times S_{ratio}\) 0.3
Number of iterations 重複次數,若參數的選擇不佳,則有可能程式無法將不連續處完全移除。 此參數為重複尋不連續處之次數(功用等同於將此模組重複串接)。 1
StartPosition 欲處理訊號不連續處之時間起點 整個訊號的時間起點
EndPosition 欲處理訊號不連續處之時間終點 整個訊號的時間終點

範例(Example)

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


再將原始訊號連接 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 SelectionDiff

3.8.3 Fast Trend Estimater*

*Only in Professional*

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 \times TrendFrequency\] \[FH = 4 \times TrendFrequency\] 0
Frequency Unit 設定 TrendFrequency 的單位。 Default
Default Frequency Unit 輸入訊號的經傅立葉轉換後的原始單位。 Hz

範例(Example)

  1. 請參考Trend Estimator。

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


相關指令

Fast Iterative Gaussian FilterTrend EstimaterIterative 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*

*Only in Professional*

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 EstimaterIterative 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*

*Only in Professional*

原本 MSE 演算法中,計算一個 Scale 所耗的時間為訊號長度 N 的平方之正比(\(O(N^2)\))。 本元件採用了Sort(同為 \(O(M^2)\),但比例係數較小)以及 K-D Tree(\(O(M^{3/2})\),但需使用較多的記憶體) 兩種演算方法減少計算時間。

參數設定(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,其餘參數皆為預設值。


相關指令

MSENoiseViewer

參考資料

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 Teager*

*Only in Professional*

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

說明

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

\[x(t) = a(t) \cos\bigg[\Omega_c t + \Omega_m \int_0^t q(m) dm + \theta\bigg],\]

其中 \(\Omega_c\) 為 Carrier frequency,\(q(t)\) 為 information signal \(|q(t)| < 1\)\(\Omega_m\) 為最大偏差頻率 \(0 < \Omega_m < \Omega_c\)\(a(t)\) 為瞬時振幅,\(\theta\) 為初始相角。

令定義 Teager 能量運算子為:

\[\Psi_d[x(t)] = \frac{x^2(t)-x(t-\Delta t) \cdot x(t+\Delta t)}{T^2},\]

其中 \(T\) 為取樣週期。在線性調變,與調變波為窄波的基礎下,代入 \(x(t)\) 上式可有下面近似:

\[\Psi[x(t)] \approx a^2(t) \sin^2(\Omega_i(t))\]

另外再定義 \(y(t) = x(t) - x(t-\Delta t)\)(backward difference,反向差),可得:

\[\frac{1}{2}(\Psi[x(t)]+\Psi[y(t)]) \approx 4a^2(t) \sin^2\bigg[\frac{\Omega_i(t)}{2}\bigg] \sin^2[\Omega_i(t)]\]

此時可算出瞬時頻率與瞬時振幅:

\[\Omega_i(t) = \cos^{-1}\bigg(1 - \frac{\Psi[y(t)]+\Psi[y(t+\Delta t)]}{4 \Psi[x(t)]}\bigg)\]

\[|a(t)| = \Bigg< \frac{\Psi[x(t)]} {\frac{\Psi[y(t)]+\Psi[y(t+\Delta t)]}{4 \Psi[x(t)]}}\Bigg>\]

參數設定(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 顯示結果。


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


3.8.7 Rolling MSE*

*Only in Professional*

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

說明

首先對原訊號(點數 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.8 PCA*

*Only in Professional*

說明

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

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

註:

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

其中,非相關的定義為:\(E(xy)=E(x)E(y)\),其中 \(E\) 為期望值。獨立的定義為:

\[p(xy)=p(x) \cdot p(y) \implies E(g(x)g(y)) = E(g(x)) \cdot E(g(y))\]

參數設定(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 的成分。


相關指令

ICA

參考資料

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.9 ICA*

*Only in Professional*

說明(Description)

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

問題描述:

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

假設輸入的混合訊號 \(M\)\(d_m\) 筆長度為 \(N\),輸出的拆解後原訊號 \(S\)\(d_s\) 筆長度為 \(N\), ICA 的問題是要找一個矩陣 \(W\) 與獨立訊號 \(S\) 滿足 \(S = WM\), 亦可寫成 \(M = AS, A=M^-1\), 其中 \(A\)\(d_s \times d_m\) 矩陣,\(W\)\(d_m \times d_s\) 矩陣。

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

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

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

演算法說明:

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

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

\[max(f) \to \frac{df}{dW} = 0\\ W_{n+1} = W_n - \frac{f(W_n)}{\frac{\Delta f}{\Delta W_n}}\\ n: 1 \to \text{Max Iteration}\]

  1. 在求解時,可一次求 \(W\) 的一個分量(一列),稱之 Deflation Method;或同時求得所有 \(W\) 的分量,稱之 Symmetric Method。

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

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

  3. \(M=AS\) 式中,\(A\)\(S\) 皆為未知 ,故可改寫為 \(m = \frac{1}{\alpha_i} A_i(\alpha_i S_i)\),其中 \(\alpha\) 為任意非零常數。則信號 \(\alpha_i S_i\) 亦為一解。這是 ICA 演算法本身的模糊性 (Ambiguity)。若 \(\alpha_i\) 符號顛倒則訊號正負號將顛倒,有時顛倒的訊號會造成困擾:如雞尾酒派對問題中,矩陣 \(A\) 的的每一個元素,因為為非負的數(距離不該有負號)。因此,本模組提供選項 Flip Signal Sign ,會自動將 \(A\) 的每一個元素調整為非負值。

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

參數設定(Properties)

本模組接受實數(Real Number),多通道(Multi-Channel),Regular 的訊號 (Signal)或聲音訊號(Audio)的輸入。


參數名稱 參數定義 預設值
ICA method ICA 的求解方法,可為 Symmetric 或 Deflation。 Symmetric
Cost function 求解 ICA 時所用的分佈函數,有 hyperbolicTan、skewness 以及 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,分別聽拆解出來各別的蛙叫聲



相關指令

PCA

參考資料(Reference)

  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.

3.9 Matrix*

*This module is available in Professional only*

3.9.1 Matrix Operation*

*Only in Professional*

說明(Description)

本模組用以處理 \(A\)\(B\) 兩矩陣間的計算問題:

  1. 矩陣加法:\(A+B = a_{ij}+b_{ij}\),其中矩陣 \(A\)\(B\) 的大小必須一致,皆為 \(M \times N\)

  2. 矩陣減法:\(A-B = a_{ij}-b_{ij}\),矩陣 \(A\)\(B\) 的大小必須一致,皆為 \(M \times N\)

  3. 矩陣乘法:\(A \times B = \sum_k a_{ik} b_{kj}\)\(A\) 的大小為 \(M \times N\)\(B\) 的大小為 \(N \times P\)

  4. 矩陣左除法:\(A\backslash B = A^{-1}B\)\(A\) 的大小為 \(M \times N\)\(B\) 的大小為 \(M \times P\)

  5. 矩陣右除法:\(A/B = AB^{-1}\)\(A\) 的大小為 \(M \times N\)\(B\) 的大小為 \(P \times N\)

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number)、Numeric 的數值資料,而輸出亦為同型態的資料。


參數名稱 參數定義 預設值
Input A \(A\) 矩陣的名字 僅輸出供使用者參考
Input B \(B\) 矩陣的名字 僅輸出供使用者參考
alpha \(A\) 的加權數\(\alpha\),詳見下。 1
Beta \(B\) 的加權數\(\beta\),詳見下。 1
Operation 運算元,可為加,減,乘,左除與右除。 addition
Auto-name 若為 true,在 \(A+B\) 的情況下,模組的名為 \(A+B\)(隨運算元而不同改變);反之則為 Mop。 true
By Element 設為 True 時,運算模式為每個元素做運算,而非矩陣運算。 False
Operation statement 運算表示式 僅輸出供使用者參考

以加法為例:輸出的矩陣為 \(C = \alpha A + \beta B\)\(\alpha\)\(\beta\) 分別為 \(A\)\(B\) 兩矩陣的權數。

範例(Example)

  1. 以 DoMatlab 模組產生一亂數 \(3 \times 3\) 的方陣:

    矩陣內容如下:

    \(\begin{pmatrix} 0.86 & 0.63 & 0.37 \\ 0.22 & 0.66 & 0.69 \\ 0.99 & 0.56 & 0.78 \\ \end{pmatrix}\)

  2. 以 Inverse Matrix 求解反矩陣,得到結果如下:


    \(\begin{pmatrix} -3.44 & 8.05 & -5.49 \\ 3.09 & -0.87 & -0.69 \\ -1.79 & 0.39 & 2.47 \\ \end{pmatrix}\)

  3. 可把這結果與原本的矩陣相乘,確定相乘後的結果為單位矩陣。



相關指令(Related Functions)

Inverse Matrix

參考(Reference)

Gilbert Strang: Linear Algebra and Its Applications 3rd edition

3.9.2 Inverse Matrix*

*Only in Professional*

說明(Description)

計算矩陣 \(A\)(必須為方陣) 的反矩陣 \(A^{-1}\),使 \(AA^{-1} = I\)\(I\) 為單位矩陣。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number)、Numeric 的數值資料,而輸出亦為同型態的資料。

範例(Example)

  1. 以 DoMatlab 模組製造一亂數 \(3 \times 3\) 的方陣:

    矩陣內容如下:

    \(\begin{pmatrix} 0.86 & 0.63 & 0.37 \\ 0.22 & 0.66 & 0.69 \\ 0.99 & 0.56 & 0.78 \\ \end{pmatrix}\)

  2. 以 Inverse Matrix 求解反矩陣,得到結果如下:


    \(\begin{pmatrix} -3.44 & 8.05 & -5.49 \\ 3.09 & -0.87 & -0.69 \\ -1.79 & 0.39 & 2.47 \\ \end{pmatrix}\)

  3. 可把這結果與原本的矩陣相乘,確定相乘後的結果為單位矩陣。

    若輸入的矩陣為 Singular,好比\(\big[\begin{smallmatrix}1&1\\1&1\end{smallmatrix}\big]\), 用此模組做計算,會發出 Warning 說明此矩陣為 Singular:


相關指令(Related Functions)

Matrix Operation

參考(Reference)

Gilbert Strang: Linear Algebraand Its Applications 3rd edition

3.9.3 Transpose*

*Only in Professional*

說明(Description)

將矩陣 \(A\) 做轉置(\(A^T\)),並可選擇是否做共軛(\(A^{\dagger}\))。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number)、Numeric 的數值資料,而輸出亦為同型態的資料。


參數名稱 參數定義 預設值
Complex Conjugate 若矩陣為複數矩陣,是否要取共軛。 true

範例(Example)

假設有 \(2 \times 3\)\(A\) 矩陣,矩陣內容如下:

\(\begin{pmatrix} 2+8i & 3 & 4+9i \\ 5 & 6 & 7 \\ \end{pmatrix}\)

取轉置,但不取共軛,則輸出的 \(A^T\) 矩陣為:

\(\begin{pmatrix} 2+8i & 5 \\ 3 & 6 \\ 4+9i & 7 \\ \end{pmatrix}\)

若同時取共軛,輸出的 \(A^{\dagger}\) 矩陣為:

\(\begin{pmatrix} 2-8i & 5\\ 3 & 6\\ 4-9i & 7\\ \end{pmatrix}\)

參考(Reference)

Gilbert Strang: Linear Algebra and Its Applications 3rd edition

3.9.4 Extract Region of Interest*

*Only in Professional*

由矩陣 \(A\) 中截取矩陣 \(S\)。由 Start Indexes 為 \((a_x , a_y)\) 開始截取一段長度為 \(L_x\)(Row)、\(L_y\)(Column)的矩陣。其 End Indexes 為 \((a_x + L_x - 1, a_y + L_y - 1)\),若 End Index 超過 \(A\) 的範圍則會在 \(S\) 中填零。

說明(Description)

非常類似矩陣定義中的 Sub-Matrix 定義,但此模組可用以處理更高維度的資料, 此外超過原矩陣範圍者,本模組會填補上零。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number)、Numeric 的數值資料,而輸出亦為同型態的資料。


參數名稱 參數定義 預設值
Start Indexes 截取的起點座標。 (0 , 0)
ROI Dimensions 截取的 Row 長度及 Column 長度。 原矩陣的 Row 長度及 Column 長度

範例(Example)

以 DoMatlab 模組製造一亂數 \(3 \times 3\) 的方陣

矩陣內容如下

\(\begin{pmatrix} 0.86 & 0.63 & 0.37 \\ 0.22 & 0.66 & 0.69 \\ 0.99 & 0.56 & 0.78 \\ \end{pmatrix}\)

若截取的起點座標為 (0 , 0),ROI Dimensions 為 (3 , 1),截取到矩陣為

\(\begin{pmatrix} 0.86 \\ 0.22 \\ 0.99 \\ \end{pmatrix}\)

若起點為 (2 , 2) ,ROI Dimensions 為 (3 , 3) (超過範圍),截取到矩陣為

\(\begin{pmatrix} 0.78 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ \end{pmatrix}\)

超過範圍部份補零。

參考(Reference)

Gilbert Strang: Linear Algebra and Its Applications 3rd edition

3.9.5 Extract Vector*

*Only in Professional*

說明(Description)

將向量由矩陣(或陣列,不見得必須為二維) 中提取出來。若提取的範圍超過原陣列大小,超出部份填補零。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number)、Numeric 的數值資料,而輸出亦為同型態的資料。


參數名稱 參數定義 預設值
Vector Direction 截取矩陣的方向,從零開始。好比有個四維陣列,若輸入的方向為 2,即是延著第三個維度的方向(通常稱為深度)截取。 0 (行方向)
Column-Vector 設定為 True,輸出矩陣以一行(Column) 為主依序排列,反之則相反。 True
Start Indexes 截取的起點座標 (0 , 0)
Vector Length 截取的長度 原陣列在某各方向上的長度

範例(Example)

假設一個 \(2 \times 3\)\(A\) 矩陣:

矩陣內容如下

\(\begin{pmatrix} 0.27 & 0.95 & 0.15 \\ 0.54 & 0.96 & 0.97 \\ \end{pmatrix}\)

設定 Column Vector 設為 True:截取方向為 0(行方向),起點為 (0 , 0),長度為 3(超過範圍)的向量。

所得到的結果為

\(\begin{pmatrix} 0.27 \\ 0.54 \\ 0 \\ \end{pmatrix}\)

參考(Reference)

GilbertStrang: Linear Algebra and ItsApplications 3rd edition

3.9.6 Diagonal Vector*

*Only in Professional*

說明(Description)

本模組用以截取矩陣(必須為方陣)的對角元素,並排列為一向量。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number)、Numeric 的數值資料,而輸出亦為同型態的資料。


參數名稱 參數定義 預設值
Column-Vector 設定為 “True”,輸出矩陣以一行(Column)為主依序排列,反之則相反。 True

範例(Example)

以DoMatlab 模組製造亂數 \(3 \times 3\) 的方陣,矩陣內容如下:

\(\begin{pmatrix} 0.03 & 0.67 & 0.39 \\ 0.84 & 0.75 & 0.65 \\ 0.93 & 0.74 & 0.17 \\ \end{pmatrix}\)

截取得到的 Diagonal Vector 為

\(\begin{pmatrix} 0.03 \\ 0.75 \\ 0.17 \\ \end{pmatrix}\)

參考(Reference)

Gilbert Strang: Linear Algebra and Its Applications 3rd edition

3.9.7 Reciprocal Matrix Condition Number*

*Only in Professional*

計算 \(1 / C\)。其中 \(C\) 為矩陣的 Condition Number。

說明(Description)

給定一個矩陣 \(A\),其 Condition Number 定義為 \(C=\|A\|\|A^{-1}\|\)\(C\) 可用 \(L_1\)\(L_{\infty}\) 量測, 分別稱 \(C_1\)\(C_{\infty}\)。 其分別對應於以不同方式量測到之 \(A\) 的 Norm。 \(\|A\|_1\)\(\|A\|_{\infty}\) 的計算採用如下定義(與線性代數教科書略有不同):

\[\|A\|_1 \triangleq \max_j \sum_i |a_{ij}|\]

\[\|A\|_{\infty} \triangleq \max_i \sum_j |a_{ij}|\]

其中 \(i\)\(j\) 為列與行的 Index。

Condition Number 的意義:

  1. 用來量度 \(A\) 的 Stiffness:也就是特徵值(eigenvalue) 的大小分佈狀況 \(\lambda_{max} / \lambda_{min}\)

  2. 線性方程組 \(Ax = b\) 解對於機器誤差(round-off error)的敏感度。也就是說當 \(b\) 稍微改變時,\(x\) 變化的程度:

\[A(x+\delta x) = b + \delta b\]

註:\(A\) 必需為一方陣。若 \(A\) 不為方陣時可用 SVD 法求得,但目前版本並不支援這項計算。

參數設定(Properties)

本模組接受實數(Real number)、複數(Complex Number)、Numeric 的數值資料,而輸出在 Properties 的 Reporter。



範例(Example)

以 DoMatlab 模組製造亂數 A 的方陣:

矩陣內容如下

\(\begin{pmatrix} 0.86 & 0.63 & 0.37 \\ 0.22 & 0.66 & 0.69 \\ 0.99 & 0.56 & 0.78 \\ \end{pmatrix}\)

若其 Condition Number 很接近零,則矩陣是 Singular,反矩陣不存在。

以本模組檢測之



發現 Norm 的值並不是非常接近零,所以其反矩陣是存在的。(可以 Inverse 模組計算之)

相關指令(Related Functions)

Matrix InverseMatrix Operation

參考(Reference)

Gilbert Strang: Linear Algebra and Its Applications 3rd edition

3.10 External*

*This module is available in Professional only*

3.10.1 ExternalDll*

*Only in Professional*

本模組主要是幫助使用者嵌入各種獨自開發的演算法、訊號來源的介面等,使用者可以利用 Visual C#、Visual Basic、Visual C++ 產生各種應用的 DLL(Dynamic Link Library), 本模組便可以在 Visual Signal 的環境下使用該 DLL。

說明(Description)

  1. 首先產生 DLL,在 Visual Studio 環境下,Project 選擇為 Class Library,並在 References 加入 vsmExternalBase.dllC:\Program Files\AnCAD\Visual Signal\External\vsmExternalBase.dll), 並且記得using VSignal.ExternalBase;


  2. 所撰寫的 Class 必須繼承 TExternalBase,並且改寫兩個主要方法包括 Init(),主要在於設定名稱、參數設定、 模組基本設定等,以及 DoCompute(),目的在於接收輸入訊號、使用者處理訊號的演算法、輸出訊號設定等。

  3. 所有設定可以參考 ExternalBase Class Library 或 Visual Signal 下 Help / Reference Guides / ExternalBase Class Library ,產生 DLL 範例可以參考 C:\Program Files\AnCAD\Visual Signal\External\api\cs\VSignalExternalDllDemo


參數設定(Properties)


參數名稱 參數定義 預設值
External Path 設定外接 DLL 的路徑。 None
Module 選擇外接 DLL 內包含之模組。 None
LocalCopy 設定為 True,儲存專案時會將 DLL 檔案複製到專案資料夾。 False
SystemCopy 設定為 True,會將 DLL 檔案複製到 Visual Signal 專用資料夾 (C:\Program Files\AnCAD\Visual Signal\External\...)。 False
Auto-name 自動設定元件名稱為外接模組名稱。 True
DllProperties 包含使用者設計及定義 DLL 模組的參數設定,或者 API Version 等。 None

範例(Example)

  1. 開啟 Compute / External / ExternalDll,然後 ExternalPath 中開啟 ExternalDllDemos.dllC:\Program Files\AnCAD\Visual Signal\External\External\ExternalDllDemos.dll), 然後在 Module 可以看到許多模組,如下圖。


  2. 首先將 Module 選擇為 demo1,然後在 DllProperties 類別中出現 Multiplier1 代表第一個訊號的加權,Multiplier2 代表第二個訊號的加權,最後再將加權後的訊號相加為輸出訊號。


  3. 將 Noise 及 Sine Wave 接至 demo1 元件,再利用 Channel Viewer 連接觀察其結果,如下圖。



  4. 再開啟一個 ExternalDll,ExternalPath 中開啟 ExternalDllDemos.dllC:\Program Files\AnCAD\Visual Signal\External\External\ExternalDllDemos.dll), 最後將 Module 選擇為 YahooStocks,這個 DLL 的 YahooStocks 將會至 Yahoo 將某個時段、某支股票的資料抓取下來。


  5. DllProperties 中的 Company 可以輸入公司縮寫,例如 2330.TW (台積電)等,再將其接至 Channel Switch 選擇 開盤價、收盤價、成交量等, 最後用 Channel Viewer 連接觀察其結果。




相關指令(Related Functions)

ExternalViewer

3.10.2 ExternalViewer*

*Only in Professional*

本模組主要讓使用者在 Visual Signal 下嵌入各種圖片,使用者可以利用 Visual C#、 Visual Basic、Visual C++ 產生各種應用的 DLL(Dynamic Link Library), 本模組便可以在 Visual Signal 的環境下使用該 DLL 展示圖片。

說明(Description)

  1. 首先產生 DLL,在 Visual Studio 環境下,Project 選擇為“Class Library”, 並在 References 加入vsmExternalBase.dllC:\Program Files\AnCAD\Visual Signal\External\vsmExternalBase.dll), 並且記得 using VSignal.ExternalBase;


  2. 所撰寫的 Class 必須繼承 TExternalViewer,並且改寫兩個主要方法包括 Init(),主要在於設定名稱、參數設定、模組基本設定等,以及 DoCompute(), 目的在於接收輸入訊號、使用者處理訊號的演算法、輸出訊號設定等。

  3. 所有設定可以參考 ExternalBase Class Library 或 Visual Signal 下 Help / Reference Guides / ExternalBase Class Library,產生 DLL 範例可以參考 C:\Program Files\AnCAD\Visual Signal\External\api\cs\VSignalExternalDllDemo


參數設定(Properties)


參數名稱 參數定義 預設值
External Path 設定外接 DLL 的路徑。 None
Module 選擇外接 DLL 內包含之模組。 None
LocalCopy 設定為 True,儲存專案時會將 DLL 檔案複製到專案資料夾。 False
SystemCopy 設定為 True,會將 DLL 檔案複製到 Visual Signal 專用資料夾 (C:\Program Files\AnCAD\Visual Signal\External\...)。 False
Auto-name 自動設定元件名稱為外接模組名稱。 True
DllProperties 包含使用者設計及定義 DLL 模組的參數設定,或者 API Version 等。 None
BackColor 設定繪製圖形的底色。 White
Auto Resize Viewer 設定 True,根據外接顯示器大小去設定圖表大小,反之則為依照使用者設定。 False
ViewerWidth 設定繪製圖形的寬度,以 pixels 為單位。 default (750)
ViewerHeight 設定繪製圖形的高度,以 pixels 為單位。 default (180)
ListOrder 設定圖形於繪圖視窗中的排序。 依照 Viewer 的建立順序排列
RetainPlot 設定是否要保留圖形,如果設定 True,若將連接至 Channel Viewer 的模組刪除,圖形還是會被保留,若設定 False,則圖形被消除。 False
Show Title 圖表中顯是標題名稱。 True
Title 標題名稱。 {default}

範例(Example)

  1. 開啟 Compute / External / ExternalViewer,然後 ExternalPath 中開啟 ExternalDllDemos.dllC:\Program Files\AnCAD\Visual Signal\External\External\ExternalDllDemos.dll), 然後在 Module 可以看到許多模組,如下圖。


  2. 首先將 Module 選擇為 demo6,然後在 DllProperties 類別中出現 Path,可以任意選擇一張圖片, 將其透過 ExternalViewer 來展示。



相關指令(Related Functions)

ExternalDll

3.11 SVM*

*Only in Sound and Vibration Module*

3.11.1 Overview of Sound and Vibration Module

SVM(Sound and Vibration Module)建立在 Visual Signal 快速、便利、多樣性的平台架構,提供語音、噪音、振動及迴轉機械故障的完整解決方案。SVM 具有適合各領域研究人員所需的分析演算法,並且提供符合工業界規範的檢測方法,方便線上人員即時檢測, 最後可由各種圖形表現。除了傳統的傅立葉頻譜,以及時頻分析等演算法之外,還有振動及噪音的特殊分析演算法,例如 RMS 分析可以作為震動品質檢測的依據,Crest Factor 幫助了解撞擊訊號強度變化,OrderSpectrogram 除了振動及噪音訊號之外,還需要輸入轉速計訊號,可以將原本頻率對時間的變化量轉變為階次對轉數的變化量, 可以將倍頻現象利用階次表現出來。Envelope 可以將撞擊訊號的包絡線解析出來。如此之外,對於聲音的處理, 提供權重函數將原本的頻譜或是時頻圖加權為人耳感官到的頻譜圖,還提供 Octave 分析功能。 提供工業界進行各種應用及研究,相關應用如工具機、主軸,馬達、齒輪箱等檢測,或是主軸跑合系統應用。

3.11.2 Crest Factor*

*Only in Sound and Vibration Module*

Crest Factor 為用來評估振動中所包含衝擊訊號的大小,主軸和軸承等迴轉機械製造商可以利用 Crest Factor 值評估軸承內環、外環、滾珠之間是否有撞擊訊號產生,可以彌補 RMS 只能評估整體振動的不足,發現更微小的敲擊,判斷軸承是否有缺陷的重要指標。

理論(Theory)

在一段時間內,可以利用振動加速度、速度或位移等訊號,並且結合 RMS 及 Peak 求得 Crest Factor。

\[\text{CrestFactor} = \frac{\text{TruePeak}}{\text{RMS}}\]

參數設定(Properties)

本模組接受實數(Real Number),單(Single Channel)、多通道 (Multi-Channel), Regular 的訊號(Signal)輸入。各參數定義詳如下方圖表。


參數名稱 參數定義 預設值
Method 數值積分的方法,可選擇 Simple(長方形法)與 Trapezoidal(梯形法)。 Trapezoidal
StartPosition 設定時間軸或橫軸上的積分起始值。 輸入訊號的起始值。
EndPosition 設定時間軸或橫軸上的積分終點值。 輸入訊號的終點值。
RemoveDC 設定積分前,是否移除直流訊號。 False
WindowUnit 設定 TimeWindow 之單位,可為訊號點數(Sample)或時間(Second)。 Second
TimeWindow WindowUnit 選擇 Second 時的對應參數。設定窗函數的大小,數值之單位為秒。一般而言,迴轉機械檢測以時間為 1 秒為一個計算窗。 1
TimeOverlap WindowUnit 選擇 Second 時的對應參數。設定窗與窗之間重疊的時間長短。訊號元素數量。TimeOverlap < TimeWindow。 0.5
Window WindowUnit 選擇 Sample 時的對應參數。設定窗函數的大小,數值之單位為資料點數。若 1000
TimeOverlap WindowUnit 選擇 Sample 時的對應參數。設定窗與窗之間重疊的資料點數。Overlap < Window。 500

範例(Example)

以下範例為兩根內藏式主軸,a 主軸經過完整跑合,b 主軸並未完全跑合,由 0 rpm加速至 16000 rpm,並將加速規放置於兩主軸上量測振動。

  1. 首先將振動訊號經過 Scale 調整單位為 G,再以 Channel View 觀察,如下圖。




  2. 將調整過後的訊號經由 Crest Factor 處理,Window 設定為取樣頻率,時間為 1s,即可以隨著時間及轉速增加,觀察衝擊跟 RMS 比值的變化,b 主軸所產生衝擊遠大於 a 主軸,而且由 b 主軸的 Crest Factor 值顯示敲擊訊號高達 RMS 值的 15 倍左右,顯示在 b 主軸軸承中,滾珠與內外環產生許多的激烈撞擊。





相關指令(Related Functions)

RMSPeak

3.11.3 Peak*

*Only in Sound and Vibration Module*

Peak 主要是為評估振動訊號中真實的最大值及最小值,在工業界中,手持量測系統皆有用來評估振動的參考值, 迴轉機械製造商量測振動加速度 \(G\),最後經計算後,所求 Peak 值,用來判斷各種機械的撞擊程度。

理論(Theory)

工業界上,\(a(t)\) 主要表示震動的加速度 \(G\),也可以為震動速度或位移,Max 為一段時間訊號中的最大正值,Min 為一段時間訊號的最小負值。

\[\begin{aligned} \text{Max} &= \max[a(t)], \quad 0 \leq t \leq T\\ \text{Min} &= \min[a(t)]. \quad 0 \leq t \leq T\\ \text{TruePP} &= \text{Max} - \text{Min}\\ \text{TruePeak} &= \text{TruePP}/2 \end{aligned}\]

參數設定(Properties)

本模組接受實數(Real Number),單(Single Channel)、多通道 (Multi-Channel),Regular 的訊號(Signal)輸入。各參數定義詳如下方圖表。


參數名稱 參數定義 預設值
WindowUnit 設定 TimeWindow 之單位,可為訊號點數(Sample)或時間(Second) Second
TimeWindow WindowUnit 選擇 Second 時的對應參數。設定窗函數的大小,數值之單位為秒。一般而言,迴轉機械檢測以時間為 1 秒為一個計算窗。 1
TimeOverlap WindowUnit 選擇 Second 時的對應參數。設定窗與窗之間重疊的時間長短。訊號元素數量。TimeOverlap < TimeWindow。 0.5
Window WindowUnit 選擇 Sample 時的對應參數。設定窗函數的大小,數值之單位為資料點數。若 1000
TimeOverlap WindowUnit 選擇 Sample 時的對應參數。設定窗與窗之間重疊的資料點數。Overlap < Window。 500

Vibration Level 中的 Type 選項定義如下,提供 Max、Min、TruePeak 和 TruePP 計算方法,預設的 Type = TruePeak。

選項名稱 選項定義
Max 計算一段時間振動中的最大正值。
Min 計算一段時間振動中的最大負值。
TruePeak \((Max-Min) / 2\)
TruePP \(Max-Min\)

範例(Example)

以下範例為一內藏式主軸,主軸經過完整跑合,由 0 rpm 加速至 16000 rpm,並將加速規放置於主軸上量測振動。

  1. 首先將振動訊號經過 Scale 調整單位為 G ,再以 Channel View 觀察,如下圖。



  2. 將調整過後的訊號經由 Peak 處理,Window 大小設定為取樣頻率,Properties / VibrationLevel / Type 設定為 TruePeak ,即可以隨著時間及轉速增加,觀察真實的 Peak 變化。




3.11.4 Digital Tachometer*

*Only in Sound and Vibration Module*

轉速計為量測轉速的量測工具,但是量測到的原始訊號為脈衝訊號,透過此模組運算,可以將脈衝訊號轉為回轉機械實際轉速。

理論(Theory)

原始轉速計量測的脈衝訊號如下圖:


定義脈衝出現間距的方式有三種:

  1. Rising:抓取超過增加值超過門檻值的索引:

    \(\text{If} \quad S[t+1] \geq Threshold, S[t] < Threshold \quad \text{then} \quad Index[n] = t+1\)


  2. Falling:

    \(\text{If} \quad S[t+1] \leq Threshold, S[t] > Threshold \quad \text{then} \quad Index[n] = t+1\)


  3. Center:

    \(\text{If} \quad S[t_1+1] \geq Threshold, S[t_1] < Threshold \quad \text{and} \quad S[t_2+1] \leq Threshold, S[t_2] > Threshold\) \(\text{then} \quad Index[n]=((t_1 + 1) + (t_2 + 1))/2\)


抓取脈衝之間的間距,計算間距的時間,其值的倒數即為轉速。

其中 SamplingFrequency 為訊號的取樣頻率,\(S[t]\) 為原始量測訊號,\(Index[n]\) 為轉換抓取脈衝的出現的索引。

參數設定(Properties)

本模組接受實數(Real Number),單(Single Channel)、多通道 (Multi-Channel),Regular 的訊號(Signal)輸入。各參數定義詳如下方圖表。


參數名稱 參數定義 預設值
Express Type 定義轉速
RPM:每分鐘轉動圈數
RPS:每秒鐘轉動圈數
RPH:每小時轉動圈數
RPM
PulsePerRevolution 量測的時候轉動一圈會出現幾個脈衝,一般而言,量測只有貼一個反光片就有一個脈衝。 如需更準確量測轉速,可以在等間距貼上反光片, 並且輸入轉動一圈的所通過反光片數目。 1
SlopeType 定義如何抓取通過 Threshold 的方法:Rising、Falling、Center。 Center
SmoothType 將 Tachometer 訊號中不平滑部分,做內插平滑,有兩種方法: 線性(Linear)及曲線近似(Spline)。 Spline
Threshold 脈衝門檻值,超過此門檻值才為脈衝。 1

範例(Example)

於 demo 資料夾下找到 VT.mat 匯入,拉成如以下之流程圖。 Channel Switch 要切換到 Ch 2。


Switch 出來的為一轉速計訊號,如下圖。


透過 DigitalTacho 可以將轉速計的脈衝訊號轉換為轉速訊號,其結果如下。


3.11.5 OrderSpectrogram*

*Only in Sound and Vibration Module*

階次頻譜圖目的在於方便觀察各種機械倍頻,觀察倍頻能量隨著轉速產生的變化,階次頻譜通常需要兩種訊號: 基本的振動或噪音訊號和轉速計(Tachometer) 的原始脈衝訊號,便可以將原本只有震動或噪音的時頻圖為轉變為階次頻譜圖。

理論(Theory)

階次頻譜通常應用在迴轉機械上面,因為時頻圖上倍頻的頻率會隨著轉速改變,而不利於後續的分析。因此將原來的量測訊號從時間域轉到角度域,讓每一轉的採樣數量都一樣多,經過時頻分析,就可將轉速的因素去掉,得到一張階次頻譜圖,其中“階次”表達了為轉速的幾倍頻率。更詳細說明何謂階次頻譜,可見以下為一般變轉速訊號之時頻圖:

階次頻譜分析的計算方式可分成兩個步驟,第一步驟將震動或噪音訊號從時間域轉換成角度域,第二步是將角度域的訊號進行短時距傅立葉轉換。

  1. 原始震動或噪音訊號是為等時間間距,首先利用轉速計(Tachometer) 訊號的脈衝間內插取樣出等角度間距, 再將振動或噪音訊號依等角度間距進行內插取樣,最後得到等角度間距的振動或噪音訊號。

  2. 再將等角度間距訊號經過短時距傅立葉轉換得到(倍頻)階次-轉動圈數頻譜。

參數設定(Properties)

本模組接受實數(Real Number),單(Single Channel)、多通道 (Multi-Channel),Regular 的訊號(Signal)輸入。各參數定義詳如下方圖表。


參數名稱 參數定義 預設值
OrderSpectrogram
SamplePerRev 每一轉內插的點數。 auto(100)
Spectrum
Method 計算時頻圖的方法,有 STFT(短時傅立葉)、FastSTFT(快速短時傅立葉)、EnMorlet(優化小波轉換)三種方法可以選擇。 FastSTFT
MinOrder 透過設定此參數,可決定計算及繪圖階次的上下邊界。 0;\(SamplePerRev/2\)
MaxOrder
OrderResolution 設定窗函數的範圍,此值會影響到窗函數的大小,設定的越小,窗函數會越小。 \(MaxOrder/20\)
OverlappedFactor 設定 Enhanced Morlet Transform 的重疊參數。 1
OrderCount 設定階次方向之離散網格數。 512
XAxisCount 設定轉動圈數方向之離散網格數。 1024
RemoveDC 決定在進行 STFT / FastSTFT 分析前,要不要先移除直流訊號。 True
Window 在STFT / FastSTFT 分析,進行窗函數的分割時,會利用窗函數進行濾波,此處可選擇各種窗函數。 Hanning
Tacho Pulse Information
SlopeType 定義如何抓取通過 Threshold 的方法,Rising、Falling。 Rising
Threshold 脈衝門檻值,超過此門檻值才為脈衝。 1

範例(Example)

由真實量測到迴轉機件的振動及轉速變化,即為檔案 VT.mat,開啟 C:\Program Files\AnCAD\Visual Signal\demo\SVM\Order_Tracking_by_STFT.vsn,首先觀察轉速計及加速規的原始訊號,如下圖,其中藍色訊號代表轉速計訊號,由脈 p 的間距可知迴轉機械的轉速越來越高,黑色代表振動訊號。


再利用 Channel Switch 從原始訊號選擇轉速計訊號,再利用 DigitalTacho 計算出真正的轉速,單位為 RPM,計算流程如下圖。



首先利用 Compute / TFA / STFT 計算振動訊號,再利用 Time-Frequency Viewer 觀察出頻率隨著時間不斷地增加,但是無法分出各個斜直線屬於當時轉速的第幾個倍頻,如下圖。


最後將振動訊號以及轉速計訊號輸入至 OrderSpectrogram ,選擇 STFT 方法,可以得到 Order-Revolution 圖,如下圖。可以清楚看到轉速倍頻的變化,在頻譜圖上發現二倍頻、四倍、六倍頻等的振幅特別明顯,由此可以粗略判斷迴轉機械可能有軸不對心的情形。


相關指令(Related Functions)

Digital TachometerOrderInfo

3.11.6 OrderInfo*

*Only in Sound and Vibration Module*

OrderInfo 元件主要搭配 OrderSpectrogram by STFT 或者 OrderSpectrogram by EnMorlet,可以幫助使用者知道轉動圈數與時間或轉速的相關資訊。

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號 (Signal)輸入。各參數定義詳如下方圖表。


參數名稱 參數定義 預設值
Tacho Pulse Information
SlopeType 定義如何抓取通過 Threshold 的方法。 Rising
Threshold 脈衝門檻值,超過此門檻值才為脈衝。 1
YAxisDisplay
Type Y 軸可以展示時間 Time,轉速RPM、RPH、RPS。 Time

範例(Example)

  1. 將訊號 VT 接至 OrderSpectrogram by STFT,再利用 TF Viewer 觀看其結果,但是 X 軸是圈數(Revolution),無法得知真正轉速或時間。



  2. 利用 Channel Switch 選擇出轉速計訊號,並將接至 OrderInfo,調整 Property / YAxisDisplay / Type 為 RPM,最後利用 Channel Viewer 觀看其結果,可以對照階次圖了解圈數當時的轉速。


相關指令(Related Functions)

Order SpectrogramDigital Tachometer

3.11.7 Cepstrum*

*Only in Sound and Vibration Module*

Ceps + trum 即為 Spec + trum 的反寫,工業界上主要用來檢測齒輪箱損壞和觀察倍頻的關係,在機車、汽車齒輪箱和迴轉機械製造商皆可利用 Cepstrum 作為品管和檢測齒輪斷齒等損傷的重要工具。或著利用於語音辨識的領域。

理論(Theory)

假設 X 為振動的訊號,如加速度、速度和位移,經過傅立葉轉換後,取 Magnitude,再經由 Natural Logarithm,最後經傅立葉反轉換:

\[C_{complex} = IFFT(\ln|FFT(X)|)\]

參數設定(Properties)

本模組接受實數(Real Number),單(Single Channel)、多通道 (Multi-Channel),Regular 的訊號(Signal)、聲音訊號(Audio) 輸入。各參數定義詳如下方圖表。


參數名稱 參數定義 預設值
FFTRemoveDC 消除訊號於縱軸之平移量,使其訊號之平均為零。 True
FFTWindow 以窗函數降低洩漏效應對轉換的影響,採用之函數包括Barlett、Blackman、Flat Top、Hanning、Hamming、Gauss 等六種類型、各函數之定義詳見FFT窗函數說明。 None
IFFTRemoveDC 消除訊號於縱軸之平移量,使其訊號之平均為零。 False
IFFTWindow 以窗函數降低洩漏效應對轉換的影響,採用之函數包括Barlett、Blackman、Flat Top、Hanning、Hamming、Gauss 等六種類型,各函數之定義詳見FFT窗函數說明。 None

範例(Example)

以下範例為 Cepstrum 分析固定轉速的迴轉機械的振動訊號,判斷有何種倍頻存在,請參考範例 C:\Program Files\AnCAD\Visual Signal\demo\SVM\Cepstrum.vsn

  1. 首先將原始訊號經過 Channel Switch,選擇 Tachometer 訊號再以 DigitalTacho 計算實際轉速,最後以 Channel Viewer 觀察轉速大約在 5000 RPM 左右,如下圖。



  2. 先用 Channel Switch 將選擇出振動訊號,再經由 Fourier Transform 處理,利用 Channel Viewer 觀察,可以發現似乎有許多倍頻。



  3. 最後將振動訊號接至 Cepstrum,利用 Channel Viewer 觀察,其中 Viewer 的 Properties / Representation / YValueType 選擇為 RealPart,結果如下圖,在下圖中 0.0012 秒及 0.0024 秒各有一個峰值,表示有 833 Hz 的倍頻,倍頻現象是由轉速所造成。



相關指令(Related Functions)

Fourier Transform

3.11.8 Envelope*

*Only in Sound and Vibration Module*

包絡訊號(Envelope Detection) 為檢測機械故障相當有效的方式,因為機械故障雜音大部分以撞擊形式產生, 使用者所關注的是每秒撞擊的次數, 透過傅立葉頻譜分析並無法。包絡頻譜分析是取得訊號的包絡線, 即是將訊號的峰值連接起來, 再針對該訊號進行傅立葉轉換,進一步了解碰撞的頻率,推估出何種機械元件產生了碰撞。

理論(Theory)

有兩種方式取得包絡訊號:

  1. Hilbert Transform

    第一種方法是利用 Hilbert 轉換產生一個解析訊號 (Analytic Signal),解析訊號為一個複數訊號,實數部分為原始訊號,而虛部為原始訊號的 Hilbert 轉換結果。

    \(X(t)\) 代表原始訊號,則它的 Hilbert 轉換 \(Y(t)\) 定義為:

    \[Y(t)=\frac{1}{\pi}P.V.\int_{-\infty}^{\infty}\frac{X(\tau)}{t-\tau}d\tau\]

    並定義一解析函數 \(Z(t)\)

    \[Z(t)=X(t)+iY(t)\]

    則定義實數包絡訊號為

    \[S(t)=|Z(t)|=\sqrt{X^2(t)+Y^2(t)}\]

  2. Spline Curve

    利用 Spline Curve 將峰值連接起來而成為包絡訊號。

參數設定(Properties)

本模組接受實數(Real Number),單(Single Channel)、多通道 (Multi-Channel),Regular 的訊號(Signal)輸入。各參數定義詳如下方圖表。


參數名稱 參數定義 預設值
Envelope Type 決定利用何種包絡線計算方式,包含 Hilbert Transform 以及 Spline Curve 兩種計算方法。 Hilbert
Spline Envelope 上包絡線(Upper)、下包絡線(Lower)或上下包絡線平均 (Middle)。 Upper

範例(Example)

以下範例為一個敲擊訊號(Beating Signal),利用 Visual Signal 分析其頻譜圖以及時頻圖。





可以發現此撞擊訊號在頻譜以及時頻圖展現資訊並不是使用者所關注的,透過轉換為包絡訊號並且進行頻譜分析可以得到下圖。



由此可以發現撞擊次數被解析出來為每秒一次。

3.11.9 Bearing Defect*

*Only in Sound and Vibration Module*

軸承損壞特徵檢測(Bearing Defect) 為計算軸承損壞頻率工具,輸入軸承規格,則可以計算內外環或滾珠損壞的特徵頻率。

理論(Theory)

外環損傷特徵頻率:

\[Freq_{outer} = \frac{n}{2} \times R \times \bigg(1-\frac{d}{D} \times \cos \theta \bigg)\]

內環損傷特徵頻率:

\[Freq_{inner} = \frac{n}{2} \times R \times \bigg(1+\frac{d}{D} \times \cos \theta \bigg)\]

滾珠損傷特徵頻率:

\[Freq_{roller} = \frac{D}{d} \times R \times \bigg(1-\big(\frac{d}{D} \times \cos \theta\big)^2 \bigg)\]

其中,\(n\) 為滾珠數量,\(R\) 為軸承轉速,\(d\) 為滾珠直徑,\(D\) 為軸承外環直徑。

參數設定(Properties)

本模組接受實數(Complex Number),單通道(Single Channel),Regular 的頻譜訊號,輸出軸承滾珠的特徵頻率。各參數定義詳如下方圖表。


參數名稱 參數定義 預設值
Bearing Diameter 軸承直徑 0
Contact Angel 接觸角 0
Roller Diameter 滾珠直徑 0
Roller Number 滾珠數量 0
Rotation Speed 軸承滾動速度,單位為 RPS(每秒幾轉) 0
MaxHarmonicOrder 最大顯示倍頻,算出特徵頻率後,在圖上顯示的倍頻數。 5

Characteristic Frequency 下參數代表之意思:

參數名稱 參數定義
FreqCageDefect 保持器損傷特徵頻率。
FreqInnerDefect 內環損傷特徵頻率。
FreqOuterDefect 外環損傷特徵頻率。
FreqRollerDefect 滾珠損傷特徵頻率。

範例(Example)

取得振動訊號之後,透過傅立葉轉換進行頻譜分析,可以利用 Bearing Defect 比對頻譜,檢視特徵頻率是否靠近損壞頻率。



黑色的為原始訊號之頻譜,藍色為外環損傷頻譜,紅色為內環損傷頻譜,綠色為滾珠損傷頻譜,比對原始頻譜以及此三個頻譜,若是原始訊號的特徵頻率有靠近損壞頻譜誤差於 5% 之內,則可以辨識出損傷部位。

3.11.10 Octave*

*Only in Sound and Vibration Module*

八音度(Octave)或稱倍頻程,這一名詞是從音樂中借用而來。例如鋼琴的中音 C,到下一個音階(高八度)的 C,其頻率比正好是兩倍,稱為一個八音度。 將一個八音度分為三份,每一份稱為 1/3 八音度或 1/3 倍頻程。將一個八音度分為 12 份, 每一份稱為 1/12 八音度或 1/12 倍頻程。

理論(Theory)

八音度分析中每個頻帶的上限頻率和下限頻率之比為常數,其關係滿足:

\[f_2 = 2^n \cdot f_1\]

其中 \(n\) 為八音度數,例如:\(n = 1\),為八音度;\(n = 1/3\),為 1/3八音度;\(n = 1/12\),為 1/12 八音度。頻帶的中心頻率 \(f_c\)為上、下限頻率的幾何平均值,即

\[f_c = \sqrt{f_1 f_2} = 2^{n/2}f_1 = 2^{-n/2} f_2\]

頻帶寬度 \(BW\)

\[BW = f_2 - f_1 = (2^{n/2}-2^{-n/2})f_c = \beta f_c\]

由此可知:對八度音,\(n = 1\)\(\beta = 0.707\);對 1/3八度音,\(n = 1/3\)\(\beta = 0.231\);對 1/12 八度音,\(n = 1/12\)\(\beta = 0.0578\)

參數設定(Properties)

本模組接受複數(Complex Number),單(Single Channel)、多通道 (Multi-Channel),Regular 的訊號(Signal)輸入。各參數定義詳如下方圖表。


參數名稱 參數定義 預設值
Octave Type 決定切斷頻率寬度 ThirdOctave:1/3 八度音 Octave:八度音 N_Octave:1/N 八度音(n = 1/1,1/3,1/6,1/12,1/24) ThirdOctave

範例(Example)

以下範例為一個含倍頻的鳥叫訊號(Chirp Signal),利用 Fourier Transform 分析其頻譜圖。




再將 FFT 結果接至 Octave,利用 Channel Viewer 觀察結果。



最後改變 Viewer 的顯示模式,設定如下圖。


即可得到 Octave 的圖形


3.11.11 Weighting*

*Only in Sound and Vibration Module*

人耳對於各種頻率的感受度並不相同,因此透過傅立葉轉換或是時頻分析出來的結果並非實際人耳聽到的頻譜,必須透過加權函數 (Weighting Filter)才能轉換為實際聽到的頻譜。

理論(Theory)

Weighting 區分為三種:A、B 或 C,這三種都是頻率響應的標準,不同的曲線是設計去給與在讀取聲壓位準 (Sound Pressure Level, SPL) 時,能很好的對應人類對聲頻的反應,有最少的差異,我們可從 Fletcher-Munson 的等響曲線 (Equal Loudness Level Contours),去瞭解我們人類耳朵是怎麼的聽聞聲頻的,以頻率 1 KHz 為中心點,在較低的聲頻部份是低感度的,為了要顯示我們人類耳朵聽聞聲頻的特性,因此加權函數的用意是去減少音壓錶的靈敏感度,這是當音壓低於某一程度,就人類的耳朵感觀,它會對低頻方面較不靈敏。

A 加權曲線是基於 40 Phon 的 Fletcher-Munson Equal Loudness Contour,當量測較低位準的聲音時,建議使用它較佳。

B 加權曲線是基於 70 Phon 的 Fletcher-Munson 等響度曲線,當量測中段位準的聲音時建議使用它較適合,在量測時使用 A 及 B 加權,又稱為加權聲音電平位準(Weighted Sound Level)。

C 加權在本質上是近似平坦,它是利用在高響度位準的聲音時。

聲壓位準在 20~55 dB SPL 範圍內,建議使用 A 加權曲線網路,聲壓位準在 55~85 dB SPL 範圍內,建議使用 B 加權曲線網路,聲壓位準在 85~140 dB SPL 範圍內,建議使用 C 加權曲線網路:

  1. A-Weighting


    \(W_A = 10\log\bigg[\frac{1.562339 f^4}{(f^2+107.65265^2)(f^2+737.86223^2)}\bigg]+ 10\log\bigg[\frac{2.242881 \times 10^{16}f^4}{(f^2+20.598997^2)^2(f^2+12194.22^2)^2}\bigg]\)

  2. B-Weighting


    \(W_B = 10\log\bigg[\frac{1.025119 f^2}{f^2+158.48932^2}\bigg]+ 10\log\bigg[\frac{2.242881 \times 10^{16}f^4}{(f^2+20.598997^2)^2(f^2+12194.22^2)^2}\bigg]\)

  3. C-Weighting


    \(W_B = 10\log\bigg[\frac{2.242881 \times 10^{16}f^4}{(f^2+20.598997^2)^2(f^2+12194.22^2)^2}\bigg]\)

參數設定(Properties)

本模組接受複數(Complex Number),單(Single Channel)、多通道 (Multi-Channel),Regular 的訊號(Signal);複數(Complex Number),單通道 (Single Channel),Regular 的時頻(Spectra)輸入。


參數名稱 參數定義 預設值
Weighting Type 決定為何種權重濾波:
By Pass:不執行任何濾波動作
A-Weighting:聲壓準位在 20~55 dB SPL 範圍內建議使用
B-Weighting:聲壓準位在 55~85 dB SPL 範圍內建議使用
C-Weighting:聲壓準位在 85~140 dB SPL 範圍內建議使用
Slope:權重為頻率乘上輸入值(Slope Value)
By Pass
Slope Value 權重相對於頻率的斜率。 1

範例(Example)

以下範例為一個鳥叫訊號 (Chirp Signal),檔案位於C:\Program Files\AnCAD\Visual Signal\demo\Basic\chirp1000.tfa,利用 Visual Signal 分析其頻譜圖以及時頻圖。




加乘上 A-Weighting之後



3.11.12 Scale*

*Only in Sound and Vibration Module*

Scale 主要是利用儀器的 Sensitivity 將各種量測的電壓訊號轉換成具有工程單位(EU) 的訊號,如加速度、速度、位移、聲壓、溫度、應變等。

理論(Theory)

轉換式如下:

\[EU = \frac{x}{S}\]

其中 x 表示電壓訊號,單位為 volts(V),S 表示 Sensitivity,單位通常為 \(mV/EU\)

參數設定(Properties)

本模組接受實數(Real Number),單(Single Channel)、多通道 (Multi-Channel),Regular 的訊號(Signal)輸入。各參數定義詳如下方圖表。


參數名稱 參數定義 預設值
Engineering Units 用來表示轉換成的工程單位,如 \(g\)\(m/s^2\)\(Pa\)\(N\) 等。 g
Sensitivity 由感測器或儀器的 Specification 得知 Sensitivity,一般而言,其單位為 \(mV/EU\),如加速規為 \(mV/g\)、麥克風為 \(mV/Pa\) 等。 1000

範例(Example)

以下範例利用一個實際量測主軸振動,而所得加速規的訊號。

  1. 首先將電壓訊號經過 Scale 轉換,Properties / Engineering Units 設定為 \(g\)\(m/s^2\)),Properties / Sensitivity 根據加速規 Specification 設定 100.6 (\(mV/g\)),再以 Channel Viewer 觀察,如下圖。




4 訊號格式轉換模組(Conversion)

4.1 Change X-Axis Unit

訊號資料讀取進來之後,常會碰到需要轉換時間單位的狀況,過去可能必須重新輸入訊號檔,再設定時間,現在可以利用 Change X-Axis Unit 直接換算時間。除轉換時間單位外,本模組最特別處,可將以頻譜的橫座標 (X-Axis)由頻率進行轉換成各種週期單位。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number), 單通道(Single Channel)或多通道(Multi-Channel), Regular 的訊號(Signal)、聲音(Audio) 訊號以及時頻(Spectra)資料; 輸出訊號格式為實數、複數,單通道、多通道的 Regular 訊號或時頻(Spectra)資料, 若參數 Convert To Period 調整為 True,則輸出訊號之格式將改變(橫座標軸不為等間距), 由 Regular 轉變成 Indexed。

參數為 Abscissa Unit 即為 X 軸單位,說明整理如單表。改變 Abscissa Unit 程式會由輸入訊號的 X 軸單位自動換算成新的 X 軸單位。


參數名稱 參數定義 預設值
Convert to period 當資料的 x 軸為頻率時會出現此參數。將原 x 軸為頻率轉換為各種週期。 False
Abscissa
ps 披秒, pico-second。 10-12
ns 奈米秒,nano-second。 10-9
us 微秒,micro-second。 10-6
ms 毫秒,milli-second。 10-3
sec 秒, second。 1 秒
min 分鐘。 60 秒
hour 小時。 60 分鐘
day 天。 24 小時
week 週。 7 天
month 月。 30 天
year 年。 365 天
參數名稱 參數定義
Abscissa
THz 每 10-12秒幾次,Tera-hertz。
GHz 每 10-9秒幾次,Giga-hertz。
MHz 每 10-6秒幾次,Mega-hertz。
KHz 每 10-3秒幾次,Kilo-hertz。
Hz 每秒幾次,Hertz。
Cycles_per_min 每分鐘幾次。
Cycles_per_hour 每小時幾次。
Cycles_per_day 每天幾次。
Cycles_per_week 每週幾次。
Cycles_pe__month 每月幾次。
Cycles_per_year 每年幾次。

範例(Example)

  1. 用 Source / Sine Wave 產生一正弦波訊號,預設訊號之訊號頻率為 10 Hz,取樣頻率為 1000 Hz,長度 1 秒。現在先改變 Sine 的參數值,Properties / TimeUnit 變為 min 分鐘,SamplingFreq 調整為 10000 Hz,SignalFreq 調整為 600 Hz,得到一組 X 軸單位為分鐘,而訊號頻率仍維持 10 Hz 的訊號。

    再連接 Compute / Transform / Fourier Transform 做傅立葉轉換,並連上 Channel Viewer,可得下面圖形,在此 X 軸之座標是頻率,單位是 cycles per minute。




    在此例中,FFT 的橫座標為 cycles per minute,現將 FFT 輸出接上 Change X-Axis Unit,在 Properties / Abscissa unit 調為 Hz,然後再以 Channel Viewer 繪出。可看到 X 軸已變更以 Hz 為單位。




  2. 另外可再調整 Properties / Convert to period 為 True,並將 Abscissa Unit 設為 cycle per hour,可將 X 軸由頻率轉變為週期,並以小時為單位,如下圖所示。



  3. 時頻分析的結果輸出至 Change X-Axis Unit 能更改時間軸單位,並且也改變頻率的單位(時頻圖的頻率在 Y 軸)。 回到訊號源 Sine,以 Compute / TFA / Enhanced Morlet Transform 做時頻分析後再接上 Change X-Axis Unit,調整 Properties / Abscissa unit 為毫秒(msec),再用 Viewer / Time-Frequency Viewer 繪出,可看到時頻軸圖上的 X 軸(時間域)變成 msec,Y 軸(頻率軸) 已變更為 KHz,即為 1 / msec。




相關指令(Related Functions)

SineChannel ViewerTime-Frequency ViewerFourier TransformEnhanced Morlet Transform

4.2 Convert to Audio

變更訊號之資料類型。將資料類型由訊號(Signal)轉換為聲音訊號(Audio)。

說明(Description)

Convert to Audio 的輸出資料格式是以 Microsoft Wave Format 所規定的架構作設定,分為三區塊:RIFF、FMT 與 DATA,內容分述如下。

RIFF:RIFF 內規定此檔案格式(format)與檔案長度等資訊,格式就是 WAVE。

FMT:包含編碼類型、取樣頻率、聲道數、byte rate 等聲音訊號的相關參數。

DATA:包含聲音訊號的原始資料。

參數設定(Properties)

本模組接受實數(Real Number),單通道(Single Channel)或兩個通道的訊號 (由於目前只能支援輸出雙通道的聲音), Regular 的訊號或聲音訊號;輸出訊號格式為實數,單通道或多通道,Regular 的聲音訊號。參數定義如下表。


參數名稱 參數定義 預設值
Auto Sample Rate 是否自動偵測輸入訊號的 Sample Rate, 並根據原訊號設定輸出聲音的取樣頻率。 True
Sample Rate 代表聲音檔每秒鐘取樣的點數(會影響聲音頻率的解析度)。 參數選項包括1000、2000、4000、8000、11025、16000、22050、32000、 44100、48000、96000、144000、192000 Hz、Custom,若設定為 Custom 則會有 Custom Sample Rate 的參數輸要設定。 44100
Custom Sample Rate 使用者自行設定輸出聲音的取樣頻率。 44100
New Total Time 依據新的取樣頻率重新計算的訊號時間。 0
Bits Per Sample 代表每個點儲存值之大小(會影響聲音強度的解析度)。 參數選項包括 8、16、24、32 bps。 16

範例(Example)

以訊號資料檔 chirp10000.tfa 作輸入,經過 Convert To Audio 後訊號格式變為聲音訊號。

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



    於 Properties 下可以看到此訊號的 Sampling Frequency 為 10000,Data Length 等於 20001,Unit 是 sec,所以此訊號長度等於 20000 / 10000 = 2 秒。


    另外打開 Properties 下的 Module 類別,項目 OutputDataType 有說明此模組輸出之訊號格式與類型,這部份可參考第一章關於 Properties 的說明。此項目內容為 Real Single-Channel Signal of Rank-1(regular) Data,因此 chirp10000 之資料類別是 Signal。


  2. 在 chirp10000 直接作 Conversion / Convert To Audio。


    在 Properties 下可看到 Samplerate = 10000 Hz,Bits Per Sample = 16 bps。


    而再打開 Properties 的 Module,裡面的 OutputType 已變更為 Audio。


  3. 若在 ToAudio 後方作 Viewer / Channel Viewer,則可以利用 Viewer 右上方之工具撥放此聲音訊號。



相關指令(Related Functions)

Channel Viewer

相關參考(Reference)

Microsoft Wave Format:

http://ccrma.stanford.edF/CCRMA/Courses/422/projects/WaveFormat/

4.3 Convert to Regular

變更訊號資料之時間軸設定。將資料時間軸由非等時間距(Indexed) 轉換為等時間距(Regular)。

說明(Description)

使用 Import Data 讀取 .txt、.csv 等純文字檔時,若有一行或列的資料是時間軸座標,會建議利用 Text Importer 中的 Specify Time Column / Row 功能來讀取指定的時間軸資料,此時訊號格式之時間類別將被標示為 Indexed,即假設資料之取樣間隔大小不一,而大部份模組會要求訊號格式為 Regular,因此透過本模組可將 Indexed 訊號轉換為等時間距排列(Regular) 的訊號。

Indexed 格式之假設時間間隔為不等間距,轉換成等時間距訊號的過程可選擇對輸入訊號重新取樣, 重新取樣的方法有 FillGap 與 RemoveGap。假設輸入訊號為 \(X=\{x_0, x_1, \dots, x_{N-1}\}\), 資料個數為 \(N\), 輸入訊號 \(X\) 之非等間距時間軸 \(T = \{t_0, t_1, \dots, t_{N-1}\}\) 可表示為:

\[t_i = t_0 + \sum_{k=1}^i \Delta t_k, \quad 0 < i < N\]

其中 \(t_i\) 代表訊號資料點 \(x_i\) 對應的時間,時間起始點是 \(t_0\)\(\Delta t_k\)\((t_{k-1}, t_k)\)之間的時間間隔。

輸出訊號則為 \(Y = \{y_0, y_1, \dots, y_{M-1}\}\),資料個數為 \(M\), 輸出訊號 \(Y\) 之等間距時間軸 \(T' = \{t'_0, t'_1, \dots, t'_{M-1}\}\) 可表示為:

\[t'_j = t_0 + j \Delta t', \quad 0 < j < M\]

其中 \(t'_j\) 代表等間隔排列(Regular)的訊號時間軸,\(\Delta t'\) 代表重新取樣的間隔, \(M\) 代表輸出訊號之資料個數。

而 FillGap 與 RemoveGap 計算如下:

FillGap

FillGap 輸出時間軸的時間間隔為:

\[\Delta t' \leq 1.5 \min_{k=1}^{N-1}(\Delta t_k)\]

由於 FillGap 會進行補值,所以輸出訊號 \(Y\) 的資料個數 \(M\) 會大於等於 \(N\)

輸出訊號資料 \(Y\) 之計算如下:

\(\Delta t_i \geq \frac{1}{2} \Delta t'\),則對應之輸入訊號間隔 \((x_{i-1}\), \(x_i)\) 之間會以下列補值方法求出 \(y_j\), 補值新增的資料個數由 \(\Delta t_i / \Delta t'\) 的整數部份決定:

\(\Delta t_i < \frac{1}{2} \Delta t'\),則對應輸入訊號 \(x_i\) 會直接傳至輸出訊號 \(y_j\)

RemoveGap

依據 \(\Delta t'\) 重新計算時間軸 \(T'\),將輸入訊號 \(X\) 的時間軸 \(T\) 直接置換為 \(T'\),並設 \(M = N\)。 因此 RemoveGap 的輸出訊號個數 \(M\) 與輸入訊號時數 \(N\) 相同,僅改變輸入訊號時間軸為等間隔排列。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number),單通道(Single Channel) 或多通道(Multi-Channel),Indexed 的訊號;輸出訊號格式為實數、複數, 單通道或多通道,Regular 的訊號。


參數 AutoDetect 可讓使用者選擇是否要自訂輸出訊號之 Sampling Period,因為輸入的 Indexed 訊號各資料點間的取樣間隔大小不一,所以若 AutoDetect 設為 True,則模組會自動偵測輸入訊號裡最小的取樣間隔作為參數 Sampling Period 的值;若 AutoDetect 設為 False,使用者可自訂參數 Sampling Period,由於過大的取樣間隔會造成很大的計算誤差, 使輸出訊號與原輸入訊號有明顯的差異,因此自訂取樣間隔的限制是不得大於 1.5 倍 AutoDetect 的取樣間隔。

參數 ConvertMethod 可選擇使用 FillGap 或 RemoveGap 的方法計算輸入訊號之時間軸,選擇 FillGap 後多新增參數 FillMethod 讓使用者挑選補值方法,相關內容說明如下:

參數名稱 參數定義 預設值
Convert Method FillGap:用補值方法對輸入訊號作重新取樣。
RemoveGap:直接改變原訊號的時間軸資訊, 改以時間起始點 \(t_0\) 以及 參數 Sampling Period \(\Delta t'\) 重新排列資料的時間。
FillGap
FillMethod 當 ConvertMethod = FillGap 時,則可以選擇如何補點:
FixedValue:以 NullValue 作為補點固定值。
PrevValue:前一個出現的值。
NextValue:後一個出現的值。
LinearInterpolation:線性內插。
SplineInterpolation:以 Spline Curve 運算內差。
Monotonic Cubice 為有 damping 的三次內插法, 此法在處理在斜率很大的訊號(如方波)時,可避免劇烈振盪, 較Spline為佳。
NoFill:不補點,則資料依然會缺值,造成運算不正確。
LinearInterpolation
Sampling Period 顯示或設定輸出訊號的取樣間隔 \(\Delta t'\)。 當AutoDetect 設為 True,此參數顯示偵測到的輸入訊號 之最小取樣間隔。
當AutoDetect 設為 False,此參數除顯示最小間隔外, 還可設定訊號取樣間隔,限制是: \[\Delta t' \leq 1.5 \min_{k=1}^{N-1}(\Delta t_k)\]
\(\displaystyle\min_{k=1}^{N-1}(\Delta t_k)\)
Unit 顯示或設定輸出訊號的取樣時間單位。 當 AutoDetect 設為 True,此參數顯示偵測到的訊號 時間單位。
當 AutoDetect 設為 False,此參數除顯示訊號時間單位外, 還可搭配參數 SamplingPeriod 設定訊號時間單位。
根據輸入訊號判斷
AutoDetect 是否自動偵測 Sampling Period 和 Unit True
NullValue 若 ConvertMethod 設為 FillGap,FillMethod 設為 FixedValue,會新增此參數設定補點所使用的固定值。 0

範例(Example)

  1. 讀取一組訊號格式為 Indexed 的訊號,先如下圖產生一組簡單的資料檔,第一行(column) 為時間,第二行為資料。


    然後按下 Network Window 工具列的,或以 Source / Import Data 讀取訊號檔,檔案 TestData.txt,Text Importer 中需勾選 Specify Time Column,再按確定即可。


    匯入訊號後以 Viewer / Channel Viewer 繪圖,並點選 TestData 元件,檢視 Properties 下 Module 的 OutoutDataType,可以看到時間軸格式為 Indexed。




  2. 將 TestData 後方接 ToRegular,可將訊號轉為等時間間隔,再用 Channel Viewer 繪出結果。ToRegular 的 Properties 中將 ConvertMethod 選擇 RemoveGap 方法,而 Sampling Period 則會偵測最小的取樣間隔作為時間離散的依據,所以取樣間隔為 0.1 秒,時間總長變為 0.1 * 9 = 0.9 秒。




  3. 改變 ToRegular 的 Properties / ConvertMethod 為 FillGap,FillMethod 設為 Monotonic Cubic,輸出結果如下,可發現 FillGap 維持了原訊號的時間軸定義,以近似 0.1秒 的取樣頻率將訊號的時間軸化作等間隔分佈。



  4. ToRegular 允許使用者些微調整訊號之取樣頻率。首先將 AutoDetect 設為 False,然後 Sampling Period 調為 1.4,再將輸出結果拉至 Viewer[1] 與原訊號交互比較,其中黑線為原訊號,藍線為 ToRegular 訊號,可以發現取了較大的取樣頻率已扭曲了訊號之波型。




  5. 再嘗試將 Sampling Period 調為 1.5,程式會跳出對話窗禁止使用者輸入大於原訊號最小取樣頻率 1.5 倍之數值,以避免造成過大的偏差。如需改變此訊號的取樣間隔,建議利用模組 Resample 達成。



相關指令(Related Functions)

Convert to AudioFill Null ValueResample

4.4 Map to Real

將複數(Complex Number)訊號轉換成特定的實數(Real Number) 訊號,例如只輸出實部、虛部部分等。

說明(Description)

\(X=\{x_0, x_1, \dots, x_{N-1}\}\) 代表實部訊號, \(Y=\{y_0, y_1, \dots, y_{N-1}\}\) 代表虛部訊號,\(N\) 為資料長度,則其輸出訊號 \(Z = X + iY\) 與可選擇計算不同之實數訊號,相關特性如下:

\[\begin{aligned} Z &= \sqrt{X^2 + Y^2} \mathrm{e}^{i\Theta} = A \mathrm{e}^{i\Theta}\\ \text{or}, \quad z_j &= \sqrt{(x_j)^2 + (y_j)^2} \mathrm{e}^{i\theta_j} = a_j \mathrm{e}^{i\theta_j}\\[1em] \text{Magnitude}&: \quad A = \{a_0, a_1, \dots, a_{N-1}\}\\ \text{Phase}&: \quad \Theta = \{\theta_0, \theta_1, \dots, \theta_{N-1}\}\\ \text{Real Part}&: \quad X&\\ \text{Imagine Part}&: \quad Y&\\ \text{Gain}&: \{g_0, g_1, \dots, g_{N-1}\}, \quad g_j = 20\log\bigg(\frac{a_j}{GainRef}\bigg)\\ \text{Power Spectrum}&: A^2 = \{a_0^2, a_1^2, \dots, a_{N-1}^2\}\\ \end{aligned}\]

參數設定(Properties)

本模組接受複數(Complex Number),單通道(Single Channel)或多通道 (Multi-Channel),Regular 或 Indexed 的訊號(Signal)、聲音訊號(Audio) 與數值(Numerics),以及複數,單通道的時頻資料 (Spectra);輸出格式除了是實數(Real Number)外,其它部份與輸入資料相同。

參數為 Map Method,預設選項是 Real Part,即輸入訊號之實部;Imag Part 輸出訊號虛部;Magnitude 取複數訊號的絕對值;Phase 表示相位;Gain 可以設定參考值(Gain Reference)計算 Gain;Power Spectrum 是 Magnitude 平方。


參數名稱 參數定義 預設值
MapMethod 將複數訊號轉換成何種訊號,其中包含 Magnitude、Phase、RealPart、ImagPart、Gain、Powerspectrum。 RealPart

範例(Example)

本範例將示範以兩個訊號皆為 1000 Hz 取樣頻率、長度 1 秒、振幅皆為 1 的 10 Hz Sine Wave 和 20 Hz Sine Wave 當作輸入訊號,再利用步驟如下:

  1. 於 Network 視窗下選擇 Source / Sine 創造兩個 Sine Wave,分別改變其 Properties / SignalFreq 為 10 Hz 和 20 Hz,最後以 Compute / Conversion / Merge to Complex 將上述訊號合成一複數訊號,用 Viewer / Channel Viewer 顯示於視窗。



  2. 接著用 Map to Real 將此複數訊號轉為實數訊號,選擇 Compute / Conversion / Map to Real,藉由 Properties調整 Map Method,用 Viewer / Channel Viewer 顯示結果。Map to Real 預設是輸出訊號的 Magnitude。




相關指令(Related Functions)

SineMerge to ComplexChannel Viewer

4.5 Merge to Complex

將兩個實數訊號合併成一個複數訊號,其中第一筆輸入訊號作實部,第二組輸入訊號作虛部。

說明(Description)

\(X = \{x_j^a\}\) 代表長度為 \(N\)\(A\) 通道訊號(Channel),其中 \(a\) 代表通道,\(j\) 是訊號之時間點:

\[0 \leq j < N, \quad 1 \leq a \leq A\]

\(Y = \{y_k^b\}\) 代表另外一組長度為 \(M\)\(B\) 通道訊號,其中 \(b\)\(k\) 分別代表訊號之通道及時間點:

\[0 \leq k < M, \quad 1 \leq b \leq B\]

本元件只允許這兩組訊號的通道數與資料長度一致,即

\[A = B, \quad N = M\]

則 Merge to Complex 的輸出結果為:

\[\begin{aligned} Z &= X + iY,\\ z_{j'}^{a'} &= x_{j'}^{a'} + i y_{j'}^{a'} \end{aligned}\]

其中 \(a'\)\(j'\) 分別代表輸出訊號參考的訊號長度與訊號通道數。 若參考訊號為 \(X\), 則 \(a' = a\)\(j' = j\),且其取樣頻率等於 \(X\) 的取樣頻率; 若參考訊號為 \(Y\), 則 \(a' = b\)\(j' = k\),且其取樣頻率等於 \(Y\) 的取樣頻率。

參數設定(Properties)

Merge to Complex 接受實數(Real Number),單通道(Single Channel) 或多通道(Multi-Channel),等間距(Regular)或非等間距(Indexed) 的訊號、聲音(Audio)訊號或數值(Numeric)資料。

參數 Reference Input 是指定模組訊號的通道數與訊號時間軸的參考,預設為 0, 代表輸出時間軸參考第一組輸入訊號,則第二組輸入訊號的時間資訊如 Sample Frequency、 Time Shift 等會直接套用第一組訊號的設定。

因此為避免造成操作上的混淆,強烈建議以相同通道數,時間軸相同的兩組訊號作 Merge to Complex。參數定義與預設值如下表:


參數名稱 參數定義 預設值
ReferenceInput 參考訊號,以實部或虛部當作時間軸與通道數的基準。 0:第一組輸入訊號

範例(Example)

本範例將示範兩種操作模式,首先以兩筆單通道實數訊號合成為一筆單通道複術訊號,並示範複數訊號該如何繪圖;接下來示範以兩筆取樣頻率一樣,但時間長度不等的實數,多通道訊號輸入 Merge to Complex 合成一筆複數,多通道訊號。

單通道訊號

  1. 以 Source / Sine Wave 產生兩個正弦波訊號,然後點選 Sine2,修改 Properties / Phase 為 90,使 Sine2 變為餘弦波訊號。然後以 Conversion / Merge to Complex 合成一個複數訊號。


    在 ToComplex 的輸出訊號格式可在 Properties 的 Module 類別下,欄位 OutputDataType 查詢,此輸出訊號已變更為 Complex。


  2. 若要繪製訊號在複數平面上的圖形,可利用 XY PLot。在 ToMulti 後方接上 Viewer / XY Plot Viewer,此 Viewer 會將輸入訊號實部資料當作 X 值,虛部資料當作 Y 值,依時間順序繪圖。本例所產生的複數是


    因此在複數平面上會畫出圓形。



    上圖是將 XY Plot Viewer 的 Properties / ViewerHeight 與 ViewerWidth 調為一樣,使 XY 軸的比例一致,關於 XY Plot Viewer 的操作在 XY Plot Viewer 章節會有更詳盡的說明。

  3. 若運用 Channel Viewer,可以調整 Properties / YValueType 欄位,繪出複數訊號不同計算量的時序圖,如下圖是繪製此複數訊號的 Magnitude。此部份在 Channel Viewer 的章節會有更詳盡的說明。



多通道訊號

  1. 於 Network視窗下選擇 Source / Noise 創造一個白色雜訊和 Source / Sine Wave,Properties 為預設,最後以 Compute / Conversion / Merge to Multi-channel 將上述訊號合成兩個通道的訊號,再利用 Source / Square Wave 創造方波和 Source / Triangle Wave 三角波,設定 Properties / TimeLength 設定為 2 秒,最後以 Compute / Conversion / Merge to Multi-Channel 將上述訊號合成二維資料 ReferenceInput 皆以預設值 0,用 Viewer / Channel Viewer 顯示於視窗。



    ToMulti 的訊號圖(Sine Wave and White Noise)。


    ToMulti2 之訊號圖(Square Wave and Triangle Wave)。

    點選 ToMulti,打開 Properties 下的 Module,裡面 OutputType 欄位內容顯示訊號為 Real。


  2. 再將 ToMulti、ToMulti2 兩個多通道訊號經由 Merge to Complex 轉換為複數訊號 ,於 Merge to Complex 上調整 ReferenceInput 調整至 0:ToMulti2,則依據實部的 SamplingFreq 和 DataLength 去調整虛部的訊號,再經由 Conversion / Map to Real 取出虛部,用 Viewer / Channel Viewer 顯示結果。



    再回到 ToComplex 元件,打開 Properties 下的 Module,裡面 OutputType 欄位內容訊號已變更為 Complex。

相關指令(Related Functions)

NoiseSineTriangleSquareMap to RealMerge to Multi-Channel

4.6 Merge to Multi-Channel

將多組輸入訊號組成一組多通道(Multi-Channel)資料訊號。

說明(Description)

\(X = \{x_i^{a}\}, Y = \{y_j^{b}\}, Z = \{z_k^{c}\}, \dots\) 代表多個時間軸為 \(i, j, k, \dots\),長度為 \(N, M, L, \dots\) 的多通道訊號,\(1 \leq a \leq A, 1 \leq b \leq B, 1 \leq c \leq C\) 分別為訊號 \(X, Y, Z\) 之通道數,即:

\[\begin{aligned} X &= \begin{pmatrix} \{x_0^0,& x_1^0,& \dots,& x_{N-1}^0\}\\ \{x_0^1,& x_1^1,& \dots,& x_{N-1}^1\}\\ \quad \vdots\\ \{x_0^{A-1},& x_1^{A-1},& \dots,& x_{N-1}^{A-1}\}\\ \end{pmatrix}\\[0.5em] Y &= \begin{pmatrix} \{y_0^0,& y_1^0,& \dots,& y_{M-1}^0\}\\ \{y_0^1,& y_1^1,& \dots,& y_{M-1}^1\}\\ \quad \vdots\\ \{y_0^{B-1},& y_1^{B-1},& \dots,& y_{M-1}^{B-1}\}\\ \end{pmatrix}\\[0.5em] Z &= \begin{pmatrix} \{z_0^0,& z_1^0,& \dots,& z_{L-1}^0\}\\ \{z_0^1,& z_1^1,& \dots,& z_{L-1}^1\}\\ \quad \vdots\\ \{z_0^{C-1},& z_1^{C-1},& \dots,& z_{L-1}^{C-1}\}\\ \end{pmatrix}\\ &\vdots\\ \end{aligned}\]

則合併後的 \(R\) 訊號為:

\[R = \begin{pmatrix} \{x_0^0,& x_1^0,& \dots,& x_{N'-1}^0\}\\ \{x_0^1,& x_1^1,& \dots,& x_{N'-1}^1\}\\ \quad \vdots\\ \{x_0^{A-1},& x_1^{A-1},& \dots,& x_{N'-1}^{A-1}\}\\ \{y_0^A,& y_1^A,& \dots,& y_{N'-1}^A\}\\ \{y_0^{A+1},& y_1^{A+1},& \dots,& y_{N'-1}^{A+1}\}\\ \quad \vdots\\ \{y_0^{A+B-1},& y_1^{A+B-1},& \dots,& y_{N'-1}^{A+B-1}\}\\ \{z_0^{A+B},& z_1^{A+B},& \dots,& z_{N'-1}^{A+B}\}\\ \{z_0^{A+B+1},& z_1^{A+B+1},& \dots,& z_{N'-1}^{A+B+1}\}\\ \quad \vdots\\ \{z_0^{A+B+C-1},& z_1^{A+B+C-1},& \dots,& z_{N'-1}^{A+B+C-1}\}\\ \quad \vdots\\ \end{pmatrix} \]

其中 \(N'\) 為輸出訊號的長度,當各輸入的單位或長度不相同時,可以設定 Reference Input, 則輸出訊號的時間軸會直接置換為 \(X, Y, Z, \dots\) 等的時間軸。 若所有輸入訊號長度一致, 則 \(N' = N = M = L = \dots\),否則會以所設定之 Reference Input 以及 Overlap 決定 \(N'\), 並依長度所需捨棄資料點或是補上空值。

當兩個輸入的時間起始與長度不同時,模組會自動判斷,並開啟 Overlap 功能,使用者可以選擇 AND 交集或是 OR 聯集來決定輸出的時間起始與長度。

參數設定(Properties)

本模組接受實數(Real Number)或複數(Complex Number),單通道(Single Channel), Regular 或 Indexed 的訊號(Signal)或數值資料(Numeric) 輸入,以及實數, 單通道或多通道,Regular 的聲音訊號;輸出成多通道(Multi-Channel)資料。

參數名稱 參數定義 預設值
ReferenceInput 設定參考訊號,其時間軸座標值作為輸出訊號的時間軸。 0(第一筆輸入訊號)
MergeType 選擇時間範圍,有 AND 時間交集或 OR 時間聯集可以選。 AND
MissingValueFillType 選擇 OR 時間聯集後,補值的方法。有 Fixed Value 與 Null 兩種選項 Fixed Value
MissingValueFillValue 選擇 Fixed Value 後所要補的數值。 0

在輸入的單位不相同的情況下:

參數 Reference Input 設定本模組輸出訊號的通道數與訊號時間軸資訊是參考那一個輸入訊號,預設為 0, 代表輸出訊號的時間軸參考第一組輸入訊號。其它未被指定為 Reference 的輸入訊號, 其時間軸資訊會直接套用第一組訊號的設定。套用時間軸設定的原則是,缺少資料的時間點會補 0, 時間超過參考的資料就刪除。

而在輸入的單位皆相同,但彼此時間起始不同,或是取樣頻率不同時:

Reference Input 決定輸出訊號的取樣頻率,而時間起始可由參數 MergeType 來選擇時間範圍。 若選擇 AND 時間交集,則交集時間外的數據全部會被捨棄,輸出訊號的長度為所有輸入通道中共同經歷的時間。 若是選擇 OR 時間聯集,本來沒有數據之時間點會用 MissValueFillType 與 MissingValueFillValue 中指定的的數值填補,輸出訊號的長度為自輸入訊號中最早的時間至最晚的時間。

一般而言為避免混淆,建議輸入 Merge to Multi-Channel 的訊號彼此的時間軸資訊, 如 SamplingFreq、時間起始點及時間長度 TimeLength 相一致。

範例(Example)

範例一:將兩個時間起始相同的單通道輸入合併成一個多通道


  1. 先產生兩筆取樣頻率不同的訊號。本例選取一個 Sine Wave 與一個 Square Wae,打開參數視窗,確認兩者參數皆如下圖所示:


    將兩組訊號都連到 Channel Viewer,可以見到如下的圖:


  2. 再將兩組訊號都連接至 Conversion / Merge to Multi-Channel,接著也用 Channel Viewer 繪圖,便可見到與第一個 Channel Viewer 相同的圖。

範例二:將兩個時間起始不同的單通道輸入合併成一個多通道


  1. 延續範例一,修改 Sine 訊號源的參數,如下:


    此時,Viewer 1 的圖會變成以下圖表,Square 從 0 秒開始到 1 秒結束,而 Sine 從 0.5 秒開始到 1.5 秒結束。


  2. 若希望合併後擷取同時包含兩筆資料的時間片段 (也就是 0.5 秒到 1 秒的資料),點開 ToMulti 的參數,並將 EnableOverlapCapability 的參數由 False 改為 True。 再將新出現的 MergeType 選擇 AND 時間交集,如下圖所示。


    此時 Viewer 2 的圖會變成:


    Sine 1 秒到 1.5 秒的資料被刪除;而 Square 在 0~0.5 秒的資訊也沒有保留。

  3. 若是要將資料全部都放入輸出,則在 MergeType 選擇 OR 時間聯集,此時會有新的參數 MissingValueFillType 與 MissingValueFillValue 跑出來,本例選擇 Fixed Value 並指定填補數字為 0,即可見在 Viewer 2 中見到如以下的圖表:


    在本來沒有資料的地方全部被填上 0,Sine 的資料長度由本來的 0.5~1.5 秒變成 0~1.5 秒;而 Square 的資料也由0~1 秒變成 0~1.5 秒。

相關指令(Related Functions)

Square WaveSine WaveChannel Viewer

4.7 Split Complex

將複數訊號或數值的實、虛部分離。

說明(Description)

\(Z = \{z_j^{c}\}\) 為一個複數,多通道的訊號,\(1 \leq c \leq C\)代表通道,\(0 \leq j < N\) 為時間軸。令 \(X = \{x_j^{a}\}\) 代表實部, \(Y = \{y_j^{a}\}\) 代表虛部 ,則 \(Z\) 可表示為

\[\begin{aligned} Z &= X + iY\\ z_j^a &= x_j^a + y_j^a, \quad 0 \leq j < N, \; 1 \leq c \leq C \end{aligned}\]

經過 Split Complex 後輸出的訊號 \(S = \{s_j^c\}\) 可表示為

\[s_j^d = \begin{cases} x_j^c, \quad d = 2c-1\\ y_j^c, \quad d = 2c\\ \end{cases}\\[0.5em] 1 \leq c \leq C\]

上式代表輸出訊號的奇數通道儲存訊號實部 \(X\),偶數的通道儲存訊號虛部 \(Y\),且均為實數資料。

參數設定(Properties)

本模組接受複數(Complex Number),單通道(Single Channel)或多通道 (Multi-Channel),Regular 或 Indexed 的訊號(Signal),聲音訊號(Audio) 或數值資料(Numeric)輸入;輸出訊號為實數,多通道(Multi-Channel)資料。

範例(Example)

本範例將示範以一個訊號各為 1000 Hz 取樣頻率和長度 1 秒的 Sine Wave、1000 Hz 取樣頻率和長度 1 秒的 White Noise、振幅皆為 1 當作輸入訊號,經過 Fourier Transform 產生複數訊號,再作 Merge to Multi-Channel,最後經由 Split Complex 分成實部和虛部。步驟如下:

  1. 於 Network 視窗下選擇 Source / Noise 創造一個白色雜訊(White Noise) 和 Source / Sine Wave, Properties 皆為預設,再經由 Compute / Transform / Fourier Transform 處理,最後以 Compute / Conversion / Merge to Multi-Channel 將上述訊號合成為 2 個通道的訊號資料。


  2. 將此複數訊號經由 Split Complex 處理,用 Viewer / Channel Viewer 顯示於視窗,改變 Viewer 的 Properties / Channel / Multi-Channel Display為 List。




  3. 最後可以使用 Data Viewer 看 Split Complex 輸出的訊號格式,表格中奇數 Channel 為訊號實部,偶數 Channel 為訊號虛部。


相關指令(Related Functions)

NoiseSine WaveMerge to Multi-ChannelFourier Transform

4.8 Convert to Indexed

訊號被進行各種運算時,訊號日期或時間絕大部分是時間間距固定 (Regular),但是總有例外的情形,使用者需要將計算後結果以非等間距 (Indexed)的展示。Convert To Indexed 可以將 Regular 的訊號中時間點 會依照另一個 Indexed 訊號的不等間距的時間點,重新組合成一個新的 Indexed 訊號。

參數設定(Properties)

本模組接受一個實數(Real Number)、複數(Complex Number), 單通道(Single Channel)或多通道(Multi-Channel), Regular 的訊號以及另一個實數(Real Number)、 複數(Complex Number),單通道(Single Channel) 或多通道 (Multi-Channel),Indexed 的訊號; 輸出訊號格式為實數、複數,單通道、多通道的 Indexed 訊號。

範例(Example)

  1. 先從 Yahoo Finance: Yahoo Finance Link 下載一筆 GE(General Electrical Co.)2009-01-02 到 2009-12-09 的開盤價, 另存 CSV 檔案,由於星期六、日或假期沒有開盤,所以暫且不將日期資料加入, 利用 Text Importer 開啟檔案,Data Range / SpecifyTime Column 為 Unchecked 和 Columns: 2 to end,Date Axis / Auto 為 Unchecked,Time Coordinate / Time Unit 為 day 以及 Sampling Frequency 為 1,讓讀取進來訊號屬於 Regular,時間單位為 day。最後連接至 Viewer / Channel Viewer 顯示。




  2. 再將 GE Source 連接至 Compute / Filter / Trend Estimator,Trend Estimator 的 Properties 中,FilteType 為 HighPass,再從 Trend 接至 Viewer / Channel Viewer 顯示。




  3. 最後要將日期資訊取代現有的時間軸,將 Regular 訊號轉成 Indexed 訊號,利用 Text Importer 再開啟 CSV 檔案,Data Range / Specify Time Column 為 Checked,和 Columns: 2 to end,讀取進來訊號屬於 Indexed,時間單位為 day。


  4. 最後將 Trend 運算結果連接 Conversion / Convert to Indexed,接下來將第二次讀取進來的 Source(GE2)也連接至 Convert to Indexed,最後將 Convert to Indexed 連至 Viewer / Channel Viewer 展示,可以看見有日期的資訊出現在 X 軸。



    也可以利用 Data Viewer 檢視 Convert to Indexed 的訊號,訊號不會有星期六、日或假期的資料,訊號是一個 Indexed 格式的訊號。


相關指令(Related Functions)

Import DataChannel ViewerTrend EstimatorData Viewer

4.9 Convert to Matrix*

*Only in Professional*

將訊號轉換為 Numeric 型態的矩陣資料,並可以進行各種矩陣運算。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number), 單通道(Single Channel)或多通道(Multi-Channel), Regular 或 Indexed 的訊號 (Signal),聲音訊號(Audio)或時頻資料(Spectra)。


參數名稱 參數定義 預設值
Column-Major 設定為 True,輸入訊號時間序列為矩陣的縱列,反之則相反。 True

範例(Example)

  1. 首先利用 Source / Noise 及 Sine Wave 產生兩個訊號源,然後再將兩個訊號源分別接至 Compute / TFA / Short-Term Fourier Transform,最後再分別以 Conversion / Convert to Matrix 轉換為矩陣,模組連接狀況如下圖。


  2. 再將兩個轉換為矩陣的資料一起接至 Compute / Matrix / Matrix Operation,參數皆以預設,將 Matrix Operation(\(A + B\))接至 Conversion / Covert from Matrix ,DataType 設定為 TimeFrequencySpectra,最後用 TF Viewer 顯示其結果。



相關指令(Related Functions)

Short-Term Fourier TransformConvert from Matrix

4.10 Convert from Matrix*

*Only in Professional*

將 Numeric 型態的矩陣資料轉換為各種訊號例如時序訊號、頻譜訊號、時頻資料。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number),Regular 或 Indexed 的 Numeric 矩陣資料。


參數名稱 參數定義 預設值
Column-Major 設定為 “True”,輸入訊號時間序列為矩陣的縱列,反之則相反。 True
DataType 設定輸出的訊號為 TimeDomainSignal(時序訊號)、FreqDomainSignal(頻譜訊號)和 TimeFrequencySpectra(時頻資料)。 TimeDomainSignal

若是 DataType 為 TimeDomainSignal,則會有下列參數需要設定。

參數名稱 參數定義 預設值
StartDateTime 設定輸出時序訊號的起始的 DateTime。 0001/1/1 上午 12:00:00
SamplingPeriod 設定輸出時序訊號的取樣周期。 0.001
TimeUnit 設定輸出時序訊號的單位。 sec

若是 DataType 為 FreqDomainSignal,則會有下列參數需要設定。

參數名稱 參數定義 預設值
StartFreq 設定輸出頻譜訊號的起始頻率。 0
EndFreq 設定輸出頻譜訊號的結束頻率。 500
FreqUnit 設定輸出頻譜訊號的單位。 Hz

若是 DataType 為 TimeFreqSpectra,則會有下列參數需要設定。

參數名稱 參數定義 預設值
StartDateTime 設定輸出時頻資料時間軸的起始 DateTime。 0001/1/1 上午 12:00:00
SamplingPeriod 設定輸出時頻資料的點跟點之間的時間間距。 0.001
TimeUnit 設定輸出時頻資料時間軸的的單位。 sec
StartFreq 設定輸出時頻資料頻率軸的起始頻率。 0
EndFreq 設定輸出時頻資料頻率軸的結束頻率。 500
FreqUnit 設定輸出時頻資料頻率軸的單位。 Hz

範例(Example)

  1. 首先利用 Source / Noise 及 Sine Wave 產生兩個訊號源,然後再將兩個訊號源分別接至 Compute / TFA / Short-Term Fourier Transform,最後再分別以 Conversion / Convert to Matrix 轉換為矩陣,模組連接狀況如下圖。


  2. 再將兩個轉換為矩陣的資料一起接至 Compute / Matrix / Matrix Operation,參數皆以預設,將 Matrix Operation(\(A + B\))接至 Conversion / Covert from Matrix ,DataType 設定為 TimeFrequencySpectra,最後用 TF Viewer 顯示其結果。



  3. DataType 設定為 TimeDomainSignal,參數皆以預設,最後用 Channel Viewer 顯示其結果。


相關指令(Related Functions)

Short-Term Fourier TransformConvert to Matrix

4.11 Convert from Spectra

將 Spectra 資料轉換為單、多個通道的時序訊號或者單、多個頻譜訊號。

說明(Description)

可以將時頻資料中的某一個列(Row) 或全部列萃取出來,即為某一固定頻率振幅隨著時間變化。將時頻資料中的某一個欄 (Column)或全佈欄萃取出來,即為某一時間點的頻率分佈。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number), 單通道(Single Channel)或多通道(Multi-Channel)的時頻資料(Spectra)。


參數名稱 參數定義 預設值
ExtractionMode 設定要擷取的是列(Row)或欄(Column),設定選擇有 MultiChannelRows、MultiChannelColumns、SingleRow、SingleColumn。 SingleRow
Row 設定要擷取第幾個列(Row)。 0
Column 設定要擷取第幾個欄(Column)。 0

範例(Example)

  1. 首先利用 Source / Advanced / Jaehne 產生訊號源,然後接至 Compute / TFA / Short-Term Fourier Transform,所有參數皆為預設,模組連接狀況如下圖。


  2. 再將 STFT 連接至 Coversion / Convert from Spectra,Convert from Spectra 的參數 Rows 設定為 50 ,最後用 Channel Viewer 顯示萃取第 50 列的結果。



  3. 再將 Convert from Spectra 的參數 ExtractionMode 設定為 SingleColumn,Column 設定為 100 ,最後用 Channel Viewer 顯示萃取第 100 欄的結果,得到頻率分佈。


相關指令(Related Functions)

Short-Term Fourier TransformConvert from Spectra

5 訊號源模組(Source)

5.1 Open Data

由外部匯入訊號檔。

有兩種方法可以匯入外部訊號檔:(1)在 Network 工具列上點選 Import Data 圖示,可選擇輸入檔案(即左下圖紅框按鈕);(2) 可以於模組編譯區利用滑數右鍵選單之 Source / Import Data(即右下圖所示)。


支援檔案種類

操作上述步驟後會跳出如下圖視窗供使用者選擇輸入的檔案。支援檔案包括純文字類的檔案,如 .txt、.csv、.tfa 等,聲音檔案如 .wav、.mp3 等,以及特殊檔案格式如 MATLAB MAT 用的二進位檔(binary file),SAC 地震分析軟體的資料檔,HEA 是由 Physionet 組織所發展一系列生醫訊號軟體之通用格式。支援的檔案中副檔名為 .tfa 的資料檔為本產品專屬的訊號儲存格式。檔案內容如下,開始起頭為 " # " 的是標頭文字,記錄訊號的時間軸資訊,以下的內容便是訊號資料,因此可直接在讀取 .tfa 訊號檔時得到時間軸的資訊。

副檔名 檔案類型
txt 一般 Plain Text File 純文字檔案。
csv 逗號分隔檔 Comma-separated values。
tfa Visual Signal 訊號檔。
vsb Visual Signal 訊號 binary 檔。
mat MATLAB 資料檔。
sac SAC 檔是套裝軟體SAC(Seismic Analysis Code)的訊號檔,用在與地震相關之研究。
Audio files wav, mp3, m4a 等聲音檔。
mp3 MPEG1 audio player 聲音檔。
hea, atr 生醫訊號通用檔案格式,說明請參考www.physionet.org網頁內容。



下圖為 TFA 檔案的格式,主要包含兩部分有 時間軸資訊和訊號。


###SAC Importer###

SAC 為地震分析軟體的資料檔,讀取 sac 檔時程式會跳出 SAC Importer 以設定訊號的讀取範圍等參數,SAC Importer 介面如下圖所示:


SAC Signal Information可顯示與設定訊號的資訊,其中 Name、Channel Count、Sample Freq 顯示目前讀取的資料檔名稱、訊號通道數以及取樣頻率。Magnitude Unit 可供使用者設定訊號值的單位;Time Unit 可以讓使用者調整時間單位,當改變單位後,Sample Frequency 會自動換算為調整後的單位。

Data Range 可讓使用者設定讀取訊號的範圍,其中 Count 與 Range 欄位顯示資料數量與資料的時間長度,在 From、To 欄位可設定讀取訊號的起迄點位置,Down-sample by 欄位則可設定是否要 Down-sample 以及設定 Down-sample 的步長。

Data Axis 則可選擇是否設定年月日等時間軸資訊。

###WaveFormDatabase Importer###

HEA 是 Physionet 此組織發展一系列生醫訊號軟體之通用格式檔。讀取此檔時會跳出 WFDB Importer 協助使用者設定參數,下圖是 WFBD Importer 的使用介面。


介面前三大項 Signal Information、Data Range、DataAxis 與 SAC Importer 相同,這裡不再重複。當輸入訊號為多通道時,會出現 Selected Channels 的選項,讓使用者選擇讀取的 Channel。

###Text Importer###

Csv 與 Txt 是文字檔,Csv 是以逗點分格之形式;選定文字檔匯入時,會跳出 Text Importer 輸入設定介面(如下圖所示),供使用者定義訊號必備的格式。由於 Text Importer 式面操作上較複雜,用法上會以範例作進一步的說明,在此說明各參數之意義。


Data Range 定義檔案資料的排列方式,各參數意義整理如下表所示。

參數名稱 參數定義 預設值
Rows 資料在「列」方向的讀取範圍,如第一列至第三列為訊號資訊,第四列以下才是真正的訊號,設定為 4 to End。 1 to End
Columns 資料在「行」方向的讀取範圍。 1 to End
Data Direction 設定資料是以行的方向排列或是以列的方向排列,列如第一行為第一個通道訊號,則可設定 Column-based 。 Column-based
Concatenate to one channel 設定多行(列)的資料是否為同一通道的訊號。若 unchecked 會判斷為多通道。 Unchecked
Specify Time Column 資料中是否一行(或一列)是訊號所對應的時間資料,若勾選,必須指定時間軸資料的行或列,需注意勾選後輸入訊號會變成 Indexed 格式。 Unchecked

Field Format 定義資料分隔的方式,White Spaced 代表資料間以空白鍵分隔,如 txt 檔多半按此格式儲存;Delimeter 代表資料間以逗號「,」分隔,如 csv 檔就是照此形式;Fixed field 則提供使用者自訂讀取的格式, " | " 代表抓取一個字元;" []" 代表抓取兩個字元的資料;" [-]“代表抓取三個字元的資料以此類推,所設定的每一個格式都當為一個通道,譬如此欄設為”|[–][]" 讀取資料列 " 123456789 “,資料會儲存為 3 個通道,第一個通道為” 1 “,第二個通道為” 2345 “, 第三個通道為”67 “,數據 8 與 9 會被捨棄,然後再繼續掃描下一列。須注意若數據包括空白(white space),則會被認為到此列最後。

Null Value Handle 是當資料檔中有 Null 或 NaN 的狀況時,可以勾選 Use Null Value Handle 選擇填補缺值的方法。目前有 Fixed value、Prev value、Next value、Linear Interp、SplineInterp、Monotonic Cubic 等補值方法,請參閱模組 Resample 的說明部分。

Time Coordinate 是設定訊號時間軸資訊,若資料在時間上是以等間距排列,則此資料就是 regular,必須設定 Time Coordinate 下的參數,以設定起始時間、取樣頻率等資訊,各參數定義整理如下表所示。若已在 Data Range 中設定了 Specify Time Column,輸入後資料格式即為 Indexed,Indexed 格式中每個資料點都已經有相對應的時間座標值,因此除了時間單位 TimeUnit 需再設定之外,其它 Time Coordinate 的參數都用不到。

參數名稱 參數定義 預設值
Time Unit 設定資料的時間單位。程式的時間單位計有 psec、nsec、msec、sec、minute、hour、day、week、month(30 days)、year(365 days)。 sec
Time Shift 資料時間的起始值。 0
Sample Frequency 設定資料的取樣頻率。 1000
Down-sample by 若資料量太大,可選擇 Down-Sample by,每 X 個點取一次來降低取樣點數以節省計算時間。但擷取的資料點依然會套用參數所設定的取樣頻率,此功能等同於 Resample 這個模組。 Unchecked

Date Axis 為設定訊號的年、月、日等時間軸資訊, 預設 Auto 為 Checked ,可以自動找尋資料中某行代表日期資訊,並且將 Specify Time Column 設定為此行,若將 Auto 及 SpecifyTime Column 設定為 Unchecked,才可以勾選 Enable 功能,此時訊號屬於等間距(regular), 並可設定起始的日期時間

範例(Example)

多通道訊號資料檔

匯入一個多通道訊號資料檔,資料以空白鍵分隔,內有三組資料,一行為一筆,假設取樣頻率為 1000 Hz,時間單位為 milisecond,部份訊號內容如下圖所示。


  1. 可直接由紅圈起部份匯入,亦可由 Source / Open Data 匯入。


    跳出 Text Importer,在此匯入的資料無時間軸資料,如想三筆全匯,就需將 Column 設為 1 to end;反之,若只想取第二行資料,就將其設定為 2to 2。


  2. 因為資料並無時間序列資訊,故需填寫 Time Coordinate 部份,在此例中為時間單位為秒,而單位時間內有 1000 筆資料。


    匯入後連上 Channel Viewer 確認 :


    本例示範資料檔包含時間座標值,且資料內容有缺值的時候該如何處理,有一行為時間軸座標,且內容有缺值的資料檔。


  3. 首先需了解資料檔內容(如下圖所示),第一列 至 第三列資料是註解文字而非訊號本身,第四列之後才是訊號。第一行資料內容是時間軸座標值,第二行的內容為每個時間點所對應的訊號值,可以發現第九列的訊號值是 NaN,而 NaN 是代表缺值(空值),了解資料檔內容後,接下來介紹如何利用 Text Importer 處理。


  4. 由於資料檔第一列至第三列是註解文字,所以在 Text Importer 的 Data Range 下,Rows 要調整為 4,指定訊號資料從第四列開始。 因為本資料第一行是時間軸座標,因此在要勾選 Specify Time Column,後方的數字可設定時間軸座標是在第幾行,本例是第一行,因為第二行為訊號本身,Columns 為 2 to end。

    .

  5. 因為檔案是空白鍵分隔,所以不用改變 Field Format 設定。Null Value Handle 可對訊號空值的地方進行補值,補值方法與模組 Fill Null Value 相同,此例選擇用 Linear Interp 線性內差補值。


    如選擇不補值,結束 TextImporter 後會有如下警告。


  6. 雖然資料檔已包含時間軸補座標值,但是時間單位仍未設定,因此在 Time Coordinate 下僅需要設定 Time Unit 即可,本例之時間單位為小時。


    完成上述步驟後就算設定完畢,可以按下「Import」,即可將此訊號資料檔讀入。


    因為選擇 Specify TimeColumn,讀進來的訊號格式為 Indexed,若訊號需作更進一步的處理,則需參考模組 Convert to regular 文件。


資料為 CSV 格式:

CSV 格式是資料以逗點分隔。此例中第一列至第三列是註解,因此須設定從第四列開始讀入;此外,資料有時間列在第二行。只要這時間格式是被.Net 平台所接受的,Visual Signal 會自動判斷時間格式,Field format 會自動設定分隔是逗點。


若資料量太大,則可選擇 Down-sample by,每X 個點取一次來降低取樣點數以節省計算時間。此例中是五個點取一次數值。


※ 不建議輸入有小數點的絕對時間單位,如 2005 / 3 / 18 15:05:35.01242

  1. 若希望匯入之資料時間格式有日時分秒,且非以逗點分隔的 CSV 格式,如此就需設定 Data Axis 以及 Time Coordinate。此例中,為 Time Coordinate 設定時間起點從 2002 年 3 月 12 日 4 時6 分 50 秒開始,時間單位為一天,一單位時間內有 1000 筆資料。



  2. 若資料為固定格式,即每筆資料所佔之字元長度是相同的,則可用 Fixed field; " | “的功能是:一筆資料裡面,擷取 1 個字元的資料作為該通道的資料;” []" 的功能是:一筆資料裡面,擷取 2 個字元資料作為該通道的資料;" [ -]" 一筆資料裡面,擷取 3 個字元資料作為該通道的資料; " [ - -]" 的功能是:一筆資料裡面,擷取 4 個字元的資料作為該通道的資料。特別注意 Fixed field 會忽略所有空白,而將同列資料完全以字元數量做為分隔基準。


    上圖的設定是表示將讀取進來的資料分為三個通道寫入;第一個通道讀進一個字元,第二個通道讀進四個字元 (第二到第五個字元),第三個通道讀進五個字元(第六至第十個字元),在 File Content 中,最上方紅色數字表示為由左向右第幾個字元位置。X Value 則是依照Sample Frequency 的設定將 1 秒的資料分為 1000 筆,因此每 0.001 秒讀進一個數值。讀入後的資料可用 Data viewer 觀察結果。


###Matlab Importer###

若匯入者為 mat 這種 MATLAB 專用的二進位檔,則會進入如下列介紹的 Matlab Importer:

  1. 首先介紹開啟 mat 檔案而訊號格式為 Signal,則會進入以下畫面的 Matlab Importer,參數設定大致與文字檔完全相同。。


  2. 若匯入 mat 為包含訊號格式為時頻資料(Spectra),此 mat 檔案必定包含三種變數 資料 ( X_value ) ( N * M 矩陣 )、時間軸 ( X_time ) ( M * 1 矩陣 )、頻率軸 ( X_freq ) ( N * 1 矩陣 ),Visual Signal 才能匯入時頻資料,列如本示範包含 STFT_value、STFT_time、STFT_freq,如下圖所示。

    假設 Import as Spectra 為Unchecked,則將會把資料 (_value ) 以多通道訊號匯入,並不會將頻率資訊 ( _freq ) 引入 ,在此必須特別注意。


###Import Wave or MP3###

若匯入是wav、mp3這兩種聲音檔,則會直接產生一個 Source 元件不會進入 Importer。



參數總覽如下:

參數名稱 參數定義 預設值
Data Range:選定之資料範圍
Rows 列(row)之起點與終點。 全部
Column 行(column)之起點與終點。 全部
Data Direction 時間序列之方向(即資料是行輸入亦或列輸入)。 Column(行)
Concatenate to 若資料為多行,是否將所有列(行)串在一起視為一列(一行)。
One Channel
Specify Time 原資料是否有時間序列?若有,則設定時間序列是第幾行。 無時間序列
Column
Field Format:輸入資料的分隔方式。
White spaced 以空白分隔。
Delimeter 以標點分隔。
Fixed Field 設定每數值字串長度,作為資料分段之標準。
Null Value Handle:有缺值資料的處理
NullFilledMethod 資料若缺值,補值與否?(補值之方法,請參考Compute / Channel / Fill Null Value)。 是,線性內插法。
Time Coordinate:設定時間軸資訊。
Time Shift 設定訊號的時間軸起始點。 0
Time Units 時間單位;可以為毫秒、秒、分、時、日、月、年。
Sample Frequency 取樣頻率,即單位時間內共有多少個取樣點。 1000
Down-sample by 若資料量太大,可選擇 Down-sample by,每 X 個點取一次來降低取樣點數以節省計算時間。但擷取的資料點依然會套用參數所設定的取樣頻率,此功能有別於 Resample 這個模組。 1
Date Axis
Enable 若資料是日期之型式且無時間序列,則須做此設定。 Unchecked/Disabled
Start Date/Time 起始日期;第一格為日期,後三格分別為時、分 、秒

相關指令(Related Functions)

ViewerFill Null Value

5.2 Noise

建立雜訊訊號源,可產生七種不同雜訊(Noise)。

說明(Description)

以下介紹各項雜訊的定義,令 \(x(t)\) 代表雜訊:

參數設定(Properties)


參數名稱 參數定義 預設值
TimeUnit 時間單位,可為皮秒(ps)、奈秒(ns)、微秒(us)、毫秒(ms)、秒(sec)、 分(minute)、時(hour)、日(day)、月(month)、年(year)。 sec
TimeLength 時間長度,時間單位為TimeUnit。 1
SamplingFreq 取樣頻率,單位時間內共要取幾個點。 1000
DataLength 產生信號的資料長度,即總共的取樣點數: \(\text{取樣頻率} \times \text{時間長度} + 1\) 1001
Amplitude 雜訊之振幅。 1
AmplitudeOffSet 雜訊振幅之平移量。 0
TimeStart 設定雜訊之時間起點。 0

以上參數設定為所有訊號源共用,以下不再重複,只列出各訊號源獨有之參數設定。

Gaussian Noise 與 Speckle Noise 還需多兩參數 :

參數名稱 參數定義 預設值
Sigma(Gaussian) 設定高斯函數之寬度。 1
Probability(Speckle) 設定 Speckle 雜訊發生之機率。 0.005

範例(Example)

雜訊檢測:

  1. 以 Source / Noise 建立七個不同種類的雜訊訊號源,全部以 Viewer / Channel Viewer 繪出。









  2. 接下來測試各雜訊的行為:將 Pink Noise 做 Compute / Transform / FFT 傅立葉轉換,取Conversion / Map ToReal,再將 ToReal 中的 Properties / MapMethod 設定為 PowerSpectrum,可發現此頻譜密度值大體上與頻率成反比 (也可不接 Map to Real 直接將 Viewer 中的 YValueType 設為 Powerspectrum)。




  3. 步驟2的作法同樣可應用於 Brown、Blue、Violet 等其他有色雜訊,如對 Blue Noise 可得下面之頻譜密度值,可見 Blue Noise 之頻譜密度值正比於頻率。


  4. 將 Noise Type 設定為 Gaussian Noise,且 Time Length 設為 100 秒,以 Viewer / Histogram Viewer 可以畫出 Gaussin Noise 的統計直方圖,其分佈曲線即為常態分怖。


相關指令(Related Functions)

Channel ViewerFourier TransformMap To Real

相關資料

1. http://en.wikipedia.org/wiki/Colors_of_noise

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

5.3 Sine Wave

建立正弦波。

說明(Description)

\(t\) 為代表時間,長度為 \(N\) 的數列,\(T = \{t_0, t_1, \dots, t_{N-1}\}\), 則一正弦波訊號 \(x_{\text{sine}}(t_i)\) 可表示為

\[x_{\text{sine}}(t_i) = A \sin{(\omega t_i + \theta)} + V\]

其中 \(A\) 是振幅,\(\omega\) 是角頻率(Angular Frequency),\(\theta\) 是初始相角,\(V\) 是振幅之平移量;而在輸入參數時,輸入之訊號頻率為 \(f\),而非角速度:

\[f = \frac{\omega}{2\pi}\]

參數設定(Properties)


參數名稱 參數定義 預設值
SignalFreq 此訊號之實際頻率,單位為時間長度之倒數(注意,是頻率,非角速度)。 10
Phase 初始相角值,以角度為單位。 0

其他共有參數請參考 Noise Source

範例(Example)

正弦波之建立:

  1. Source / Sine Wave 建立正弦波。



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

  2. 可設定其 Phase(初始相角)為 90,如此正弦波即可變為餘弦波(Cosine Wave)。



  3. 設定 Amplitude 為 3,AmplitudeOffSe t為 1.5,再設定 TimeStart 為 2.0,SignalFreq 設為 0.5,可得下列圖形:



相關指令(Related Functions)

Noise SourceChannel ViewerSquare WaveTriangle Wave

5.4 Square Wave

建立方波。

說明(Description)

\(x_{\text{square}}(t)\) 為一方波,則

\[x_{\text{square}}(t) = \begin{cases} A+V, \quad \theta \leq t < s f^{-1}+\theta\\[0.5em] -A+V, \quad s f^{-1}+\theta \leq t < f^{-1}+\theta \end{cases}\\[1em] x_{\text{square}}(t+f^{-1}) = x_{\text{square}}(t)\]

其中 \(A\) 是振幅,\(f\) 是頻率,\(s\) 是方波震幅為正的部份在訊號週期所佔之比例量(symmetry), \(\theta\) 是初始相角,\(V\) 是振幅之平移量。

參數設定(Properties)


參數名稱 參數定義 預設值
SignalFreq 此訊號之實際頻率,單位為時間長度之倒數(注意,是頻率,非角速度)。 10
Phase 初始相角值,以角度為單位。 0
Symmetry 修改波形的對稱性,訊號的一個週期內,訊號值大於零的部份之比例量為 \(s\), 小於零的負部份為 \(1-s\) 0.5

其他共有參數請參考 Noise Source

範例(Example)

方波之建立:

  1. 以 Source / Square Wave 建立正弦波。



    在 Square 的 Properties / Source 裡,可知此例的取樣頻率(SamplingFreq) 設定為預設值(1000),訊號頻率(SignalFreq)設為 10。

  2. 可設定其 SignalFreq 設為 5,Amplitude 為 3,AmplitudeOffSet 為 2,Symmetry 為 0.4(即為s),再設定 TimeStart 為 2.5,可得下列圖形:



相關指令(Related Functions)

Noise SourceChannel Viewer

5.5 Triangle Wave

建立三角波。

說明(Description)

\(x_{\text{triangle}}(t)\) 為一三角波,則

\[x_{\text{triangle}}(t) = \begin{cases} \frac{A f}{s}t+V, \quad \theta \leq t < s f^{-1}+\theta\\[0.5em] A[1-\frac{f}{1-s}(t-sf^{-1})]+V, \quad s f^{-1}+\theta \leq t < f^{-1}+\theta \end{cases}\\[1em] x_{\text{triangle}}(t+f^{-1}) = x_{\text{triangle}}(t)\]

其中 \(A\) 是振幅,\(f\) 是頻率,\(s\) 是斜率為正的部份在訊號週期所佔之比例量(symmetry), \(\theta\) 是初始相角,\(V\) 是振幅之平移量。

參數設定(Properties)


參數名稱 參數定義 預設值
SignalFreq 此訊號之實際頻率,單位為時間長度之倒數(注意,是頻率,非角速度)。 10
Phase 初始相角值,以角度為單位。 0
Symmetry 修改波形的對稱性,訊號的一個週期內,訊號斜率為正的部份之比例量為 \(s\), 負部份為 \(1-s\) 0.5

其他共有參數請參考 Noise Source

範例(Example)

建立三角波。

  1. 以 Source / Triangle Wave 建立三角波。



  2. 可將 AmplitudeOffSet 設為 0.3,再設定 TimeStart 為 0.3,SignalFreq 設為 4,Symmetry 設為 0.7,可得下列圖形:



相關指令(Related Functions)

Noise SourceSquare WaveSine WaveChannel Viewer

5.6 Custom Wave

自行輸入欲創建之訊號的方程式。

參數設定(Properties)


參數名稱 參數定義 預設值
Expression 設定欲產生訊號之方程式 sin(2*pi*10*t)

其他共有參數請參考 Noise Source

Expression 可用 sin,cos,tan,exp,asin 等常用數學函數,在此與 Math 中的 fn 選單所支援之函數完全一樣(可參考 C sharp 所支援之數學函式)。 特別注意次方的表式法:\(a^n\) 需寫為 pow(a,b)

範例(Example)

建立一頻率整比於時間的準穩態訊號:

  1. 拉出 Source /Custom Wave。並設定 Custon wave 的時間長度為 2(便利於觀察), Expression 設定如下圖,此方程式之意思為 \(\sin(200 \cdot t^2)\)


    拉出 Viewer 可觀察圖型如下。


    接下圖可用 short-term fourier transform 「驗證」其頻率正比於時間,配置與時頻圖如下,可見,頻率確實正比於時間。



  2. 同樣我們可建立一個 \(\tan^{-1}(\mathrm{e}^{3-20t})\)



相關指令(Related Functions)

Noise SourceChannel ViewerShort Term Fourier TransformationMath

參考資料

http://msdn.microsoft.com/en-us/library/system.math_methods.aspx

5.7 Impulse*

*Only in Professional*

建立脈衝訊號。

說明(Description)

\(t\) 為代表時間,長度為 \(N\) 的數列,\(T = \{t_0, t_1, \dots, t_{N-1}\}\), 一個完美的脈衝訊號 \(x_{\text{impulse}}(t_i)\) 可表示為

\[\begin{aligned} x_{\text{impulse}}(t_i) &= A \cdot u(t_i - T) + V\\[0.5em] u(t) &= \begin{cases} 1, \quad t = 0\\ 0, \quad \text{otherwise} \end{cases} \end{aligned}\]

其中 \(T\) 為衝擊所產生的時間點, \(A\) 是振幅,\(V\) 是振幅之平移量。在此模組下提供三種近似的脈衝訊號, 包括Gaussian、Square 及 Decay:

參數設定(Properties)


參數名稱 參數定義 預設值
ImpulseShape 脈衝形態,可為Gaussian、Square、Decay。 Gaussian
Start 脈衝起始時間。 0
SingleImpulse 是否只產生單一脈衝。 False
Interval 脈衝與脈衝之間的間距。 0.2
PositiveImpulse 設定是否為正的脈衝。 True

其中,ImpulseShape = Gaussian,多了一個參數:

參數名稱 參數定義 預設值
Sigma 設定 Normal Distribution 的寬度,sigma 越小,圖形越尖銳。 0.005

其中,ImpulseShape = Square,多了一個參數:

參數名稱 參數定義 預設值
Width 設定方形脈衝的寬度,若設定為 0,實際寬度設定為輸入訊號兩點的時距。 0

其中,ImpulseShape = Decay,多了一個參數:

參數名稱 參數定義 預設值
Width 設定方形脈衝的寬度,若設定為 0,實際寬度設定為輸入訊號兩點的間距。 0
Decay 設定振幅衰減的時間,當設定值越小代表衰減時間越快。 0.005


其他共有參數請參考 Noise Source

範例(Example)

脈衝訊號之建立,脈衝訊號的時頻分析:

  1. 以 Source / Advanced / Impulse 建立脈衝訊號,並以 Viewer / Channel Viewer 繪出圖形。



  2. 再將Impulse 接至 Compute / TFA / Short Term Fourier Transform運算,最後以 Viewer / Time-Frequency Viewer 顯示結果。



  3. 設定 Impulse 的參數,Sigma =0.0001,將 Sigma 調整越小,在 Channer Viewer 中圖形越接近完美脈衝,在TFA Viewer 能清楚看到頻寬較大的現象。




相關指令(Related Functions)

Noise SourceChannel ViewerTime-Frequency ViewerShort Term Fourier Transform

5.8 Jaehne*

*Only in Professional*

建立 Jaehne signal。

說明(Description)

\(t\) 為代表時間,長度為 \(N\) 的數列,\(T = \{t_0, t_1, \dots, t_{N-1}\}\),Jaehne 訊號可表示為

\[x_{\text{Jaehne}}(t_i) = A\sin\bigg(\frac{\pi i^2}{2N}\bigg) + V\]

其中 \(A\) 是振幅,\(V\) 是振幅之平移量。

參數設定(Properties)


共有參數請參考 Noise Source

範例(Example)

Jaehne 訊號之建立,並將 Jaehne 訊號進行時頻分析:

  1. 以 Source / Advanced/ Jaehne 建立訊號,並以 Viewer / Channel Viewer 繪出圖形。



  2. 再將 Jaehne 接至 Compute / TFA / Short Term Fourier Transform 運算,最後以 Viewer / Time-Frequency Viewer 顯示結果,Jaehne 訊號類似 Chirp 訊號,隨著時間增加,訊號頻率增加。



相關指令(Related Functions)

Noise SourceChannel ViewerTime-Frequency ViewerShort Term Fourier Transform

5.9 NI-DAQ*

* Only in DAQ Module*

NI-DAQ 為 Visual Signal 和 NI 資料擷取卡的中間窗口,透過其向 NI-MAX 取得擷取卡數據讀入至 Visual Signal 做進一步的處理。

使用說明

購買 NI 擷取卡後,可於其網站上下載驅動程式 NI Measurement & Automation Explorer(NI-MAX),下載完成後便可與本軟體之 DAQ 模組合併使用。

在Visual Signal的Network視窗按下滑鼠右鍵,依路徑 Source\DAQ\NI-DAQ叫出 NI-DAQ元件,元件圖示如下圖。


在 元件上雙擊兩次滑鼠左鍵或點選 Property 視窗中的 Open NI-DAQ Interface即可跳出 NI-DAQ的操作介面 。



若於介面中按下 ,可開啟 NI-MAX 的自動量測程式介面。

如在NI-MAX中調整過參數,回到NI-DAQ頁面記得利用刷新資訊。

可將Task的三個參數回到同NI-MAX的預設。

在執行前會先檢查需外接硬體的Task是否正確接上擷取卡。

當一切準備就緒,點擊開始抓取數據,在執行期間隨時可按下中止,若於執行結束前按下此鍵,則已擷取的資料將隨中止一併放棄。

執行完成後,用讓數據匯入Visual Signal 以便後續分析。

Available Tasks 中顯示存於NI-MAX中的擷取設定(左側的NI-DAQmx Tasks,下圖紅線框起處);而不同的 Task 中的不同的 Rate(Hz)及Samples to Read(黑線框起處)也會分別讀入NI-DAQ中的Sample Rate(Hz)和 Data Length,透過 NI-DAQ自行計算總取樣時間 Sample Time (s),減少使用者需要另外計算之不便。


參數說明

相關參數說明如下表。

參數名稱 參數定義 預設值
Open NI-DAQ Interface 打開 NI-DAQ的使用介面,可由此介面與NI-MAX連結。 No data Imported


範例

下面透過實作說明 DAQ 的使用方法。

  1. 新增DAQ元件,並雙擊元件呼叫出 NI-DAQ介面。


  2. 點開Open NI-MAX,

  3. 接著在 NI-MAX 中新增 Task 後回到 NI-DAQ介面。


  4. 在 NI-DAQ 介面中按下 Refresh,Available Tasks欄位出現剛才在NI-MAX新增的Task資訊。

  5. 確定參數沒有問題後按下執行。


  6. 等待執行完畢,點選 Import 將數據讀入Visual Signal。


  7. 利用Viewer展示結果,如以下圖。



參考資料

  1. NI Hardware Driver NI DAQmx :http://sine.ni.com/psp/app/doc/p/id/psp-268

6 繪圖模組(Viewer)

6.1 Annotation*

*Only in Professional*

資料呈現在 Channel Viewer 及 XY Plot 時,可以在圖上加上標註與畫上曲線。

說明(Description)

此群組包含橢圓(Ellipse)、水平線(HLine)、水平區域(HRegion)、直線 (Line)、矩型(Rect)、純文字(Text)、垂直線(VLine)、垂直區域(VRegion) 等標註功能。

參數設定(Properties)

每個標註模組或多或少參數有些許不同,如果參數包含座標值,則以該 Channel Viewer 或 XY Plot 的座標軸為依據繪於圖上,也可直接使用滑鼠拖拉標註至適當的位置。

共有參數:

參數名稱 參數定義 預設值
ZOrder 圖型所在的層,越上面越大。原資料是第零層。所以 -1 就壓在原資料下面, 反之 1 為壓掉原資料。 -1
LinePen 加註的繪圖設定。可設定顏色(Color)、線條樣式(DashStyle)、與線條寬度(Width), 而此參數在 Text 直接被拆開。 Color = Red
DashStyle = Solid
Width = 1

Ellipse(橢圓標註)、Line(直線標註)、Rect(矩型標註)之參數:

參數名稱 參數定義 預設值
Start 圖型座標起點,若為矩型與橢圓,則起點設定在左下角。 X = 0,Y = 0
End 圖型座標終點,矩型與橢圓是設定右上之點。 X = 1,Y = 1

Text(文字標註)之參數:

參數名稱 參數定義 預設值
Text 文字內容。 TEXT
Position 文字所在位置之座標點。 X = 0,Y = 0
TextColor 文字顏色。 Red
Textfont 文字字型,包括大小、字體、樣式,支援的種類依系統所擁有的字型而定。 字體 Arial,大小 10。

HRegion(水平區域面積標註)與 VRegion(垂直區域面積標註)之參數:

參數名稱 參數定義 預設值
Position1 繪圖之座標起點。 0
Position2 繪圖之座標終點。 1
PixelIndent 邊界之線條空白寬度。 0
Color1 起點之顏色。 Red
Color2 終點之顏色。中間區域之顏色為 color1 與 color2 以漸層之方式以整張圖比例混合。 White

HLine(水平線標註功能)與 VLine(垂直線標註功能)之參數:

參數名稱 參數定義 預設值
Position 線條所在之座標點。 0
PixelIndent 邊界之線條空白寬度 0

範例(Example)

將正弦波加註。

  1. 以 Source / Sine Wave 建立正弦波並以 Viewer / Channel Viewer 觀看其結果,並將 Channel Viewer 的參數 ViewerHeight 設定為 400。



  2. 接著把 View 加上 Rect、Ellipse、Text,並將 Properties 做如下設定:



    設定 Ellipse 參數如上圖所示


    設定 Rect 參數如上圖所示


    設定 Text 參數如上圖所示

  3. 執行鍵後,可得到下面圖型。


  4. 再將 Line、HRegion、VRegion 圖像連接上 Viewer,如圖所示,並依下列的圖示說明進行進一步的設定:



    設定 Line 參數如上圖所示


    設定 HRegion 參數如上圖所示


    設定 VRegion 參數如上圖所示

  5. 執行鍵後,會得到以下的圖型:


  6. 將滑鼠箭頭移至 HRegion,箭頭將變成小手掌,則可以拖拉 HRegion 至繪圖區內的某處,其他的標註也都可以用相同的方法去拖拉移動,不需要在參數內重新輸入位置或起始點。



相關指令(Related Functions)

Channel ViewerSine Wave

6.2 Box Plot Viewer*

*Only in Professional*

繪製方盒圖。

說明(Description)

Box Plot Viewer 是統計常用的一種繪圖方式。將一群組的數值以中位數、 四分之一位數及四分之三位數為基礎,繪出一方盒, 用連接至方盒的直線表示數列的極大值與極小值, 藉以展現群組的統計資訊。

參數設定(Properties)

本模組接受實(real number)、複數(complex number),單通道(single channel)或多通道(multi-channel),regular或Indexed的訊號(signal)或聲音訊號(audio)輸入, 且支援多個訊號連入。參數 Appearance 、Fontsand Colors、Grid、 Title 這些部分請參考 Channel Viewer, 下面說明 Box Plot Viewer 所特有的參數。


BoxPlot Viewer 參數圖示

參數名稱 參數定義 預設值
BrushColor 繪製方盒內部的筆刷顏色。 LightGrey
BorderColor 繪製方盒邊界的筆刷顏色。 Black
TicksLabelAngle 方盒圖下方標題文字排列的角度(degree)。 0
MaxMarkerStyle 畫數列中最大值所使用的符號。 Circle
MinMarkerStyle 畫數列中最小值所使用的符號。 Cross1
MeanMarkerStyle 畫數列中平均值所使用的符號。 FilledSquare

範例(Example)

產生一個 Brownian Noise 與 CustomWave,用 Channel Viewer 繪出訊號後,再以 Box Plot Viewer 繪出兩訊號的方盒圖。

  1. 在 Source / Noise 建立一個雜訊 Noise,調整 Properties / NoiseType 為 Brown,接著在 Source / Custom Wave 建立一個 CustomWave,在 Properties / Expression 欄位輸入算式 sin(2*pi*10*t)-3*pow(t,2), 最後再將兩組訊號彙集於同一個 Channel Viewer 中,接著執行後會得到如下圖所示的結果。



  2. 在 Viewer / Box Plot Viewer 建立一個 Box Plot Viewer,接著將 Noise 與 CustomWave 連入 Box Plot Viewer,即可畫出含有兩個方盒的方盒圖。



相關指令(Related Functions)

TF Viewer使用者介面Map to Real

6.3 Channel Viewer

Channel Viewer 的功能是以圖形的方式將訊號波形繪製出來,以供操作者作進一步的訊號分析與判讀。

說明(Description)

Channel Viewer 是繪出訊號資料的工具,可以用圖形的方式呈現時域訊號和頻譜等訊號。 繪圖時會依照每個資料點所對應的時間或頻率大小,由小到大將訊號資料繪製出來。

參數設定(Properties)

本模組接受實(real number)、複數(complex number),單通道(single channel) 或多通道(multi-channel),regular或Indexed的訊號(signal)或聲音訊號(audio)輸入輸入, 而且支援多個訊號連入。由於 Channel Viewer 的參數眾多,下面將分類一一介紹。

  1. Appearance

    在 Viewer 模組下可以調整以下四個參數;包含 BackColor、ViewerWidth 、ViewerHeight、ListOrder。詳細的說明,可參考各參數的定義。


    參數名稱 參數定義 預設值
    BackColor 設定繪製圖形的底色。 White
    ViewerWidth 設定繪製圖形的寬度,以 pixels 為單位。 650
    ViewerHeight 設定繪製圖形的高度,以 pixels 為單位。 180
    ListOrder 設定圖形於繪圖視窗中的排序。 依照 Viewer 的建立順序排列
    RetainPlot 設定是否要保留圖形,如果設定 True,若將連接至 Channe Viewer 的模組刪除,圖形還是會被保留,若設定 False,則圖形被消除。 False
  2. Channel


    參數名稱 參數定義 預設值
    Channel Count 顯示 Channel Viewer 元件接收的訊號通道數。 (無法修改)
    Multi-Channel Display 決定訊號繪製的方式,有重疊繪製(Overlaped) 和分開依列繪製(List)兩種。 Overlapped
    Show value Channel 若輸入訊號為 Multi-Channel 或多組輸入訊號,可設定 ShowValue Channel 指定使用 Show Value 時要顯示的 Channel 資料。 Channel 1
  3. Representation


    參數名稱 參數定義 預設值
    TimeUnit 顯示訊號的時間單位。 依輸入而異
    LegendPosition 圖例說明方塊呈現的位置。選項有不顯示、左上、左下、右上、右下、 圖框外右邊或使用者自行設定。若設定為使用者自行設定, 可以利用滑鼠拖拉 Legend 至適當的位置。 None
    AutoLegendNames 設定是否要根據輸入訊號的資訊顯示出個通道 Legend,若設定為 True, 將會根據輸入訊號去調整 Legend,若為 False,Legend 則是根據 PlotElemEditor 的設定。 False
    DrawStyle 訊號被繪製的方式,有線條(Line)模式與針狀圖模式(Steam)。 Line
    XAxisType X軸的類型,有 Linear Axis 或 Log Axis。 LinearAxis
    PlotElemEditor 可叫出 Plot Element Setting介面,供使用者編輯繪圖的樣式。 PlotEditor
    YValueType 當輸入為複數資料(通常為頻譜資料)時,此欄位可選擇繪出不同的圖形, 選項有Magnitude、Phase、Real、Imagine、Gain、Powerspectrum。 相關定義請參閱 Conversion/Map to Real。 Magnitude
    GainReference 若 YValueType 設定為 Gain,此欄位會自動出現供使用者設定。 相關定義請參閱 Conversion/Map to Real。 1
    HoldPlotRange 當此欄位為設定為 True, 即使圖面被縮放或平移工具調整過, 在更新計算後,圖面仍可維持在之前調整的範圍。 False
    Xmin 設定圖 X 軸的最小值。 auto
    Xmax 設定圖 X 軸的最大值。 auto
    Ymin 設定圖 Y 軸的最小值。 auto
    Ymax 設定圖 Y 軸的最大值。 auto
    Show Title 是否顯示標題。 True
    Show X Axis 是否顯示 X 軸。 True
    Show Y Axis 是否顯示 Y 軸。 True

    PlotElemEditor 點選後會出現一視窗供使用者編輯繪圖樣式。使用者可調整線條的顏色、線寬、實線、虛線、更改 Channel 名稱,以及是否要加 Marker 等,也可以在 Display 勾選欄位下選擇是否要用線條繪出該 Channel 的訊號。


  4. Title


    參數名稱 參數定義 預設值
    Title 圖名。 輸入模組的名稱
    Xtitle X 軸名稱。 輸入模組的 X 軸單位
    Ytitle Y 軸名稱。
  5. Fonts and Colors


    參數名稱 參數定義 預設值
    Title Font 圖形名稱字型設定,包括Name(字體名稱)、Size(字體大小)、 Unit(字體單位)、Bold(粗體)、GdiCharSet(GDI 字元集的位元組值)、 GdiVerticalFont(是否衍生自GDI 垂直字型)、Italic(斜體)、 Strikeout(刪除線)、Underline(底線)。 Arial, 12pt
    Title Color 圖形名稱字體顏色。 Black
    X-Axis Title Font X軸名稱字型設定,參考 Title Font。 Arial, 11pt
    X-Axis Title Color X軸名稱字體顏色。 Black
    Y-Axis Title Font Y軸名稱字型設定,參考 Title Font。 Arial, 11pt
    Y-Axis Title Color Y軸名稱字體顏色。 Black
    X-Axis Label Font X軸標記字型設定,參考 Title Font。 Arial, 10pt
    X-Axis Label Color X軸標記字體顏色。 Black
    Y-Axis LabelFont Y軸標記字型設定,參考 Title Font。 Arial, 10pt
    Y-Axis Label Color Y軸標記字體顏色。 Black
  6. Grid


    參數名稱 參數定義 預設值
    Horizontal Grid Type 圖形背景的水平網格線設定,包含 None、Coarse、Fine。 Coarse
    Vertical GridType 圖形背景的垂直網格線設定,包含None、Coarse、Fine。 Coarse
    Major Grid Style 主網格線設定,包含Solid、Dash、Dot、DashDot、DashDotDot。 Solia
    Major Grid Color 主網格線顏色。 LightGray
    Minor Grid Style 副網格線設定,同Major Grid Style。 Solid
    Minor GridColor 副網格線顏色。 LightGray

範例(Example)

以下用範例簡單介紹 Audio Player 的操作。

  1. Source / Sine Wave 產生一個 Sine Wave,再接著產生 Source / Noise,再將兩個訊號利用 Conversion / Merge To Multi-Channel 結合成一個 Multi-Channel的訊號,再透過 Conversion / Convert to Audio 轉換成 Audio 檔,並設定 ToAudio的 Properties 中,Sample Rate = 1000,最後從 Viewer / Channel 用 Channel Viewer 將此 Audio 檔案用圖形展示出來。




  2. 調整 Sine 的 Properties 下 SignalFreq 為 400,則圖形會改變如下圖所示:



  3. 按 Audio 音訊檔案右上方的執行鍵後, 會由左至右開始進行 Audio 音訊檔案的撥放,如下圖所示, 紅色的線段為目前正在撥放的訊號位置,目前支援雙聲道播出 Audio,所以可以撥出 Multi-Channel 中的前兩個通道的訊號。


  4. 另外可用Zoom X 將感興趣的音訊區域放大,針對感興趣的範圍進行 Audio 音訊檔案的撥放,如下圖所示:


以下示範幾個常用的參數調整範例(Example),讓使用者對參數調整有進一步的了解。

  1. 在 Source / Square Wave 產生一個 Square Wave,以 Channel Viewer 繪出後如圖所示:



  2. 改變圖的大小,調整 Channel Viewer 的 Properties /ViewerWidth 以及 ViewerHeight,ViewerWidth = 500,ViewerHeight = 300,改變後如下圖所示:



  3. 使用者利用縮小放大工具(Zoom X / Zoom Y)或平移工具(Pan X / Pan Y) 檢視圖形時,若希望維持目前的檢視狀態,可以調整 Properties 下的 HoldPlotRange 功能鍵。將 Properties / HoldPlotRange 調整為 True。


  4. 然後用 Zoom X 工具將時間段大約 sec 到 0.5 sec 放大


  5. 在 Source / Sine Wave 產生一組 Sine Wave,將訊號線接到同一個 Channel Viewer,這步驟會使 Channel Viewer 更新內容。由於 HoldPlotRange= True,所以更新內容時圖軸仍會維持;若 HoldPlotRange= False,則圖軸會如在下一張圖,跳回至初始設定。




  6. 我們可以利用 Plot Elem Editor 來調整繪圖的樣式,在 Properties / Plot Elem Editor 欄位點選按鈕,即跳出編輯視窗。


    使用者藉由本視窗可以調整每個線條顏色、粗細以及樣式,譬如改變 Square:CH1的顏色為紅色,線條形式為虛線,並採用◆為 Marker,按下Apply 後可看到圖形改變如下。



  7. 示範以 Channel Viewer 繪製頻譜圖,並且改變 YValueType 繪製不同的圖形。在 Square 作 Compute / Transform/Fourier Transform (FFT),結果可用 ChannelViewer 繪製圖示出來。



    此頻譜圖的 X 軸為頻率,Y軸的 YValueType 預設為 Magnitude,將 YValueType 改變為 Phase,此時 Y 軸代表的是每個頻率的相位。



    ValueType 改變為 Gain時,參數會新增 GainReference。Gain 的定義為 \(20\log(\frac{A}{\text{GainRef}})\),單位是 dB,其中 log 以 10 為底,\(A\) 為 Magnitude,式中分母為 GainReference。



  8. 再調整 Channel Viewer 中參數,Grid / Properties 中 Horizontal Grid Type = Fine,Major Grid Color= Red,Minor Grid Style = DashDotDot。再將Fonts and Colors中Title Font = Times New Roman, 16pt, style=Bold,X-Axis Label Color = Blue,結果如下圖。



相關指令(Related Functions)

FFTMerge to Multi-ChannelConvert to Audio

6.4 Time-Frequency Viewer

Time-Frequency Viewer 是以圖像方式呈現三維時頻訊號(時間、頻率、訊號強度)的展示模組。

說明(Description)

Time-Frequency Viewer 是繪製時頻分析資料的工具,X 軸為訊號的時間軸;Y軸為頻率;圖的顏色代表強度。

參數設定(Properties)

本模組接受實數(real number)或複數(complex number)的單通道(single channel)時頻訊號(Spectra), 部分參數如 Appearance、Title、Fonts and Colors、Grid與部分 Representation 與 Channel Viewer 的參數相同,可以參考Channel Viewer 說明,本節僅介紹Time-frequency Viewer所獨有參數。


參數名稱 參數定義 預設值
CMin 設定時頻圖顏色最小值所對應的資料大小。 Auto
CMax 設定時頻圖顏色最大值所對應的資料大小。 Auto
Colormap 設定時頻圖顏色的樣式,有 Jet、Hsv、Rainbow、Gray 等四種樣式。 Jet
Shtw Color Bar 在圖的右方是否需要顯示顏色條。 False

範例(Example)

產生一個 Square Wave 訊號並以 Enhanced Morlet Transform 作時頻分析後,以 Time-Frequency Viewer 繪出,同時示範幾個常用的參數調整作進一步的說明。

  1. 在 Source / Square Wave 產生一組方波訊號,並以 Compute / TFA / Enhanced Morlet Transform 進行時頻分析,再以 Time-Frequency Viewer 繪出時頻圖,預設繪出的資料是 Magnitude。



  2. Properties / CMax 為 0.197772704820884,此值為時頻分析結果的顏色最大值, 顏色最大值預設是對應資料色彩的最大值。 在不同的分析情況, 使用者可能對某些頻段的資料較感興趣, 這時可藉由調整 CMax 的大小來改變時頻圖的色彩顯示狀況, 依不同的狀況調整 CMax 可找到較適的時頻圖,若是想要調整預設 CMax, 可至 Perference / Plot / Time Frequency Plot 中調整 CMax 。



  3. 設定 Show ColorBar 為 True 會於圖面右方新增一個顏色的色條, 此色條可作為時頻圖顏色與數值間的一個對照參考。



  4. 改變 TF Viewer 的 Properties / ValueType,設定為 Phase,則 TF Viewer 繪製相位角。



相關指令(Related Functions)

Channel Viewer使用者介面Map to Real

6.5 XY Plot Viewer

將兩組輸入訊號,分別當作相對應的 X、Y 軸進行繪圖。

說明(Description)

XY Plot Viewer 主要可接受三種訊號資料型態,並進行圖形的繪製。主要的說明與介紹如下:

  1. 兩組單通道訊號資料  Channel 1 為 X 軸;Channel 2 為 Y 軸,以此為原則進行 Plot。

  2. 一組多通道訊號資料  奇數 Channel 為 X軸;偶數 Channel 為 Y 軸,以此為原則進行 Plot。

  3. 單通道複數資料  以實數為 X 軸;虛數為 Y 軸,以此為原則進行 Plot。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number),單通道(Single Channel)或多通道(Multi-Channel), Regular 或Indexed 的訊號(Signal) 或聲音訊號(Audio)輸入。而且支援多個訊號輸入。參數 Appearance、 Title、Fonts and Colors、Grid 以及 Representation 大部份與 Channel Viewer 相同,請參考 Channel Viewer 的內容,下面說明 XY Plot Viewer 所特有的參數。

參數名稱 參數定義 預設值
MaxPointCount 繪圖用到的點數,由第一點開始計算。 1001

範例(Example)

用 Sine Wave 函數當 X 軸訊號,Triangle Wave 函數當 Y 軸訊號,再以 XY Plot Viewer 繪出。

  1. 在 Source / Sine Wave 產生一個 Sine Wave,接著從 Source / Triangle Wave 建立一個 Triangle Wave,再以 XY Plot Viewer 繪出如下圖所示:



產生一個 Brownian Noise 與 CustomWave,用 Kernel Smoothing Density 計算密度函數值,再以 XY Plot Viewer 繪出。

  1. 在 Source / Noise 產生一個雜訊 Noise,調整 Properties / NoiseType 為 Brown;接著從 Source / Custom Wave 建立一個 Custom Wave,於 Properties / Expression 欄位輸入算式 sin(2*pi*10*t)-3*t*t; 最後將兩組訊號以 Conversion / Merge To Multi-Channel 彙集於一個多通道訊號, 再用 Viewer / Channel Viewer將圖示繪製出來。



  2. 在 ToMulti 後計算 Compute / Statistics / Kernel Smoothing Density,並將結果以 Viewer / XY Plot繪出。



    XY Plot 的 X 軸代表輸入訊號的奇數 Channel(訊號資料),Y 軸代表偶數 Channel(機率密度函數)。

產生一組單通道複數資料,以 XY Plot Viewer 繪出。

  1. 先在 Source / Sine Wave 產生一個 Sine Wave;接著依同樣方法再做一個 Sine Wave,調整 Properties / Phase 為 90,便可產生一個 Cosine Wave。從 Conversion / To Complex 可將訊接轉為單通道複數資料,最後以 XY Plot Viewer 繪出如下圖所示:




  2. 在 Properties / Viewer Width 調整 Viewer Width 以及 ViewerHeight 為 300,重新以 XY Plot Viewer 繪製,結果顯示如下圖所示:



相關指令(Related Functions)

Channel ViewerKernel Smoothing Density

6.6 Histogram Viewer*

*Only in Professional*

利用 Histogram Viewer 可以簡單的繪製出統計直方圖。

說明(Description)

Histogram 是統計常用的一種繪圖方式。其作法是將所蒐集的數據、特性值或結果值用一定的範圍加以區分成幾個相等的區間做為橫軸, 並將各區間內的測定值所出現的次數累積起來作為縱軸,即 X 軸代表區間;Y 軸代表區間內測定值出現的次數, 以此為原則用柱形畫出直方圖。

參數設定(Properties)

本模組接受實數(Real Number)、複數(Complex Number),單通道(Single Channel)或多通道(Multi-Channel), Regular 或Indexed 的訊號(Signal)或聲音訊號(Audio)輸入。參數 Appearance、Fonts and Colors、Grid 以及 Title 相同於 Channel Viewer,這部分請參考 Channel Viewer 內容,下面說明 Histogram Viewer 所特有的參數。


參數名稱 參數定義 預設值
Active Channel 當輸入訊號為 Mulni-Channel 時,可設定此參數來選擇要繪製哪個 Channel 的資料。 Channel 1
Bincount 設定直方圖要區分成幾個相等的區間。 25
Color1 設定直方條左半部的顏色。 Grey
Color2 設定直方條右半部的顏色。 Transparent
BrushStyle 設定顏色漸層的方向。 Horizontal
PercentStyle 切換 Y 軸顯示為百分比或者是次數。 False
YValueType 若輸入訊號為複數,調整 YValueType 可將值調為 Magnitude、Phase、 Real、Image、Gain、Powerspectrum。 Magnitude
IsDrawLine 是否以線條連接各直方條頂端。 False

範例(Example)

產生一個 Gaussion Noise 與 CustomWave,用 Merge to Multi-channel 產生一多通道訊號,再以 Box Plot Viewer 繪出兩訊號的方盒圖。

  1. 在 Source / Noise 建立一個雜訊,調整 Properties / NoiseType 為 Gaussion;調整 Properties / Source / TimeLength 為 5。另外在 Source / Custom Wave 建立一個 Custom Wave,從 Properties / Source / TimeLength 調整時間長度為 5 秒。以 Conversion / Merge To Multi-Channel 將兩組訊號合成一多通道訊號,再用 Viewer / Channel Viewer 將圖繪製出來。



  2. 將 ToMulti 以 Viewer / Histogram Viewer 畫圖。此時會畫出 Channel 1 的直方圖。



  3. 改變 Properties / IsDrawLine 為 True,則直方圖上同時會顯示出線條,如下圖所示:



  4. 改變 Properties / Active Channel 為 Channel 2,則直方圖會繪製 Channel 2 訊號。



  5. 改變 Properties / BrushStyle 為 Vertical,則漸層的方向會轉為垂直方向。


相關指令(Related Functions)

Box Plot Viewer使用者介面Merge To Multi-Channel

6.7 Error Bar Viewer*

*Only in Professional*

Error Bar Viewer 為可畫出誤差線之繪圖工具。

說明(Description)

通常在做實驗、量測數據都會有誤差產生,若要將此誤差量表現在圖表中, 用以說明數據點的可信度或準確性時,便可利用 Error Bar Viewer。 下圖為 Error Bar Viewer 可繪出的典型樣式。


使用說明

本模組要求數據、誤差上限、誤差下限三個時間序列必須“依序”存在於同一個輸入(Input)之中。 連接至本模組之輸入若不恰好含有三個通道(Channel),皆會跳出錯誤訊息。

若數據、誤差上限、誤差下限三者不在同一個輸入之中,可以利用 Merge to Multi-channel 將其並排於同一輸入的不同通道中,再接至 Error Bar Viewer,如下圖所示。


參數說明(Properties)

本模組接受多通道(Multiple-Channel), Regular 的一般訊號(Signal) 及音源訊號(Audio)。特別注意當單一輸入之通道數不等於 3 時會出現錯誤訊息。其餘可調整之參數,如以下說明。

Channel Viewer 相同,Error Bar Viewer 之參數有 Appearance、Channel、Font and Colors、Module、Representation、Module、Representation、Title 七大類,每一大類中的參數,其使用方式也與多數的 Viewer 相同,在此不再贅述。 僅有 Representation 下的 Error Bar Plot Element Editor 為此模組專屬。


打開 Error Bar Plot Editor ,會跳出如下圖之視窗:


可以選擇是否要在圖中顯示誤差線,為數列命名,以及調整數據點的標記類型與顏色。 目前誤差線的顏色不能與數據點的顏色分開設定。

相關指令(Related Functions)

Channel Viewer

7 訊號輸出模組(Writer)

7.1 Export Data

Export Data 可將資料另存為各種格式的檔案。

說明(Description)

當需要將資料以另一軟體開啟,或是將計算結果儲存時,可以使用此功能。

Export Data 提供六種檔案格式供輸出,包含 MATLAB MAT Files(*.mat)、Plain Text Files(*.txt) 、 CSV Files(*.csv) 、Audio Files(*.wav, *.mp3, …),以及 Visual Signal 自訂的 TFA Files(*.tfa) 與 Binary Files (*.vsb)。此功能可以儲存除了繪圖(Viewer)、註解(Annotation) 模組以外的所有元件輸出的資料。請注意此功能不是視覺化元件。

MATLAB MAT File 格式請參閱 MATLAB 說明書。

Plain Text Files 為空格分隔的純文字檔。

CSV Files 是逗點分隔的純文字檔。

Audio Files 指各式各樣的音訊檔案,本程式支援的檔案格式在多數的播放軟體可以直接打開。以下將以 *.wav 檔案格式進行說明。在匯出 *.wav 音訊檔案時,訊號種類必須是 Audio。若一般訊號需要存成 *.wav 音訊檔案,請先接上 ToAudio 元件,再使用 Export Data 功能。

TFA Files 也是純文字檔,但在文件中多了檔頭(header)的設計,讓 Visual Signal 在讀入此類型檔案時可以更快速。 標頭中記載了包括資料類型、資料長度、取樣頻率…等資訊。

Binary Files 與 TFA Files 包含的資訊相同,唯編碼方式採用 binary 的方式,因此無法用一般的文字編輯器編輯。 利用此種檔案類型可將資料存成比上述其他檔案類型皆來得小的檔案,且讀入Visual Signal 也較以上所有檔案類型快。

使用說明

在欲存出的元件上按右鍵,選取 Export Data,或是選擇與存出的元件後,按 Network Window 工具列上的按鍵,即會跳出如下視窗:


在選擇好存出路徑以及存出檔案名稱後,選擇檔案類型,然後按下存檔鍵即可。

以下用 TFA Files 來說明存出檔案之格式,

  1. 若存出之數值為實數訊號(Signal and Audio)

    存出的檔案第一欄為時間軸,第二欄以後為資料。見下圖之說明。


  2. 存出的檔案是複數資料時(Complex)

    1. 若是輸出頻譜資料(如 FFT 後的結果),由於是為複數資料,所以檔案中第一欄為頻率軸, 第二欄之後依序為第一通道的實部、第一通道的虛部、第二通道的實部、第二通道的虛部…. 以實部->虛部->實部->虛部的方式類推。如下圖所示:


    2. 輸出訊號為頻譜時(如 STFT 的結果),第一欄為時間軸,第二、三欄為時頻圖中第一橫列的實部及虛部, 第四、五欄為第二橫列的實部與虛部,以此類推。對照時頻圖,每一橫列皆代表一個頻率, 然此頻率的數值必須從檔頭(header) 中的 # StartFreq 以及 # FreqInterval 來推算, 沒有直接顯示在檔案裡。

若儲存為 mat 檔,該檔內會有兩個變數,變數名稱會套用元件的名稱。以這個例子來說,會有 Sine_x 與 Sine_y;其中 Sine_x 儲存每個訊號資料所對應的時間, Sine_y 則儲存訊號資料, 資料都是以 column 的方向儲存。若訊號有 n 個通道,則在 Sine_y 變數會以 column 的方式儲存, 一個 column 代表一個 channel 的訊號資料。

相關指令(Related Functions)

Data Writer

7.2 Export to Excel

可將訊號資料以 Microsoft Excel 開啟。

說明(Description)

在需要將資料以 Excel 表單呈現,或是以 Excel 內建圖表繪製時,可以使用此功能。

注意 Export to Excel 只有寫出並開啟的功能,不會像 Write Data 元件將資料儲存。此功能可以儲存除了繪圖(Viewer)、註解(Annotation) 模組以外的所有元件輸出的資料。另外,此功能不是視覺化元件。

使用說明

與 Export Data 相同,在欲以 Excel 開啟的元件上擊點滑鼠右鍵,找到選單中 Writer 模組底下的 Export to Excel 即可。或是用滑鼠左鍵選取欲開啟的元件後,再點選 Network Window 工具列中的按鍵即可。

點完 Export to Excel 後,若輸出資料是時頻訊號,會出現如下圖之視窗,其他種類訊號寫出時則直接開啟 Excel。


此視窗要求使用者選擇輸出的內容,一般而言會選擇輸出 Magnitude 強度,即在時頻圖上看到的顏色深淺代表的數值,使用者也可以依需求選取要輸出的內容 (不能複選,需要兩種以上的請重複寫出步驟)。選完按 OK 後會直接開啟 Excel。

寫出至 Excel 之資料格式:

一般訊號及頻譜資料如 Signal

  1. 一般訊號及頻譜資料

    同 Export Data 的格式,請參閱其說明。

  2. 寫出的檔案為時頻資料(Spectra)

    資料的第一欄(column)為時間,第一行(row) 為頻率,選擇所輸出的數值在對應的時間與頻率格子中。下圖為示意圖:


7.3 Data Writer

本元件主要功能是將資料寫出並另存為各種格式的檔案。

說明(Description)

當希望計算的資料可以自動存成指定檔案時,尤其在使用 Batch 批次處理時,可以使用此元件。 注意此元件為視覺化元件,功能與 Export Data 相似,唯 Export Data 無法在批次處理時使用。可選擇存出之檔案種類包括:*.mat ,*.txt,*.csv ,Audio files,*.tfa ,*.vsb 。每一種檔案說明可參閱 Export Data。

注意 Data Writer 元件預設是關閉的,需要將執行開關打開才會存出檔案。

使用說明

將欲輸出之元件直接連接至 Data Writer,如下圖顯示將 source Sine 輸出。


點選 Data Writer 參數 Outputfilename,如下圖


接著,如下,在跳出的視窗中選擇檔案種類並輸入檔案位置。


最後,再將 Data Writer 元件執行開關打開,檔案就會存出了。

相關指令(Related Functions)

Export Data

8 巨集與容器

8.1 巨集(Macro)*

*Only in Professional*

將元件編譯區中的訊號處理程序建立巨集,在不同專案中快速建立同樣的程序。

說明(Description)

巨集(Macro) 主要用於儲存標準化之訊號處理流程,日後在應用上無需重新設定流程。

Macro 跟 Project 檔其實都是 .vsn 檔,是一樣的東西,只是用 Load Project 讀取 .vsn 檔時,會新開啟一個 Project,而用 Load Macro 讀取 .vsn 檔,則會在目前的 Project 下匯入 Macro 所儲存的運算程序。

範例(Example)

訊號之複雜度分析 :

  1. 在此欲檢測雜訊的分析,運算流程如下圖所示。


  2. 現在想將此運算流程儲存起來,但不儲存資料,就要在主畫面的下拉式選單 File 下選擇 Save Macro,以巨集儲存(存檔前先將欲分析之訊號資料刪除,僅留存運算流程),巨集名稱取作 testMacro。




  3. 現在新增一個專案,新增訊號源為 Source / Square Wave,於 Square 圖示上按右鍵點選 Macros (或於主選單 File 下選擇 Load Macro),就可看到剛儲存的巨集名稱。於 Macro 載入時會出現一提示訊息詢問使用者是否以 Container 的方式載入,在此範例中,先選取否,不以 Container 的方式載入,Container 將會於下一節中詳細說明。



    須注意不論專案存在那個目錄,若巨集皆是存在 Visual Signal 安裝目錄下的 Macros 資料夾下,此巨集就會出現在 Network 的選單中。

  4. 如此設定仍有些許不便;當匯入 Macro 時,仍須把資料連接到不同的模組上,如此之連結線有可能非常多,為解決此問題,可用 Dup 做為 Macro 接口,以後匯入 Macro 時只需將資料聯接到 Dup 後即可(如下圖)。


  5. 上述範例為很簡單的示範,通常應用 Macro 的程序都十分繁雜,程式內部就預設了幾個 Macro,以其中的 HHT_SplitView 為例,此巨集內容是將訊號做 EMD 後,再把每一個計算出的 IMF 都單獨畫出來。



    若需要在不同的 Network 重複建立如上圖的運算流程將浪費不少時間,將這些常用的運算儲存為 Macro 可大幅提升操作之便利性。

相關指令(Related Functions)

DupContainer

8.2 容器(Container)*

*Only in Professional*

將一段訊號處理流程包裝為一個元件,以便於使用者管理複雜之訊號計算程序。

說明(Description)

若處理複雜的訊號分析問題,模組元件很可能會塞滿整個模組編譯視窗,現在 Visual Signal 新增一個 Container 模組,將訊號處理流程包裝為一個元件。


新增一個 Container 就如同新增一個 Project 一般,只是這模組編譯區是屬於 Container,可以跟一般 Project 一樣在 Container 的模組編譯區操作,如同 Project 獨立於原 Project 之外擁有自己的視覺化繪圖區,也可以有很多個 input source (DataIn),不同點在於 Container 只能有一個 output(DataOut)。


Container 主要功能之說明如下。

功能名稱 功能意義
Add 增加一個 Container
DataIn 在Container 內,指明外部資料之進入點。
DataOut 在Container內,指明輸出資料之匯出點。

在 DataIn 中會有一個數 InputFrom,在多個模組連上同一 Container 時需設定此 Data 來自於何者。


須注意一個 Container 只能有一個 DataOut。

範例(Example)

包裝一訊號處理流程為一個 Container。

  1. 將 Sin 與 Triangle 及 Noise 混合。(為有利於觀察, 在此故意將 Sin wave、Triangle 及 Noise 之週期與振幅做變化)


    原訊號為:


    混合後為


  2. Mixer 後方以 Container / Add 新增 Container 模組, 新增後程式會自動產生 Project1.Container 的模組編譯區 在主程式視窗左邊也可看到新增的 Project1.Container 的視覺化繪圖區。



    在 Container 內首先必須先於右鍵選單中選擇 Container / DataIn,將外部資料 (即輸 入資料 Mixer) 匯入 Container。在 DataIn 後面連上 Compute / Filter / FIR Filter ,再連上 Compute / TFA / Enhenced Morlet 計算。最後連上 Container / DataOut 把 計算結果傳至 Container 的輸出埠。


    DataIn 裡面有參數 InputFrom,若有多個模組連入同一個 Container,在 DataIn 必須設 定該 DataIn 是接收那一個模組的資料,本例較單純,Input 僅為 Mixer。


  3. 另外 FIR 後方可再做 Transform / Fourier Transform, 並以 Viewer / Channel Viewer 繪出圖形。


    Fourier Transform 的圖型為 :


    繪此圖型之 Viewer 在 Container 內。

    回到原本的 Project,將 Container 直接接上 TFA Viewer,即為剛在 Container 內計算 之結果 :



  4. Container 與 Macro 在概念上有所雷同,因此有兩點需要特別注意:Container 不能 像 Macro 一樣獨自存在,只能與所屬的 Project 一起儲存。在 Container 內如同在 一般的 Project 一樣,可以讀取、操作 Macro。

相關指令(Related Functions)

Macro