Document Revision

Last Update: 2023/11/01

Release Notes

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

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

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

Function List

Visual Signal 1.6 各版本功能表

運算元件(Compute)

Channel
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
Accumulate \(\checkmark\)
Channel Switch \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Data Merge \(\checkmark\) \(\checkmark\) \(\checkmark\)
Data Selection \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Dup \(\checkmark\) \(\checkmark\) \(\checkmark\)
Fill Null Value \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Input Switch \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Peak Detection \(\checkmark\) \(\checkmark\) \(\checkmark\)
Remove Channel \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Replace Value \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Resample \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
RR Interval \(\checkmark\) \(\checkmark\) \(\checkmark\)
Time Shift \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Trigger Alignment \(\checkmark\) \(\checkmark\) \(\checkmark\)
Enhanced
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
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
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
External Dll \(\checkmark\)
External Viewer \(\checkmark\)
WebService \(\checkmark\)
Filters
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
Comb Filter \(\checkmark\) \(\checkmark\)
FIR Filter \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
IIR Filter \(\checkmark\)
Iterative Guassian Filter \(\checkmark\)
Median Filter \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Moving Average \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Notch Filter \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Trend Estimator \(\checkmark\)
HHT
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
AnCAD EMD \(\checkmark\)
HHT ListView Macro \(\checkmark\)
HHT SplitView Macro \(\checkmark\)
IMF Property \(\checkmark\) \(\checkmark\)
RCADA EEMD \(\checkmark\) \(\checkmark\)
Mathematics
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
Diff \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
DoMatlab \(\checkmark\) \(\checkmark\)
Integrate \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Math \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Mixer \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Multiplier \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Normalize \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Remove DC \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
RMS \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Matrix
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
Diagonal Vector \(\checkmark\)
Matrix Inverse \(\checkmark\)
Matrix Operation \(\checkmark\)
Matrix
Condition Numbers
\(\checkmark\)
Extract
Region of Interest
\(\checkmark\)
Transpose \(\checkmark\)
Extract Vector \(\checkmark\)
Statistics
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
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
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
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\) \(\checkmark\)
Transpose Spectra \(\checkmark\) \(\checkmark\)
Transform
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
Auto Correlation \(\checkmark\) \(\checkmark\)
Cross Correlation \(\checkmark\) \(\checkmark\)
Discrete Cosine
Transform
\(\checkmark\) \(\checkmark\)
Secogram \(\checkmark\) \(\checkmark\)
Fourier Transform \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
FFT Viewer Macro \(\checkmark\)
Haar Wavelet
Transform
\(\checkmark\) \(\checkmark\) \(\checkmark\)
Hilbert Transform \(\checkmark\) \(\checkmark\)
Inverse Discrete
Cosine Transform
\(\checkmark\) \(\checkmark\)
Inverse Fourier
Transform
\(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Inverse Haar
Transform
\(\checkmark\) \(\checkmark\)
Multi Scale Entropy \(\checkmark\) \(\checkmark\)
Coherence \(\checkmark\) \(\checkmark\)
Signal Windowing \(\checkmark\) \(\checkmark\)

轉換元件(Conversion)

Conversion
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
Convert
from Matrix
\(\checkmark\)
Convert
from Spectra
\(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Join \(\checkmark\) \(\checkmark\)
Merge
to Complex
\(\checkmark\) \(\checkmark\)
Merge to
Multi-Channel
\(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Split \(\checkmark\) \(\checkmark\)
Split Complex \(\checkmark\) \(\checkmark\)
Convert
to Audio
\(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Convert
to dB
\(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Convert
to Indexed
\(\checkmark\) \(\checkmark\)
Convert
to Matrix
\(\checkmark\)
Convert
to Regular
\(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Change
X-axis Unit
\(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)

輸入源元件(Source)

Sources
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
Import Data \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Impulse \(\checkmark\)
Jaehne \(\checkmark\)
Custom Wave \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Noise \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Sine Wave \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Square Wave \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Triangle Wave \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)

繪圖元件(Viewers)

Annotations
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
Ellipse \(\checkmark\)
HLine \(\checkmark\)
HRegion \(\checkmark\)
Line \(\checkmark\)
Rect \(\checkmark\)
Text \(\checkmark\)
VLine \(\checkmark\)
VRegion \(\checkmark\)
Data Viewer \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Box Plot Viewer \(\checkmark\)
Channel Viewer \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Error Bar Viewer \(\checkmark\)
Histogram Viewer \(\checkmark\)
Time-Frequency
Viewer
\(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
XY Plot \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)

輸出及其他(Writers)

Writers & Misc
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
Export Data \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Export to Excel \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Data Writer \(\checkmark\) \(\checkmark\) \(\checkmark\) \(\checkmark\)
Macro \(\checkmark\)
Batch Run \(\checkmark\)

Data Acquisition(DAQ)功能表

DAQ
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
Adlink-DAQ \(\checkmark\) \(\bigtriangleup\) \(\checkmark\)
Audio-DAQ \(\checkmark\) \(\checkmark\) \(\bigtriangleup\) \(\checkmark\)
Mindset-DAQ \(\bigtriangleup\) \(\checkmark\)
NI-DAQ \(\checkmark\) \(\bigtriangleup\) \(\checkmark\)
Simulated-DaQ \(\checkmark\) \(\bigtriangleup\) \(\checkmark\)

Sound and Vibration Module(SVM)功能表

SVM
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
Bearing Defect \(\bigtriangleup\) \(\checkmark\)
Cepstrum \(\bigtriangleup\) \(\checkmark\)
Crest Factor \(\bigtriangleup\) \(\checkmark\)
Digital Tacho \(\checkmark\) \(\checkmark\) \(\bigtriangleup\) \(\checkmark\)
Envelope \(\bigtriangleup\) \(\checkmark\)
Gearbox Creator \(\bigtriangleup\) \(\checkmark\)
Order Info \(\bigtriangleup\) \(\checkmark\)
Order Spectrogram \(\bigtriangleup\) \(\checkmark\)
Peak \(\bigtriangleup\) \(\checkmark\)
Scale \(\checkmark\) \(\checkmark\) \(\bigtriangleup\) \(\checkmark\)
Sound
Functions DAQ Express Lite (VSNI) Standard (Std) Professional (Pro)
Weighting \(\bigtriangleup\) \(\checkmark\)
Octave \(\bigtriangleup\) \(\checkmark\)

* \(\bigtriangleup\) 僅用STD版安裝檔無法外加本區模組,需用PRO版安裝檔+STD License才能滿足”在STD版本下外加模組”

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

1 應用程式介面

1.1 使用者操作介面(GUI)

Visual Signal 啟動後的畫面如下圖所示:


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

此三視窗在停泊狀態時可以用滑鼠在其分界線上拖曳改變視窗大小,如下圖:


也可雙擊上述各視窗的標題欄,或是用滑鼠由標題欄拖曳,使其離開原視窗停泊處,就能將該視窗獨立分離出來任意放大縮小,如下圖:


若再雙擊該視窗的標題欄,即可回復原視窗配置。也可以點擊視窗右上角之 X 圖示關閉該視窗。元件編輯視窗與參數設定視窗在關閉後可從主介面之版面選單重新開啟,請參考【主選單/版面】章節;關閉繪圖視窗則會同時關閉該視窗對應之專案,欲重啟則必須重新開啟專案,請參考【主選單/檔案】章節。

視窗介面還支援 Auto Hide 隱藏視窗的表現方式,點擊元件編輯視窗或參數設定視窗的 圖釘圖示,可將視窗設為自動隱藏。在自動隱藏模式下,視窗會自動縮至主介面右方隱藏,只留下一個標籤。此時將滑鼠游標移置任一標籤,所對應之視窗則會彈出,暫時顯示該視窗;若將滑鼠游標移至主介面別處,則目前暫時顯示之視窗會自動縮回。下圖為兩視窗皆設定為 Auto Hide:


可看到兩視窗均隱藏至主畫面右方標籤,參數編輯視窗則是暫時顯示,右上方的圖釘圖示顯示為暫時狀態。再點擊此圖式則可將該視窗切換回原來停泊顯示狀態,圖釘圖示則會回復至

1.2 主選單及工具列


Visual Signal 的主選單(如上圖所示)即為主介面上方橫列之下拉式選單,選項包括 File(檔案)、Edit(編輯)、View(顯示)、Layout(版面)、Tools(工具)、Help(幫助)等,以下章節會簡單分項介紹。

除了主選單之外,主介面還在主選單下方提供了工具列,如下圖。工具列擷取了主選單中常用的一些功能以圖示方式讓使用者可以快速點選使用。


以下為各圖示簡介,詳細說明可參考以下各章節。

主介面工具列圖示
圖示 主選單選項
檔案/新增專案
檔案/開啟專案
檔案/儲存專案
編輯/複製圖至剪貼簿
編輯/匯出圖至檔案
顯示/回復圖原狀態
顯示/水平縮放
顯示/垂直縮放
顯示/方框縮放
顯示/水平平移
顯示/垂直平移
顯示/顯示數值
工具/偏好設定

1.2.1 File(檔案)

本選單提供 New Project(新增專案)、Open Project(開啟專案)、Save Project(儲存專案)、Load Macro(讀入巨集)、Save Macro(儲存巨集)、Toggle Disk Paging(切換硬碟分頁)、Clear Project Memory(情除專案記憶體)、Clear All Memory(清除所有記憶體)、Close(關閉專案)、Close All(關閉所有專案)、Exit(離開)等選項。以下簡單介紹個選項:

New Project(新增專案)

此選項相當於【主介面工具列】上圖示,或是按下 CTRL-N鍵,可在 Visual Signal 中開啟一個新的專案。新專案默認的名稱為 Project**為從 1 開始之整數)。

Open Project(開啟專案)

此選項相當於【主介面工具列】上圖示,或是按下CTRL-O鍵,可開啟硬碟上現有的專案檔。專案檔儲存了專案內所有模組元件的連結,參數設定,繪圖設定等,檔案副檔名為 .vsn

Save Project(儲存專案)

此選項相當於【主介面工具列】上圖示,或是按下CTRL-S鍵,可儲存目前顯示的專案。若是儲存新專案,則等同選擇【Save Project As】選項,見以下章節說明。若是儲存開啟過之專案,則會直接以原專案檔名覆寫原專案檔。

無倫是 Save Project 或是 Save Project As,儲存前都會出現一個「儲存選項對話窗」,如下圖:


若勾選「Local Copy Imported Data」,則專案從別處匯入的資料檔則會被複製到專案同名並同路徑的資料夾內。若是專案內無匯入資料,則此選項會呈現灰色,無法勾選。

若勾選「Save Intermediate Data」,則下次開啟專案時,無須重新計算可將之前每個元件的計算結果載入並繪圖。

Save Project As(另存專案)

此選項相當於按下 CTRL-A 鍵,功能類似以上【Save Project】,但是會先跳出一個選擇儲存檔案名稱的對話窗,預設的儲存專案檔名為專案名稱加上 .vsn的副檔名。若選擇之檔名已經存在,則會出現確認覆寫之對話窗:

若選擇「Yes」則會覆寫該檔案,若選擇「No」則會回到選擇儲存檔案名稱的對話窗,另選一個檔案名稱。無論是儲存新檔案或是覆寫舊檔案,儲存前都會出現前一章所述之「儲存選項對話窗」,操作方法同前述。

Load/Save Macro(讀取/儲存巨集)

除了將 .vsn 專案檔以專案形式讀入或儲存之外,File 選單還可以將 .vsn 檔以巨集(Macro)形式讀入(Load Macro)或儲存(Save Macro)。Load Macro 選項相當於按下 CTRL-L 鍵,可讀取巨集;Save Macro 選項相當於按下 CTRL-M 鍵,可儲存巨集。專案與巨集的差別在於,讀取巨集時專案檔內的元件及連結會插入現有的專案內,所有巨集中的元件名稱會附加「_m 」的字樣以區別於原有專案的元件。巨集為 Visual Signal 專業版的功能,可以將常使用到的訊號處理步驟儲存為巨集,讓使用者在不同的專案中快速、方便地建立特定的計算流程與元件設定,無須再重新建立、連結與設定各元件。巨集的操作方法請參閱【巨集】的章節。

Toggle Disk Paging(切換硬碟分頁)

此選項可以將每個元件計算好的資料以暫存檔的形式存在硬碟上,避免佔用系統記憶體。

Clear Project/All Memory(清除專案/所有記憶體)

Clear Project Memory(清除專案記憶體)及Clear All Memory(清除所有記憶體)可強迫系統清除目前開啟或全部專案的記憶體。

Close/Close All(關閉專案/關閉所有專案)

Close(關閉專案)及Close All(關閉所有專案) 可關閉目前開啟或全部的專案。

Exit(離開)

此選項相當於按下 ALT-F4 鍵,或是點擊主介面右上角 X 圖示關閉視窗,可關閉 Visual Signal。如果有已修改未儲存的專案,Visual Signal 會詢問使用者是否要儲存該專案,如下圖:

點選「Yes」則相當於執行 Save Project(儲存專案)後再離開程式;點選「No」則忽略未存檔專案而直接離開程式;點選「Cancel」則取消離開程式,回到 Visual Signal 的主介面。

1.2.2 Edit(編輯)

本選單提供了元件編輯窗相關的選項:Update Modules (更新元件)、Undo/Redo(還原/重作)、Cut/Copy/Paste/Delete Modules(剪下/複製/貼上/刪除元件),以及繪圖視窗相關的選項:Copy Figures to Clipboard(複製圖至剪貼簿)、Export Figures to File(匯出圖至檔案)。以下分項介紹:

Update Modules (更新元件)

此選項相當於【元件編輯窗工具列】上 圖示,或是按下 F5 鍵,可強制執行所有模組元件,詳情請參考【元件編輯工具列】章節。

Undo/Redo(還原/重做)

此二選項相當於【元件編輯區】滑鼠右鍵選單上的 Undo/Redo 選項,或是按下對應之CTRL-Z/Y 鍵,可還原或重做模組元件的新增、刪除、剪貼、移動、連結等動作,詳情請參考【模組元件】的【還原與重做】章節。

Cut/Copy/Paste/Delete Modules(剪下/複製/貼上/刪除元件)

此四選項相當於【元件編輯窗】滑鼠右鍵選單上的 Cut/Copy/Paste/Delete 選項,或是按下對應之 CTRL-X/C/VDEL 鍵,可剪下、貼上、複製、刪除模組元件,詳情請參考【模組元件】的【剪貼簿】章節。

CopyCopy Figures to Clipboard(複製圖至剪貼簿)

此選項相當於【主介面工具列】上Copy圖示,或是按下 CTRL-ALT-C鍵,可將繪圖視窗中所有或選擇的圖在複製到系統剪貼簿上。圖的資料格式為 Windows 向量 Metafile 或 Bitmap 格式(可在【Preference】裡選擇)。使用者可使用支援此兩個格式的應用程式將圖貼入。

ExportExport Figures to File(匯出圖至檔案)

此選項相當於【主介面工具列】上Export圖示,或是按下 CTRL-ALT-E 鍵,可將繪圖視窗中所有或選擇的圖匯出至檔案。匯出時會開啟檔案選擇對話窗,此時可以輸入欲匯出之檔案名稱與路徑,以及選擇支援的圖檔格式,目前支援.png.jpg.bmp.tif.wmf.emf 等格式。

1.2.3 View(顯示)

本選單提供了繪圖視窗相關的選項:View Home(回復圖原狀態)、Zoom X(水平縮放)、 Zoom Y(垂直縮放)、Zoom Rect(方框縮放)、Pan X(水平平移)、Pan Y(垂直平移)、Show Value(顯示數值)。以下分項介紹:

View Home(回復圖原狀態)

此選項相當於【主介面工具列】上圖示,可將所有繪圖視窗的圖回復至原始狀態(無縮放也無平移,但不影響顯示數值的狀態)。

Zoom X(水平縮放)

此選項相當於【主介面工具列】上圖示,可將所有繪圖視窗的圖進入「水平縮放」狀態。進入水平縮放狀態後,可用以下三種方式將任一圖在水平方向縮放:

Zoom Y(垂直縮放)

此選項相當於【主介面工具列】上圖示,可將所有繪圖視窗的圖進入「垂直縮放」狀態。進入水平縮放狀態後,可用以下三種方式將任一圖在垂直方向縮放:

Zoom Rect(方框縮放)

此選項相當於【主介面工具列】上圖示,可將所有繪圖視窗的圖進入「方框縮放」的狀態。進入方框縮放狀態後,可用以下三種方式將任一圖同時在水平或垂直方向縮放:

Pan X/Y(水平/垂直平移)

此選項相當於【主介面工具列】上圖示,可將所有繪圖視窗的圖進入「水平或垂直平移」狀態。水平與垂直平移圖示可同時按下(再按一次則取消按下),因此進入平移狀態後,可用滑鼠在以下三種模式在任一圖中拖拉平移:

若解除平移狀態(水平及垂直平移圖示都取消按下),則會回到進入平移之前的縮放狀態。在平移狀態中,為了方便能夠同時進行縮放平移操作,仍然保留了滑鼠滾輪與+/- 鍵的縮放功能。縮放的方向與平移的模式相同(水平、垂直、或任一方向)。

Show Value(顯示數值)

此選項相當於【主介面工具列】上圖示,可將所有繪圖視窗的圖進入「顯示數值」的狀態。進入顯示數值狀態後,點選任一圖可以開啟滑鼠控制之十字線,在圖的資料點上移動,十字線中心的資料點之數值同時會顯示在中心旁的文字框內及主介面下方的狀態列上,如圖:

十字線在圖資料點上移動的方式可以在圖示旁的下拉選單中選擇 Pick 模式:

Pick 模式
Pick 模式 說明
Pick Any 移動十字線時選擇每一個資料點
Pick Maxima 移動十字線時選擇周圍最大資料點
Pick Minima 移動十字線時選擇周圍最小資料點
Pick Extrema 移動十字線時選擇周圍最大或最小資料點

1.2.4 Layout(版面)

本選單提供了版面控制的選項:Network Window(元件編輯視窗)、Property Window(參數設定視窗)、Tool Bar(工具列)、Status Bar(狀態列)、Default Layout(預設版面)。以下分項介紹:

Network/Property Window(元件編輯視窗與參數設定視窗)

前面在介紹【程式主介面】時提過元件編輯視窗及參數設定視窗可以被關閉,此二選項可以在關閉元件編輯視窗後重新打開元件編輯視窗或是參數設定視窗。

Tool Bar(工具列)

此選項可以關閉或打開主介面上方之工具列。

Status Bar(狀態列)

此選項可以關閉或打開主介面下方之狀態列。

Default Layout(預設版面)

前面在介紹【程式主介面】時提過元件編輯視窗、參數設定視窗、及繪圖視窗可以被獨立拉出、移動、改變大小、或關閉,此選項可以在改變版面後將主介面所有視窗回復至原預設版面。

1.2.5 Tools(工具)

本選單之 Preference (偏好)設定可讓使用者設定 Visual Signal 的各項執行預設值,其中詳細內容請參考【偏好設定】。

本選單另有隱藏之選項,可以由 Visual Signal 命令列介面開啟,例如 Language Editor (語言編輯器),提供使用者自行新增或編輯語言檔的功能。詳情參考【命令列介面】。

1.2.6 Help(幫助)

本選單提供了 Reference Guides(參考指南)、 License Manager(授權管理)、Update (更新)、 About(關於)等選項:

Reference Guides(參考指南)

此選項提供了 Visual Signal 的相關使用文件,其中 Online Reference Guide直接用系統默認網頁瀏覽器開啟【Visual Signal 線上使用說明的網頁】。網頁上除了有本文件的連結,還有 External API 文件,包括 API XML Protocol 及ExternalBase Class Library:API XML Protocol 提供 Visual Signal與外部 DLL 的溝通協定, ExternalBase Class Library 解說這個 Library 中各種函數屬性、回傳資料型態等,幫助使用者開發 External DLL (詳情請參考【外接元件(External)】章節)。

License Manager(授權管理)

此選項提供使用者管理、移除、匯入 license 的各項功能。同時,使用者註冊時所需要的系統 HostID 也顯示在 License Manager 的介面上。

Update(更新)

通常啟動 Visual Signal 時會自動上網檢查是否主程式或模組可以更新,若可以更新則進入自動更新的流程。若是使用者時常在無網路的環境下工作,或是不想每次開機都花時間上網檢查更新,則可以在偏好設定(請參考【偏好(Preference))】)中關閉此功能。此時若是需要更新,則可以用 Help 選單的 Update 選項手動執行這個流程。

About(關於)

此選項提供 Visual Signal 各項版本、授權類別、及安裝模組等訊息。

1.3 元件編輯視窗(Network Window)

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


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

1.3.1 工具列(Toolbar)

元件編輯視窗的工具列負責處理數據部份以及運算的控制,如下圖:

以下為各圖示簡介,詳細說明可參考以下各章節。

元件編輯視窗工具列圖示
圖示 功能
OpenData 匯入資料檔
AutoReload 連續重讀
ReloadBackward 單次後退重讀
ReloadForward 單次前進重讀
SaveData 儲存資料至檔案
DataViewer 資料瀏覽器
Excel 匯出資料至 Excel
Execute 強制執行
AutoChart 自動生圖
BatchRun 批次執行
Connections 顯示連結
Selection 選擇框模式

OpenData匯入資料檔

從外部讀取資料檔。接受的檔案格式眾多,依照副檔名自動判斷格式,並啟動相應之檔案匯入對話窗設定匯入之各種參數。本功能在【Open Data】中有詳細的解說,包括其他匯入資料的方法。

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


成功讀取檔案後,Visual Signal 會開啟 Load Data 對話窗,如下:

使用者可以選擇匯入完整的資料或是擷取部分資料(詳情請參閱【Load Data】 對話窗),資料匯入後則會自動在元件編輯區產生一個資料源元件(元件解說請參閱【Data Source】) ,如下圖:

AutoReload連續重讀

當匯入檔案模式為「部分擷取」時(詳情請參閱【Load Data】 對話窗),點選對應資料源元件後可點選此按鍵自動連續讀取下一個擷取窗的資料並重新執行所有下游連結之元件,直到擷取窗移動至資料尾端。下一個擷取窗的位置由部分擷取設定中之 Overlap 欄位決定。

ReloadBackward單次後退重讀

當匯入檔案模式為「部分擷取」時(詳情請參閱【Load Data】 對話窗),點選對應資料源元件後可點選此按鍵單次讀取前一個擷取窗的資料並重新執行所有下游連結之元件。前一個擷取窗的位置由部分擷取設定中之 Overlap 欄位決定。

ReloadForward單次前進重讀

當匯入檔案模式為「部分擷取」時(詳情請參閱【Load Data】 對話窗),點選對應資料源元件後可點選此按鍵單次讀取下一個擷取窗的資料並重新執行所有下游連結之元件。下一個擷取窗的位置由部分擷取設定中之 Overlap 欄位決定。

SaveData儲存資料至檔案

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

DataViewer資料瀏覽器

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

Excel輸出資料至 Excel

將所點選元件内的計算結果輸出為csv格式資料,然後開啟作業系統中csv檔案對應的應用程式並讀取該資料。作業系統中對應csv檔案的應用程式跟安裝在系統的 Office 套裝軟體有關,若安裝的是微軟 Office 則為 Excel,若安裝的是 LibreOffice 則為 Calc。

Execute強制執行

此功能相當於主選單/編輯選單之【更新元件】選項。點擊強制執行(或按 F5 鍵)後,專案會從頭到尾重新計算、執行所有模組元件。

AutoChart強制執行並自動生圖

此功能等同於先執行上面強制執行功能,然後將所有輸出埠未連結其他元件的運算元件自動加上繪圖元件,自動生圖時會依照強制執行後各元件的輸出資料格式自動匹配適合的繪圖元件(Viewer),如下表:

自動生圖支援表
資料格式 繪圖元件
Signal, Audio Channel Viewer
Spectra TFA Viewer
Image Image Viewer

繪圖元件詳情請參考【繪圖元件】章節。圖像格式(Image)與圖像顯示元件(Image Viewer)只有安裝圖像處理模組才有支援。

BatchRun批次執行

*Only in Professional

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

Connections 顯示連結

按下此圖示可切換顯示或隱藏元件之間的連結箭頭,以便在元件編輯區內元件繁多時可以隱藏眾多的連結箭頭以保持畫面清爽。顯示模式如下圖(注意顯示連結圖示Connections 的狀態為「已選」):

隱藏模式則如下圖(注意顯示連結圖示Connections的狀態為「未選」):

在隱藏模式下,如果選擇了一個或多個元件,則會顯示被選擇元件之輸入及輸出連接箭頭,如下圖:

Selection 選擇框模式

按下此圖示可切換滑鼠在元件編輯區拖曳時捲動畫面或是啟動選擇框之模式。在拖曳捲動模式下,當滑鼠游標在元件編輯區空白處拖曳時,會將整個編輯區上下左右捲動,如下圖(注意選擇框圖示Selection的狀態為「未選」):

在選擇框模式下,當滑鼠游標在元件編輯區空白處按住滑鼠左鍵拖曳時,會啟動選擇框,隨游標的移動而縮放,如下圖(注意選擇框圖示Selection的狀態為「已選」):

當放開滑鼠左鍵結束拖曳後,選擇框內的元件則會進入被選擇狀態,如下圖:

1.3.2 元件編輯區

元件編輯區為 Visual Signal 的核心,提供一個簡單的操作環境,以視覺化與直覺的操作編輯訊號處理流程,在操作上就像是畫訊號處理的流程圖,Visual Signal 提供了各種訊號處理的方法,從訊號前端處理、訊號分析演算、到視覺化繪圖呈現,使用者僅需要從選單中建立出這些方法,並且連接它們,就能夠以簡單的步驟執行複雜的訊號分析。

元件編輯區最重要的操作方式為按下滑鼠右鍵出現的元件功能選單,如下圖:


以下簡單說明選單中各分隔區之選項。

模組元件選單

可以看到選單第一個分隔區內分為六大群組【Compute】、【 Conversion】、【External】、【 Source】、【Viewer】、【Writer】,所有 Visual Signal 提供的模組元件都分門別類放在這六個群組中。模組元件的簡單介紹與操作方法請參考【模組元件】章節,而各個運算模組元件內容在本手冊後各章節中有詳細介紹。

Macros(巨集)相關選單

選單上還有巨集相關選項。Macros 選項列出所有存在使用者文件資料夾下 AnCAD\VisualSignal\Macros 資料夾下的巨集檔案。SaveAsMacro 選項則可以將所有選擇的元件以及其連結儲存成一個巨集。詳情請參考本手冊【巨集】。

Connect(連結)選項

除了用滑鼠連接元件之外,還可以用此選項(或是按下對應的 ALT-C 鍵)選擇欲連接的兩個元件。此功能是為了方便在龐大複雜的專案中可以快速連接兩個距離較遠的元件而不必用滑鼠拖拉連結線。操作詳情請參考【模組元件】的【連結】章節。

Undo/Redo(還原/重做)選項

此二選項相當於【主選單/編輯】上的 Undo/Redo 選項,或是按下對應之CTRL-Z/Y 鍵,可還原或重做模組元件的新增、刪除、剪貼、移動、連結等動作,詳情請參考【模組元件】的【還原與重做】章節。

Cut/Copy/Paste/Delete(剪下/複製/貼上/刪除元件)選項

此四選項相當於【主選單/編輯】上的 Cut/Copy/Paste/Delete 選項,或是按下對應之 CTRL-X/C/VDEL 鍵,可剪下、貼上、複製、刪除模組元件,詳情請看【模組元件】的【剪貼簿】章節。

1.3.3 運算控制

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


Auto

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

執行運算

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

中止運算

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

1.3.4 資料瀏覽器(Data Viewer)

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

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


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

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

時序訊號資料(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。

使用者利用訊號的位置精確指定放大範圍後,可以在圖上看到紅色線,紅色線內的範圍即為剛選擇的區域,使用者選擇範圍可以利用時域圖下方的捲軸,或在時域圖上利用按下滑鼠左鍵拖拉方式選擇,就能夠調整放大範圍的位置。若是按下SliceRange則會自動在【Network Editor】中產生對應的【Data Selection】元件,將紅色區域資料擷取出來(請參考【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 欄位切換訊號的不同通道。

頻譜訊號(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 與相關統計值。


時頻訊號(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 的說明。


數值資料(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 的使用方法。

批次改變不同的參數值

第一步先點擊按鈕 ,可以在下面新增 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 中設定。

批次計算多個訊號資料檔

用同一個 .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)

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

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

1.4.1 Module 項目參數

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

Module 項目參數
參數名稱 說明
Class 列出該元件名稱
Name 設定元件圖示上的顯示文字,使用者可自行輸入想要的元件名稱
OutputDataNameFormat 設定輸出資料名稱之格式。當元件輸出最終接至 Viewer 或 DataWriter 元件時,Viewer 繪圖顯示之標題及 DataWriter 寫出之之檔案名稱會抓取上游所連接之元件輸出資料名稱。此參數預設為 $Name,此為參數參照語法,亦即本參數預設值為元件名稱。詳情請見【參數參照】章節說明
OutputDataName 顯示經過 OutputDataNameFormat 格式化之輸出資料名稱
Output Port Side 是調整輸出埠在元件上下左右的哪一邊,可由使用者調整
Execute Time 顯示產生或計算此元件所花費的時間
Output Data Type 顯示此元件輸出的資料格式做為參考
Property Connections 設定【參數參照】連結

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

比 Sine Wave 多出幾個欄位:

Module 項目參數(輸入相關)
參數名稱 說明
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:非等時間間距

若為 Viewer 元件,則不會有 Output Port Side 參數,但會多出以下參數:

Module 項目參數(匯出相關)
參數名稱 說明
EnableExport 選擇 True 則開啟將 Viewer 繪圖匯出成檔案的功能。每次元件更新(亦即 Viewer 輸入資料更新)時,會將 Viewer 繪出的圖案匯出至所指定的檔案。若檔案已存在則覆寫之
ExportPath EnableExport 為 True 時,可設定匯出檔案路徑

1.4.2 Reporter

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


Reporter 在 Properties 中都稱為「View 元件名…」,點選欄位右邊的Dots按鈕,或雙擊支援的元件圖示,即可開啟 Reporter 視窗,如下圖:


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

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

除了點選參數欄位按鈕之外,使用者還可以直接雙擊元件圖示開啟 Reporter 。有些元件除了 Reporter 之外還有其他主要功能(例如 Data Source 的重新讀檔功能),此時雙擊元件圖示只會開啟該功能,如欲開啟 Reporter 則只能用點選 按鈕的方法。

相關指令

Sine WaveFFTData SourceBasic Stats

1.5 偏好設定(Preference)

偏好設定(Preference)是設定系統預設參數的工具,可以由主介面之主選單上的【工具選單】內的 Preference 選項,或是主介面之工具列上的圖示啟動,啟動後如下圖:


此介面與前章所描述之【參數設定視窗】是同類型參數設定介面,只是所設定之參數為系統偏好參數,而且多出了一些控制元件,說明如下:

偏好設定介面控制
控制元件 說明
Cancel 取消所有新的設定,並關閉介面
OK 確認所有新的設定,並關閉介面
Default 回復所有偏好參數至預設值
Advanced 選取時顯示所有進階偏好參數

偏好參數包含六大類別:元件(Component)、雜項(Misc)、輸出(Output)、繪圖( Plot)、啟動(Startup),文字匯入(Text Importer)。以下章節分別簡單說明各類偏好參數設定。

1.5.1 元件(Component)

本類別提供與元件運算或介面操作相關之偏好設定。以下說明元件類的非進階偏好設定:

元件類偏好設定
偏好設定 說明
Check Null 會檢查載入的檔案是否有空值,若有空值則會出現警告訊息
Auto To-Regular 在 Visual Signal 中大部分的運算元件都需要 Regular
的資料格式,設定此偏好則會在使用 Regular 格式的運算
元件前自動產生 ToRegular 元件將 Indexed 資料格式轉換
為 Regular 格式
Title
Auto-Shrink
Threshold
設定繪圖元件的標題格式的自動縮減門檻,詳細設定
可參閱【繪圖模組
Filename
Auto-Shrink
Threshold
設定使用輸出元件時的輸出檔名格式的自動縮減門檻,
其功用與以上 Title Auto-Shrink Threshold 相同,
詳細設定請參閱【輸出元件

以下說明元件類的進階偏好設定:

進階元件類偏好設定
偏好設定 說明
FFT Algorithm

選擇 FFT 的演算法:

  • Auto(預設):程式會依據硬體的使用狀況來選擇演算法
  • IPP:使用 IPP 演算法(最快)
  • MKL:使用 MKL 演算法(中等)
  • FFTW:使用 FFTW 演算法 (最慢)
No Warning 關閉元件運算中出現的閃動黃色警告標誌
Silent Error 關閉所有錯誤訊息
Disable To Hide Branche 禁用(disable)元件時隱藏元件後連接之整個分支
Script Editor Type

設定 DoMatlab 或 DoScript 元件中預設之編輯器:

  • Internal:使用內建編輯器
  • MATLAB:使用 MATLAB 內建編輯器
  • Custom:使用自選編輯器
Custom Editor Script Editor 選擇 Custom 時可以指定編輯器的程式路徑
Default Property
Behaviours
開啟元件參數預設行為設定介面,見以下說明

元件參數預設行為設定介面啟動時如下圖:

此介面提供以下兩種預設行為設定:

同時可以利用工具列儲存或匯入不同組的設定,以便在不同應用領域中使用不同的預設行為。

1.5.2 雜項(Misc)

本類別只有選取進階設定才會出現,提供一些雜項的偏好設定。

進階雜項類偏好設定
偏好設定 說明
Forced Garbage
Collection

可以選擇強制何時進行記憶體回收,可以幫助釋放記憶體空間:

  • None:不強制記憶體回收
  • PerProject:每次專案更新
  • PerModule:每次元件更新
Straight Arrow

選擇連接元件時使用直線箭頭或是預設之曲線箭頭:

  • True:
  • False:
Rectangular
Components

選擇顯示方塊元件或是預設之圓角元件:

  • True:
  • False:

1.5.3 輸出(Output)


本類別只有選取進階設定才會出現,提供輸出相關功能的偏好設定。

輸出類偏好設定
偏好設定 說明
Output Directory 設定輸出檔案時儲存的預設目錄路徑
Output Encoding 設定以文字格式輸出時的編碼格式, 預設為 us-ascii 格式
Auto Plot
Export Format
設定在批次執行時自動輸出之圖檔格式,預設為 png 檔
Export Batch
Output Separately
設定在批次執行時是否將輸出檔分開儲存在各批次資料夾下
Default Decimal
Precision in
Reporter
設定 Reporter 的結果顯示中,小數點後的預設顯示位數

1.5.4 繪圖(Plot)


本類別提供繪圖相關功能的偏好設定。以下說明元件類的非進階偏好設定:

繪圖類非進階偏好設定
偏好設定 說明
Plot Width/Height 設定繪圖元件同名參數之預設,決定繪圖區圖面的預設寬度
及高度(像素設定)
Set CMin/CMax
Defaults Using
Percentile

決定在設定時頻圖元件中 CMin 及 CMax 的預設偏好設定
時是否用時頻資料最大值的百分比或者所有時頻資料的
百分位數:

  • True:用百分位值設定
  • False:用最大值百分比設定
CMin/CMax
Default [%]
設定時頻圖元件中 CMin 及 CMax 參數的預設(根據以上的
設定可以用最大值百分比或所有資料之百分位值設定)
Default Line Colors 開啟顏色設定介面,可設定繪圖時各通道訊號的預設顏色
Default Fonts 開啟字型設定介面,可設定繪圖時使用的預設字型

顏色設定介面啟動時如下圖,可以設定繪圖時通道 1 至 8 的預設顏色:

字型設定介面啟動時如下圖,可以設定繪圖時標題(Title)、X/Y 軸標題(X/Y Axis Title)及標籤(X/Y Axis Label)、及圖例(Legend)的字型及顏色:

以下說明繪圖類的進階偏好設定:

繪圖類進階偏好設定
偏好設定 說明
Grid Layout

決定設定繪圖區圖面寬度及高度時是否用格數或像素設定:

  • True:使用格數設定
  • False:使用像素設定
Grid Cell Size 設定格數設定時的方格大小
Plot Horizontal/
Vertical Span
設定繪圖元件同名參數之預設,決定繪圖區圖面的預設寬度
及高度(格數設定)
Hold Plot Range 設定繪圖元件同名參數之預設,決定圖形垂直與水平範圍
是否要保持不變
Retain Plot 設定繪圖元件同名參數之預設,決定元件沒有被連接時,
是否要保留原圖形
Auto Legend Name 設定繪圖元件同名參數之預設,決定是否自動顯示圖例說明

1.5.5 啟動(Startup)

本類別提供啟動 Visual Signal 時相關功能的偏好設定。以下說明啟動類的非進階偏好設定:

啟動類非進階偏好設定
偏好設定 說明
Auto Compute Update
Checked at Startup
選擇啟動 Visual Signal 時元件編輯區下方運算控制
功能中 Auto 是否要被勾選
Check VS Software
Update at Startup
選擇啟動 Visual Signal 時是否檢查是否有程式更新,
若有則會自動更新程式(必須連接網路)
Language 讓使用者選擇 Visual Signal 介面的使用語言,目前僅支
援英文(English)、繁體中文(Traditional Chinese)
以及簡體中文(Simplified Chinese),語言選擇之後必
須重新啟動 Visual Signal

以下說明啟動類的進階偏好設定:

啟動類進階偏好設定
偏好設定 說明
Start Matlab at Startup 選擇啟動 Visual Signal 時也啟動 Matlab Engine
(使用者系統中必須安裝 Matlab )

1.5.6 文字匯入(Text Importer)

本類別提供文字匯入相關功能的偏好設定,皆為文字匯入器介面內特定參數之預設,詳情請參考後面【文字匯入器】相關章節。以下說明文字匯入類的非進階偏好設定:

文字匯入類非進階偏好設定
偏好設定 說明
TFA Default Null
Handler
選擇在匯入 TFA 格式檔案時預設的空值處理方式,請參考
FillNull元件】)的設定

以下說明文字匯入類的進階偏好設定:

文字匯入類進階偏好設定
偏好設定 說明
Importer Preview Lines 設定文字匯入介面中預覽窗的預設行數
Importer Preview Char
Per Line
設定文字匯入介面中預覽窗的每行的預設字元數
Default Setting Mode 選擇文字匯入的預設設定檔模式

1.6 命令列介面(Command-Line Interface)

Visual Signal 也可以在 Windows cmd.exe 環境下開啟。如果未將 Visual Signal 的安裝資料夾加入系統路徑環境變數,則開啟時必須附上 Visual Signal 執行檔的全路徑,如下圖:

否則直接在命令提示輸入VSignal.exe即可啟動 Visual Signal。此時還可在命令後加上各種以「/」開頭的命令列參數,啟動 Visual Signal 內建的一些特殊功能。輸入 VSignal.exe /?可以列出所有支援的命令列參數以及簡單說明,如下圖:

因為參數繁多,請參考說明內容,這裡不一一詳述。

2 視覺化繪圖區

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


繪圖區控制功能可分為三部份。第一如下圖所示,是繪圖區上方的工具列右半部份的圖軸控制工具,詳情請參閱【圖軸控制】。


另外則是在圖面上緣的功能控制以及播放控制,如下圖:


播放控制只會在顯示音頻訊號時才會出現,點擊播放狀態圖示PlayStatus可縮放此控制。詳情請參閱【播放功能】。

功能控制提供圖形選擇、移動、同步群組設定、最大化、及關閉等功能。此控制通常是縮入圖面左側邊緣的狀態,滑鼠游標移動到圖面上緣時會如上圖自動伸展出來。詳情請參閱【功能控制】。

此外,圖形的大小除了可以在 Viewer 元件中的參數設定之外,還可以使用圖面右側、下側、及右下角的控制以滑鼠調整。

相關指令

Channel ViewerTime-Frequency ViewerBox Plot ViewerError Bar ViewerHistogram ViewerXY Plot

2.1 圖軸控制


與繪圖相關的功能按鈕如上圖,分項來看各按鈕的功能。

繪圖相關按鈕
圖示 功能 說明
CopyFigure Copy To Clipboard 請參閱前面章節【複製圖至剪貼簿】。
ExportFigure Export To File 請參閱前面章節【匯出圖至檔案】。
Home Home 功能是將圖面回到預設的圖軸範圍。每張圖在被繪出時,皆預設繪出全部的資料範圍,當圖面經過放大,平移,想再回復原始的圖軸範圍,就可以點擊Home
ZoomX Zoom X

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


ZoomY Zoom Y

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


ZoomRect ZoomRect

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


PanXPanY Pan X/Y 即 X 方向與 Y 方向的平移,使用上直接以按住滑鼠左鍵,然後進行圖面拖曳。
ShowValue Show Value 請參閱下面章節【數值顯示】。
Pref Preference 請參閱前面章節 【偏好設定】。

2.1.1 數值顯示

本功能有兩個按鍵:ShowValue左邊為啟用功能開關,右邊的含有下拉選單可選取模式。啟用功能後,點選一張圖(圖周邊會出現紅框),將滑鼠游標移至圖面便可見藍色十字線游標隨著移動,十字線交點為數據點所在,其數值會顯示於交點旁的標籤內,同時也會顯示在整個視窗最左下角的狀態欄,如下圖:


另一種開啟本功能的方式為直接在一張圖上雙擊滑鼠左鍵,即可開啟該圖的十字線游標。選取模式仍須在ShowValue右側的下拉選單中選取。

2.1.2 數值格式

標籤及狀態欄所顯示的資訊及格式會根據訊號類別、Viewer、模式等而有所改變。例如頻譜即頻譜之倍頻模式時如下圖:



時頻圖及時頻圖之倍頻模式時如下圖:



各種可能之格式如下表所詳列:

標籤及狀態欄格式
Viewer 訊號/模式 標籤格式 狀態欄格式
Channel Viewer 時間序列 (t, v) index = i, x = t, y = v
Channel Viewer 頻譜 (f, v) index = i, x = f, y = v
Channel Viewer 頻譜(倍頻模式)
(f, v){倍頻資訊} index = i, x = f, y = v
XY Plot 時間序列(X) +
時間序列(Y)
(vx, vy) x = xv, y = yv
Time-Frequency Viewer 時頻資料 v @ [t, f] x = t, y = f, val = v
Time-Frequency Viewer 時頻資料(倍頻模式) v @ [t, f]{倍頻資訊} x = t, y = f, val = v

格式中數值說明如下:

2.1.3 數值抓取模式

移動十字線時,十字線交點會由一個資料點移動到下一個資料點。Visual Signal 提供四種模式抓取下一個資料點的數值:

抓取數值模式
模式 說明
Pick Any 在任何資料點之間移動
Pick Maxima 只抓取一定範圍內之最大值在其間移動
Pick Minima 只抓取一定範圍內之最小值在其間移動
Pick Extrema 只抓取一定範圍內之極值在其間移動

可以透過右邊按鍵的下拉選單切換所需模式。下圖示意上述各模式:


2.1.4 複製標籤及註釋元件

在移動十字交點時可以雙擊滑鼠左鍵或按下 Ctrl-C 鍵,則會啟動一個 Coordinate Values 多功能選擇對話窗,如下圖:

選擇第一個選項 Copy To Clipboard 則可將標籤文字複製到剪貼簿裡。之後便可以在可編輯文字的任何地方使用標準 Windows 快捷鍵 Ctrl-V 貼上剪貼簿內容。

選擇第二個選項 Create Annotation 會自動由目前的 Viewer 元件產生一個標籤標註元件,如下圖:

標籤標註與文字標註相似(請參閱【標註元件】),只是多了一個資料點標記及與文字標籤的連接線。如文字標註一樣,如果標籤位置不理想,可以在元件參數欄位裡修改位置,或是直接用滑鼠拖曳標籤至理想的位置。資料點標記則無法移動。標籤標註整體的顏色、文字的字形、連接線的粗細及線條類別,以及資料點標記的類別及大小等都可以在元件的參數欄位裡設定。

2.1.5 量測

在【Coordinate Values 對話窗】中選擇第三個選項 Measurement 則會開啟 Measurement Cursors 選擇對話窗,如下圖:

此對話窗運作類似示波器的量測功能,可以選擇將十字交點的座標設定為兩個水平游標(H1 (Ref) 或 H2)或兩個垂直游標(V1 (Ref) 或 V2)其中之一。下圖示範設定第一個水平游標:

如圖所示,圖上會產生一條標記「Ref」的垂直線,此為第一個水平游標(H1),水平量測將會以這個位置為基準值(Ref)。下圖示範設定第二個水平游標:

如圖所示,圖上會產生一條標記「-0.638」的垂直線,此為第二個水平游標(H2),水平量測將會計算 \(H2 - H1\) 的距離並標記在第二游標上。下圖示範設定垂直游標 V1 (Ref) 及 V2:

設定游標後,Viewer 元件的參數欄位中會開啟一個 Measurement 類別的參數組,如下圖:

游標整體的顏色、線條的粗細類別、以及標記文字的字形等都可以在此設定。

此功能目前只支援【Channel Viewer】及【Time Frequency Viewer】。其他 Viewer 相關參數設定請參考對應 Viewer 章節之說明。

2.1.6 倍頻模式

Frequency Guidelines 對話窗

Coordinate Values 對話窗】的最後一個選項是 Frequency Guidelines。如果 Viewer顯示的資訊沒有任何頻率軸,則此選項無法使用。當 Viewer 顯示某種頻譜時(頻譜資料或是時頻資料),選擇此選項則會開啟 Frequency Guidelines 選擇對話窗,如下圖:

選擇任一倍頻類別則會在圖中畫上對應的倍頻線,以開啟【Coordinate Values 對話窗】時十字交點的座標為基頻。下圖示範在顯示方形波頻譜中開啟以 10 Hz 為基頻的倍頻線(預設為不包括基頻線 5 條倍頻線):

同時 Viewer 元件參數欄位裡會開啟 Harmonics 類別的參數組,如下圖:

倍頻線整體的顏色、線條的粗細類別、標記文字的字形等等都可以在此設定。

此功能目前只支援【Channel Viewer】及【Time Frequency Viewer】。其他 Viewer 相關參數設定請參考對應 Viewer 章節之說明。

下表詳細解釋各種倍頻類別及倍頻線之標記文字(\(F\) 為十字交點所在之基頻, \(N\) 目前設定之最大倍頻數):

倍頻類別及線條標記
倍頻模式 說明 標記意義
倍頻

\(n\) 倍頻為 \(n F\)

因預設倍頻數為 5 ,也就是基頻線除外有 5 條倍頻線,因此最高倍頻為 \(6 F\)

\(\times\)1(基頻)
\(\times\)2(第二倍頻)
\(\times\)3(第三倍頻)

\(\times\)6(第六倍頻)
次頻

\(n\) 次頻為 \(F/n\)

因預設次頻數為 5 ,也就是基頻線除外有 5 條次頻線,因此最小次頻為 \(F/6\)

\(\times\)1(基頻)
\(\times\)1/2(第二次頻)
\(\times\)1/3(第三次頻)

\(\times\)1/6(第六次頻)
邊頻

\(n\) 邊頻為 \(F \pm n \Delta\)\(\Delta\) 為邊頻間隔(interval)。

因預設邊頻數為 5 ,也就是基頻除外有正負各 5 條邊頻線,因此最高邊頻為 \(F \pm 5 \Delta\)

+5\(\Delta\)(第五邊頻)

+1\(\Delta\)(第一邊頻)
\(\times\)1(基頻)
-1\(\Delta\)(第一邊頻)

-5\(\Delta\)(第五邊頻)
分頻 \(F\) 等分為 \(N\) 份,第 \(n\) 分頻為 \((N-n+1)/N F\);亦可視為倍頻的相反,即十字交點頻率為第 N 倍頻 \(F_N\),而基頻則為 \(F_N / N\) \(\times\)6/6(基頻/第六倍頻)
\(\times\)5/6(第一分頻/第五倍頻)

\(\times\)2/6(第五分頻/第一倍頻)
\(\times\)1/6(第六分頻/基頻)

動態倍頻線模式

除了使用【Coordinate Values 對話窗】設定倍頻線之外,Visual Signal 還提供了另一種更直覺的方式。Viewer 在顯示頻譜資訊時可以在【顯示數值】模式中進入「動態倍頻線模式」,動態顯示以十字交點之頻率為基頻之所有倍頻線,並隨著十字交點移動。此時選好基頻的位置,再按下滑鼠左鍵則會固定倍頻線,此時功能等同上述在 Frequency Guidelines 對話窗中選擇同類別的倍頻線。以下詳細說明操作方法。

當第一次在頻譜圖中進入顯示數值模式時,會自動出現一個提示窗,顯示可用的控制鍵:

提示視窗會在十秒後自動消失。如要再開啟,可按「?」鍵。以下詳細解說各控制鍵:

倍頻模式控制鍵
切換鍵 功能 說明
? 提示視窗 開啟/關閉上圖之提示視窗。
X 關閉 Viewer 倍頻線 關閉 Viewer 中設定好之倍頻線。
H 倍頻 開啟/關閉倍頻線。基頻 \(F\) 為十字交點之頻率。
U 次頻 開啟/關閉次頻線。基頻 \(F\) 為十字交點之頻率。
S 邊頻 開啟/關閉邊頻線。基頻 \(F\) 為十字交點之頻率。
F 分頻
(第 N 倍頻)
開啟/關閉分頻線。基頻 \(F\) 為十字交點之頻率(或十字交點為第 N 倍頻,基頻為 \(F/N\))。
滑鼠滾輪 控制頻率線數目 滾輪向上遞增頻率線數目,向下則遞減。
Shift+滾輪 控制邊頻間隔 Shift+滾輪向上遞增間隔 \(\Delta\),向下則遞減。預設 \(\Delta = F/10\)
Alt-Shift + 滾輪 控制邊頻間隔 Alt+Shift+滾輪向上間隔加 10,向下則減 10。
Ctrl + 滾輪 控制偏移

Ctrl+滾輪向上時遞增偏移量 \(m\),向下則遞減。偏移量為十字交點向基頻左或右側移至第 \(m\) 條倍頻線:

  • 當偏移量 \(m = 0\) 時,十字交點在基頻上,移動時基頻隨著十字交點移動。
  • 當偏移量 \(m \ne 0\) 時,十字交點不在基頻,而是在其他倍頻上,基頻及其他倍頻會根據十字交點的位置及偏移數計算出來,並隨著十字交點移動。此時偏移數會顯示在十字交點標籤中。

按下倍頻類別的切換鍵(H、U、S、或 F)即可開啟倍頻線。下圖以「倍頻」(H)為例:


可以看到以十字交點為基頻,另外又畫了預設之 5 條與十字線不同顏色之倍頻線。這些線會跟著十字交點移動,方便使用者根據頻譜內容對齊倍頻。十字交點之標籤內容會增加倍頻資訊,不同倍頻模式下十字交點的標籤所顯示的資訊也不同,如下表(參數皆為預設值):

倍頻模式標籤
倍頻模式 標籤格式中之倍頻資訊 備註
倍頻

\(\times\)6=\(6 F\)

偏移時:

[\(\times m\)],\(\times\)6=\(6 F\)

顯示目前設定之最高倍頻。

因預設倍頻數為 5 ,也就是基頻線除外有 5 條倍頻線,因此最高倍頻為六倍基頻(\(\times\)6=...)。

次頻

\(\times\)1/6=\(F/6\)

偏移時:

[\(\times 1/m\)],\(\times\)1/6=\(F/6\)

顯示目前設定之最小次頻。

因預設次頻數為 5 ,也就是基頻線除外有 5 條次頻線,因此最小次頻為 \(1/6\) 基頻(\(\times\)1/6=...)。

邊頻

N=5,\(\Delta\)=\(F/10\)

偏移時:

[\(\pm m \Delta\)], N=5,\(\Delta\)=\(F/10\)

顯示目前設定之邊頻數以及邊頻間隔。
分頻

\(\times\)1/6=\(F/6\)

偏移時:

[\(\times m/6\)],\(\times\)1/6=\(F/6\)

顯示目前設定之最小分頻。

因預設分頻數為 5 ,也就是基頻線除外有 5 條分頻線,因此最小分頻為 \(1/6\) 基頻(\(\times\)1/6=...)。亦或視 \(F/6\) 為基頻,十字交點頻率則為該基頻之第 6 倍頻。

Time-Frequency Viewer】也有同樣功能,依照所顯示的二維資訊類別,所顯示的倍頻線會有不同的方向:

2.2 播放功能

若【Channel Viewer】繪出的資料為音源訊號,則在圖面的右上角可以見到播放功能狀態圖示 Off(一開始為停止撥放狀態),如下圖:

點擊Off則打開撥放功能控制項,如下圖:

下表說明控制項中各圖示功能:

播放控制項功能
圖示 說明
Off/On 播放狀態指示燈。
Loop 為重複播放鍵,勾選後訊號會重複播放。
play1 為開始鍵,按下後即可開始播放音源資料。
Pause 為暫停鍵,開始播放後可以使用此鍵暫時停止播放。
Stop 為停止鍵,開始播放後可用此鍵中止播放程序。

在【Channel Viewer】中可利用ZoomX的功能取一時段,撥放時則只會撥放該時段的音頻資料。撥放音頻時,會有一條紅色的撥放線隨著撥放時間進行在資料上捲動,如下圖:

若【TF Viewer】繪出的時頻資料之時間軸不是時間日期軸,單位為秒,然後頻率軸最高頻率在 192KHz 以下,則也有同樣播放的功能。【TF Viewer】還有額外的功能,即可利用ZoomXZoomYZoomRect功能取任何時段及頻段來撥放,頻段以外的資訊則會經過內建的濾波器濾掉。此功能可讓使用者快速的檢視聆聽特定頻段資訊而不必連接濾波器元件重新計算。下圖示範使用ZoomRect將 Pink Noise 的時頻圖取一段 1 秒 200 ~ 400 Hz 的音頻來撥放:

2.3 功能控制

Visual Signal 擁有控制圖形各項功能的的工具,當滑鼠移至每張圖的上緣,就會出現一組控制項,這組控制項包括多個功能:選擇、移動、同步/群組、最大化、關閉。以下章節詳細說明各項功能。

2.3.1 圖形選擇

由主選單或工具列執行【複製圖至剪貼簿】與【匯出圖至檔案】功能時,預設行為是複製或是匯出繪圖視窗中列出之所有圖。Visual Signal 提供兩種方法可以選擇一個或多個欲輸出之圖形。

圖形選擇核取方塊(Checkbox)

如本章節【功能控制】開頭所述,每張圖上緣的控制項中有一個圖形選擇核取方塊(Checkbox),如將滑鼠游標移至核取方塊上停留數秒,則會出現一說明方塊,如下圖:

將之核取(打勾)之後則如下圖:

控制項縮回圖左緣後會留下一個打勾的標記,表示該圖已被選擇,如下圖:

當有一個或多個圖形被選擇後,只有被選擇的圖才會被複製或匯出。如果再用控制項將所有被選擇的圖之核取方塊清除後,則又會開始複製或匯出所有的圖。

此外,按下 Esc 鍵也可以清除繪圖區中所有被選擇的圖。

滑鼠左鍵點選

Visual Signal 還提供另一種更直覺的方式使用滑鼠點選/清除欲複製或匯出的圖形。

如說明方塊所述,使用滑鼠點選圖形有以下兩種模式:

單圖切換點選/清除

按下 Ctrl 鍵不放,同時使用滑鼠左鍵點擊欲選擇之圖任何一處,則等同上述使用核取方塊,可切換該圖被選擇或清除選擇的狀態。選擇後圖之左上角會顯示打勾圖示。下圖示範勾遠圖二(IMF_h2)、圖五(IMF_h5)、圖七(IMF_h7):

同上,按下 Esc 鍵也可以直接清除繪圖區中所有被選擇的圖。

區塊選擇

如果想要選擇一連串的圖(以下稱為區塊),則必須設定區塊的「起始」與「結束」;

設定區塊起始有以下三種方法:

區塊起始設定好後,接下來用 Shift + 滑鼠左鍵點選任何圖則會將該圖設定為區塊結束(不分前後順序),直到區塊起始被上述三種方式之一重設。設定好區塊起始與結束後,區塊內所有的圖都會被選取,並清除區塊以外所有圖的選取狀態。因此,如欲選擇一個區塊的圖加上零星其他個別的圖,則必須先選擇區塊再用 Ctrl + 點選選擇其他圖。

下圖示範在圖二(IMF_h2)設定區塊起始:

下圖示範在圖六(IMF_h6)設定區塊結束,勾選圖二~圖六所有的圖:

2.3.2 移動圖形

Visual Signal 提供兩種方法可以改變圖的順序。第一種方法是在 Viewer 的參數欄位裡面改變 ListOrder 參數,繪圖區會依照各圖 List Order 參數裡面設定的數目大小排序。詳情請看【繪圖元件】章節。

其二如本章節【功能控制】開頭所提,每張圖上緣的控制項中有一個四方箭頭圖示! Move,使用者把游標置於Move並按下滑鼠左鍵,往上或往下拉就能使圖向上或者向下移動,改變圖的上下順序,見下圖:

往下移圖時,將移動圖之上緣移至別圖的範圍內,則會將移動圖插入該圖之下,也就是說會代替該圖的位置,將之上推。下圖示範將圖二(圖標題含 IMF_h2)向下移至圖四(IMF_h4)範圍內:

放掉滑鼠左鍵後,圖二則插入圖四與與圖五(IMF_h5)之間,如下圖;

往上移圖時,將移動圖之上緣移至別圖的範圍內,則會將移動圖插入該圖之上,也就是說會代替該圖的位置,將之下推。呈上圖狀態,下圖示範將圖二(IMF_h2)向上移至圖二(IMF_h3)範圍內:

放掉滑鼠左鍵後,圖二則插入圖一(IMF_h1)與圖三之間;

2.3.3 同步與群組功能

作訊號分析時,常會有多張圖需要在同一個範圍縮放或者同時平移的情況。控制項上提供了同步的工具,可以完成這樣的操作行為,如下圖:

一開始是「No Sync」狀態,表示該圖並未與其他圖同步(未在任何同步群組中)。首先將此下拉選單打開,如下圖:

選擇欲同步的軸,例如 X 軸,則控制項會多出一個群組的選項,如下圖:

可設定任何群組編號,或是使用預設之編號(1),表示該圖的 X 軸會與其他設定同組圖的 X 軸同步。當控制項縮回圖形左緣後,圖左上角會有一個標籤顯示該圖的同步狀態與群組編號,方便使用者檢視每個圖形的同步群組設定,如下圖:

若是在設定時出現任何錯誤,例如嘗試在同一群組內同步不同的軸,則群組內所有圖的標籤都會以反白顯示,如下圖:

下圖示範將圖一(IMF_h1)與圖三(IMF_h3)設定為同步 X 軸第一群組,如下圖:

此時圖一將與圖三之 X 軸連動。例如使用Zoom功能將圖一的 X 軸放大 0.17 秒至 0.51 秒的區間時:

圖三的 X 軸也會同步放大至相同的範圍,如下圖:

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

同步限制

同群組內圖之 X 或 Y 軸的範圍、取樣率等參數不相同時,同步縮放或平移時會取可以同步的部分盡量滿足使用者的需求。但如果 X 或 Y 軸的型態差異太大,例如一個軸是時間日期軸,另一個軸是數字軸,則將無法同步放大、縮小等,此時會取消同一個群組中無法同步的 Viewer,例如下圖,【TF Viewer】的Y 軸型態(頻率軸)不同於上面兩個【Channel Viewer】 的 Y 軸(無單位數字軸),在設定好同步群組後嘗試放大或平移時會出現錯誤訊息,並自動被取消群組。

同步顯示數值模式

在一張圖上進入前述之【顯示數值ShowValue模式下,其他同步群組內的圖也會同步顯示十字線及數值標籤,並會同步隨著滑鼠移動。下圖示範三張同步 X 軸的圖,在圖一開啟顯示數值功能,可見圖二也同步顯示數值:

如上圖所示,圖三雖然也同步 X 軸,並在同一群組內,但是並未顯示數值。這是因為十字線在前兩圖【[Channel Value]】中真正隨著滑鼠移動的只有 X 軸,Y 軸的橫線只是隨著資料點數值在動,所以傳到圖三【TF Viewer】時並無 Y 軸的移動資訊所以無法顯示。如果是反過來的情況,滑鼠移到圖三上顯示數值,這時十字游標的 XY 軸都隨著滑鼠在移動,因此其他二張 Channel Viewer 的圖可以接收其中 X 軸的資訊,便可以同步顯示十字線,如下圖:

同步顯示撥放時間線

在一張圖上使用前述之【播放功能】播放音頻訊號時,其他同步 X 軸群組內的圖也會同時顯示滾動的時間線,如下圖:

2.3.4 圖形大小控制

Visual Signal 提供兩種方法可以改變圖的大小。第一種方法是在 Viewer 的參數欄位裡面修改 ViewerWidth 與 ViewerHeight 參數,詳情請看【繪圖元件】章節。

第二種方法是在 Preference 裡面修改 Plot Width 與 Plot Height 偏好,這裡改的是 Viewer 的預設大小,改動後,所有還是預設大小的 Viewer (即尚未改動 ViewerWidth 以及 ViewerHeight 參數)會自動改成偏好設定的大小,詳情請看【Preference】章節。

圖形大小控制

第三種方法如本章節【功能控制】開頭所提,每張圖右側、下側、及右下角有圖形大小控制,如下圖;

將滑鼠游標移動到控制上方,游標會換成 Resize 的箭頭,如下圖:

此時按住滑鼠左鍵不放,開始移動滑鼠,便可改變圖的大小。右側的控制只改變圖形長度(水平大小),下側的控制只改變圖形寬度(垂直大小),右下角的控制則可同時改變圖形長寬。下圖示範修改圖二(IMF_h2)大小:

放開滑鼠後圖的大小便會固定,該圖下方的圖會自動下移挪出空位,如下圖:

同時,圖的大小會自動設定在 ViewerWidth 與 ViewerHeight 參數中,等同手動修改這兩個參數,如下圖:

圖形最大化按鈕

第四種方法如本章節【功能控制】開頭所提,每張圖上緣的控制項中有一個按鈕 Maximize,如下圖:

點擊此按鈕便可將圖形最大化,如下圖;

如上圖,在此最大化狀態時圖形會占用整個繪圖區,同時暫時關閉介面右側的元件編輯區及參數欄位。此時所有的圖形操作(放大、平移、數值顯示十字游標、量測模式、倍頻模式等)都可正常使用。不過此最大化是暫時的狀態,並不影響 Viewer 的 ViewerWidth 與 ViewerHeight 參數設定。此時原來的Maximize按鈕會變成Normalize,點擊該按鈕便可將圖形恢復原來大小。

最後,在圖形上緣雙擊兩次也可以切換圖形的最大化與正常模式,功能等同點擊單次 MaximizeNormalize按鍵。

圖形最小化(關閉)按鈕

控制項最右方還有一個按鈕Minimize。按下此按鈕可關閉圖形,等同用相關 Viewer元件的【控制開關】將該元件關閉(Disable)。重開圖形的唯一方法為用 Viewer 元件的【控制開關】重新開啟(Enable)該元件。

3 模組元件(Component )

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


3.1 模組元件種類

3.1.1 Compute


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

3.1.2 Conversion


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

3.1.3 External


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

3.1.4 Source


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

3.1.5 Viewer


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

3.1.6 Writer


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

3.2 元件圖示組成

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


3.2.1 輸入埠

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

3.2.2 輸出埠

元件右邊紅色三角形為輸出埠,是將 EMD計算結果輸出的位置,需注意只要有輸出埠的模組,都只有一個輸出埠,不過可將一個輸出訊號資料連至多個模組元件作為輸入訊號。輸入與輸出埠在圖示上的位置都可以在模組的 Properties/Module 中調整,如下圖 InputPortSide 調整為 Top,元件的輸入埠就移至元件頂位置。



3.2.3 元件名稱

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



3.2.4 控制與運算更新狀態

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


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


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


3.2.5 元件警告表示

當模組元件輸入的訊號資料不完備,或是是運算發生問題,但是運算仍可以正常結束時,在元件的橘色方塊上會產生黃色三角號誌,若將鼠標移至三角警告號誌則可進一步觀看詳細的警告訊息,使用者可以依此判斷運算結果是否可被接受。


3.2.6 元件錯誤表示

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


3.2.7 模組元件輸出入模式

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

元件輸入輸出模式
元件輸出入模式 說明
單方向輸出模組 此類模組僅有輸出埠,如訊號源 Source 下的模組與 Viewer 下之 Annotation 模組均是輸出模組。 source
單方向輸入模組 此類模組僅有輸入埠,不需要輸出,如 Viewer 下的模組與 Writer 下的模組。 viewer
輸出入兼備模組 只要與運算過程相關的模組都必須能夠接收資料與輸出運算結果,因此如Compute 下的所有模組,與 Conversion 下之所有模組都備輸入埠與輸出埠。 compute

3.3 元件選取狀態(Select)

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


3.3.1 選取元件

選取元件有兩種方式,第一種方式為直接在欲選取的元件圖示上用滑鼠左鍵點擊。如欲選擇多個元件,可以在點擊時同時按住 CTRLSHIFT 鍵。

第二種方式為圈選方式,元件編輯區在選擇框模式下用滑鼠左鍵拖曳方式框選欲選取之元件(詳情請參考【選擇框模式】章節)。此方法可以方便一次選取一個或多個元件。

3.3.2 輸出訊號分支

選取元件後,除了被選取元件會顯示按下狀態之外,其輸出連結分支的所有元件都會以灰色框標示出來,如上圖 MultiplyView 元件所示。

3.3.3 取消選取元件

欲取消選取元件有兩種方式,第一種方式為在元件編輯區空白處用滑鼠左鍵點擊一下即可取消所有被選取元件。如欲在眾多被選取元件中取消個別元件,則可以用第二種方式,按住CTRLSHIFT 鍵的同時用滑鼠左鍵點擊欲取消之元件。

3.3.4 移動元件

如欲移動元件在元件編輯區內的位置,可以直接在任何元件圖示上用滑鼠左鍵按住拖曳。如果被移動的元件是未選取之元件,則只有該元件移動位置。如果被移動的元件是多個被選取的元件之一,則所有被選取的元件會一起移動。

3.4 元件連線狀態(Connect)

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

3.4.1 元件連接線建立方式

建立模組元件之間的連線有幾種方式:新增元件時自動連線、手動以拖拉的方式連接兩元件間的輸出及輸入埠、以及設定連線起訖方式。方法詳細說明如下。

新增元件時自動連線

如下圖,欲在 Sine 元件後面接上一個 EMD 元件,可在 Sine 元件圖示上按滑鼠右鍵,叫出元件功能選單,在選單中點選要連接的 EMD 元件(在 Compute/HHT 分類中),如此在新增模組的同時,會自動從 Sine 元件的輸出埠建立連接線至 EMD 的輸入埠。


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


手動拖拉連線

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


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


設定連線起訖

第三種方法是直接設定連線的起訖元件,方法如下。首先選擇一個或多個元件,在其中一個元件圖示上用滑鼠右鍵叫出選單選擇 Connect (或按下 ALT-C 鍵)設定選則的元件為連接起點,如下圖範例一次設定三個連線起點:

設定後,該元件圖示的周圍會出現紅色的虛線框,表示該元件已設定為連線起點元件,若要取消連線起點設定,則在空白處用滑鼠右鍵叫出選單,選取原先 Connect 選項變成的 Cancel Connect 選項,如下圖:

接著再另選一個或多個元件,用樣在元件圖示上用右鍵叫出選單選擇 Connect (或按下 ALT-C 鍵)設定連接訖點,如下圖範例一次設定兩個連線訖點:

如此可將由設定的連線起點元件的輸出埠建立連線至設定的連線訖點元件的輸入埠,如下圖:

上述做法有兩個好處:一如上圖所示可以快速在多個元件之間建立連線,一則可以在複雜的大型專案中在距離較遠(例如需要捲動元件編輯區)的元件之間簡便建立連線而不需要用滑鼠拖拉並同時捲動元件編輯區。

注意,此方法也可以不用事先選取元件,直接在任一元件上用右鍵選單使用 Connect 選項設定起訖元件,但是這樣就只能選擇一個連線起點元件與一個連線訖點元件,而且因為沒有選取的目標元件而無法使用鍵盤熱鍵 ALT-C

3.4.2 元件連接線刪除方式

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


3.4.3 元件連接線狀態表示

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

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

3.5 元件操作還原與重做(Undo/Redo)

除了參數設定之外,元件在元件編輯區上大多數的操作都可以還原(Undo)以及重做( Redo),以下歸納出可還原的元件操作:

如【元件編輯區】所述,還原與重做的操作有兩種方式:一為在元件編輯區空白處按下滑鼠右鍵叫出元件功能選單選擇上面的 Undo/Redo 選項,或是用鍵盤熱鍵CTRL-Z/Y,如下圖:

還原與重做利用了堆疊器(Stack)的概念,可以想像有兩個堆疊器:一個儲存曾經做過的元件操作,可用來還原,另一個儲存曾經還原過的元件操作,可用來重做。每個專案都有其專屬的兩個堆疊器,因此各專案可以獨立個別進行還原與重做。以下說明這兩種機制。

3.5.1 還原機制

當進行了上面表格某一項元件操作時,該操作以及其操作的參數(以移動元件為例,移動的元件名稱以及移動起訖位置)會被推入(push)還原堆疊器上,當使用者執行「還原」時,以先入後出的順序(即最近執行的操作會先被還原)將還原堆疊器上儲存的操作彈出(pop),並用一起存入之操作參數反執行其操作,使其還原為執行操作前之狀態,如下:

元件操作的還原
元件操作 操作參數 還原後狀態
新增元件
  • 元件名稱
  • 連線參數(見下)
  • 無連線:刪除新增元件
  • 自動連線:刪除新增元件以及自動產生之連線
刪除元件
  • 元件名稱
  • 連線參數(見下)
  • 無連線:加回刪除之元件
  • 有連線:加回刪除之元件以及輸出入的連線
移動元件
  • 元件名稱
  • 移動起訖位置
還原元件的位置
新增連線 連線起訖元件名稱 刪除連線
刪除連線 連線起訖元件名稱 加回刪除之連線

3.5.2 重做機制

當一個操作被還原後,該操作以及操作參數則會被推入重做堆疊器上,當使用者執行「重做時,以先入後出的順序(即最近執行的還原會先被重做)將重做堆疊器上儲存的操作彈出,並用一起存入之操作參數執行該操作,如下:

元件操作的重做
元件操作 還原後狀態 重做後狀態
新增元件
  • 無連線:刪除新增元件
  • 自動連線:刪除新增元件以及自動產生之連線
  • 新增回元件
  • 新增回元件及連線
刪除元件
  • 無連線:加回刪除之元件
  • 有連線:加回刪除之元件以及輸出入的連線
  • 再刪除元件
  • 再刪除元件及連線
移動元件 還原元件的位置 再移動元件
新增連線 刪除連線 再增回連線
刪除連線 加回刪除之連線 再刪除連線

3.5.3 還原重做案例

以下說明一系列還原及重做的範例。首先在元件編輯區空白處用滑鼠右鍵叫出選單新增兩個 Source 分類下的內建訊號源元件 Noise 及 Sine,如下圖:

此時可以試著用還原功能(選單或是按下 CTRL-Z兩次,讓元件編輯區回到尚未新增元件的空白狀態,接著再用重做功能(選單或是按下 CTRL-Y兩次將兩個訊號源元件叫回來。以下每一個步驟都可以如此操作。

接著用工具列上的自動生圖功能產生兩個 Viewer 元件以及相關連接線,如下圖:

因為用了自動生圖功能同時新增兩個元件及連接線,此時嘗試用還原或重做功能時,會發現只需執行一次就可以還原或重做。如果是用正常方式(即在 Noise 及Sine 元件圖示上用滑鼠右鍵叫出選單新增 Viewer 分類下的 Channel Viewer 元件),則需要執行兩次還原及兩次重做才能完全還原新增或重做這兩個 Viewer 以及其相關連接線。

接下來在元件編輯區空白處用滑鼠右鍵叫出選單新增一個 Compute/Mathematics 分類下的 Mixer 元件,如下圖:

然後再將兩個訊號源連接到 Mixer,如下圖:

連接時可用手動拖拉連線方式,即用滑鼠將訊號源輸出埠分別拉出連接線拖曳到 Mixer 的輸入埠,此時則跟上述用正常方式新增繪圖元件一樣,因為分兩次操作,所以做兩次還原及兩次重做才能完全還原或重做新增連接線。

連接時也可以用設定連線起訖方式,用滑鼠先框選兩個訊號源,再其中一個元件圖示上用滑鼠右鍵叫出選單選擇 Connect(或按下 ALT-C 鍵)設定框選的兩個訊號源為連接起點,然後在 Mixer 元件圖示上再用右鍵叫出選單選擇 Connect (或按下 ALT-C 鍵)設定連接訖點,將兩個訊號源同時連接到 Mixer。因為只有一次操作,所以只需做一次還原及重做就能完全還原或重做新增連接線。

接著再新增一個 Viewer 元件,如下圖:

用框選或 CTRLSHIFT 複選元件的方式選擇 Mixer 及三個 Viewer,如下圖:

用滑鼠移動被選元件其中一個元件圖示,所有被選的元件會一起跟著移動,如下圖:

此時執行一次還原功能時會發現四個被移動的元件會一起回到原來位置,再執行一次重做功能則會回到移動後的位置。如果連續執行還原功能,則元件編輯區會依次回到之前的狀態,直到回到完全空白的起始狀態。此時連續執行重做功能,則元件編輯區會依次回到還原之前的狀態,直到回到上圖的最終狀態。如果在連續還原的中途又進行新的操作,則重做用的堆疊器會清空(也就是之前還原的操作無法再重做),而還原用的堆疊器則會從最後一次還原開始推入新操作,使用者可以還原新操作以及之前的操作。

3.6 元件剪貼簿(Clipboard)

Visual Signal 設有一個剪貼簿,可以將各專案的元件編輯區內一個或多個元件執行複製、貼上、剪下、刪除等操作。以下詳細說明操作方法。

3.6.1 複製(Copy)

在任一元件圖示上,或是在一組選取元件(一個或多個)中的任一元件圖示上使用滑鼠右鍵元件功能選單選取 Copy 選項(或是按下 CTRL-C),如下圖:

目標元件則會連同元件參數一起存入剪貼簿。剪貼簿的內容會一直保存,直到下一個複製或剪下的操作將內容蓋過,或是 Visual Signal 關閉。

3.6.2 貼上(Paste)

貼上功能將存在剪貼簿的一個或多個元件重新加入元件編輯區內,保留複製時選取元件的所有參數。操作方法為在元件編輯區空白處用滑鼠右鍵選單執行 Paste(或按下 CTRL-Z ),如下圖:

剪貼簿內部儲存形式與【巨集】相同,因此貼上的元件名稱後面跟巨集一樣都會加上「_m」的字樣,防止貼上元件名稱與現有元件名稱重複,如下圖:

剪貼簿的內容會一直保存,因此可以重複執行貼上(複製元件名稱後的「_m」會增加數字防止重複),而且因為 Visual Signal 只有一個剪貼簿,所以在一個專案中複製或剪下的元件可以在另一個專案貼上,如下圖:

前章所述之【還原與重做】功能支援上述貼上元件的操作(等同新增元件)。

3.6.3 剪下(Cut)

剪下功能與複製一樣將一個或多個元件存入剪貼簿。不同之處在於存入剪貼簿後之後會將目標元件刪除。前述之【還原與重做】功能支援剪下元件的操作(等同移除元件)。還原回來的元件跟貼上的元件不同,元件名稱為原始名稱,不會加上「 _m」字樣。

3.6.4 刪除(Delete)

顧名思義,刪除功能直接刪除元件,剪貼簿內容不受影響。換句話說,如果先複製或剪下一組元件,然後再刪除另一組元件,用貼上時會仍然會貼上之前複製或剪下的元件。欲救回刪除的元件只能使用前述的【還原】功能。

3.7 巨集(Macro)*

*Only in Professional*

將元件編譯區中的訊號處理程序建立巨集,在不同專案中快速建立同樣的程序。

說明

巨集(Macro) 主要用於儲存標準化之訊號處理流程,日後在應用上無需重新設定流程。

Macro 跟 Project 檔其實都是 .vsn 檔,是一樣的東西,只是用 Load Project 讀取.vsn 檔時,會新開啟一個 Project,而用 Load Macro 讀取 .vsn 檔,則會在目前的 Project 下匯入 Macro 所儲存的運算程序。

範例

訊號之複雜度分析 :

  1. 在此欲檢測雜訊的分析,運算流程如下圖所示。


  2. 現在想將此運算流程儲存起來,但不儲存資料,就要在主畫面的下拉式選單 File 下選擇 Save Macro,以巨集儲存(存檔前先將欲分析之訊號資料刪除,僅留存運算流程),巨集名稱取作 testMacro




  3. 現在新增一個專案,新增訊號源為 Source / Square Wave,於 Square 圖示上按右鍵點選 Macros (或於主選單 File 下選擇 Load Macro),就可看到剛儲存的巨集名稱。



    須注意不論專案存在那個目錄,若巨集皆是存在 Visual Signal 安裝目錄下的 Macros 資料夾下,此巨集就會出現在 Network 的選單中。

  4. 如此設定仍有些許不便;當匯入 Macro 時,仍須把資料連接到不同的模組上,如此之連結線有可能非常多,為解決此問題,可用 Dup 做為 Macro 接口,以後匯入 Macro 時只需將資料聯接到 Dup 後即可(如下圖)。


  5. 上述範例為很簡單的示範,通常應用 Macro 的程序都十分繁雜,程式內部就預設了幾個 Macro,以其中的 HHT_SplitView 為例,此巨集內容是將訊號做 EMD 後,再把每一個計算出的 IMF 都單獨畫出來。



    若需要在不同的 Network 重複建立如上圖的運算流程將浪費不少時間,將這些常用的運算儲存為 Macro 可大幅提升操作之便利性。

相關指令

Dup

3.8 滾動窗計算(Rolling Window)

多數計算元件具有滾動窗計算的功能,即將輸入訊號切割為多個「計算窗」,每個計算窗算出一個數值後再將所有數值組合成輸出資料。也可以視為用一個計算窗由左到右滾動,每移動到一個位置即計算出一個輸出資料的數值點。下圖示意一個大小為 5 個資料點的計算窗,滾動計算 RMS 值,每次移動 3 個點(即計算窗之間重疊量為 2 個點):

目前支援滾動窗計算之計算元件詳列於本章節之「相關指令」一欄中。

參數設定

如果該計算元件支援滾動窗計算,則計算窗模式、大小、重疊等參數統一可以在該計算元件參數欄中的「Rolling Window」分類中設定,如下圖:

滾動窗計算參數
參數名稱 參數定義 預設值
Window Mode

設定計算窗模式,可選擇:

  • Leading
  • Centered
  • Trailing
Leading
Include All Data 設定「True」時,也包含計算窗不完整時(例如在資料邊緣)的計算,否則只採用完整的計算窗,見後述。 False
Use Time Unit 設定「True」時,計算窗大小與重疊量的設定單位為時間,否則為資料點數。 False
Window 設定計算窗大小 輸入資料長度 / 10
Overlap 計算窗重疊量 0

以下說明計算窗模式(Window Mode)選項:

計算窗模式選項
計算窗模式 說明
Leading

計算窗在(包含)參考資料點的前(即右)方,如下圖:

Centered

參考資料點在計算窗的中央,如下圖:

Trailing

計算窗在(包含)參考資料點的後(即左)方,如下圖:

當計算窗在資料邊緣時,計算窗的一部分有可能會在資料範圍之外,形成不完整的計算窗。不同計算窗模式會有不同的不完整形式:

不完整計算窗形式
計算窗模式 資料左邊緣 資料右邊緣
Leading 完整 不完整;參考資料點為最後一點時計算窗只有一個點
Centered 不完整;參考資料點為第一點時計算窗為右半窗 不完整;參考資料點為最後一點時計算窗為左半窗
Trailing 不完整;參考資料點為第一點時計算窗只有一個點 完整

參數 Include All Data 可控制是否要採用資料邊緣不完整的計算窗,或是只採用邊緣以完整的計算窗。採用不完整的計算窗時,即便計算窗只有一個點也會加入計算,因此可能會在特定的計算中因為點數過少而造成錯誤,必須注意。

當 Include All Data 設為 False,選擇只採用完整的計算窗時,計算元件會顯示警告訊息,表示在資料的前後邊緣有多少因為計算窗不完整而未加入計算的資料點,如下圖(以 RMS 為例):

計算窗的大小與移動範圍可由 Window 及 Overlap 參數設定,當 Use Time Unit 為False 時單位為資料點數,為 True 時單位則為時間,計算時會自動換算為對應的資料點數。下圖示範 Window 及 Overlap 的概念;

可以看到本圖中 計算窗大小(Window)為 7 個資料點,每次移動(Skip)4 個資料點,即計算窗之間的重疊(Overlap)為 3 個資料點。重疊量預設為 0,也就是說此時計算窗每次跳一整個計算窗的範圍,計算窗之間沒有重疊。

範例

請參閱各支援滾動窗計算之計算元件(詳列於以下「相關指令」)章節中的範例。

相關指令

Replace ValueMoving AverageRMSCoherenceRolling MSERolling StatisticsCrest FactorPeakJoinSplitConvert to DB

3.9 參數參照(Property Reference)

在特定的條件下,元件的參數可以參照(Reference)同元件或連接上游的元件的其他參數值。Visual Signal 提供以下三種參照模式:同元件參數參照、上游元件參數參照、及控制連結參數參照。

3.9.1 同元件參數參照

某些特定的參數允許輸入參數參照字串,參照同元件之任何參數,在元件更新時將其參數值替換為所參照之參數值。目前支援此功能的參數有兩個:

元件 參數項目 參數名稱 說明
所有元件 Module OutputDataNameFormat 見【Module 項目參數】說明
HLine & VLine
Annotation
Annotation LabelText 見【標註元件】說明

參照字串的語法為:

$《參數名稱》

以任一元件中 Module 參數項目中的OutputDataNameFormat 為例,其預設值為 $Name,即參照同元件之 Name 參數,將Name 參數之值替換至OutputDataNameFormat。注意因為語言檔設定的關係,各參數顯示之名稱不一定為參數真正的名稱,使用者可點擊支援本參照功能的參數欄位右側的Dots圖示,開啟參數瀏覽器查詢各參數真正的名稱,也可以直接在瀏覽器上雙擊點選欲參照之參數,瀏覽器會自動將該參數的語法插入至參數欄位中:

在瀏覽器的參數列表中,參數真正名稱在前,如果後面沒有括弧,則參數欄位上顯示的即為參數真正名稱,否則括弧內的名稱為參數顯示在參數欄位中的名稱。以下為在【Preference】裡選擇中文語言時在參數瀏覽器中所顯示的參數名稱,括弧中為參數欄位中顯示的所有中文參數名稱:

3.9.2 上游連結元件參數參照

某些特定的參數允許輸入參數參照字串,參照同元件或上游連接元件之任何參數,在元件更新時將其參數值替換為所參照之參數值。目前支援此功能的參數有一個:

元件 參數項目 參數名稱 說明
所有 Viewer 元件 Title Title 見【ChannelViewer】說明

參照字串的語法為:

{《模組名稱》}$《參數名稱》

如果省略《參數名稱》,則默認為 Name。以 ChannelViewer 之 Title 參數為例,使用者可點擊支援本參照功能的參數欄位右側的Dots圖示,開啟參數瀏覽器查詢各上游連接元件名稱以及元件中所有參數的名稱,也可以直接在瀏覽器上雙擊點選欲參照之參數,瀏覽器會自動將該參數的語法插入至參數欄位中。

以下示範將 ChannelViewer 之 Title 參數由預設之 {default} 改成:

{Noise}[Amp={Noise} $Amplitude]

注意此處第一個 {Noise}{Noise}$Name 的省略寫法。

3.9.3 控制連結參數參照

以上兩種參數參照方式只適用將其他參數值轉變為字串插入特定的字串類別的參數。 Visual Signal 還提供了另一種參數參照模式,可參照同元件或上游連接元件之數值類別(整數或浮點數)參數將其值替換至指定的數值類別參數。本模式有兩種使用方式:參數連結對話窗及控制連結線。以下說明以一 Noise 及 Sine 元件接上 Mixer 元件再接上 ChannelViewer 為例,並將 ChannelViewer 之 Title 參數改成:

({Noise}, {Sine}) - Mixer[Gain1={Mixer}$Gain1, Gain2={Mixer}$Gain2]

如下圖:

參數連結對話窗

在所有元件的都有的【Module 項目參數】中之 Property Connections 參數欄位,點擊右側之Dots圖示,即可開啟參數連結對話窗。以下示範開啟 Mixer 的參數連結對話窗:

設定參數參照連結

對話窗可以設定多個參數參照連結。點擊 Target 欄位可以開啟前述之參數瀏覽器,選擇 Mixer 元件中欲替換值的參數(注意此時參數瀏覽器只會列出數值類別的參數)。以下示範設定 Target 為 Mixer 之 Gain1 參數:

雙擊 Gain1 選擇好後,雙擊 Source 欄位可以開啟參數瀏覽器,選擇 Mixer 或連接之上游元件(Noise 或 Sine)中欲參照之參數(同樣地此時參數瀏覽器只會列出數值類別的參數)。以下示範設定 Source 為 Noise 元件之Amplitude 參數:

雙擊 Mixer 之 Amplitude 選擇好後,可以看見 Source 欄位插入了參照語法「{Noise}$Amplitude」:

工具列功能

設定完成一個參數連結(Target 與 Source 都設定完成)後,如欲刪除,可以選擇整行(點擊最左側箭頭處),然後按下 Delete 鍵,或點擊上方工具列之Delete圖示即可刪除整行。若只有設定 Target 或 Source 一個欄位,則不算設定完成一個參數連結,關閉對話窗時會自動刪除。

如欲回復到開啟對話窗時的狀態,則可點擊上方工具列Revert圖示。

Source 運算功能

Source 欄位還提供運算功能,允許各種 C# 語法數學運算,例如可以再插入其他參數做加減乘除的運算。這裡加入一個簡單倒數運算「1.0/{Noise}$Amplitude」:

所以無論 Noise 的 Amplitude 如何設定,在 Mixer 中乘上其倒數的 Gain 結果都會是 1。注意此時被除數必須用「1.0」以保證浮點運算,若只用「1」,則若 Amplitude 為整數並大於 1,運算解析器會誤判為整數運算而得出結果為 0。

接下來可以重複同樣步驟,加入第二個參數參照,將 Target 設為 Mixer 之 Gain2, Source 設為 Sine 之 Amplitude 參數之倒數「1.0/{Sine}$Amplitude」,如下:

設定好後,關閉對話窗,可看到 Property Connections 參數欄位顯示 2 Connection(s)

此時將 Noise 的 Amplitude 設為 2,Sine 的 Amplitude 設為 4,而 Mixer 的 Gain1Gain2 參數值因參數連結設定而變為 Amplitude 之倒數:\(1.0/2 = 0.5\)\(1.0/4 = 0.25\)。繪圖輸出結果不變,但標題因為之前設定了參數參照,顯示了實際的 Gain 值,如下圖:

控制連結線

如上圖所示,設定好 Mixer 的參數連結後,可以看到 Mixer 輸入埠多出了兩個橘色的虛線連結線,下圖放大顯示:

此二連結各別由 Noise 及 Sine 連至 Mixer,與訊號資料連結不同,為控制連結線,用橘色虛線區分之。此數控制連結線雖然跟參數連結一樣有兩條,但是並不完全對應。一條控制連結線只代表連線 Source 元件有一個或多個參數被 Target 元件的一個或多個參數所參照。因為如此,如下圖依照正常方法移除連接線(拉起連結箭頭移開然後放掉)時:

Visual Signal 無法判別是要刪除哪一個參數連結,因此會自動開啟參數連結對話窗,讓使用者可以依照前章節所述的方法刪除或修改參數連結:

將所有參數連結都刪除後,關閉對話窗,可以看到控制連結線都消失,Property Connections 參數顯示為 0 Connection(s),而 Mixer 元件的Gain1Gain2 參數值仍為最後個別參照 Noise 及 Sine 的 Amplitude 參數值(因此繪圖標題不變),如下圖:

此時可用產生控制連結線方法將參數連結加回。按下 Ctrl 鍵不放,然後用正常拉線方式,從 Noise 元件的輸出埠拉出一條線,此時可看到拉出來的線是橘色虛線的控制連結線,如下圖:

將控制連結線連至 Mixer 的輸入埠,如下圖:

放開後完成連結,此時會自動開啟瀏覽器,並自動開啟 Source 的參數瀏覽器(Source 元件會固定在 Noise),如下圖:

此處再次選擇 Noise 的數值類別參數 Amplitude,選擇完後會將參照語法插入Source 欄位,並自動開啟 Target 的參數瀏覽器,使用者可選擇 Mixer 的數值類別參數(可再次選擇 Gain1),如下圖:

選擇完成後則成立一個新的參數參照連結,此時可以將 Source 欄位加上倒數運算,如下圖:

此時可以如前述參數連結對話窗章節所述繼續加入第二個連結,也可以關閉對話窗(可以看到一個控制連結線連接 Noise 與 Mixer),如下圖:

這時可以重複以上步驟,由 Sine 元件拉出一條控制連結線至 Mixer,然後設定 Mixer 的 Gain2 參照 Sine 的 Amplitude 之倒數,設定完後則回覆之前的狀態:

4 計算模組 (Compute)

如【元件編輯區】章節中所介紹,所有 Visual Signal 提供的模組元件都分門別類放在六個群組中。本章介紹 Compute 分類中的模組元件。

如上圖,Compute 分類中另有【Channel】、【 Filter】、【Mathematics】、【 Statistics】、【TFA】、【 Transform】、【HHT】、【 Enhanced】、【Matrix】、【 External】、【SVM】、【Earth Science】···等次分類,其中有些分類,或是分類中的某些元件只有在 Visual Signal Professional 版本或安裝特別模組及授權檔 (module & license)才會提供,這些分類或元件會之後的功能說明中特別標示。

4.1 Channels

上圖列出 Channel 次分類中的所有元件,以下分別詳細說明。

4.1.1 Accumulate*

*Only in Professional*

說明

Accumulate 元件是用於試誤測試時使用,使用者可在不同次計算時,嘗試利用不同參數組合,並比較不同參數組合之運算結果。透過 Accumulate 元件,可將每次運算結果藉由繪圖功能紀錄,方便使用者做進一步的比較。

參數設定

Accumulate 元件參數
參數名稱 參數定義 預設值
Clear Data 是否清除儲存的數據(True/False),選擇 True 可清除先前的運算結果 False

範例

以下案例是搭配不同參數組合的 FIR 有限脈衝濾波器(Finite Impulse Filter)進行計算,藉由 Accumulate 元件,紀錄不同 FIR 參數設定之成果,同時繪出不同參數差異,進行比較。

  1. 載入資料:利用 Source / Noise 新增訊號源,選擇 Brown Noise,先利用 Compute / Transform / Fourier Transform 分析其頻譜圖,再利用 Compute / Filter / FIR 過濾高頻訊號,最後接上 Compute / Channel / Accumulate 和 Viewer / Channel Viewer。

  2. 下圖為 Brown Noise 頻譜圖,振幅較大者主要分布在 10Hz 以下之低頻訊號,但振幅較小的高頻訊號,其頻率分布範圍較大,涵蓋 10~50Hz,以下嘗試應用 FIR,分別以 10Hz、20Hz 和 30Hz 作為門檻進行濾波,再以 Accumulate 元件輸出並儲存成果,以利比較不同 FIR 頻率參數設定之影響結果。

  3. 初始 FIR 計算,參數設定如下圖,Filter Type 採取 LowPass,\(F1=10Hz\),計算結果如下。

  4. 第二次 FIR 計算,其中 F1 參數改為 20Hz (如下圖),並重新計算,下圖黑線為原 10Hz 成果,藍線為第二次計算(\(F1=20Hz\))結果。

  5. 同上步驟,將 F1 參數改為 30Hz (如下圖),並重新計算,計算結果為下圖紅線( \(F1=30Hz\))。

  6. Accumulate 可持續儲存每次執行的結果,方便使用者比較。如要清除紀錄,點選 Accumulate 視覺化元件,將參數 Clear Data 改為 True(如下圖),使用 Force Update 強制執行,便會先清除之前的運算結果,再用新的參數組合重新運算。

相關指令

NoiseFourier TransformFIRViewer

4.1.2 Channel Switch

說明

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

參數設定

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


Channel Switch 元件參數
參數名稱 參數定義 預設值
Channel Count 輸入訊號的總通道數 0
Active Channel 設定欲選取的通道 Channel 1
Select Last
Channel
是否預設為選定最後一個通道資料 False
Auto Name 設定是否自動將顯示在元件圖示上的名稱設為選取通道的名稱。如欲顯示【Module】項目的 Name 參數欄位設定的名稱(請參考【元件名稱】),則必須將此參數設為 False True
Selected Channel Name 顯示選取通道的名稱。此參數與 Active Channel 所顯示的內容一樣,只是少了前置的「n:」通道編號,方便於在使用【參數參照】時抓取通道名稱

範例

將正弦波與三角波合為一個 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)資料,並非分離波形。

相關指令

Merge to Multi-ChannelChannel ViewerSine WaveTriangle Wave

4.1.3 Data Merge

說明

當使用者有兩個取樣率相同的時間序列 A 和 B 時,此功能可將兩數據互相連接,或是將數據 A 安插在數據 B 裡,形成一個新的時間序列。

參數設定

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


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

範例

本範例以 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 秒之間。



相關指令

NoiseSine WaveShort-Term Fourier TransformChannel ViewerTime-Frequency Viewer

4.1.4 Data Selection

說明

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

參數設定

本模組接受實數(Real Number)、複數(Complex Number),單通道 (Single Channel) 或多通道(Multi-Channel),Regular 的訊號(Signal)或聲音訊號(Audio)輸入。參數須設定起始與終點位置,其單位等於輸入訊號的時間單位。

Data Selection 元件參數
參數名稱 參數定義 預設值
StartPosition 設定選取資料的時間起點 輸入訊號的時間起點
EndPosition 設定選取資料的時間終點 輸入訊號的時間終點
DownSampleStep 每多少個點重新取一個點,
用來降低取樣頻率
1
NewCount 擷取出新資料的數量 0

在使用【Data Viewer】的時候,可使用SliceRange圖示自動產生本元件,此時 StartPosition 及 EndPosition 會自動設為【Data Viewer】中選取的資料範圍。反之, StartPosition 及 EndPosition 也可以用【Data Viewer】設定。方法為點擊 StartPosition 或 EndPosition 欄位最右方的ThreeDots圖示,此時會開啟一個暫時性的【Data Viewer】視窗,同樣在介面中選取一段資料範圍,再按下SliceRange,則視窗會關閉,同時 StartPosition 及 EndPosition 會自動更新為所選取之資料範圍,如下圖:

範例

  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] 的範圍內),否則將無法運作。

相關指令

Channel SwitchChannel ViewerSine Wave

4.1.5 Dup

說明

複製 Network 視窗上的訊號源,或是某個計算元件內的數據(主要可應用為 Macro 之起點,詳請參考 Macro。)

參數設定

Dup 接受所有訊號格式作為輸入。參數定義如下面圖表。

參數名稱 參數定義 預設值
Copy Value 設定是否複製一份輸入的訊號至輸出,否則輸出的訊號直接參照(Reference)輸入元件之輸出,也就是說 Dup 輸出連接的元件之輸入直接抓自 Dup 輸入的元件之輸出。 True

參數 Copy Value 之預設為 True,在 Macro 起點應用時可保留一份輸入訊號的資料在 Dup 元件內。如果資料量大,可考慮將之設定為 False,此時 Dup 元件內不保留資料,但是因為 Dup 的輸出直接參照輸入元件的輸出,在刪除 Dup 元件時會使上游連接的元件之輸出一起被刪除。

範例

將正弦波複製:

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



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

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



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

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


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


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

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

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


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


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

相關指令

Macro

4.1.6 Fill Null Value

說明

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

參數設定

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


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

範例

填補缺值複製:

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


  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。


相關指令

Text ImporterResample

4.1.7 Input Switch

說明

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

參數設定

本模組可以接受實數(Real Number)、複數(Complex Number),單通道 (Single Channel)、多通道(Multi-Channel),等間距(Regular)、不等間距(Indexed),訊號(Signal)、聲音訊號(Audio)、數值資料(Numeric)、時頻資料(Spectra)。各參數定義與預設值如下表:

Input Switch 元件參數
參數名稱 參數定義 預設值
Input Count 進入此模組的通道數目
Active Input 設定欲選取的資料通道 1
Auto Name 設定是否自動將顯示在元件圖示上的名稱設為選取輸入的名稱。如欲顯示【Module】項目的 Name 參數欄位設定的名稱(請參考【元件名稱】),則必須將此參數設為 False True
Selected Input Name 顯示選取輸入的名稱。此參數與 Active Input 所顯示的內容一樣,只是少了前置的「n:」輸入編號,方便於在使用【參數參照】時抓取輸入名稱

範例

本範例以 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 內矩陣資料。


相關指令

NoiseFourier TransformRCADA EEMDConvert to AudioShort-Term Fourier TransformConvert to Matrix

4.1.8 Peak Detection

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

說明

  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 濾除趨勢性,再做擷取:


參數設定

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


Peak Detection 元件參數
參數名稱 參數定義 預設值
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 輸出移除均值後的過零點及局部極值

範例

  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,忽略過近的峰值:


    1. 降低 PeakThreshold:


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


相關指令

CustomWaveMulti-Scale Entroy (MSE)

4.1.9 Remove Channel

說明

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

參數設定

本模組接受實數(Real Number)、複數(Complex Number),多通道(Multi-Channel),Regular 或 Indexed 的訊號(Signal)或聲音訊號(Audio)輸入,參數定義詳見下面圖表。


Remove Channel 元件參數
參數名稱 參數定義 預設值
Channel Count 輸入訊號的總通道數 0
Remove Channel 選定欲移除的資料 Channel 1
Select Last Channel 是否設為選定最後一筆資料 False

範例

將正弦波、三角波及方波結合為同一個多通道(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恰相反,刪除選取訊號、其餘保留。

相關指令

Merge to Multi-ChannelChannel Switch

4.1.10 Replace Value

說明

將訊號中指定的數值取代為另一數值。

參數設定

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

Replace Value 元件參數
參數名稱 參數定義 預設值
ReplaceMethod

選擇取代的方法:

  • All:取代指定範圍內的所有資料點
  • Expression:取代指定範圍內所有符合條件式的資料點
  • Outlier:取代指定範圍內所有異常值(離群邊值)
  • Bypass:不取代任何資料點
Expression
StartPosition 設定被取代訊號範圍的起始點
(預設為輸入訊號的起始點)
start
EndPosition 設定被取代訊號範圍的終點
(預設為輸入訊號的終點)
end

取代方法為 All、Expression、Outlier 時,則可設定參數如下表:

Replace Value 元件參數(ReplaceMethod = All、Expresion、Outlier)
參數名稱 參數定義 預設值
Replace Value Type

選擇取代條件成立時取代數值的型態:

  • Custom:自訂取代值
  • Null:取代值設定為 Null 值
  • Mean:取代值設定為資料平均值
  • Median:取代值設定為資料中間值
  • Min:取代值設定為資料最小值
  • Max:取代值設定為資料最大值
Custom
Replace Value Replace Value Type 選擇為 Custom 時設定自訂之取代值 0

取代方法為 Expression、Outlier 時,則可設定參數如下表:

Replace Value 元件參數(ReplaceMethod = Expression、Outlier)
參數名稱 參數定義 預設值
Condition Expression 輸入要取代的條件式。可使用
+, -, *, /, <, >, ==, !=, &,
等運算元
y == null
Alternate Replace Value Type

設定取代條件不成立時取代數值的型態:

  • None:忽略條件式不成立的情況
  • Custom:自訂取代值
  • Null:取代值設定為 Null 值
  • Mean:取代值設定為資料平均值
  • Median:取代值設定為資料中間值
  • Min:取代值設定為資料最小值
  • Max:取代值設定為資料最大值

取代方法為 Epression 時,「條件不成立」意為條件式不成立;取代方法為 Outlier 時,意為非異常值(非離群邊值)

None
Alternate Replace Value Alternate Replace Value Type 選擇為 Custom 時設定自訂之取代值 0

取代方法為 Outlier 時,則可設定的參數如下表:

Replace Value 元件參數(ReplaceMethod = Outlier)
參數名稱 參數定義 預設值
Outlier Boundary 設定離群邊值(訊號標準差的倍數) 3
Sliding Window Mode 設定開啟 / 關閉滾動計算窗模式 False

在 Sliding Window Mode 為 False 時,是由 StarPosition 及 EndPosition 指定之資料範圍內整體訊號標準差的倍數為來計算離群範圍的上限與下限,超過此範圍則判定為異常值。在 Sliding Window Mode 為 True 時則是以指定的滾動窗範圍內的資料來計算離群範圍。用滾動窗計算離群邊值較能夠精準的計算資料的動態異常值,但是計算量會大幅增加。

開啟滾動窗計算時,會出現滾動窗相關的設定,用來控制做滾動窗計算時的計算窗大小、單位、及重疊等參數,詳情請參閱【滾動窗計算】章節說明。

取代方法為 ByPass 時,則不取代任何資料點,即輸入複製至輸出。

範例

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

  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,如下圖。



相關指令

4.1.11 Resample

說明

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

降低取樣率時可能會造成 混疊現象(Aliasing),本元件提供消除混疊(Anti-Aliasing)的濾波設定(見下述)。另外,內插方式的選擇也會影響重新取樣完的數據,若需做較精細的分析時,也應該考慮此因素來選擇內插的方式。

參數設定

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

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


以下有提到原始資料的取樣率(Sampling Frequency)時,以 \(S\) 代表;提到原始資料長度(Data Count)時,以 \(L\) 代表,即

\[ S = \text{Sampling Frequency}\] \[ L = \text{Data Count}\]

參數 Properties / Resample 定義詳見下面圖表。Resample Mode 決定重新取樣的模式:

Resample Mode 參數說明
參數名稱 參數定義 預設值
Resample Mode

選擇重新取樣的模式:

  • Down: 降低取樣(Down-sampling)
  • Up: 增加取樣(Up-sampling)
  • Reset: 重設取樣率(Reset sampling rate)
Down
降低取樣模式

若 Resample Mode 為 Down 時進入降低取樣模式,此時以整數的 Down-sampling Step( \(N\))為基準,Down-sampling Frequency 及 New Count 都會自動依照整數的 \(N\) 計算。相關參數如下:


Down-sampling 模式相關參數
參數名稱 參數定義 預設值
Down-sampling Method

Resample Mode 設定為 Down 時,以及 Down-sampling Step (\(N > 1\))時,選擇降低取樣的方法:

  • Sample:取每 \(N\) 點的第一點
  • Average:取每 \(N\) 點的平均
  • MaxDetect:取每 \(N\) 點的最大值
  • MinDetect:取每 \(N\) 點的最小值
  • PeakDetect:取每 \(2N\) 點的最大及最小值,以出現的先後順序排序
Sample
Down-sampling Frequency 設定降低取樣的頻率(\(S_d\))。此設定會自動轉換為最接近的整數 \(N\),並依照整數 \(N\) 調整設定的頻率及 New Count。 \(S/N\)
Down-sampling Step 設定將低取樣階數 \(N\),即每 \(N\) 個點取出一個點。此設定會重新計算 Down-sampling Frequency 及 New Count 1
New Count 設定降低取樣後的總點數。此設定會自動轉換為最接近的整數 \(N\),並依照整數 \(N\) 調整設定的點數及 Down-sampling Frequency \(L/N\)

降低取樣模式同時也提供了消除混疊(Anti-Aliasing)的濾波設定,可選擇一個濾波器設定,在執行降低取樣之前將原始資料中高頻部分(降頻後的 Nyquist Frequency \(F_{Nyquist} = S_d/2\) 以上的頻率)濾掉。相關參數如下:


Anti-Aliasing 相關參數
參數名稱 參數定義 預設值
Anti-Aliasing Method

當 Down-sampling Step \(N > 1\) 時,可選擇是否使用消除混疊方法:

  • None:不採用
  • IdealFilter:採用理想 IIR 濾波器
  • Butterworth:採用 Butterworth IIR 濾波器
  • Chebyshev:採用 Chebyshev IIR 濾波器
None
Filter Order Anti-Aliasing Method 設定為 Butterworth 或 Chebyshev 時,可設定濾波階數 1~12。Anti-Aliasing Method 設定為 IdealFilter 時, Filter Order 默認為資料長度。 10
Ripple Anti-Aliasing Method 設定 Chebyshev 時,可設定震盪參數(Ripple),即頻率響應(frequency response)的幅度波動(overshoot 振幅),單位為分貝(dB) 0.1
增加取樣模式

若 Resample Mode 為 Down 時進入降低取樣模式,此時以 Up-sampling Frequency 為基準,可以為任何 \(\ge S\) 的數值。相關參數如下:


Up-sampling 模式相關參數
參數名稱 參數定義 預設值
Up-sampling Method

Resample Mode 設定為 Up 時,以及 Up-sampling Frequency (\(S_up > S\))時,選擇增加取樣的方法:

  • Nearest:以最臨近的原訊號值,做為新樣本點處之值
  • Linear:以前後第一個有定義的兩原訊號值做線性內插
  • Spline:將原訊號做三次曲線內插(Cubic Spline)以重新取樣
  • MonotonicCubic:有 damping 的三次內插取樣,此法在處理在斜率很大的訊號(如方波)時,可避免劇烈振盪,較 Spline 為佳
Linear
Up-sampling Frequency 設定增加取樣的頻率 \(S_u\)。此設定會重新計算 Up-sampling Step 及 New Count \(S\)
Up-sampling Step 取樣時,設定每 \(N\) 個點取出一個點,此設定會重新計算 Down-sampling Frequency 及 New Count \(S_u/S\)
New Count 設定降低取樣後的總點數。此設定會重新計算整數 Down-sampling Step 及 Down-sampling Frequency \(L*S_u/S\)
重設取樣模式

若 Resample Mode 為 Reset 時進入重設取樣率模式,相關參數如下:


Reset 模式相關參數
參數名稱 參數定義 預設值
Reset Frequency Resample Mode 設定為 Reset 時,設定重設之取樣率,也就是改變原始資料取樣率 \(S\) 的值,總點數 \(L\) 保持不變。 \(S\)

範例

範例 I:建立一取樣頻率較高的正弦波,並以 Down-sampling 降低取樣。

  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 中設定 Resample Mode 為 Down,更改 Down-sampling Step 為 2000,再接上 Viewer[1] 與原訊號一起比較(黑線為原始訊號,藍線為 Resampling 後),可以看出此降低取樣頻率造成了資料失真。




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



範例 II:建立一取樣頻率太低的正弦波,並以 Up-sampling 增加取樣。

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



  2. 將原本訊號 Sine 接上 Compute / Channel / Resample,設定 Resample 下的 Resample Mode 為 Up。 若將 Up-sampling Method 設定為 Spline 且 Up-sampling Frequency 提高至 500,再接上 Viewer / Channel Viewer,可以看出由於增加了採樣頻率而還原出較正確的正弦波。




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

範例 III:比較不同 Up-sampling Method 的差異。

  1. 由 Source 下產生 Square Wave,參數使用預設值,接上兩個 Compute / Channel / Resampling,Resample Mode 設定為 Up,Up-sampling Method 分別設定為 Spline 與 MonotonicCubic,Up-sampling Step 設定為 100 (或 Up-sampling Frequency 設為 100000),並接上 Viewer / Channel Viewer,畫在同一個 Viewer 上,比較不同的 Up-sampling Method 的差異。


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


相關指令

Sine WaveSquare Wave Enhanced MorletChannel Viewer

參考資料

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

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

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

4.1.12 R-R interval

說明

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 的參考,故不列入計算。

參數設定

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

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


RRInterval 元件參數
參數名稱 參數定義 預設值
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}{N-1}}\) R-R interval 每五分鐘平均值的標準差
RMSSD \(\text{RMS of} \Delta RR_i,\)
\(\Delta RR_i = \vert RR_{i+1} - RR_i \vert\)
相鄰的 R-R interval 差值的 RMS
SDANN index \(\frac{1}{M}\displaystyle\sum_{j=1}^M \sqrt{\frac{\sum_{i=1}^{N_j}(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 \({\text{NN50 count}} / {\text{Total RR intervals}}\) 相鄰的 R-R interval 差值超過 50 豪秒的個數與 R-R interval 總數百分比
Geometric Measures 參數定義
分析值 數學式 說明
HRV triangular index
\({\text{Total RR intervals}} / {Y}\)
R-R interval 總數除上 R-R interval 直方圖最高點 \(Y\)
TINN \(M - N\) R-R interval 直方圖底寬

範例

範例 I :以(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 模組。

相關指令

Peak Detection

參考資料

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

  2. http://www.physionet.org/physiobank/database/mitdb/

4.1.13 Time Shift

說明

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

參數設定

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

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


Time Shift 元件參數
參數名稱 參數定義 預設值
ShiftMode

設定時間起點的方法:

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

範例

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

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



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




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



注意:

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

相關指令

RemoveDC

4.1.14 Trigger Alignment

Trigger Alignment 可偵測訊號中的觸發點(Trigger)並重新調整時間軸,使不同通道中的觸發訊號能互相對齊,方便使用者做後續比較和分析。此元件適用於處理敲擊訊號,可搭配不同廠牌的資料擷取卡和 DAQ 模組使用(Audio DAQ、NI DAQ、ADLINK DAQ)。

參數設定

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

Data 相關元件參數
參數名稱 參數定義 預設值
Sampling Frequency 顯示輸入訊號的取樣率
Data Count 顯示輸入訊號的資料點數,即 \(\text{Sampling Frequency} * \text{Data Length}\)
Channel Count 顯示輸入訊號的通道數
Triggered Position 顯示輸入訊號發生第一個觸發點的時間點
Re-label Trigger 將觸發點重設為時間軸的零點 False
Re-labeled Trigger Position 當 Re-label Trigger 設為 True 時,會出現此參數,可以將觸發點設定為之時間軸零點以外的時間點 0
Pre-Trigger Length 設定觸發點之前要顯示多少訊號的時間長度。設定「all」時包含觸發點前所有輸入訊號,根據實際觸發點的時間點計算實際時間間隔並顯示在欄位上 all
Post-Trigger Length 設定觸發點之後欲顯示多少訊號的時間長度。設定「all」時包含觸發點後所有輸入訊號,根據實際觸發點的時間點以及數入訊號長度計算實際時間間隔並顯示在欄位上 all
New Count 顯示輸出訊號的資料點數,即 Pre-Trigger 長度包含的點數加上 Post-Trigger 長度包含的點數以及包括觸發點本身。如果兩者皆設定為「all」,則 New Count 等於 Data Count

下圖用一個 Impulse 元件產生的位於 \(t = 0.25 s, \sigma = 0.05\) 的單脈衝訊號,示意設定預設 Pre-Trigger 跟 Post-Trigger 對輸出訊號的影響。上升邊緣觸發位準設在 0.25(邊緣觸發設定見下文說明)。Pre/Post-Trigger Length 皆設為「all」時輸出訊號跟輸出訊號一樣,New Count 跟 Data Count 相同,但是觸發點位置(\(t = 0.217 s\))顯示於Trigger Position 欄位:

上圖可見設為「all」時自動算出的 Pre/Post-Trigger Length 值:觸發點之前至輸入訊號起始點有 0.217 秒,觸發點之後至輸入訊號結束點有 0.783 秒的間隔。如果將 Re-Label Trigger 設為 True,如下圖:

則輸出訊號的時間軸會將原點移至觸發點(但是原觸發點位置 0.217 仍然會顯示在欄位上),如下圖:

如果將Pre-Trigger Length 設為 0(捨棄觸發點前所有訊號),Post-Trigger Lenth 不變,如下圖:

則輸出訊號變成入下圖:

上圖可見輸出訊號直接從觸發點開始,輸出長度 New Count 變為 Post-Trigger Length 包含之資料點數加上觸發點本身。

本元件提供幾種不同的觸發模式,可在 Trigger Type 參數欄位設定,如下:

參數名稱 參數定義 預設值
Trigger Type

選擇觸發訊號的種類,可選擇:

  • Edge(邊緣觸發)
  • Window(窗觸發)
  • PulseWidth(脈衝寬觸發)
  • WindowPulseWidth(脈衝寬窗觸發)
  • Interval(間隔觸發)
Edge

以下詳述各觸發模式及相關參數設定。

注意:以下圖示皆為實際 Impulse 訊號依照相關觸發模式觸發而成,共同參數設定如下:

共同參數設定
參數名稱 設定值
Re-label Trigger True
Re-labeled Trigger Position 0
Pre-Trigger Length all
Post-Trigger Length all
邊緣觸發(Edge Trigger)

邊緣觸發模式偵測訊號上升邊緣或下降邊緣超過所設定的位準,觸發點為超過位準後的第一個資料點,如下圖:

相關參數如下表:

邊緣觸發相關元件參數
參數名稱 參數定義 預設值
Trigger Slope

選擇觸發訊號的斜率,可選擇:

  • Rising(上升)
  • Falling(下降)
  • Both(兩者皆可)
Rising
Trigger Level #1 設定觸發位準 0
Hysteresis 設定觸發位準遲滯。此為防止訊號雜訊在觸發位準上來回跳動導致誤觸,因而設定訊號必須上升或下降超過一個範圍內才判定為觸發。遲滯單位為資料最大範圍的百分比。此參數適用於每個觸發模式,以下不再重複 2.5

參數 Hysteresis 可設定觸發位準遲滯。當設定上升邊緣觸發位準時,如有訊號雜訊,會出現訊號超過位準但是又馬上下降低於位準的情形,此狀況可能會出現在訊號下降邊緣,並不符合預期的觸發條件,如下圖訊號開始時的狀態。此時設定位準遲滯,會在觸發位準之前另設一個遲滯範圍,當訊號上升進入該範圍,必須等到訊號離開該範圍超過所設定之觸發位準,才算真正滿足觸發條件。此時觸發點為超過遲滯範圍後的第一個資料點:

當設定下降邊緣觸發位準時,如有訊號雜訊,會出現訊號低於位準但是又馬上上升超過位準的情形,此狀況可能會出現在訊號上升邊緣,並不符合預期的觸發條件,如下圖脈衝開始時的狀態。此時設定位準遲滯,會在觸發位準之前另設一個遲滯範圍,當訊號下降進入該範圍,必須等到訊號離開該範圍低於所設定之觸發位準,才算真正滿足觸發條件。此時觸發點為超過遲滯範圍後的第一個資料點:

窗觸發(Window Trigger)

窗觸發模式偵測訊號進入或離開設定的位準範圍(由第一位準及第二位準設定),觸發點為訊號進入或離開為準範圍後的第一個資料點。當觸發方向設為「進入」時,此觸發模式可以同時偵測訊號過高於範圍下緣以及低於範圍的上緣,如下圖設定位準範圍 0.25~0.5:

當觸發方向設為「離開」時,此模式可同時偵測訊號過高於範圍上緣以及低於範圍下緣,如下圖:

相關參數如下表:

窗觸發相關元件參數
參數名稱 參數定義 預設值
Window Direction

定義窗觸發訊號的方向,可選擇:

  • Entering(進入)
  • Leaving(離開)
  • Both(兩者皆可)
Entering
Trigger Level #1 設定第一個窗觸發位準 0
Trigger Level #2 設定第二個窗觸發位準 0
脈衝寬觸發(Pulse Width Trigger)

脈衝寬觸發模式偵測特定寬度的正負脈衝訊號。由脈衝的前緣(正脈衝時為上升,負脈衝時為下降)超過所設定的位準時開始算,至脈衝的後緣(正脈衝時為下降,負脈衝時為上升)的寬度,依照所設定的判定方法寬於或窄於所設定的時間間隔,即判定為觸發,觸發點為脈衝後緣超過位準後第一個資料點。

如下圖所示,設定位準為 0.25,時間間隔判定條件為「Wider」寬於 0.1,位於圖左的訊號脈衝寬度小於所設之Time Interval 參數,因此不符合觸發條件,位於圖中的訊號脈衝寬度大於所設之 Time Interval 參數,則判定為觸發:

如下圖所示,改判定條件為「Narrower」,此時位於圖左的訊號脈衝寬度小於所設之 Time Interval 參數,因此判定為觸發:

相關參數如下表:

脈衝寬觸發相關元件參數
參數名稱 參數定義 預設值
Trigger Level #1 設定脈衝寬觸發位準 0
Time Interval 設定脈衝寬的時間間隔 0.1
Pulse Polarity

設定正脈衝或副脈衝,可選擇:

  • Positive(正脈衝)
  • Negative(負脈衝)
Positive
Pulse Criteria

設定與 Time Interval 時間間隔參數比對判定方法,可選擇:

  • Wider(脈衝寬於時間間隔)
  • Narrower(脈衝窄於時間間隔)
  • Missing
Wider
脈衝寬窗觸發(Window Pulse Width Trigger)

脈衝寬窗觸發模式結合了脈衝寬觸發以及窗觸發,用來偵測訊號進入(或離開)所設定的位準範圍並持續一段時間後再離開(或進入)。本觸發模式的基本邏輯跟脈衝寬觸發相同,只是改用窗觸發的位準範圍代替原有的單一位準來偵測何時開始計算脈衝的持續時間(寬度),然後由所設定之判定方法決定是否判定為觸發,觸發點為訊號離開位準範圍後第一個資料點。本觸發可以用來當做異常觸發(Runt Trigger)模式,偵測某個震幅範圍的脈衝是否超過特定的寬度。

如下圖所示,設定「進入」位準範圍 0.5~0.75 前置窗觸發條件,時間間隔判定條件為「Wider」寬於 0.7,此時位於圖左的第一個號脈衝寬度小於所設之 Time Interval 參數,第二個脈衝在前緣就超出位準範圍,在範圍內的持續時間也小於所設定之時間間隔,因此都不符合觸發條件,而第三個訊號脈衝寬度大於所設之 Time Interval 參數,因此判定為觸發:

改時間間隔判定條件為「Narrower」時,位於圖左的第一個訊號脈衝寬度小於所設之 Time Interval 參數,因此首先判定為觸發,如下圖所示:

下圖示範稍微不同的輸入訊號,將前置窗觸發條件改為「離開」,時間間隔判定條件為「Wider」寬於 0.1 ,此時位於圖左的第一及第二個脈衝之間的間隔小於所設之 Time Interval 參數,因此不符合觸發條件,而位於第二個及第三個脈衝之間的脈衝間隔大於所設之Time Interval 參數,則判定為觸發:

時間間隔判定條件為「Narrower」時,第一個脈衝間隔的脈衝間隔小於所設之 Time Interval 參數,因此判定為觸發,如下圖:

相關參數如下表:

脈衝寬窗觸發相關元件參數
參數名稱 參數定義 預設值
Window Direction

定義脈衝寬窗觸發訊號的方向,可選擇:

  • Entering(進入)
  • Leaving(離開)
  • Both(兩者皆可)
Entering
Trigger Level #1 設定第一個脈衝寬窗觸發位準 0
Trigger Level #2 設定第二個脈衝寬窗觸發位準 0
Time Interval 設定脈衝寬窗的時間間隔 0.1
Interval Criteria

設定與 Time Interval 時間間隔參數比對判定方法,可選擇:

  • Wider(脈衝寬於時間間隔)
  • Narrower(脈衝窄於時間間隔)
  • Missing
Wider
間隔觸發(Interval Trigger)

間隔觸發模式偵測訊號上升(或下降)時超過所設定的位準,隔一段時間後上升(或下降)時同條件再次觸發的情形,兩次觸發的間隔依照所設定之時間間隔判定方法與設定之時間間隔比對,決定是否真正觸發。本模式跟脈衝寬觸發邏輯雷同,只是脈衝寬觸發因為是要偵測脈衝寬,兩次觸發的條件相反(先上再下或先下再上),而本模式兩次觸發的條件相同(上升斜率時偵測一個脈衝上緣至下一個脈衝上緣的間隔,下降斜率時偵測一個脈衝的下緣至下一個脈衝下緣的間隔)。這個模式可以在脈衝串序列當中抓出不規則的狀況。本模式的觸發點為第二次觸發後的第一個資料點。

下圖示範輸入訊號為有缺陷的脈衝串,上圖缺單一脈衝,下圖為單一脈衝過寬。此時設定間隔觸發,上升斜率,時間間隔判定條件為「Wider」寬於 0.25,偵測一個脈衝上升緣及下一個脈衝上升緣的間隔是否寬於 0.25,則可同時偵測兩種缺陷:

欲偵測脈衝串中有多餘的脈衝,如下圖所示,則可改時間間隔判定條件為「Narrower」窄於 0.15,則可偵測脈衝間隔過小的情形:

相關參數如下表:

間隔觸發相關元件參數
參數名稱 參數定義 預設值
Trigger Slope

定義觸發訊號的斜率,可選擇:

  • Rising(上升)
  • Falling(下降)
  • Both(兩者皆可)
Rising
Trigger Level #1 設定觸發位準 0
Time Interval 設定間隔觸發的時間間隔 0.1
Interval Criteria

設定與 Time Interval 時間間隔參數比對判定方法,可選擇:

  • Wider(脈衝寬於時間間隔)
  • Narrower(脈衝窄於時間間隔)
  • Missing
Wider

範例

  1. 點選 Import Data ,從 C:\Program Files\AnCAD\Visual Signal\demo\Basic 載入數據 敲擊訊號 右端 .tfa敲擊訊號 左端.tfa敲擊訊號 中間1.tfa,各自在後面接上 Comepute / Switch / Channel Switch 和 Compute / Channel / Trigger Alignment,再以 Viewer / Channel Viewer 顯示。

  2. 下圖為此三組訊號的原始圖形,經由輪流敲擊同一根鋁棒的左端、右端和中間,產生三組敲擊訊號,黑色為敲擊力道訊號,藍色則為加速度訊號;由下圖可看出三組數據的 Trigger 接發生在不同時間。

  3. 由 Trigger Alignment 的參數 Pre-Trigger Length 和 Post-Trigger Length 可調整時間軸並對齊觸發訊號,Trigger Type、Trigger Slope、Trigger Level #1 和 Hysteresis 則可定義欲偵測的觸發訊號。以「敲擊訊號 右端」為例,Trigger Source=1:Force,其觸發訊號振幅約 273N,因此我們將參數 Trigger Level #1 設定為 200, Pre-Trigger Length 和 Post-Trigger Length 設為 0.5 和 2,調整後的圖形如下。

  4. 依照此邏輯,再將「敲擊訊號 中間」的 Trigger Level #1 改為 250,「敲擊訊號 左端」的 Trigger Level #1 改為 500,Pre-Trigger Length 和 Post-Trigger Length 皆設為 0.5 和 2,使其觸發訊號發生的時間和「敲擊訊號 右端」相同;調整完後圖形如下。

  5. 將滑鼠移至圖的左上角,將三張圖設定為 X 軸同步(Group: 1,Sync: X),使用工具 Zoom X 即可同步縮放X軸,方便使用者做細部比較。當數據中包含多次敲擊訊號,使用 Trigger Alignment 調整時間軸後,亦可將訊號疊加以減小噪音的影響。

相關指令

ImpulseAudio DAQNI DAQADLINK DAQ

參考資料

http://zone.ni.com/reference/en-XX/help/371526A-01/vbhelp/hysteresis_triggers/

4.2 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:將一組混合訊號拆解為另一組統計上互相獨立的訊號 。

4.2.1 Fast Short-Term Fourier Transform*

*Only in Professional*

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

說明

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

參數設定

本模組接受實數(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
Window 在STFT 分析,進行時間軸的分割時,會利用窗函數進行濾波,此處可選擇不同窗函數。關於各窗函數的定義,請參閱 Fourier transform。 Gaussian

參數欄中還有 Remove DC 的相關選項。Remove DC 為嵌入元件,可以視為是將輸入接到 Remove DC 後再接到本元件,因此相關參數可以直接參考【Remove DC】元件。

範例

  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).

4.2.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 並修正之。

參數設定

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


參數說明
參數名稱 參數定義 預設值
Output Type Signal:移除 Bump 或 Jump 後的修正訊號。 Bump:Bump 或Jump 的訊號值。 Singal
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 欲處理訊號不連續處之時間終點 整個訊號的時間終點

範例

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


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



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


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

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

  1. 做法一


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


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


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


  2. 做法二

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


    輸出為


相關指令

Data SelectionDiff

4.2.3 Fast Trend Estimater*

*Only in Professional*

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

說明

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

參數設定

本模組接受實數(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

範例

  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

4.2.4 Fast Iterative Gaussian Filter*

*Only in Professional*

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

說明

請參考於【[Iterative Gaussian Filter]】的說明。

參數設定

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

參數說明
參數名稱 參數定義 預設值
Filter Type

選擇 Iterative Gaussian Filter 的濾波形式:

  • LowPass:低頻部分可通過,濾除高頻。
  • HighPass:低頻部分可通過,濾除高頻。
  • ByPass:無任何頻段訊號被濾除。
LowPass
Attenuation 設定衰減參數值(見【Interative Gaussian Filter】章節說明),建議 0.01 至 0.001 之間 0.01
FH 設定高頻截止頻率。 10
Normalized FH 顯示相對於 Nyquist 頻率的 FH 值。 10
FL 設定低頻截止頻率。 2
Normalized FL 顯示相對於 Nyquist 頻率的 FL 值。 10
Freq Unit

選擇 FH 及 FL 的頻率單位:

  • Default:自動由輸入訊號之取樣率單位決定
  • Hz、kHz、MHz、GHz、THz、THz
  • cycles_per_(min、hour、day、week、month、year)
Default
Default Unit Freq Unit 為 Default 時,顯示自動設定之頻率單位
Iteration 顯示濾波運算的重複次數

範例

這裡以 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

4.2.5 Fast MSE*

*Only in Professional*

原本 MSE 演算法中,計算一個 Scale 所耗的時間為訊號長度 N 的平方之正比(\(O(N^2)\) )。本元件採用了Sort(同為 \(O(M^2)\),但比例係數較小)以及 K-D Tree( \(O(M^{3/2})\),但需使用較多的記憶體)兩種演算方法減少計算時間。

參數設定

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

參數說明
參數名稱 參數定義 預設值
Entropy Method

選擇熵計算方法,詳情請參考【MSE】 元件說明:

  • Sample
  • Approximate
  • Spectral
  • Shannon
Sample
Algorithm

Entropy Method 選擇 Sample 或 Approximate 時在計算熵時搜尋統計相似數列的演算法(詳情請見【MSE】章節說明):

  • Auto:自動選擇,在訊號長度大於 5000 點且記憶體量足夠時使用 SlidingKDTree,反之則用 Sort。
  • Brute:原 MSE 演算法,見【MSE】章節說明
  • Sort:用 C 標準函式庫的 qsort 搜尋相似數列
  • SlidingKDtree:用 K-DTree 搜尋相似數列
Auto
MinScale 設定最小尺度。作多尺度分析時設定尺度縮放之下限值 1
MaxScale 設定最大尺度。作多尺度分析時設定尺度縮放之上限值 20
ScaleStep 設定尺度步長,於尺度上限以下取一步幅長,依此步幅長遞增(減)尺度至最大(小)尺度。 1
Match Points Entropy Method 設定為 Sample 或 Approximate 時,可設定比較相似度之數列長度,即原【MSE】相關定義中之 \(m\) 2
Match Tolerance Entropy Method 設定為 Sample 或 Approximate 時,設定判斷相似度所設定的容忍誤差值,即原【MSE】相關定義中的 \(r\),單位為輸入資料之標準差 0.15
BinCount Entropy Method 設定為 Shannon 時,可設定計算概率之分格數,即原【MSE】相關定義中的 \(h\) 10
Enable Composite MSE 設定是否開啟組合式 MSE,即加入少量白噪音多次重複計算 MSE 後合併結果,可用較少的資料得出較平滑的 MSE 結果 False

範例

以測試的機器(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.

4.2.6 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的三倍以上才能做分析。

參數設定

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

參數說明
參數名稱 參數意義 預設值
GlobalSTD 設定是否計算整段訊號的標準差,否則計算滾動窗窗內的標準差。 False

MSE 相關參數與前章快速 MSE 相同,詳情請參閱【FastMSE】章節說明。Rolling Window 為輔助元件,相關參數用來控制做滾動窗計算時的計算窗大小、單位、及重疊等參數,詳情請參閱【滾動窗計算】章節。

範例

以下這個範例是量測睡眠時的生理訊號,包括 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

參考資料

1. 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

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

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

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

4.2.7 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))\]

參數設定

本模組接受實數(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 將特徵值,特徵向量以報表型式輸出。 僅輸出供使用者參考

範例

開啟範例 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

4.2.8 ICA*

*Only in Professional*

說明

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}\]

在求解時,可一次求 \(W\) 的一個分量(一列),稱之 Deflation Method;或同時求得所有 \(W\) 的分量,稱之 Symmetric Method。(注意:因 Deflation 法很容易累積 Round-Off 之誤差,所以除了少數情況外,Symmetric 法結果都較 Deflation 為佳。)

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

\(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\) 的每一個元素調整為非負值。

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

參數設定

本模組接受實數(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 將特徵值,特徵向量以報表型式輸出 僅輸出供使用者參考

範例

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



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


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



相關指令

PCA

參考資料

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.

4.2.9 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>\]

參數設定

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


參數說明
參數名稱 參數定義 預設值
OutputType 設定輸出選項,可為 TEO(Teager Energy Operator)、InstantAmplitude 與 InstantFrequency。 TEO

範例

使用 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 顯示結果。


4.3 External*

*Available in Professional only*

4.3.1 ExternalDll*

*Only in Professional*

本模組主要是幫助使用者嵌入各種獨自開發的演算法、訊號來源的介面等,使用者可以利用Visual C#、Visual Basic、Visual C++ 產生各種應用的 DLL(Dynamic Link Library ),本模組便可以在 Visual Signal 的環境下使用該 DLL。

說明

  1. 首先產生 DLL,在 Visual Studio 環境下,Project 選擇為 Class Library,並在 References 加入:

    C:\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


  4. 若將產生的 DLL 檔放置於以下資料夾:

    C:\Program Files\AnCAD\Visual Signal\External

    【使用者文件夾】\AnCAD\VisualSignal\External

    則 Visual Signal 會自動在【Network Editor】的「元件功能選單」內之「External」項目下產生一個選項,點選擇會生成該 DLL 對應的 ExternalDLL 元件,如下圖顯示 External 項目內 VisualSignal 內建的各範例 External DLL:

參數設定


參數說明
參數名稱 參數定義 預設值
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

範例

  1. 開啟 Compute / External / ExternalDll,然後 ExternalPath 中開啟:

    C:\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 中開啟:

    C:\Program Files\AnCAD\Visual Signal\External\External\ExternalDllDemos.dll

    最後將 Module 選擇為 YahooStocks,這個 DLL 的 YahooStocks 將會至 Yahoo將某個時段、某支股票的資料抓取下來。


  5. DllProperties 中的 Company 可以輸入公司縮寫,例如 2330.TW (台積電)等,再將其接至 Channel Switch 選擇 開盤價、收盤價、成交量等,最後用 Channel Viewer 連接觀察其結果。




相關指令

ExternalViewer

4.3.2 ExternalViewer*

*Only in Professional*

本模組主要讓使用者在 Visual Signal 下嵌入各種圖片,使用者可以利用 Visual C#、 Visual Basic、Visual C++ 產生各種應用的 DLL(Dynamic Link Library),本模組便可以在 Visual Signal 的環境下使用該 DLL 展示圖片。

說明

  1. 首先產生 DLL,在 Visual Studio 環境下,Project 選擇為”Class Library”,並在 References 加入:

    C:\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。

    產生 Viewer DLL 範例可以參考:

    C:\Program Files\AnCAD\Visual Signal\External\api\cs\VSignalExternalDllDemo

    中之「demo06.cs」相關程式。

  4. 若將產生的 Viewer DLL 檔放置於以下資料夾:

    C:\Program Files\AnCAD\Visual Signal\External

    【使用者文件夾】\AnCAD\VisualSignal\External

    則 Visual Signal 會自動在【Network Editor】的「元件功能選單」內之「External」項目下產生一個選項,點選擇會生成該 DLL 對應的 External Viewer DLL 元件,如下圖顯示 External 項目內 VisualSignal 內建的「Demo06」範例:

參數設定


參數說明
參數名稱 參數定義 預設值
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,圖形還是會被保留,若設定 False,則圖形被消除。若將連接至 Channel Viewer 的模組刪除, False
Show Title 圖表中顯是標題名稱。 True
Title 標題名稱。 {default}

範例

  1. 開啟 Compute / External / ExternalViewer,然後 ExternalPath 中開啟:

    C:\Program Files\AnCAD\Visual Signal\External\External\ExternalDllDemos.dll

    然後在 Module 可以看到許多模組,如下圖。


  2. 首先將 Module 選擇為 demo6,然後在 DllProperties 類別中出現 Path,可以任意選擇一張圖片,將其透過 ExternalViewer 來展示。



相關指令

ExternalDll

4.4 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:為一梳形濾波器,用於濾除一系列等間距的頻率。

  8. IIR Filter:基本的無限脈衝響應濾波器 (Infinite Impulse Response Filter

4.4.1 FIR Filter

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

說明

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


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


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

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


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


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


帶通(BandPass):


反帶通或稱帶阻(BandStop)


ByPass 則為全通。

參數設定

本模組接受實數(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
IdealFilter 設定是否使用理想化過濾器,意即頻率響應曲線為方形(截止頻率為垂直線而非高斯曲線) True
RemovePhaseShift 設定是否移除過濾後的相位偏移 True
F1 對於 LowPass 以及 HighPass 而言,F1 代表濾波器過濾頻段的分界點;對於 BandPass、BandStop,F1 代表濾波器過濾頻段的起始點,單位為 Hz 10
F2 對於 FilterType 選擇 BandPass 與 BandStop 者,會出現濾波器過濾頻段不終點 F2,單位為 Hz 50
Freq Unit

選擇 F1 及 F2 的頻率單位:

  • Default:自動由輸入訊號之取樣率單位決定
  • Hz、kHz、MHz、GHz、THz、THz
  • cycles_per_(min、hour、day、week、month、year)
Default
Default Unit Freq Unit 為 Default 時,顯示自動設定之頻率單位
FilterOrder 當使用非 Ideal Filter 時濾波器轉換函數的離散點,N 即為 N-order Filter;當使用 Ideal Filter 時 Order 自動設為訊號長度,無須設定 101
Window 指定計算 FIR 濾波器係數的窗函數,包括 Bartlett、Blackman、Hamming、Hann、Rectangle Bartlett

範例

本範例將示範以三個頻率各為 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。




相關指令

NoiseSine WaveMixer

參考資料

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

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

4.4.2 Median Filter

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

說明

\(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\) 為奇數,若輸入為偶數,則自動將個數加一,以使成為為奇數。

參數設定

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

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

範例

本範例(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的主要功用。


相關指令

NoiseSquare WaveMixerMoving Average Filter

參考資料

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

4.4.3 Moving Average Filter

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

說明

\(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)。

參數設定

本模組接受實數(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 而自動調整。

Rolling Window 為輔助元件,詳情請參閱【滾動窗計算】章節。設定平均計算設定之訊號長度 AverageLength 決定了滾動窗大小,而移動平均定義為每次移動計算窗一個資料點,因此這些參數都不需要設定。

範例

本例將混合一個頻率為 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 的輸出訊號。




相關指令

Square WaveNoiseMixer

參考資料

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

4.4.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) 為何?



說明

但訊號也可能是因為量測時間不夠長(小於一個周期),使得此訊號看起來含有非周期性訊號。那訊號的趨勢究竟為何?我們可以平均的概念描述之。對訊號 \(\{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。

參數設定

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


參數說明
參數名稱 參數定義 預設值
Filter Type

選擇 Iterative Gaussian Filter 的濾波形式:

  • LowPass:低頻部分可通過,濾除高頻。
  • HighPass:低頻部分可通過,濾除高頻。
  • ByPass:無任何頻段訊號被濾除。
LowPass
Attenuation 設定衰減參數值(見前述說明 \(b\) 之定義),建議 0.01 至 0.001 之間 0.01
FH 設定高頻截止頻率。 10
Normalized FH 顯示相對於 Nyquist 頻率的 FH 值。 10
FL 設定低頻截止頻率。 2
Normalized FL 顯示相對於 Nyquist 頻率的 FL 值。 10
Freq Unit

選擇 FH 及 FL 的頻率單位:

  • Default:自動由輸入訊號之取樣率單位決定
  • Hz、kHz、MHz、GHz、THz、THz
  • cycles_per_(min、hour、day、week、month、year)
Default
Default Unit Freq Unit 為 Default 時,顯示自動設定之頻率單位
Iteration 顯示濾波運算的重複次數

範例

範例為將一個 \(\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。


相關指令

Trend EstimatorCustomWaveFourier Transform

參考資料

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

4.4.5 Trend Estimator*

*Only in Professional*

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

說明

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

參數設定

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

參數說明
參數名稱 參數定義 預設值
Filter Type

與 Iterative Gaussian Filter 的相同:

  • LowPass:(低通) 萃取出低頻部分。
  • HighPass:(高通) 萃取出高頻部分。
  • ByPass:無任何頻段訊號被濾除。
LowPass
Trend Basis 以(Period) 周期為參考設定參數或(Frequency) 頻率為參考設定參數。 Frequency

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

參數說明(Trend Basis = Frequency)
參數名稱 參數定義 預設值
Trend Frequency 頻率低於此值者,則視為趨勢訊號。與 Iterative Gaussian Filter 對應則為: \[F_L = 2 \times \text{TrendFrequency}\] \[F_H = 4 \times \text{TrendFrequency}\] 0
Freq Unit

選擇 Trend Frequency 的頻率單位:

  • Default:自動由輸入訊號之取樣率單位決定
  • Hz、kHz、MHz、GHz、THz、THz
  • cycles_per_(min、hour、day、week、month、year)
Default
Default Unit Freq Unit 為 Default 時,顯示自動設定之頻率單位

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

參數說明(Trend Basis = Period)
參數名稱 參數定義 預設值
Trend Period 週期高於此值者,則視為趨勢訊號。與 Iterative Gaussian Filter 對應則為: \[F_L = 2 / \text{TrendPeriod}\] \[F_H = 4 / \text{TrendPeriod}\] 0
Time Unit

設定 Trend Period 的時間單位:

  • Default:自動由輸入訊號之時間單位決定
  • sec、ms、us、ns、ps、fs
  • min、hour、day、week、month、year
Default
Default Time Unit Time Unit 為 Default 時、顯示自動設定之時間單位。

範例

  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可以幫助找出地層下陷、大氣溫度、股票等訊號的長時間趨勢。 #### 相關指令{-}

Iterative Gaussian Filter

參考資料

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

4.4.6 Notch Filter

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

說明

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


參數設定

本模組接受實數(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 \text{弧度} / \text{取樣頻率}\))。 0.01
PhaseCorrection 開啟修正相位偏差功能,選 True 開啟此功能,選 False 則不啟用。 True

範例

  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,被濾除的頻率和範圍變得更尖銳。


相關指令

Comb Filter

4.4.7 Comb Filter

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

說明

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 \text{弧度} / \text{取樣頻率}\))。 0.01
PhaseCorrection 開啟修正相位偏差功能,選 True 開啟此功能,選 False 則不啟用。 True

範例

  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,濾波結果為保留一系列的頻率,其他則濾除。



相關指令

Notch Filter

4.4.8 IIR Filter*

*Only in Professional*

IIR Filter 全名為無限脈衝響應濾波(Infinite Impulse Response Filter)。屬於濾波器的一種,相對於【FIR filter】有限脈衝響應濾波而言,IIR 對於脈波輸入訊號的響應是無限延續的。

參數設定

參數說明
參數名稱 參數定義 預設值
Filter Type

為設定濾波器對訊號高、低頻段的過濾,選項為

  • LowPass(低通濾波器)
  • HighPass(高通濾波器)
  • ByPass(全通濾波器)
LowPass
IIR Type

設定無限脈衝濾波器的型態,選項為

  • Butterworth
  • Chebyshev
Butterworth
F1 設定 LowPass 和 HighPass 的截止頻率 50
Normalized F1 顯示以輸入訊號之 Sampling Frequency 為依據,正規化後的 F1 值
Freq Unit

選擇 F1 的頻率單位:

  • Default:自動由輸入訊號之取樣率單位決定
  • Hz、kHz、MHz、GHz、THz、THz
  • cycles_per_(min、hour、day、week、month、year)
Default
Default Unit Freq Unit 為 Default 時,顯示自動設定之頻率單位
FilterOrder 濾波器轉換函數的離散點,N 即為 N-order Filter,其值介於 1~12 10
Ripple IIRType 選擇 Chebyshev 時,需設定 Ripple 值 0.1

範例

  1. 資料合成:從 Source / Sine Wave 和 Source / Noise 新增兩訊號源 Sine Wave 和 Noise,並用 Compute / Mathematics / Mixer 將兩者疊加,Gain1 和 Gain2 皆設為 1;疊加後圖形如下。

  2. FFT 頻譜:從 Compute / Transform / Fourier Transform 新增 FFT 並接在 Mixer後面,再用 Viewer / Channel Viewer 觀察此混和訊號的頻譜圖,10 Hz 為 Sine Wave 的頻率,Noise 的頻率則均勻分布在整個頻譜圖上。

  3. 設定 IIR 濾波器:從 Compute / Filter / IIR Filter 新增 IIR Filter,以 F1=20Hz 為門檻,使用低通濾波器將 Noise 過濾掉。

  4. 下圖為 FilterOreder=10 運算的結果,嘗試不同的 FilterOrder 並觀察圖形變化。

相關指令

FIR

參考資料

1. https://en.wikipedia.org/wiki/Infinite_impulse_response

2. http://www.ym.edu.tw/~cflu/MedSigProcess_Class07_CFLu.pdf

4.5 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 拆解演算法,提供使用者更多選擇。

4.5.1 RCADA EEMD

EMD 為 Empirical Mode Decomposition,是個依照訊號特性將訊號分解成數個 IMFs (Intrinsic Mode Functions) 和一個剩餘訊號(Residual)的數學工具。較傅立葉級數分解更為優異的是,EMD 分出的 IMF,其振幅和瞬時頻率可以隨時間變化,並包留了原訊號中非線性和非穩態的特性。EMD 原理之詳細說明請參考【AnCAD EMD】章節。

EEMD 為 Ensemble EMD,是在計算 EMD 的基礎上加入少許亂數噪訊重複計算並平均各尺度之 IMF,可更有效拆解出各尺度的 IMF。

RCADA EEMD 為中央大學數據中心的最新(2009)EEMD 演算法,此模組的預設條件與數據中心提供 MATLAB 原始碼的 EEMD 函式相同,但本模組更提供多種邊界條件、亂數產生方式等參數選擇,以供使用者選擇,並且運算速度較原本數據中心提供 MATLAB 原始碼增加 200 倍以上。

說明

詳請參考http://rcada.ncu.edu.tw/research1.htm

參數設定

本模組接受實數(Real Number)訊號。RCADA EEMD 僅接受單通道(Single Channel), Regular 的訊號(Signal)或聲音訊號(Audio)輸入。


參數說明
參數名稱 參數定義 預設值
Spline Type 選擇三種邊界條件(Boundary Conditions),包括 Clamped Spline、Natural Cubic Spline、Not A Knot。下面表格將說明 NotAKnot
Number of Ensembles 運行 EEMD 時,添加 Noise 的次數,並且會計算出多少組的 IMF 結果再進行平均。例如預設為 20,將原訊號加入 20 次的 Noise ,並個別計算出 20 組 IMF 結果,並平均之 20
Noise Level 即在運行 EEMD 時,添加的 Noise 之振盪,相對於原本訊號標準差之比值 0.1
UserDefineSeed 設定是否使用自訂亂數種子。使用自訂亂數種子可保證每次執行 EEMD 時加入的 Noise 產生都一樣,方便測試比對結果 False
Seed 如使用自訂亂數種子,此參數設定種子之數值 24205798
Number of IMFs 顯示拆解出來的 IMF 通道總數
Modify Envelope Endpoints 設定包絡線端點是否要進行外插計算 True
Use Guassian Noise 設定是否使用 Guassian Noise,否則將使用 White Noise Fasle
Sigma 如使用 Gaussian Noise,設定標準差(Sigma )值 0.1
Max. Sifting Iterations 設定 EEMD 求解時疊代次數的上限 10
Energy Integrity 顯示拆解出之 IMF 總能量與原訊號能量比,值為 1 時代表兩者相等
邊界條件
邊界條件 定義
NotAKnot 邊界(最鄰近)上的點,其三次導數相等。此預設邊界條件等同於中央大學數據中心的 MATLAB 原始碼的 EEMD,但由於 Visual Signal 與 MATLAB 的亂數產生不相同,拆解結果會稍有不同
NatureCubicSpline 邊界上的點,其二次導數為零
ClampedSpline 邊界上的點,其一次導數為定值(=0)

AnCAD EMD一樣,本元件輸出為多通道訊號,包括所有的 IMF 訊號加上一個 Residual 訊號。欲觀察各 IMF 的特性及了解 EMD 否適當的將訊號分離,可雙擊本元件圖示開啟IMF Property Reporter。各 IMF 參數的詳細解說請參考【IMF Property】章節說明。

範例

  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 的結果含有一些噪音干擾。

相關指令

RCADA Instant Frequency、RCADA Spectrum、AnCAD EMD

參考資料

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

4.5.2 IMF Property

訊號經過各種 EMD 運算後,可分解成數個 IMF 和一個 剩餘訊號,IMF property的功能是觀察各 IMF 的特性,目的是了解各種 EMD 是否適當的將訊號分離。

說明

EMD 分解出的 IMF 有零點和極值之數量差小於一的特性,為驗證 EMD分解訊號的能力,可由此元件觀察各 IMF 的特性。此元件列出各 IMF的過零點個數、極值個數、過零點個數的平均頻率、各 IMF 間的正交性、各 IMF具有的功率比例。

參數設定


點擊 Report 欄位右側之Dots圖示,或是雙擊本元件圖示,可開啟 Reporter 顯示各 IMF 參數。Report 說明請參考【Reporter】章節說明。

如範例圖示,參數顯示分為兩大表格:General Properties 及 Orthogonality,說明如下:

基本參數(General Properties)
基本參數說明
參數名稱 參數定義
Zero Crossings 顯示各通道訊號的過零點次數
Extrema Counts 顯示各通道訊號局部最大或最小峰值的次數
Zero Crossing Freq. 顯示各通道訊號用過零點次數計算出的平均頻率,單位為\(1/\text{原訊號之時間單位}\)
Zero Crossing Period 顯示各通道訊號用過零點次數計算出的平均週期,單位為原訊號之時間單位
Average Freq. 顯示各通道訊號用 FFT 計算出的平均頻率,單位為\(1/\text{原訊號之時間單位}\)
Average Period 顯示各通道訊號用 FFT 計算出的平均週期,單位為原訊號之時間單位
Power 顯示各通道的能量,為各個通道佔原訊號總能量(不算殘餘訊號 Residual)的百分比
IMF 正交性(Orthogonality)

此表格顯示輸入訊號之各通道彼此之間的正交性矩陣,請參考【正交性矩陣】元件說明。

範例

範例以 IMF Property 元件觀察 RCADA EEMD 運算分解後之訊號特性,點選 EMD運算元件,按右鍵選擇 Compute / HHT / IMF Property,如下圖所示。分析的各個 IMF 特性可在屬性中,點選 Report…屬性,其右方會出現一按鈕,點選按鈕可顯示此元件的分析結果,顯示的結果如下。




相關指令

EMD、Channel Viewer

4.5.3 AnCAD EMD*

*Only in Professional*

EMD 全名為 Empirical Mode Decomposition,是個依照訊號特性將訊號分解成數個 IMFs (Intrinsic Mode Functions) 和一個剩餘訊號(Residual)的數學工具。較傅立葉級數分解更為優異的是,EMD 分出的 IMF,其振幅和瞬時頻率可以隨時間變化,並包留了原訊號中非線性和非穩態的特性。

說明

EMD 可依據訊號特性將原訊號分解為多個子訊號。相較於其他數學方法,EMD是一個適應性的運算方法,無論訊號為何,這個方法皆可以把訊號初步分解成較具意義的分量,但是要分得好就需要一點經驗與技巧了。這個訊號處理方法假設每一個訊號內部都包含不同的簡單振動模態,此振動模態稱為Intrinsic Mode Function(IMF),理想的 IMF 均包含下面幾個特性:

  1. 零點和極值的數量相差在一個以下。

  2. 任一處的上包絡線(由局部極大值定義)和下包絡線(由局部極小值定義)的平均值為零(即對稱)。

Sifing 是做 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 的運算流程。

參數設定

本模組接受實數(Real Number)、單通道(Single Channel),Regular 的訊號(Signal )或聲音訊號(Audio)輸入,其參數意義與設定如下:


參數說明
參數名稱 參數定義 預設值
Method

設定 EMD 運算時的方式,以下介紹可設定的功能:

  • Standard:以一般標準方式計算。
  • IntermittencyTest:訊號中若有個極微幅的震動會產生一個局部極大值和及局部小值,利用此方法可適當忽略過於微小振動產生局部極值。
  • EnsembleEMD:於輸入訊號上加一微小振幅的噪訊後再作 EMD,重複多次後取各尺度 IMF 之平均。此法無需預先設定參數即可有效分離各尺度之 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,多出的參數設定與 RCADA EEMD 一致,請參考【RCADA EEMD】章節說明。

跟【RCADA EEMD】一樣,本元件輸出為多通道訊號,包括所有的 IMF 訊號加上一個 Residual 訊號。欲觀察各 IMF 的特性及了解 EMD 否適當的將訊號分離,可雙擊本元件圖示開啟IMF Property Reporter。各 IMF 參數的詳細解說請參考【IMF Property】章節說明。

範例

示範一混合訊號作 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 時頻圖。

相關指令

Hilbert Transform、IMF Properties、Hilbert Spectrum

參考資料

Norden E. Huang, Samuel S.P. Shen, “Hilbert-Huang transform and its applications,” London : World Scientific, c2005

4.6 Mathematics

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

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

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

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

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

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

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

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

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

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

4.6.1 Diff

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

說明

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

Forward difference:(Simple)

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

得出結果為 \(Y = \{\Delta x_0, \Delta x_1, \dots, \Delta x_{N-2}\}\),長度為 \(N -1\)。若輸出長度欲與輸入長度一致,則需在輸出前端或後端補植(見下面 Padding 說明)。

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

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

Central difference:(Symmetrized)

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

得出結果為 \(Y = \{\Delta x_0, \Delta x_1, \dots, \Delta x_{N-1}\}\),長度為 \(N\),與輸入長度一致,無須補值。

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

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

Smooth-noise Robust difference:(Robust)

\[\Delta x_i = \sum_{k=1}^M c_k (x_{i+k}-x_{i-k})\text{,}\]

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}\)

得出結果為 \(Y = \{\Delta x_0, \Delta x_1, \dots, \Delta x_{N-1}\}\),長度為 \(N\),與輸出長度一致,無需補植。本算法輸出在資料兩端近似於 Symmetrized 算法之輸出。

若再除以取樣週期 \(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}\text{,}\]

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

參數設定

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

提供之選項包括微分與否,方法選項,補值與否等。相關參數定義如下。

參數說明
參數名稱 參數定義 預設值
Method

選擇微分方法:

  • Simple(forward difference)
  • Symmetrized(central difference)
  • Robust(Smooth-noise Robust difference)
Simple
Differentiate 設定是否將結果除以取樣週期 \(h\),得到微分的近似值。 False
Padding

Method 選擇 Simple 時,選擇是否補值,保持與輸入訊號長度相同,選項包含:

  • None(不補值)
  • First(第一位補值)
  • Last(最後一位補值)
None
Padding Method

選擇補值時之補值方法:

  • Zero:補零值
  • Neighbor:用鄰近資料點補值
  • Slope:用鄰近兩個資料點以線性插法補值
  • Fixed:自訂補值
Zero
Padding Value 補值方法選擇 Fixed 時,此參數可自訂補值 0

當 Method 選擇 Symmetrized 或 Robust 時,因輸出長度等於輸入長度,無需補值, Padding 相關選項會自動關閉。選擇 Robust 時會出現額外參數 FilterLength,說明如下:

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

範例

示範對 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\),經比對下圖結果,驗證結果無誤。


相關指令

Integrate

參考資料

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

4.6.2 DoMatlab

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

安裝設定

DoMatlab 接受 Visual Signal 所有元件的輸出格式。元件一但連接 DoMatlab,程式會自動開啟 MATLAB Command Window 視窗,Command Window 具有基本的 MATLAB 功能譬如 Workspace Browser、Path Browser 等,操作上使用者必須參閱 MATLAB 說明文件。每次啟動 MATLAB Command Window 需要耗費一定時間,開啟後可以選擇一直保持其開啟的狀態,每次連接新的 DoMatlab 元件時則不需耗時再開啟 MATLAB Command Window。


須注意執行 DoMatlab 前,系統必須已安裝 The MathWorks, Inc 所出品的 MATLAB Version 6.5 以上的版本 ,並執行以下設定步驟:

  1. MATLAB 在安裝後必須被註冊為 COM Server。方法為以系統管理員權限開啟 Windows 的【執行】開啟命令提示字元視窗(執行 cmd),然後在命令提示字元視窗下鍵入 matlab /regserver,如下:


    以上方法在 MATLAB 2020a 以後的版本可能有問題,MATLAB 提供了新的 comserver 指令,註冊方法如下:

    • 開啟 MATLAB,在 指令視窗中輸入 comserver('register') 即可。
    • 欲確認註冊狀態,可輸入 comserver('query'),可看到管理員跟使用者兩者註冊 MATLAB 執行檔的路徑,例如:


  2. 將以下三個路徑依序加入 Window 的 Path 環境變數:

    • <MATLAB_INSTALL_FOLDER>\bin\win64
    • <MATLAB_INSTALL_FOLDER>\runtime\win64
    • <MATLAB_INSTALL_FOLDER>\bin

    其中 <MATLAB_INSTALL_FOLDER> 為 MATLAB 安裝的路徑。以 MATLAB 2021a 為例, <MATLAB_INSTALL_FOLDER> = C:\Program Files\MATLAB\R2021a。注意不同的 MATLAB 授權版本可能會有不同的安裝路徑,安裝後必須實際去確認再設定 Path 環境變數。

    以 Windows 10/11 為例,設定 Path 環境變數之步驟如下:

    • 開啟 Windows 【設定】 / 【系統】 / 【系統資訊】
    • 找到並點擊開啟【進階系統設定】(注意 Windows 10 與 11 位置不同)
    • 點擊開啟視窗下方【環境變數設定】
    • 在【系統變數】的欄位中找到 Path,雙擊打開設定視窗
    • 點擊【新增】後直接輸入上述路徑之一,或是點擊【瀏覽】搜尋並選擇正確路徑
    • 重複以上步驟直到三個路徑都設定好
    • 點擊【確定】離開設定視窗

    注意,如有安裝其他 MATLAB 舊版本,上述路徑必須放置在其他版本路徑之前,確保最新路徑可被讀取。

  3. Visual Signal 在執行 DoMatlab 時如果出現 KMP/OMP 的錯誤訊息,則必須新增環境變數 KMP_DUPLICATE_LIB_OK,值設定為 TRUE。新增環境變數步驟如下:

    • 開啟 Windows 【設定】 / 【系統】 / 【系統資訊】
    • 找到並點擊開啟【進階系統設定】(注意 Windows 10 與 11 位置不同)
    • 點擊開啟視窗下方【環境變數設定】
    • 在【系統變數】的欄位點擊【新增】
    • 在變數名稱欄位輸入KMP_DUPLICATE_LIB_OK
    • 在設定值欄位輸入 TRUE
    • 點擊【確定】離開設定視窗

注意以上設定完成後必須重啟系統。

參數設定

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


DoMatlab 參數表
參數名稱 參數定義 預設值
MatlabEditor 在欄位右方有browse按鈕可以開啟 DoMatlab Editor,提供程式碼編輯器撰寫 MATLAB 程式。此外,雙擊 DoMatlab 元件圖示也可以開啟 DoMatlab Editor。 顯示目前撰寫之部分 MATLAB 程式
Column-Vectors 訊號傳入 MATLAB 時,資料排列格式是否為直列優先(Column-wise)。 True
ServerVisible 是否顯示 MATLAB Command Window True
DumpOutput 回傳 MATLAB 產生的訊息,結果將顯示在 MATLAB Script Output Dump 視窗(見下說明)。 False
BufferLength 當 DumpOutput 為 True,會出現此參數,設定回傳訊息字元個數的最大值。 5000
ViewBuffer 當 DumpOutput 為 True,會出現此參數,可以按欄位右方browse按鈕開啟 MATLAB Script Output Dump 視窗列出 MATLAB 產生的訊息。
ReferenceInput 若有多個輸入訊號,此參數決定輸出變數之預設時間軸是要參考那一個輸入訊號。 第一個輸入訊號
AsSource 設定 DoMatlab 是否要轉變為一個訊號源,由 DoMatlab 產生訊號資料。 False

DoMatlab 內建有範例程式,依照 AsSource 參數的設定可切換計算功能或訊號源功能(詳情見後敘述)。範例程式提供以下幾個客製參數:

客製參數
參數名稱 參數定義 預設值
Length 當程式設定為訊號源功能時輸出訊號之長度 1001
Type

當程式設定為計算功能時可選擇函式類別:
\(O\) 為輸出訊號每個資料點,\(I\) 為輸入訊號每個資料點

  • None:無計算,\(O = I\)
  • Square:\(O = I^2\)
  • Cubic:\(O = I^3\)
  • Abs:\(O = \mid I \mid\)
  • Poly:\(O = a_0 I^0 + a_1 I^1 + a_2 I^2 \dots\)
Square
Polynomial Coefs 當 Type 設定為 Poly 時,以逗號分隔,設定多項式中 \(a_0, a_1, a_2 \dots\) 之係數,未列出之係數都默認為零(換句話說,可決定多項式之最高次數)。 1, 2, 3
Output Spectra 當程式設定為訊號源時決定是否輸出時頻訊號。 False

DoMatlab Editor 介面說明

DoMatlab Editor 是 DoMatlab 的程式碼編輯器,下面將詳細說明 DoMatlab Editor 使用說明。


上圖為 DoMatlab Editor 的外觀。編輯器有三個分頁,說明如下:

DoMatlab Editor 分頁
分頁 說明
Script 此分頁為程式碼編輯區。如圖所示 DoMatlab 已內建一範例程式。
Script Properties 此分頁可設定程式碼之客製參數,詳情請參閱後述。
Help & Examples 文字說明撰寫 DoMatlab 程式碼時一些注意事項,詳細地介紹 DoMatlab 對於輸入、輸出格式的規則,與簡單的範例,以方便使用者查詢。

DoMatlab Editor 工具列在不同分頁有不同排列,如下圖顯示:

工具列
分頁 工具列
Script toolbar_script
Script Properties toolbar_props
Help & Examples toolbar_help

各項圖示功能分別在下表說明:

工具列圖示說明
圖示 說明
import 匯入已存在之 M file,可以引入 DoMatlab Editor。
export_m 匯出 DoMatlab Editor 之內容,儲存為 M File。
delete 移除目前所選擇之客製參數。
editor

設定偏好編輯器類別:

  • Internal Editor:內建編輯器(提供基本編輯功能)
  • MATLAB Editor:MATLAB 編輯器,習慣使用 MATLAB 編輯器功能的使用者可選此項。
  • [Custom Editor]:在 Visual Signal Preference 裡面設定 Script Editor Type 參數為 Custom,並設定 Custom Editor 參數,則會出現此選項(會以所設定之編輯器名稱出現)。可選此項使用個人偏愛之任何文字編輯器。

在 Visual Signal Preference 設定 Script Editor Type 參數同時會設定一開啟 DoMatlab Editor 時預設之編輯器。例如如果 Preference 的參數設定為 MATLAB Editor,則一開啟 DoMatlab Editor 時則會選擇並開啟 MATLAB Editor。

custom 編輯器選擇 MATLAB 或 Custom Editor 時會出現本圖示,可開啟 MATLAB 或 Custom 編輯器。同時原編輯區也會鎖成唯讀狀態,此時雙擊編輯區則會也有同樣功能。編輯完畢後儲存檔案即可更新原編輯區的內容。
revert 清除編輯區新編輯的內容,回溯至一開始開啟 DoMatlab Editor 時的狀態。
play 執行 Script 內容。

輸入訊號之變數儲存格式

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 格式與其意義整理如下表。

Xn_DESC 欄位說明
欄位名稱 說明 格式
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

客製參數

切換到分頁 Script Properties 時可設定 DoMatlab Script 中可使用的客製參數。這些設定好之參數會出現在 DoMatlab 元件的參數欄位中(如前述)讓使用者輸入數值或選擇選項,並可以在 Script 中當合法變數直接使用(例如內建之範例程式中 LengthTypeCoefsOutputSpectra)。下圖為 Script Properties 分頁,顯示已經內建設定了四個參數供內建範例程式使用:

下表詳細解說分頁中之欄位:

Script Properties 設定欄位說明
欄位 說明
Property Name 參數名稱。此為 Script 中之合法變數名稱。不可有空白字元。
Read Only 勾選時此參數只能用來顯示數值,使用者無法從 DoMatlab 元件的參數欄中設定數值。
Property Type

參數類別。有以下類別可選:

  • 單值類:Int32,Double、String、Boolean、DateTime
  • 陣列類:Int32[],Double[]、String[]、Boolean[]、DateTime[]
  • Enum:選項。可設定多項選擇(見 Property Info)
  • File:檔案。可設定開啟檔案瀏覽器時之過濾檔案類別(見 Property Info)
Default Value 設定參數之預設值。在選擇某些參數類別後,點擊此欄位會自動設定一個預設值,例如 Int32 會設定 0,Double 會設定 0.0,Enum 會設定第一個選項等等。
Property Info

當設定之參數中有 Enum 或 File 類別會出現此欄位。

  • Enum:此欄位可設定參數的所有選項,語法為 [Enum:]E{Name}={item1}|{item2}|{item3}…,預設值為 Enum:E{Name}=Item1|Item2|Item3
  • File:此欄位可設定開啟檔案瀏覽器時之過濾檔案類別,語法為 [FileFilter:]{Filter1 Name}|{ext1};{ext2}…|{Filter2 Name}|{ext3}…,預設值為 FileFilter:All (*.*)|*.*。

以上 Enum:FileFilter: 標籤可以省略,DoMatlab 會自動加上。

Category DoMatlab 元件參數欄中之分類名稱。可有空白字元。
Display Name DoMatlab 元件參數欄中之顯示名稱。可有空白字元。
Description DoMatlab 元件參數欄中之說明文字。可有空白字元。
Property Order DoMatlab 元件參數欄中之順序。

範例

除了參考內建範例程式與相關客製參數之外,以下另舉三個例子示範 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_Data 為 Single Channel 的 Sine Wave,X2_Data 為 Multi-Channel 的 AnCAD:EMD 訊號,而預設變數 XX1 則為第一個輸入訊號的第一個通道值,X2 為第二個輸入訊號的第一個通道值。我們可以在 DoMatlab Editor 中以plot 指令繪出 XX1X2 等等,例如:plot(X1)(見下圖):


    whos 列表還可看到 DoMatlab 內建客製參數之設定所定義的 CoefsLengthOutputSpectraType 這四個變數。可以去 Script Properties 分頁將這四個參數刪除,或是忽略它們(兩者皆不影響接下來的範例操作)。

    至 Script 分頁,將原有的範例全部刪除,並輸入以下簡單程式:


    鍵入指令後,直接按下或者關閉此 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-ChannelMerge to ComplexMath)的 ReferenceInput 在運作上略有不同,此參數在 DoMatlab 是作為預設輸出訊號的時間軸座標;在其它元件則會直接將所有輸入訊號的時間軸座標值替換為ReferenceInput 設定的訊號時間軸座標值。

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

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

  1. 首先建立一個名為 C:\temp 的資料夾,並在其中建立一名為 round2.m 的文字檔,內容只有一行:

    B = round(10 * A) / 10

    此 MATLAB 程式作用為對 A 內容之小數點以下一位做四捨五入。

  2. 在 Editor 中鍵入以下程式:


    程式解說如下:

    • 把路徑(current directory)設定至C:\temp 資料夾
    • 將第二輸入之第一通道(X2) 代入 A
    • 執行 round2 得結果 B
    • 最後將 B 代入 DoMatlab 內定輸出變數 Y 中。
  3. 關閉 Editor,並以 Viewer / Channel Viewer 繪出 DoMatlab 結果。可看到對 EMD 第一個通道中的資料做四捨五入的結果。



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




  2. 此時 DoMatlab 內建之範例程式的訊號源模式會依照 Length 及 OutputSpectra 客製參數自動產生不同訊號。例如所有參數在預設值狀態下,將 DoMatlab 接上 Viewer 會產生如下圖:


  3. 此處將從無到有產生新的訊號源,同時透過 Y_DESC 改變輸出變數 Y 的資料型態。首先將內建的範例程式以及客製參數全部清除(客製參數可先選擇一行參數再使用 Delete圖示或 Delete 鍵逐行清除):


  4. 接下來以 Properties / MatlabEditor 產生訊號。藉由設定Y_DESC,基本上 DoMatlab 可以產生所有格式的資料。本步驟示範產生一個 Impulse Signal。

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


    建立變數 p = 0.001 作為取樣週期,變數 t是各訊號資料點對應的時間,變數 n是訊號長度,變數 Y就是輸出訊號,所有資料點的值先設為 0,並在訊號長度約一半的位置將值設為 1,這樣輸出訊號 Y 的數值部份已經創造完成。最後設定訊號的時間軸定義變數Y_DESC中之時間間隔(intervals),將之設定為 p (0.001)。

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



  5. 本步驟利用 MATLAB 內建的函式 peaks 產生大小為 49 * 49 的矩陣,並將其訊號格式設為時頻分析資料(Spectra) 輸出。新開一個 Project,按照步驟 2 產生 DoMatlab 訊號源,並打開 Properties / MatlabEditor。先產生一個 peaks 作為輸出訊號 Y,然後定義 Y_DESC 的所有欄位,如下圖:


    欄位設定說明如下:

    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 軸的單位為赫茲。
    X 軸、Y 軸之離散方式 Y_DESC.formats = ['Regular'; 'Regular']; 設定兩軸的離散方式都為 Regular 等間隔分布。

    上表之 X、Y 軸與橫列(row)、縱列(column)的關係是以 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 畫出時頻圖。




相關指令

SineSquareAnCAD EMDMerge to Multi-ChannelMerge to ComplexMathDiffIntegrate

4.6.3 Integrate

對訊號做累積數值積分。

說明

\(X_T = \{x_{t_0}, x_{t_1}, \dots, x_{t_{N-1}}\}\) 代表長度為 \(N\) 的訊號, \(\Delta t = t_{n+1} - t_n\) 為時間間隔,以長方形法(Simple) 作數值積分可由下式表示:

\[\begin{aligned} y_i &= \int_{t_0}^{t_i} x dt\\ &= \sum_{k=0}^i x_k \Delta t, \quad 0 \leq i < N \end{aligned}\]

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

\[\begin{aligned} y_i &= \int_{t_0}^{t_i} x dt\\ &= \sum_{k=0}^i \frac{1}{2}(t_{k+1} + x_k) \Delta t, \quad 0 \leq i < N \end{aligned}\]

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

\[\begin{aligned} y_i &= \int_{t_0}^{t_i} x dt\\ &= \sum_{k=0}^i \frac{2 \Delta t}{6} \left[x_k + 4x_{k+1} + x_{k+2}\right], \quad 0 \leq i < N \end{aligned}\]

若以 FFT 計算積分

參數設定

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


積分元件參數
參數名稱 參數定義 預設值
Method

數值積分的方法,可選擇:

  • CumulativeSum(累積和)
  • Simple(長方形法)
  • Trapezoidal(梯形法)
  • Simpson(辛普森法)。
  • FFT (FFT 法)
Trapezoidal
StartPosition 設定橫軸上的積分起始值。 輸入訊號的起始值
EndPosition 設定橫軸上的積分終點值。 輸入訊號的終點值
IsDefinite 設定「True」時計算定積分/累積和。 False
Const 設定積分後縱軸方向的平移量。 0
Output Unit 顯示輸出值單位。

上述數值積分方法中,CumulativeSum 跟其他積分方法的差別為此方法為單純累加數值,其他方法為積分,因此會乘上資料點間隔。差別可由 Output Unit 顯示看出:如果輸入訊號時間單位為秒(sec),則選擇 CumulativeSum 時 Output Unit 顯示為 Data Unit;而選擇其他積分法時 Output Unit 顯示為 Data Unit * sec。

範例

對正弦波進行積分:
  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 會影響輸出的訊號長度。




定積分
  1. 呈上例,將 Int 的 Properties / IsDefinite 設為 True,如下圖:


    此時可以看到計算後 Viewer2 出現驚嘆號,如下圖:


    這表示計算出來的資料不適合用 Channel Viewer 顯示。這時可用 DataViewer 看 Int 輸出的資料資訊,可發現輸出資料只有一個數值(即定積分值),資料型態為「Numeric」,此時 DataViewer 會採用純表格型式顯示資料,如下圖:


相關指令

DiffSine WaveChannel Viewer

4.6.4 Math

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

說明

本模組接受實數(Real Number)、複數(Complex Number),單通道(Single Channel)、多通道(Multi-Channel), Regular 或 Indexed 的訊號(Signal)、 Regular的音訊(Audio)、 Rugular 或 Indexed 的一維及二維的矩陣(Numeric)、及 Regular 的圖像(Image)輸入。

操作方法為一:用滑鼠雙擊 Math 元件,或二: 點選 Expressions 參數欄位右方的 按鈕,即會跳出 Multi-Channel Expression Editor,視窗介面如下圖所示。



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

  1. 輸入訊號清單:

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


    操作注意事項入下:

    • 雙擊樹狀圖的單筆輸入訊號通道可將該通道新增於 Expression 欄中,例如雙擊輸入訊號 X1 的通道 1 則會在 Expression 欄中新增 X1[1]。另外也可直接在 Expression 欄中輸入 X1X 表示 X1[1]

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

    • 於樹狀圖上用勾選框(checkbox)選擇多個訊號進或通道可執行多樣化集體運算。詳情請看工具列功能說明表。以下說明勾選框運作模式:

      • 勾選輸入訊號時,會自動勾選所有通道。此時按下工具列上的運算鍵會在 Expression 欄中新增代表對所有通道執行點對點運算的算式。

      • 勾選輸入訊號後再取消時,不會自動取消勾選所有通道。此時形同手動勾選多通道(見下)。

      • 不勾選輸入訊號,但勾選單一訊號中多個通道,此時按下工具列上的運算鍵會在 Expression 欄中新增代表對所勾選的通道執行點對點運算的算式。

      • 勾選多個輸入訊號,此時按下工具列上的運算鍵會在 Expression 欄中新增針對所勾選的輸入訊號執行通道對通道運算的算式。

  2. 工具列


    此為 MultiChannel Expression Editor 的工具列。工具列上圖示與功能整理如下表:

    工具列圖示
    運算工具 功能說明
    可清空輸出訊號清單(Output Channel) 內的所有訊號。
    plus minus mult divide

    於 Expression 欄中新增加、減、乘、除號,等於直接在欄位裡輸入 +-*/,可針對數值做基本運算,或是或通道向量做向量運算。除此之外,依照所選取的輸入或通道模式,按下這四個運算鍵有以下幾種集體運算型式:

    選擇一個輸入:按下運算鍵會在 Expression 欄中加入 add()sub()mul()div() ,可對所有通道的執行點對點的加減乘除運算,計算結果為多通道訊號,例如選擇 X1 輸入訊號後按下 + 會產生 add(X1)。當輸入通道數目更動時會自動包括所有通道。

    選擇多個通道:按下運算鍵會在 Expression 欄中加入代表對多重選取的多個通道作通道對通道的運算式,計算結果為單通道訊號,例如選擇 X1 輸入訊號中通道 1, 2X2 輸入訊號中通道 3, 4 後按下 + 會產生 X1[1]+X1[2]+X2[3]+X2[4]

    選擇多個輸入:按下運算鍵會在 Expression 欄中加入代表對多重選取的多個輸入訊號作訊號對訊號的運算式,計算結果為多通道訊號,例如選擇 X1, X2 輸入訊號(每個訊號有兩個通道),會產生X1[1]+X2[1]; X1[2]+X2[2];

    pi 於 Expression 欄中新增圓周率 \(\pi\)
    time 於 Expression 欄中新增時間軸的向量 \(t\),為輸入訊號所對應的時間軸向量。
    browser 開啟函式瀏覽器(如下圖所示),選擇一函式後以雙擊或按下鍵盤 Enter 鍵方式即可於 Expression 欄新增該函式,等於在 Expression 欄中直接鍵入函式。如事先有用游標選擇一段算式再選擇新增函式,則會自動將所選取之算式包入函式的括號中(例如選取 X1[1] 後再選擇新增 sin 函式,則會在 Expression 欄中出現 sin(X1[1]))。
    Expression 欄位 編輯數學算式的文字輸入欄位。
    add 可將 Expression 欄位的數學算式加入輸出訊號清單 (Output Channel)
    將選擇輸出訊號清單中某個通道內的數學算式,替換為 Expression 中的數學算式。

    函式瀏覽器如下圖所示:

    insert_function

    函式列表中標示的函示格式為:<func_name>(<input_type>):<output_type>。其中:

    • <func_name> 為函式名稱(abssin 等)。
    • <input_type> 為輸入類別。
    • <output_type> 為輸出類別。

    函示瀏覽器中顯示的輸出/入類別有以下幾種:

    • CHANNEL:一個通道的向量值。
    • CHANNEL[]:多個通道的向量值,通常是一個輸入訊號的所有通道。

    跟函數外的向量運算一樣,向量類別(CHANNEL)的變數(例如 X1[1]\(t\) 等)可經由四則運算轉換為新的向量輸入給函數,例如:abs(X1[1]*2+5)X1[1] 的所有值乘 25 後再輸入abs() 函數;sin(2pi*10*t) 則將\(t\) 時間軸向量的所有值乘上 \(2 \pi 10\) 再輸入給 sin() 函數(即產生一個 10Hz 的正弦波)。多通道向量(CHANNEL[])不支援以上運算。

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

    常用內建函式
    函式 函式說明 函式 函式說明
    abs 取絕對值。 ceiling 小數點以下無條件進位。
    floor 無條件捨去小數點以下。 round 小數點以下四捨五入。
    sin 正弦運算。 asin 逆正弦運算。
    cos 餘弦運算。 acos 逆餘弦運算。
    tan 正切運算。 atan 逆正切運算。
    sinh Hyperbolic sine (雙曲正弦)。 cosh Hyperbolic cosine(雙曲餘弦)。
    tanh Hyperbolic tan(雙曲正切)。 exp 指數函數運算 exp(x) 等於\(e^x\)\(e\) 為自然數。
    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 輸入為複數訊號 \(a+ib\),則將取其共軛 \(a-ib\)

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

  3. 輸出訊號清單:

    輸出訊號清單(Output Channels)顯示目前輸出的各通道及其計算的數學式( Expression)。

    在輸出欄中通道的順序即為輸出訊號的通道編號順序。利用清單右方的按鈕可編輯輸出訊號之通道。輸出通道可用滑鼠單選或複選,複選操作如同 Windows 檔案管理員選檔案操作,可同時按 Shift 鍵圈選或 Ctrl 鍵多選。選好通道後, 可將所選之通道向上或下移動調整通道順序,remove則可刪除所選的通道。

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

    在輸出訊號清單上按滑鼠右鍵可開啟選單,提供三項功能:

    • 顯示/隱藏左方之輸入訊號清單
    • 刪除所選的通道(等同點擊remove鍵)
    • 刪除所有通道(等同選擇所有輸出通道再點擊remove鍵)

範例

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

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



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



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



  4. 此時可看到預設將所有輸入訊號之所有通道複製為輸出通道。用前述方法刪除所有預設輸出通道。

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


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


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


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


    insert_function



  9. 如果要對兩個以上的輸入訊號作通道對通道(X1[1]+X2[1]X1[2]+X2[2]…)的計算,則可以直接勾選欲計算之輸入訊號。以本例而言,選取輸入清單中 X1X2,再點擊基本運算工具中的plus鍵,就會將運算式新增至 Expression 欄中。最後記得點擊add鍵將 Expression 欄內的算式傳至輸出訊號清單。


    看輸出訊號清單的部份,除先前的兩運算式之外,又新增了 10 個輸出通道的算式,由於 X1 有 10 個通道,X2 有 8 個,故最後兩個通道等同 X1[9]+0X1[10]+0


  10. 如果要對單一輸入訊號的所有通道做點對點的運算,則可直接勾選一個通道。以本例而言選取輸入清單中 X1 再點擊基本運算工具中的plus鍵,就會將運算式 add(X1) 新增至 Expression 欄中,再點擊add鍵後則將 Expression 欄內的算式傳至輸出訊號清單。



  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 下比較結果。


相關指令

SourceAnCAD:EMDViewer

4.6.5 Mixer

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

說明

\(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\)

參數設定

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

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


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

範例

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

  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以實現三筆以上資料相加,下圖就是利用這個方式累加多筆訊號。


相關指令

Channel SwitchMultiplierSine WaveSquare Wave

4.6.6 Multiplier

將多筆輸入訊號相乘。

說明

以數學來表示,有 \(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}\) 重新取樣,統一所有輸入訊號的時間軸後再做相乘。

參數設定

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

範例

將正弦波與三角波相乘。

  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 秒。



相關指令

Channel SwitchMixer

4.6.7 Normalize

Normalize(正規化)之功能為將不同訊號數列,以線性投影方式投射至特定值域。

說明

計算方式是以原始訊號值除以正規化參數,即

\[\frac{y(t)}{Normalized factor}\text{。}\]

正規化可將訊號值去單位並將其數值限制在某一區間,便於比較數值之間的大小比例。

參數設定

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

參數名稱 參數定義 預設值
Remove Mean 去除訊號中的平均值              True
Normalization Type 正規化參數(Normalized Factor)的定義,共有Absolute Max、Custom、Integrate、Max Range、Root Mean Square、Standard Deviation六種可選,詳見以下介紹 Standard Deviation
Normalized Type 定義
Absolute Max 以訊號中最大值做為標準化的基準,即歸一化
Custom 自訂標準化的基準(Custom Normalization Value)
Integrate 以數據對時間軸的積分值做為基準
Max Range 以縱軸差的最大值做為基準
Root Mean Square 以數據的均方根值做為標準化基準
Standard Deviation 以原始訊號的標準差做為基準

範例

  1. C:\Program Files\AnCAD\Visual Signal\demo\Basic 載入潮高變化資料 tide.tfa,用 Viewer / Channel Viewer 顯示數值。

  2. 在 tide 後接上 Compute / Mathematics / Normalize,將數據正規化,再接上一個 Channel Viewer 匯出圖形。

  3. 點 Normalize 方塊於 Property / Normalize / Remove Mean 選擇 True, Normalization Type 選擇 Absolute Max。

  4. 數據歸一化後如下圖,用上方工具列的”Show Value” ,可觀察各時間點潮高占原始數據中最大值的比例。

  5. Normalization Type 改選 Custom,並在 Custom Normalization Value 輸入100。

  6. 改變正規化基準後,新訊號的數值被限制在 -10 到 10 之間。

4.6.8 Remove DC

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

說明

訊號源為\(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。

參數設定

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


參數說明
DC type 參數選項 選項定義
Mean 算數平均數。
DC type 參數選項 選項定義
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 輸入平移量。

範例

建立一個 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 模組。

相關指令

Fourier TransformTime Shift

4.6.9 RMS

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

理論

\[\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\),也可以以振動速度或位移來表示。

參數設定

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


RMS 元件參數
參數名稱 參數定義 預設值
Method

數值積分的方法,可選擇:

  • Simple(長方形法)
  • Simpson
  • Trapezoidal(梯形法)
Trapezoidal
StartPosition 設定時間軸或橫軸上的積分起始值。 輸入訊號的起始值。
EndPosition 設定時間軸或橫軸上的積分終點值。 輸入訊號的終點值。

Vibration Level 中的 Type 選項定義如下,根據 ISO15242-1(2004) 提供 RMS、Peak 和 PeaktoPeak 計算方法,預設為 RMS。

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

參數欄中還有 Remove DC 以及 Rolling Window 的相關選項。Remove DC 為嵌入元件,可以視為是將輸入接到 Remove DC 後再接到 RMS,因此相關參數可以直接參考【Remove DC】元件。

Rolling Window 為輔助元件,相關參數用來控制做滾動計算時的計算窗大小、單位、及重疊等參數,詳情請參閱【滾動窗計算】章節。

範例

  1. 以下範例為一加速規震動訊號: C:\Program Files\AncAD\Visual Signal\demo\Enhanced\Acceleration.vsb,匯入後接上 Channel Viewer 以及 RMS 元件,如下圖:

  2. RMS 的滾動計算窗參數 Window 設定為 5000 (即 1 秒的資料點數),Overlap 設定為最大重疊量,(即每次計算窗移動一個資料點,重疊量為 4999),其他參數保留預設值,即可以觀察觀察振動能量的變化,如下圖(Viewer 中 RMS 訊號的線條調為稍粗,顏色為紅色):

  3. 將 Window 調為 \(1/10\) (即半秒的資料點數 500),Overlap 設定為 0,即可觀察到震動能量變化不同的細節,如下圖:

相關指令

Remove DCChannel Viewer

參考資料

ISO Standard 2372,ISO Standard 10816

4.7 Matrix*

*This module is available in Professional only*

4.7.1 Matrix Operation*

*Only in Professional*

說明

本模組用以處理 \(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\)

參數設定

本模組接受實數(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\) 兩矩陣的權數。

範例

  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. 可把這結果與原本的矩陣相乘,確定相乘後的結果為單位矩陣。



相關指令

Inverse Matrix

參考

Gilbert Strang: Linear Algebra and Its Applications 3rd edition

4.7.2 Inverse Matrix*

*Only in Professional*

說明

計算矩陣 \(A\)(必須為方陣)的反矩陣 \(A^{-1}\),使 \(AA^{-1} = I\)\(I\) 為單位矩陣。

參數設定

本模組接受實數(Real Number)、複數(Complex Number)、Numeric的數值資料,而輸出亦為同型態的資料。

範例

  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:


相關指令

Matrix Operation

參考

Gilbert Strang: Linear Algebraand Its Applications 3rd edition

4.7.3 Transpose*

*Only in Professional*

說明

將矩陣 \(A\) 做轉置(\(A^T\)),並可選擇是否做共軛(\(A^{\dagger}\))。

參數設定

本模組接受實數(Real Number)、複數(Complex Number)、Numeric的數值資料,而輸出亦為同型態的資料。


參數說明
參數名稱 參數定義 預設值
Complex Conjugate 若矩陣為複數矩陣,是否要取共軛。 true

範例

假設有 \(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}\)

參考

Gilbert Strang: Linear Algebra and Its Applications 3rd edition

4.7.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\) 中填零。

說明

非常類似矩陣定義中的 Sub-Matrix 定義,但此模組可用以處理更高維度的資料,此外超過原矩陣範圍者,本模組會填補上零。

參數設定

本模組接受實數(Real Number)、複數(Complex Number)、Numeric的數值資料,而輸出亦為同型態的資料。


參數說明
參數名稱 參數定義 預設值
Start Indexes 截取的起點座標。 (0 , 0)
ROI Dimensions 截取的 Row 長度及 Column 長度。 原矩陣的 Row 長度及 Column 長度

範例

以 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}\)

超過範圍部份補零。

參考

Gilbert Strang: Linear Algebra and Its Applications 3rd edition

4.7.5 Extract Vector*

*Only in Professional*

說明

將向量由矩陣(或陣列,不見得必須為二維)中提取出來。若提取的範圍超過原陣列大小,超出部份填補零。

參數設定

本模組接受實數(Real Number)、複數(Complex Number)、Numeric的數值資料,而輸出亦為同型態的資料。


參數說明
參數名稱 參數定義 預設值
Vector Direction 截取矩陣的方向,從零開始。好比有個四維陣列,若輸入的方向為 2,即是延著第三個維度的方向(通常稱為深度)截取。 0 (行方向)
Column-Vector 設定為 True,輸出矩陣以一行(Column) 為主依序排列,反之則相反。 True
Start Indexes 截取的起點座標 (0 , 0)
Vector Length 截取的長度 原陣列在某各方向上的長度

範例

假設一個 \(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}\)

參考

GilbertStrang: Linear Algebra and ItsApplications 3rd edition

4.7.6 Diagonal Vector*

*Only in Professional*

說明

本模組用以截取矩陣(必須為方陣)的對角元素,並排列為一向量。

參數設定

本模組接受實數(Real Number)、複數(Complex Number)、Numeric 的數值資料,而輸出亦為同型態的資料。


參數說明
參數名稱 參數定義 預設值
Column-Vector 設定為 “True”,輸出矩陣以一行(Column)為主依序排列,反之則相反。 True

範例

以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}\)

參考

Gilbert Strang: Linear Algebra and Its Applications 3rd edition

4.7.7 Reciprocal Matrix Condition Number*

*Only in Professional*

計算 \(1 / C\)。其中 \(C\) 為矩陣的 Condition Number。

說明

給定一個矩陣 \(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 法求得,但目前版本並不支援這項計算。

參數設定

本模組接受實數(Real number)、複數(Complex Number)、Numeric 的數值資料,而輸出在 Properties 的 Reporter。



範例

以 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模組計算之)

相關指令

Matrix InverseMatrix Operation

參考

Gilbert Strang: Linear Algebra and Its Applications 3rd edition

4.8 SVM*

*Only in Sound and Vibration Module*

SVM(Sound and Vibration Module)建立在 Visual Signal快速、便利、多樣性的平台架構,提供語音、噪音、振動及迴轉機械故障的完整解決方案。SVM具有適合各領域研究人員所需的分析演算法,並且提供符合工業界規範的檢測方法,方便線上人員即時檢測,最後可由各種圖形表現。除了傳統的傅立葉頻譜,以及時頻分析等演算法之外,還有振動及噪音的特殊分析演算法,例如RMS 分析可以作為震動品質檢測的依據,Crest Factor 幫助了解撞擊訊號強度變化,OrderSpectrogram除了振動及噪音訊號之外,還需要輸入轉速計訊號,可以將原本頻率對時間的變化量轉變為階次對轉數的變化量,可以將倍頻現象利用階次表現出來。Envelope 可以將撞擊訊號的包絡線解析出來。如此之外,對於聲音的處理,提供權重函數將原本的頻譜或是時頻圖加權為人耳感官到的頻譜圖,還提供 Octave 分析功能。提供工業界進行各種應用及研究,相關應用如工具機、主軸,馬達、齒輪箱等檢測,或是主軸跑合系統應用。

4.8.1 Crest Factor*

*Only in Sound and Vibration Module*

Crest Factor (峰值因素)為波形的一個參數,為波形峰值與有效值的比率,用來評估振動中的極端訊號,包含衝擊訊號的大小。主軸和軸承等迴轉機械製造商可以利用 Crest Factor 值評估軸承內環、外環、滾珠之間是否有撞擊訊號產生,可以彌補 RMS 只能評估整體振動的不足,可發現更微小的敲擊,為判斷軸承是否有缺陷的重要指標。

理論

輸入訊號以滾動計算窗分割(詳見【Rolling Window】章節說明),計算每個滾動窗的 CrestFactor,即為每個滾動窗內的最大峰值除以 RMS 值,如下:

\[\text{CrestFactor} = \frac{\text{TruePeak}}{\text{RMS}}\]

此處 RMS 計算方法採用積分法(詳見【RMS】章節說明)。

參數設定

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


參數說明
參數名稱 參數定義 預設值
Method

數值積分的方法,可選擇:

  • CumulativeSum(累積和)
  • Simple(長方形法)
  • Trapezoidal(梯形法)
  • Simpson(辛普森法)。
  • FFT (FFT 法)
Trapezoidal
StartPosition 設定時間軸或橫軸上的積分起始值。 輸入訊號的起始值。
EndPosition 設定時間軸或橫軸上的積分終點值。 輸入訊號的終點值。

除了積分相關參數之外,本元件還嵌入 Remove DC 元件,可移除輸入訊號直流部分,相關參數請參考【Remove DC】章節說明。滾動窗相關參數請參考【Rolling Window】章節說明。

範例

以下範例為讀入任一加速規訊號,計算並比較其 RMS 及 CrestFactor。以主選單之 File / Open Project 打開位於安裝目錄下 demo\SVM 資料夾(預設為 C:\Program Files\AnCad\Visual Signal\demo\SVM)的 Crest Factor.vsn 專案檔。開啟後如下圖:

因為滾動窗計算的設定,計算後會有剩餘資料點,因此 RMS 與 CrestFactor 元間皆有警告標示出現,可以將其忽略,或是改變滾動窗設定。

下圖為計算後之 RMS 值和兩種不同滾動窗大小之 CrestFactor 值與原訊號的比對:

可以見到相較於 RMS ,CrestFactor 較能顯示出原訊號中異常峰值的部分,調整 CrestFactor 的滾動窗大小則可改變其解析度。

相關指令

RMSPeak

4.8.2 Peak*

*Only in Sound and Vibration Module*

Peak(峰值)主要是為評估振動訊號中每個時段內最大值及最小值計算出的真實峰值。在工業界中,手持量測系統皆有用來評估振動的參考值,迴轉機械製造商量測振動加速度經計算後,求得 Peak 值用來判斷各種機械的撞擊程度。

理論

輸入訊號以滾動計算窗分割(詳見【Rolling Window】章節說明),計算每個滾動窗的峰值:

\[\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}\]

其中 \(T\) 為滾動窗大小(以時間為單位),\(a(t)\) 主要表示震動的幅度,\(\text{Max}\) 為滾動窗內的最大正值,\(\text{Min}\) 為滾動窗內的最小負值。

參數設定

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


參數說明
參數名稱 參數定義 預設值
Type

設定抓取峰值的類別:

  • Max:計算滾動窗內振動的最大正值
  • Min:計算滾動窗內振動的最大負值
  • TruePeak:\((\text{Max}-\text{Min}) / 2\)
  • TruePP:\(\text{Max}-\text{Min}\)
TruePeak

如上所述,本元件還嵌入了滾動窗相關參數,請參考【Rolling Window】章節說明。

範例

以下範例為讀入任一加速規訊號,計算並比較其 RMS 及 Peak。以主選單之 File / Open Project 打開位於安裝目錄下 demo\SVM 資料夾(預設為 C:\Program Files\AnCad\Visual Signal\demo\SVM)的 Peak.vsn 專案檔。開啟後如下圖:

因為滾動窗計算的設定,計算後會有剩餘資料點,因此 RMS 與 Peak 元間皆有警告標示出現,可以將其忽略,或是改變滾動窗設定。

下圖為計算後之 RMS 值和兩種不同峰值類別(TruePeak vs. Min)之 Peak 值與原訊號的比對:

可以見到相較於 RMS ,Peak 能顯示出原訊號中峰值的部分,改變峰值類別可觀測不同的峰值類別,同時改變 Peak 的滾動窗大小也可改變其解析度。

相關指令

RMSCrestFactor

4.8.3 Digital Tachometer*

*Only in Sound and Vibration Module*

轉速計為量測轉速的量測工具,但是量測到的原始訊號為脈衝訊號,透過此模組運算,可以將脈衝訊號轉為回轉機械實際轉速。

理論

原始轉速計量測的脈衝訊號如下圖:


假設測脈衝訊號為 \(S_n = \{S_0, S_1, \dots, S_{N - 1}\}\),其每個資料點對應的時間為 \(t_n = \{t_0, t_1, \dots, t_{N - 1}\}\),其中 \(0 \leq n < N\),則定義脈衝出現間距的方式有三種:

  1. Rising

    抓取脈衝上升緣值超過超過門檻值 \(S_{th}\) 的時間點,如下:


    \[\begin{aligned} \text{If}& \quad S_{n+1} \geq S_{th}, \quad S_n < S_{th}\\ \text{then}& \quad t_{pulse} = t_{n+1} \end{aligned}\]

  2. Falling

    抓取脈衝下降緣低於門檻值 \(S_{th}\) 的時間點,如下:


    \[\begin{aligned} \text{If}& \quad S_{n+1} \leq S_{th}, S_n > S_{th}\\ \text{then}& \quad t_{pulse} = t_{n+1} \end{aligned}\]

  3. Center

    抓取原始量測訊號中上升緣超過與下降緣低於門檻值 \(S_{th}\) 之脈衝中心點的時間點,如下:


    \[\begin{aligned} \text{If}& \quad S_{n_1+1} \geq S_{th}, S_{n_1} < S_{th} \\ &\text{and} \quad S_{n_2+1} \leq S_{th}, S_{n_2} > S_{th} \\ \text{then}& \quad t_{pulse} = (t_{n_1 + 1} + t_{n_2 + 1}) / 2 \end{aligned}\]

取得各脈衝的抓取點的索引後,計算索引抓取脈衝之間的間距,計算間距的時間,其值的倒數即為轉速。

參數設定

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


參數說明
參數名稱 參數定義 預設值
Express Type

選擇輸出轉速單位:

  • RPM:每分鐘轉動圈數
  • RPS:每秒鐘轉動圈數
  • RPH:每小時轉動圈數
RPM
SlopeType

定義如何抓取通過門檻值 \(S_{th}\) 的方法(見前文理論說明):

  • Rising
  • Falling
  • Center
Center
SmoothType 將 Tachometer 訊號中不平滑部分,做內插平滑,有兩種方法:線性(Linear)及曲線近似(Spline) Spline
Threshold 脈衝門檻值(即前文理論說明中之 \(S_{th}\)),超過此門檻值才為脈衝。 1
PulsePerRevolution 量測的時候轉動一圈會出現幾個脈衝,一般而言,量測只有貼一個反光片就有一個脈衝。如需更準確量測轉速,可以在等間距貼上反光片,並且輸入轉動一圈的所通過反光片數目。 1

範例

本範例以安裝目錄下 demo\SVM 資料夾(預設為 C:\Program Files\AnCad\Visual Signal\demo\SVM)下找到 VT.mat 以「Regular」格式匯入,如下圖:

並拉成如以下之流程圖(Channel Switch 要切換到「CH2」,其他參數皆為預設):

Switch 出來的為一轉速計訊號,如下圖。

透過 DigitalTacho 可以將轉速計的脈衝訊號轉換為轉速訊號,其結果如下:

4.8.4 OrderSpectrogram*

*Only in Sound and Vibration Module*

階次頻譜圖目的在於方便觀察各種機械倍頻,觀察倍頻能量隨著轉速產生的變化,階次頻譜通常需要兩種訊號:基本的振動或噪音訊號和轉速計(Tachometer)的原始脈衝訊號,便可以將原本只有震動或噪音的時頻圖為轉變為階次頻譜圖。

理論

階次頻譜通常應用在迴轉機械上面,因為時頻圖上倍頻的頻率會隨著轉速改變,而不利於後續的分析。因此將原來的量測訊號從時間域轉到角度域,讓每一轉的採樣數量都一樣多,經過時頻分析,就可將轉速的因素去掉,得到一張階次頻譜圖,其中”階次”表達了為轉速的幾倍頻率。更詳細說明何謂階次頻譜,可見以下為一般變轉速訊號之時頻圖:

階次頻譜分析的計算方式可分成兩個步驟,第一步驟將震動或噪音訊號從時間域轉換成角度域,第二步是將角度域的訊號進行時頻轉換:

  1. 原始震動或噪音訊號是為等時間間距,首先利用轉速計(Tachometer)訊號的脈衝間內插取樣出等角度間距,再將振動或噪音訊號依等角度間距進行內插取樣,最後得到等角度間距的振動或噪音訊號。

  2. 再將等角度間距訊號經過時頻轉換得到階次(倍頻)——轉動圈數頻譜。時頻轉換有【STFT】,【FastSTFT】、【Enhanced Morlet】等選擇,請見個別章節說明。

參數設定

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

參數說明
參數名稱 參數定義 預設值
SamplePerRev 每一轉內插的點數 auto(100)
Method

選擇計算時頻圖的方法:

  • STFT(短時傅立葉)
  • FastSTFT(快速短時傅立葉)
  • EnMorlet(優化小波轉換)
FastSTFT
MinOrder 決定計算及繪圖階次的下邊界 0
MaxOrder 決定計算及繪圖階次的上邊界 \(SamplePerRev/2\)
OrderResolution 設定窗函數的範圍,此值會影響到窗函數的大小,設定的越小,窗函數會越小 \(MaxOrder/20\)
OverlappedFactor 設定 Enhanced Morlet Transform 的重疊參數 1
OrderCount 設定階次方向之離散網格數 512
XAxisCount 設定轉動圈數方向之離散網格數 1024
Window 在STFT / FastSTFT 分析,進行窗函數的分割時,會利用窗函數進行濾波,此處可選擇各種窗函數 Hanning
SlopeType

選擇如何抓取通過 Threshold 的方法(見【Digital Tachometer】章節說明):

  • Rising
  • Falling
Rising
Threshold 脈衝門檻值,超過此門檻值才為脈衝(見【Digital Tachometer】章節說明) 1

本元件還嵌入 Remove DC 元件,可移除輸入訊號直流部分,相關參數請參考【Remove DC】章節說明。

範例

以主選單之 File / Open Project 開啟:

C:\Program Files\AnCAD\VisualSignal\demo\SVM\Order Tracking.vsn

可看到如下圖所示之連接圖:

首先可看到由真實量測到迴轉機件的振動(Acc.wav)及轉速變化(Tacho.wav)的資訊匯入,觀察加速規及轉速計的原始訊號,其中黑色代表振動訊號,藍色則代表轉速計訊號,由脈衝的間距可知迴轉機械的轉速越來越高,如下圖:

首先利用 Compute / Enhanced / FastSTFT 計算振動訊號之時頻圖,可利用 Time-Frequency Viewer 觀察出頻率隨著時間不斷地增加,但是無法分出各個斜直線屬於當時轉速的第幾個倍頻,如下圖:

利用【Digital Tachometer】可計算出真正的轉速,單位為 RPM,如下圖:

最後將振動訊號以及轉速計訊號輸入至 OrderSpectrogram ,選擇預設 STFT 方法,可以得到 Order-Revolution 圖,如下圖:

上圖可以清楚看到轉速倍頻的變化,在頻譜圖上發現 10~15 倍頻及30 倍頻左右皆有特別明顯的振幅,由此可以粗略判斷迴轉機械可能有軸不對心的情形。

本範例還使用 Order Info 觀測轉動圈數及轉速的關係,請參考下章【OrderInfo】說明。

相關指令

FastSTFTTime-Frequency ViewerDigital TachometerOrderInfo

4.8.5 OrderInfo*

*Only in Sound and Vibration Module*

OrderInfo 元件主要搭配【Order Spectrogram】,可以幫助使用者知道轉動圈數與時間或轉速的相關資訊。

參數設定

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


參數說明
參數名稱 參數定義 預設值
XType

選擇 X 軸顯示類別:

  • Revolution:轉動圈數
  • Time:時間
Revolution
YType

選擇 Y 軸顯示類別:

  • Time:時間
  • RPM:每分鐘轉動圈數
  • RPS:每秒鐘轉動圈數
  • RPH:每小時轉動圈數
RPS
SlopeType

定義如何抓取通過 Threshold 的方法(見【Digital Tachometer】章節說明):

  • Rising
  • Falling
Rising
Threshold 脈衝門檻值,超過此門檻值才為脈衝(見【Digital Tachometer】章節說明) 1

範例

以主選單之 File / Open Project 開啟:

C:\Program Files\AnCAD\VisualSignal\demo\SVM\Order Tracking.vsn

可看到如下圖所示之連接圖:

如【Order Spectrogram】所述,振動訊號及轉速計訊號輸入至 OrderSpectrogram 後,選擇預設 STFT 方法,可以得到 Order-Revolution 圖,如下圖:

將轉速計訊號接至 OrderInfo,調整Property / Axis Display / YType 為 RPS,最後利用 Channel Viewer 觀看其結果,可以對照階次圖了解圈數當時的轉速:

相關指令

Order SpectrogramDigital Tachometer

4.8.6 Cepstrum*

*Only in Sound and Vibration Module*

Cepstrum (倒頻譜)為 「Spectrum」 中「spec」的反寫,工業界上主要用來檢測齒輪箱損壞和觀察倍頻的關係,在機車、汽車齒輪箱和迴轉機械製造商皆可利用Cepstrum作為品管和檢測齒輪斷齒等損傷的重要工具。或著利用於語音辨識的領域。

理論

假設 \(X\) 為一 10 Hz 的三角波訊號如下:

傅立葉轉換(FFT)後其頻譜為(轉換為 dB 顯示其增益):

可以看到三角波除了 10 Hz 的主頻之外有眾多倍頻,而這些倍頻是以每 20 Hz 一次的「頻率」規律性地出現。這個「頻率」習慣稱之為「Quefrency」(「倒頻率」,也是「Frequency」的反寫),單位為時間單位「秒」:

\[ \text{Quefrency} = 1 / 20Hz = 0.05 s \]

要觀測這個倍頻的「倒頻率」,只要再做一次傅立葉轉換即可,因為要得回時間單位的倒頻率,因此習慣做傅立葉反轉(IFFT),此稱為 Cepstrum(倒頻譜),如下圖:

可以看到在 0.05 秒處有一根與 \(1 / 20 Hz\) 對應的倒頻率。因為是頻譜中頻率間隔的倒數,因此越靠左的倒頻率對應的頻率間隔越大,基本上可視為最明顯的頻率規律。

Cepstrum 有實數倒頻譜及複數倒頻譜的分別,本元件採用實數倒頻譜,定義如下。假設 \(X\) 為振動的訊號,經過傅立葉轉換後,取其絕對值(Magnitude)的自然對數(Natural Logarithm),最後經傅立葉反轉換:

\[C_{real} = IFFT(\ln|FFT(X)|)\]

取自然對數的的好處利用 FFT 及自然對數的特性:

  1. 兩個在時域疊積(convolution)的訊號經傅立葉轉換後在頻域中為相乘的訊號。
  2. 兩個相乘的訊號經自然對數後變為兩個相加的訊號。

因此在時域疊積的訊號(例如聲音經過某腔室的過濾,或地震波通過某地形的折返等)在 Cepstrum 裡經過 FFT -> Natural Log -> 及 IFFT 後會變成線性相加的訊號,可以很清楚地的在 Cepstrum 中分離出來。

參數設定

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


如上文理論所述,本元件會嵌入 FFT 及 IFFT 兩個元件之參數,包括各自內嵌之 Remove DC 及 Windowing 元件之參數,請參考【FFT & IFFT】、【Remove DC】、【Windowing】章節說明。

範例

以上三角波範例可以在安裝目錄下 demo\SVM 資料夾(預設為C:\Program Files\AnCad\Visual Signal\demo\SVM)下找到 Cepstrum.vsn,開啟後專案連接圖如下:

相關指令

Fourier Transform

4.8.7 Envelope*

*Only in Sound and Vibration Module*

包絡訊號(Envelope Detection) 為檢測機械故障相當有效的方式,因為機械故障雜音大部分以撞擊形式產生,使用者所關注的是每秒撞擊的次數,透過傅立葉頻譜並無法有效分析。包絡頻譜分析是取得訊號的包絡線,即是將訊號的峰值連接起來, 再針對該訊號進行傅立葉轉換,進一步了解碰撞的頻率,推估出何種機械元件產生了碰撞。

理論

有兩種方式取得包絡訊號:

  1. Hilbert Transform

    第一種方法是利用 Hilbert 轉換產生一個解析訊號 (Analytic Signal),解析訊號為一個複數訊號,實數部分為原始訊號,而虛部為原始訊號的 Hilbert 轉換結果(請參考【Hilbert Transform】章節說明。

    \(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

    第二種方法利用 Cubic Spline 將峰值連接起來而成為包絡訊號,可選擇上包絡線(只連接正峰值)、下包絡線(只連接負峰值)、中包絡線(上下包絡線之平均)。

參數設定

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

參數說明
參數名稱 參數定義 預設值
Envelope Type

選擇包絡線計算方式:

  • Hilbert
  • Spline
Spline
Spline Envelope

Envelope Type 選擇 Spline 時,可選擇包絡線種類:

  • Upper(上包絡線)
  • Lower(下包絡線)
  • Middle(上下包絡線平均)
Upper
Iteration 設定重複次數(即計算包絡線的包絡線),設為 1 則不重複 1

本元件還嵌入 Remove DC 元件,可移除輸入訊號直流部分,相關參數請參考【Remove DC】章節說明。

範例

以下範例為利用一個重複的衰減 Impulse 訊號及 Sine 波形相乘模擬一個敲擊訊號(Beating Signal),如下圖:

Impulse 及 Sine 訊號源參數如下:

再分析其頻譜圖以及時頻圖:

FFT 及 FastSTFT 元件參數如下:

可以發現此撞擊訊號在頻譜以及時頻圖下皆顯示最主要的頻率為 10 Hz,此頻率為每次敲擊時的震盪頻率(即原模擬訊號的正弦波部分),並無法展現使用者所需的資訊,此時可以轉換為包絡訊號並且進行頻譜分析(Envelope 及 FFT 元件皆為預設參數),如下圖:

將 Envelope 方法設為 Hilbert 可得到下圖(與原訊號重疊顯示,紅色為包絡線):

將 Envelope 再接 FFT,其頻譜則變為如下圖:

由此可以發現最主要的頻率為 1 Hz,亦即敲擊頻率被解析出來為每秒一次。

相關指令

Hilbert SpectrumSineImpulseFFTFastSTFT

4.8.8 Bearing Defect*

*Only in Sound and Vibration Module*

軸承損壞特徵檢測(Bearing Defect)為計算軸承損壞頻率工具,輸入軸承規格,則可以計算內外環或滾珠損壞的特徵頻率。

理論

軸承基本構造如下圖:

由圖中所示的三個基本參數:滾珠直徑 \(d\)、軸承軌道直徑(軸承內環直徑加上滾珠直徑) \(D\)、接觸角度 \(\alpha\),加上滾珠數量 \(N\) 及軸承秒轉速 \(R\) (RPS 或 Hz),可以計算出以下特徵頻率:

外環損傷特徵頻率

此為軸承滾珠通過軸承外環上缺陷的頻率:

\[Freq_{outer} = R \times \frac{N}{2} \bigg(1-\frac{d}{D} \times \cos \alpha \bigg)\]

內環損傷特徵頻率

此為軸承滾珠通過軸承內環上缺陷的頻率:

\[Freq_{inner} = R \times \frac{N}{2} \bigg(1+\frac{d}{D} \times \cos \alpha \bigg)\]

滾珠損傷特徵頻率

此為軸承滾珠上的缺陷在自轉時通過軸承內環或外環的頻率:

\[Freq_{roller} = R \times \frac{D}{d} \bigg(1-\big(\frac{d}{D} \times \cos \alpha \big)^2 \bigg)\]

保持器損傷特徵頻率

此為軸承滾珠保持器(保持滾珠間距的裝置)的頻率:

\[Freq_{outer} = R \times \frac{1}{2} \bigg(1-\frac{d}{D} \times \cos \alpha \bigg)\]

參數設定

本模組接受實數(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 滾珠損傷特徵頻率

範例

取得振動訊號之後,透過傅立葉轉換進行頻譜分析,可以利用 Bearing Defect比對頻譜,檢視特徵頻率是否靠近損壞頻率。



黑色的為原始訊號之頻譜,藍色為外環損傷頻譜,紅色為內環損傷頻譜,綠色為滾珠損傷頻譜,比對原始頻譜以及此三個頻譜,若是原始訊號的特徵頻率有靠近損壞頻譜誤差於5% 之內,則可以辨識出損傷部位。

4.8.9 Octave*

*Only in Sound and Vibration Module*

八音度(Octave)或稱倍頻程,這一名詞是從音樂中借用而來。例如鋼琴的中音C,到下一個音階(高八度)的 C,其頻率比正好是兩倍,稱為一個八音度。將一個八音度分為三份,每一份稱為 1/3 八音度或 1/3 倍頻程。將一個八音度分為 12 份,每一份稱為 1/12 八音度或 1/12 倍頻程。

本元件雖以業界常用八音度為主,也可以設定為十倍頻(Decade),見以下說明。

理論

八音度(Octave)

八音度分析中每個頻帶的上限頻率和下限頻率之比為常數,其關係滿足:

\[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_2 f_c\]

由此可知:對八度音,\(n = 1\)\(\beta_2 = 0.707\);對 1/3 八度音,\(n = 1/3\)\(\beta_2 = 0.231\);對 1/12 八度音,\(n = 1/12\)\(\beta_2 = 0.0578\)

十倍頻(Decade)

本元件也可以設定為十倍頻(Decade),每個頻帶的上限頻率和下限頻率之比為常數,其關係滿足:

\[f_2 = 10^n \cdot f_1\]

其中 \(n\) 為十倍頻度數,例如:\(n = 1\),為十倍頻;\(n = 1/10\),為 1/10 十倍頻;\(n = 1/20\),為 1/20 十倍頻。頻帶的中心頻率 \(f_c\) 為上、下限頻率的幾何平均值,即

\[f_c = \sqrt{f_1 f_2} = 10^{n/2}f_1 = 10^{-n/2} f_2\]

頻帶寬度 \(BW\)

\[BW = f_2 - f_1 = (10^{n/2}-10^{-n/2})f_c = \beta_{10} f_c\]

由此可知:對十倍頻,\(n = 1\)\(\beta_{10} = 2.846\);對 1/10 十倍頻,\(n = 1/10\)\(\beta_{10} = 0.231\);對 1/20 十倍頻,\(n = 1/20\)\(\beta_{10} = 0.115\)

參數設定

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


參數說明
參數名稱 參數定義 預設值
Output Type

選擇輸出種類:

  • Continuous:每段頻帶輸出 n 筆同樣的資料(資料類別由 Value Type 決定),組合成總長度等於輸入資料長度之輸出資料,其座標為連續的 Regular 座標,等同輸入頻率座標。此輸出可用普通的【Channel Viewer】瀏覽
  • Bar:每段頻帶輸出一筆資料(資料類別由 Value Type 決定),每筆資料頻率座標為一個 Indexed 座標,其值為該頻帶之中心頻率 \(f_c\)。此輸出可用【Channel Viewer】的 Stem 形式或【Bar Viewer】瀏覽
Bar
Octave Unit

選擇倍頻單位:

  • Octave:八音度
  • Decade: 十倍頻
Octave Type

選擇頻帶寬度。若 Unit 為 Octave,選擇為:

  • 1/1 Octave
  • 1/3 Octave
  • 1/6 Octave
  • 1/12 Octave
  • 1/24 Octave

若 Unit 為 Decade,選擇為:

  • 1/1 Decade
  • 1/10 Decade
  • 1/20 Decade
  • 1/40 Decade
  • 1/80 Decade
ThirdOctave
Spectrum Type

選擇在統計倍頻帶前將輸入頻譜轉換成頻譜類別:

  • Magnitude
  • PowerSpectrum
  • Gain (dB)
Gain
Value Type

選擇輸出資料類別:

  • Max:各頻帶中取最大值
  • Sum:各頻帶中取總和值
  • Mean:各頻帶中取平均值
Sum
Use Std Reference 設定是否用標準音頻壓力增益參考值(20 \(\mu Pa\)),因增益計算使用功率頻譜所以參考值會自動平方。使用此標準參考值時輸入的單位必須為 \(Pa\) False
Gain Reference 設定計算增益 dB 值所需之參考值。使用標準參考值時此此欄位會強制自動設定為標準值。 1

範例

以下範例為一個含倍頻的鳥叫訊號(Chirp Signal),利用 Fourier Transform 分析其頻譜圖,再由 Octave 元件轉換為倍頻帶,最後由 Channel Viewer 之 Stem 形式繪圖:

Octave 元件之參數全為上述之預設值,Channel Viewer 的顯示模式設定如下圖:

Octave 輸出類別為 Bar 時也可接上 Bar Viewer,結果如下:

Bar Viewer 的顯示模式設定如下:

注意以【Channel Viewer】顯示時,因為頻率軸預設為 LinearAxis ,因此可以看到每個頻帶以對數間隔繪出;以【Bar Viewer】顯示時,每個頻帶是以同等間隔繪出。【Channel Viewer】的 XAxisType 參數若是設定為 LogAxis 也可以有同樣效果。

4.8.10 Weighting*

*Only in Sound and Vibration Module*

人耳對於各種頻率的感受度並不相同,因此透過傅立葉轉換或是時頻分析出來的結果並非實際人耳聽到的頻譜,必須透過加權函數(Weighting Filter)才能轉換為實際聽到的頻譜。

理論

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]\)

參數設定

本模組接受複數(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

範例

以下範例為一個鳥叫訊號 (Chirp Signal),檔案位於 C:\Program Files\AnCAD\VisualSignal\demo\Basic\chirp1000.tfa ,利用 Visual Signal 分析其頻譜圖以及時頻圖。




加乘上 A-Weighting之後



4.8.11 Scale*

*Only in Sound and Vibration Module*

Scale 主要是利用儀器的 Sensitivity將各種量測的電壓訊號轉換成具有工程單位(EU)的訊號,如加速度、速度、位移、聲壓、溫度、應變等。

理論

轉換式如下:

\[EU = \frac{x}{S}\]

其中 x 表示電壓訊號,單位為 volts(V),S 表示 Sensitivity,單位通常為 \(mV/EU\)

參數設定

本模組接受實數(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

範例

以下範例利用一個實際量測主軸振動,而所得加速規的訊號。

  1. 首先將電壓訊號經過 Scale 轉換,Properties / Engineering Units 設定為\(g\)\(m/s^2\)),Properties / Sensitivity 根據加速規 Specification 設定100.6 ( \(mV/g\)),再以 Channel Viewer 觀察,如下圖。




4.8.12 GearBox Creator

說明

藉由設定不同組合的「主軸」、「軸承」、「齒輪」、及齒輪嚙合的配置,計算齒輪箱運轉時各零件的各種特徵頻率;藉由此模組可判斷齒輪箱經過長時間運轉後,可能出現異常的位置。

理論

本齒輪箱設定對話窗除了設定不同齒輪箱的配置之外,還能計算出以下的特徵頻率:

齒輪
齒輪特徵頻率
名稱 代號 說明
旋轉頻率 RF 齒輪旋轉頻率,等同該齒輪主軸的轉速轉換成頻率
軸承
軸承特徵頻率
名稱 代號 說明
外環損傷頻率 BPFO 軸承滾珠通過軸承外環上缺陷的頻率
內環損傷頻率 BPFI 軸承滾珠通過軸承內環上缺陷的頻率
滾珠損傷頻率 BSF 軸承滾珠上的缺陷在自轉時通過軸承內環或外環的頻率
保持器損傷頻率 FTF 軸承滾珠保持器(保持滾珠間距的裝置)的頻率

軸承特徵頻率在【Bearing Defect】章節中有詳細說明。如果軸承有缺陷或損傷,在運轉時以上特徵頻率會變得比較明顯,可以依其頻率判斷是哪一個軸承有異常。不同廠牌型號的軸承會有不同係數可計算出以上特徵頻率,本齒輪箱設定對話窗內建常用軸承之資料庫,亦可自訂新軸承(見後文說明)。

齒輪嚙合處
齒輪嚙合特徵頻率
名稱 代號 說明
齒輪嚙合頻率 GMF 兩齒輪嚙合轉動時嚙合處的頻率,即齒輪旋轉頻率 RF 乘上輪齒數
齒輪組相位頻率 APPF 齒輪組相位數為兩嚙合齒輪之輪齒數的共同質數因子,例如兩齒輪齒數分別為為 \(49 =7 \times 7\) 以及 \(63 = 7 \times 9\) ,則相位數為 \(7\),相位頻率則為 GMF 除以相位數。
追逐齒頻率 HTF 兩齒輪嚙合轉動時嚙合之同一對輪齒再次相遇的頻率,即齒輪旋轉頻率 GMF 除以兩齒輪齒數的最小公約數

如果齒輪嚙合滑順,在運轉時以上特徵頻率在頻譜中並不會太明顯,一旦齒輪輪齒有缺陷或損傷則會變得比較明顯,可以依其頻率判斷是哪一組齒輪有異常。

參數設定

此功能位於 Compute / Sound and Vibration / Gearbox Creator,在 Network Editor 空白處新增一 Gearbox Creator。在元件上雙擊滑鼠左鍵,開啟 Gearbox Creator 的設定對話窗。如為第一次開啟則如下圖:

點選 New 後則如下圖:

無論哪種情況,點選 Open(上圖藍色反白處),開啟示範檔案 DemoModelA(下圖藍色反白處)。

選擇 DemoModelA 後點選 OK 則會讀入該範例之齒輪箱設定,如下圖:

左邊紅框上欄位可新增或編輯零件:Shaft(主軸,以 S 開頭編號)、Gear(齒輪,以 G 開頭編號)、Bearing(軸承,以 B 開頭編號),下欄位則可新增或編輯齒輪嚙合的連結(以 C 開頭編號)。右邊藍框則是各零件的編號與位置(綠色S0-S3 為主軸、黃色 B0-B4 為軸承、淺藍色 G1-G4 為齒輪,T 則為該齒輪的齒數)。右下方綠框則顯示機台名稱(Machine Name)和驅動轉速(Drive Speed)。第一主軸(S0)默認為驅動軸,而最後一個主軸(這裡為 S3)默認為輸出軸。

滑鼠雙擊任一齒輪,可從 Spur Gear Setting 修改齒輪齒數:

滑鼠雙擊任一軸承,可從 Bearing Setting 選擇軸承型號,或新增自訂型號:

紅框下欄有三種連接設定:NEUTRAL、LOW、HIGH,分別對應三種不同齒輪嚙合檔位。選擇 NEUTRAL 可看到只有 S2 軸的 G1 齒輪對接輸出軸 S3 的 G1 齒輪,驅動軸S0 空轉。選擇 LOW 則可看到驅動軸 S0 經過齒輪嚙合一直傳送動力至輸出軸 S3。勾選 Connectivity,可設定新的齒輪嚙合設置,所有齒輪的欄位左方會出現勾選的方框,勾選兩個嚙合的齒輪(必須為鄰近兩個主軸的齒輪)後,嚙合的兩個齒輪在右方零件圖中以桃紅色顯示:

此時在紅框上欄上方選擇 Frequency 頁面,即可算出本齒輪箱在 LOW 檔位的連接狀態下各零件及齒輪嚙合處之各種特徵頻率(詳見前文所述)。如果有前一次的計算結果,選擇 Frequency 頁面時會跳出以下對話窗確認是否重新計算,否則會顯示舊的計算結果:

下圖顯示切換至 Frequency 頁面時的狀態:

左側紅框為各零件的轉速及特徵頻率,右側藍框為零件位置。

紅框左上方之下拉選單可以切換不同檔位,點選右方之按鈕FreqIcon則可開啟 Frequency Viewer,可顯示所有計算出的特徵頻率,如下圖:

滑鼠單擊 Frequency Viewer 表格上方的欄位名稱,表格會自動按照該欄位的數值大小排序(例如點選「Frequency [Hz]」,便可依照各零件的頻率大小排序,方便找最大或最小值);點選ExcelIcon圖示,可直接將資料匯出至 Excel 或其他Spreadsheet 應用程式。

回到齒輪箱設定對話窗主介面的 Frequency 頁面。在頻率顯示欄位上任選一個零件或齒輪嚙合處,在任一特徵頻率上按滑鼠右鍵,可針對該頻率增加邊頻(Sideband)或倍頻(Harmonic)設定,如下圖:

點選 Add Sideband 和 Add Harmonic,會跳出下圖之視窗,設定好參數後按 OK 即可新增。

新增的 Sideband 和 Harmonic 會出現在該頻率下方(下圖紅框處)。

範例

異音分析簡介:當機台因長時間運轉而造成零件磨損,開始產生異常的聲音或振動訊號,藉由分析異常訊號,可以有效率的找出問題零件並加以解決。本案例分析的數據為機台運轉的異音訊號,使用短時傅立葉轉換(STFT)和二次頻譜計算異音的特徵頻率,再使用 GearBox 建立機台模型、計算每個零件的理論頻率,藉由核對兩者的計算結果,讓使用者能快速、有效地找出產生異音的零件。

分析步驟:

  1. 點選 Import Data ,從 C:\Program Files\AnCAD\Visual Signal\demo\SVM 載入音訊檔Gearbox.wav,並用 Viewer / Channel Viewer 顯示。此為一機台運轉時的聲音,其中包含較低頻的異音,按”Play鍵 “可撥放此音訊檔。

  2. 使用 Compute / Transform / Fourier Transform 分析音訊檔 Gearbox.wav,並接上 Viewer / Channel Viewer 顯示其計算結果。

  3. 下圖為 Fourier Transform 的分析結果,最高的 peak 其對應頻率約為 120Hz,但異音頻率一般介於 1Hz 到 50Hz 之間,120Hz並不是異音的頻率;由此可知,Fourier Transform 並非分析異音問題的有效工具。

  4. 欲有效分析異音問題,在異音音訊檔後依序接上 Shor-Term Fourier Transform 和 Secogram(兩功能皆位於Compute / TFA)並皆以 Viewer / Time-Frequency Viewer 顯示,Secogram 後再接上 Compute / TFA / Marginal Time,並以 Viewer / Channel Viewer 顯示。

  5. 下圖為 Short Term Fourier Transform 的參數設定和時頻圖,另外可調整 Time-Frequency Viewer 的參數 CMax,改變時頻圖的顏色分布。

  6. 下圖為 Secogram 的參數設定和時頻圖,另外可調整 Time-Frequency Viewer 的參數 CMax,改變時頻圖的顏色分布。

  7. 在 Secogram 後接上 Marginal Time,即對原時頻圖的橫軸積分,得到下圖結果;由此結果可看出 10Hz 和 2Hz 的異音問題較明顯。

接下來將使用 Compute / Sound Vibration / Gearbox Creator 計算機台每個零件的轉速,找出產生異音的位置。

  1. 用 Windows 檔案總管開啟圖檔 Gearbox.png(檔案位於C:\Program Files\AnCAD\Visual Signal\demo\SVM)。此為工具機台構造的簡圖,共有四個主軸和六個齒輪,馬達轉速為 1800RPM;我們可以用 Gearbox Creator 做出此機台的模型,並計算各零件的頻率。

  2. 在 Network 視窗空白處,從 Compute / SVM 新增元件 Gearbox Creator,並打開設定視窗。

  3. 點選 Add Shaft,新增四根主軸:

  4. 在主軸(Shaft)上按右鍵,選擇 Add Gear 增加齒輪:

  5. 設定齒輪齒數:在齒輪(Gear)上雙擊滑鼠左鍵,輸入該齒輪的齒數:

  6. 設定齒輪嚙合:勾選 Connectivity,再勾選兩個互相嚙合的齒輪,被勾選的齒輪會以桃紅色顯示(如下圖藍框處,已設定 G1 和 G0 咬合),設定好的齒輪組合會條列在左下角綠框處,在右側的零件圖中以桃紅色顯示:

  7. 切換至 Frequency 頁面,再點選FreqIcon開啟 Frequency Viewer:

  8. 開啟 Frequency Viewer,Drive Speed 輸入 1800 RPM,即可瀏覽每個零件的轉速:

  9. 關閉 Frequency Viewer,在齒輪箱對話窗主介面中點選 Update 後,關閉對話窗,在 Gearbox 元件後接上 Channel Viewer,則可看到各特徵頻率的分布,也可以與前述範例的Gearbox.wav 分析後之實際頻譜比對:

相關指令

Bearing DefectFFTSecogramMarginal TimeChannel ViewerTime-Frequency Viewer

4.8.13 Rotational Speed

*Only in Sound and Vibration Module*

Rotational Speed(轉動速度)元件可利用轉動機械之震動訊號萃取出轉速資訊。

理論

一個震動訊號 \(X(t)\) 如果是由一轉動機械產生,其震動資訊必然包含機械轉動時的轉動頻率,可由以下運算萃取出:

  1. 帶通 FIR 濾波

    \[X_{[f_1,f_2]}(t) = FIR_{[f_1,f_2]}[X(t)]\]

    \(f1,f2\) 為帶通之上下頻率,取其轉速可能變化的頻率範圍,濾掉其他無關頻率。

  2. Hilbert 轉換(取 Unwrapped Phase)

    \[\theta(t) = Hilbert_{unwrapped\ phase}[X_{[f1,f2]}(t)]\]

    Hilbert 轉換可得出訊號之複數解析訊號 \(Z(t)\),進而得出相位角變化 \(\theta(t)\),如果相位角過 \(360^\circ\) 不歸零則為「Unwrapped phase」(詳見【Hilbert Transform】章節說明)。此資料形式方便下一步微分。

  3. 微分

    \[RotSpeed(t) = \frac{d \theta(t)}{dt} / 360^\circ\]

    將相位角微分即得角速度,除上 \(360^\circ\) 即得轉速,其單位為 Revolution / 輸入訊號時間單位。

參數設定

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


參數說明
參數名稱 參數定義 預設值
Output Unit 顯示輸出單位,基本為「Revolution / 輸入訊號時間單位」 Revolution / sec

依上述理論說明,本元件嵌入了 FIR 濾波、Hilbert 轉換、及 Diff 微分三種計算元件,其參數設定請參考【FIR】、【Hilbert Transform】、及【Diff】元件說明。如果 Hilbert 轉換設定了「ByEnvelope」模式,Hilbert 轉換之後還會用【Fast Trend Estimator】 取低頻趨勢,參數設定請參考元件說明。以下列出元件中固定或預設之參數值:

嵌入元件固定參數
元件名稱 固定參數 固定或預設值
FIR Filter Type BandPass
Hilbert Transform Output Type UnwrappedPhase
Diff Padding
Padding Method
Normalized
First
Slope
True
FastTrendEstimator TrendFrequency \((FIR.F1 + FIR.F2) / 10\)

範例

將本章結尾參考資料連結下載之 rotational.zip 檔解壓縮後其中轉動機械加速規訊號 g.vsb 匯入,用【Data Selection】擷取0.3 ~ 1.0 sec 的資訊,再接上對應之【Channel Viewer】,其餘參數皆為預設,連接圖如下:

原訊號及 Data Selection 後的訊號圖如下:

接著在 Data Selection 之後接上本元件及【Channel Viewer】,如下:

由原訊號資料來源我們得知對應之平均轉速可能為 30000 RPM,也就是 500 RPS(Hz),因此實際轉速可能在 500 RPS 上下。將本元件中 FIR 之 F1 及 F2 參數設為495505 Hz),如下:

計算後得出由震動訊號自萃出的實際轉速變化:

本元件在實際轉速變動太大時(例如原輸入訊號之實際轉速為由零至最高轉速大幅變動)會產生誤差極大的結果,因此本範例用 Data Selection 擷取一小段震動訊號來計算。另外,因為 FIR 及 Hilbert Transform 的一些特性,在選擇帶通頻率時必須微調,放止微分後得出震盪過大或不合理變動的結果。

相關指令

Data SelectionChannel Viewer

參考資料

轉動機械之加速規以及轉速訊號範例:http://www.ancad.com.tw/VisualSignal/examples/rotational.zip

4.8.14 Rotational Correction

*Only in Sound and Vibration Module*

Rotational Correction(轉速校正)元件可以利用自萃(見【Rotational Speed】元件)或外部連接之轉速資訊校正轉動機械之震動訊號的時間軸,以解決散頻問題。

理論

假設有一組旋轉機械之震動訊號如下圖:

其時間軸為等時間間距 \(\Delta t\)

\[\Delta t = \frac{1}{\mathcal{SampleRate}} = \frac{t_{max}}{(n - 1)}\]

其中 \(t_{max}\) 為時間軸最大時間, \(n\) 為資料長度。此訊號每個時間點有對應的轉速(大約 3000 RPM 或 50 RPS 上下),如下圖:

轉速積分後可得轉動圈數(Revolution,也叫做階次 Order,請參考【OrderSpectrogram】章節介紹)隨著時間的變化,如下圖:

雖然震動訊號的時間軸為等時間間距,但是因為轉速的變化,以轉動圈數(階次)來說則變成不規則階次間距。換句話說,如果在旋轉過程中在每一圈的固定地方有異常震動,如果轉速不是固定的,則異常震動發生的時間則變成不規則,單純以等間隔時間之擷取之震動訊號做時譜分析則會出現散頻現象。

我們可以將原始震動訊號及對應之階次資訊合併:

  1. 先確認兩者的時間軸間隔相等(如果不相等則必需用內插法將階次資訊的時間軸調整為與原始訊號的時間軸一樣)

  2. 然後以每個時間點之階次資訊為 X 軸,震動訊號為 Y 軸,得出震動 vs. 階次的資訊,如下圖:

如果轉速變化不大,則與原始訊號形狀相差不大,但是仔細比對還是會有細微的差距。放大其中一段訊號可以看見每個點的階次間距並不相同:

接下來我們可以將此震動 vs. 階次的資訊用內插法轉成等間隔:

  1. 先計算出階次間隔 \(\Delta \mathcal{order}\)

    \[\Delta \mathcal{order} = \frac{\mathcal{order}_{max}}{(n - 1)}\]

    其中 \(\mathcal{order}_{max}\) 為階次資訊中最大的階次。

  2. 用內插法將最近的資料點移到等階次間隔處,如下圖紅色三角點所示:

最後,假設轉速固定,則每個等間距的階次與原始訊號等間距的時間間隔為線性關係:

\[\mathcal{RevSpeed}_{fixed} = \frac{\Delta \mathcal{order}}{\Delta t}\]

我們可以直接將內插後的震動訊號的 X 軸直接替換為原始時間軸,得出校正後的震動訊號,如下圖紅線:

參數設定

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

單輸入(只有震動訊號)參數:

雙輸入(震動訊號 + 轉速資訊)參數:

參數說明
參數名稱 參數定義 預設值
Interpolation Method

選擇時間軸校正內插法:

  • Nearest
  • Linear
  • Spline
  • MonotonicCubic
Linear

如果只有一個輸入,即無外部轉速資訊,則本元件會自動啟動自萃轉速計算,嵌入【FIR】、【Hilbert Transform】、【Diff】、【Fast Trend Estimator】等元件計算,其參數設定請見【Rotational Speed】章節以及各嵌入元件章節說明。

範例

將本章結尾參考資料連結下載之 rotational.zip 檔解壓縮後其中轉動機械加速規訊號 g.vsb 以及對應之轉速資訊檔 rotspeed.vsb 匯入,並接上本元件,以及個別對應之【Channel Viewer】,如下:

可以看到轉速在 0 ~ 30000 RPM 之間變動。本元件校正後之震動訊號如下:

將原始震動訊號以及校正後之訊號都接上【FastSTFT】以及【TF Viewer】,如下圖所示:

可以很明顯看出兩者的差別:

校正後的震動訊號因為解決了散頻問題,在時頻圖中可以看到更多動態的細節。

相關指令

Rotational SpeedChannel ViewerFastSTFTTF Viewer

參考資料

轉動機械之加速規以及轉速訊號範例:http://www.ancad.com.tw/VisualSignal/examples/rotational.zip

4.8.15 Sound Anomaly Index

*Only in Sound and Vibration Module*

Sound Anomaly Index(異常聲音指數 SAI)是一個判斷聲音訊號中是否出現異常的指數。

理論

假設有一聲音訊號及其 FFT 頻譜如下,(可由本章結尾參考資料連結中取得):

用【FastSTFT】取其時頻圖(Freq Count 設為 240,Time Count 設為 6704, WindowSize 設為 1280),如下圖:

由此複數時頻資訊 \(X_{t,f}\) 之能量累加可估算出訊號總能量 \(E_{T}\)

\[E_{T} = \sum_t{\sum_f{|X_{t,f}|^2}} / m\]

其中 \(m\) 為時頻資訊之時域資料長度,\(|X_{t,f}|^2\) 為時頻複數值之能量:

\[|X_{t,f}|^2 = \mathcal{Re}\{X_{t,f}\}^2 + \mathcal{Im}\{X_{t,f}\}^2\]

從以上訊號可以看出有規律性的異音,但是其頻譜及時頻圖中夾雜其他頻率,並無法分辨出哪個頻率是屬於異常聲音。不過,我們知道取其二次頻譜(請參考【Secogram】章節說明)可以抓出時頻資料中每個頻率段中發生有規律性訊號的頻率分布,如果每個頻段都發生同樣的分布,也就是說有一個或多個跨頻譜的有規律性的訊號,我們可以將之定義為異常訊號,將其能量做縱向累加(請參考【Marginal Time】章節說明)便可以放大這個異常訊號,同時其他正常訊號的頻率在累加的過程中則其比例相對縮小。

如上述,我們利用 Secogram 可得出二次頻譜 \(\mathcal{Sec}_{f', f}\) ,可看到二次頻譜之異常峰值,如下圖:

再用 Marginal Time 將二次頻譜之能量做縱向累加(MarginalMethod 設為 PowerSpectrum),可得將異常峰值比例放大的頻譜 \(\mathcal{MT}\)

\[\mathcal{MT}_{f'} = \sum_f{|\mathcal{Sec}_{f',f}|^2}\]

得出如下圖:

將此頻譜累加可以得到異常值放大的能量 \(E_{SAI}\)

\[E_{SAI} = \sum_{f'}{\mathcal{MT}_{f'}}\]

並計算出相對於上面時頻資訊估算出之總能量之百分比,可得出第一個指數 \(\mathcal{SAI}\)

\[\mathcal{SAI} = \frac{E_{SAI}}{E_T} \times 100\]

此時我們可以設一異常峰值之閾值(觀察二次頻譜圖可以設大約為 \(10^{-5}\)),利用【ReplaceValue】(Condition Expression 設為 y>1E-5,Replace Value Type 設為 Null)及【FillNull】(FillMethod設為預設之 Linear),移除 Marginal Time 之異常峰值:

\[\mathcal{MT'}_{f'} = \mathcal{FillNull}(\mathcal{ReplaceValue}(\mathcal{MT}_{f'}))\]

得出如下圖:

將此頻譜累加可以得到移除異常峰值的能量 \(E_{ugly}\)

\[E_{ugly} = \sum_{f'}{\mathcal{MT'}_{f'}}\]

並計算出相對於上面時頻資訊估算出之總能量之百分比,可得出第二個指數 \(\mathcal{SAI}_{ugly}\)

\[\mathcal{SAI}_{ugly} = \frac{E_{ugly}}{E_T} \times 100\]

最後,將兩個能量相減可得異常峰值之能量,並得出第三個指數 \(\mathcal{SAI}_{intermittent}\)

\[\mathcal{SAI}_{intermittent} = \frac{E_{SAI} - E_{ugly}}{E_T} \times 100\]

以上演算可以寫成以下 DoMatlab 程式,並依序輸入下列資料:

DoMatlab 輸入資料
Input Data
Input 1 \(X_{t,f}\)
Input 2 \(\mathcal{MT}_{f'}\)
Input 2 \(\mathcal{MT'}_{f'}\)

用【DataViewer】觀看可以看到計算出之三個指數:

以上運算可以用一個元件連結圖總結:

本元件將以上運算整合為一個元件,接受一聲音或震動訊號並輸出三個指數。

參數設定

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


參數說明
參數名稱 參數定義 預設值
FillMethod 替換異常值方法,見【FillNull】元件說明 Linear
Spike Threshold 上述理論中中判斷為異常峰值的閾值,即【ReplaceValue】中 Condition Expression y>\(V_{th}\)\(V_{th}\) 值。 1E-5

依照上文理論中提到的的 STFT 及 Marginal Time 步驟,本元件還嵌入了【FastSTFT】、【Secogram】、【Marginal Time】、【ReplaceValue】、【FillNull】等元件,其參數設定請參閱各元件章節說明。Secogram 之參數皆固定為預設值,因此未開放給使用者設定。

範例

將以下參考資料連結下載之 sai_input.vsb 匯入,並接上本元件,如下:

參數設定如下:

結果可由【DataViewer】觀看,跟上面理論章節中範例得出相同的數值:

相關指令

FastSTFTSecogramMarginal TimeChannel ViewerTFA Viewer

參考資料

範例聲音訊號:http://www.ancad.com.tw/VisualSignal/examples/sai_input.zip

4.8.16 ISORMS

*Only in Sound and Vibration Module*

有別於【RMS】元件,ISORMS 是用 ISO-10816/20816 規範(見本章結尾參考資料)計算加速度訊號之震動速度RMS 值。

理論

假設有一長度為 \(n\) 之震動加速度訊號 \(A = \{a_0, a_1, \dots, a_{n-1} \}\),其頻譜之震幅可由 FFT 計算為:

\[F_A = \{a_{f_0}, a_{f_1}, \dots, a_{f_{m-1}}\}\]

其中 \(a_f\) 為 各頻率之複數震幅 \(z_f\) 之絕對值:

\[a_f = |z_f| = \sqrt{\mathcal{Re}\{z_f\}^2 + \mathcal{Im}\{z_f\}^2}\]

\(F = \{f_0, f_1, \dots, f_{m-1}\}\) 則為其對應之頻率,\(m\) 為頻譜長度。

依照 ISO-10816/20816-1 規範,震動速度的 RMS 值可以由以下算式計算:

\[v_{rms} = \frac{10^3}{2 \pi} \sqrt{ \left(\frac{a_0}{f_0}\right)^2 + \left(\frac{a_1}{f_1}\right)^2 + \dots + \left(\frac{a_{m-1}}{f_{m-1}}\right)^2 }\]

本元件利用滾動窗(請見【Rolling Window】章節說明)計算每個滾動窗的 \(v_{rms}\) 值:

\[V_{rms} = \{v_{rms}^0, v_{rms}^1, \dots, v_{rms}^{N-1}\}\]

其中 \(N\) 為滾動窗數目,此處 \(n\) 則為每段滾動窗的長度。

參數設定

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

參數說明
參數名稱 參數定義 預設值
StartPosition 計算起始時間 start (0)
EndPosition 計算結束時間 end (資料結束時間)
Type

選擇振動指標:

  • RMS
  • Peak(峰值)
  • Peak to Peak(極值)

選擇 Peak 為 RMS 值的 \(\sqrt{2}\) 倍;選擇 Peak to Peak 則為 RMS 值 \(2 \sqrt{2}\) 倍。

RMS

本元件還嵌入了 【Remove DC】 元件及 【Rolling Window】 計算,相關參數設定請參考各章節說明。

範例

利用一 Gausian Noise 模擬加速規訊號,接入本元件計算出震度速度的 RMS 滾動值,並用 Channel Viewer 觀看,元件連接如下:

其中 Noise 參數設定如下:

本元件參數設定如下:

得出結果為(上圖為 Gausian Noise 模擬之加速規訊號,下圖為 ISORMS 元件計算出之震動速度 RMS 值):

欲與【RMS】元件比較,可以將原 Noise 做積分(將加速度轉成速度)再接上 RMS,如下圖:

其中 RMS 參數設定如下:

得出結果為(上圖為積分後的 Noise,下圖為 RMS 圖):

可以看到 ISORMS 相較於 RMS 除了多了 ISO 規範的 \(\times 1000 / 2 \pi\) 之外,形狀也略有不同,能顯示較多細節。將 ISORMS 及 RMS 的 Overlap 設定增為 750 可以看到 ISORMS 顯示更多細節:

相關指令

RMSNoiseChannel Viewer

參考資料

ISO-10816/20816:https://www.iso.org/standard/75440.html

4.9 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:以最小平方法對訊號做回歸曲線,從一組時間序列或兩組時間序列中的找出最佳的相關曲線。

4.9.1 Basic Statistics*

*Only in Professional*

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

說明

\(X = \{x_0, x_1, \dots, x_{N-1}\}\) 代表長度為 \(N\) 的數列(不限定為時間序列),\(T = \{t_0, t_1, \dots, t_{N-1}\}\) 為對應之座標值,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 \[\left(\prod_{i=0}^{N-1} x_i\right)^\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 資料的中位數
MinIndex \[i_{min}, x_{i_{min}} = x_{min}\] 資料中最小值的索引值
MaxIndex \[i_{max}, x_{i_{max}} = x_{max}\] 資料中最大值的索引值
MinCoordinate \[t_{i_{min}}, x_{i_{min}} = x_{min}\] 資料中最小值的座標值
MaxCoordinate \[t_{i_{max}}, x_{i_{max}} = x_{max}\] 資料中最大值的座標值
MeanCoordinate \[\bar{t} = \frac{\sum_{i=0}^{N-1} x_i t_i} {\sum_{i=0}^{N-1} x_i}\] 平均座標值,即用每個座標的資料值為權重的平均值
離散程度統計值說明(Biased)
StdDev \[\sigma = \left(\frac{1}{N}\sum_{i=0}^{N-1} (x_i - \bar{x})^2\right)^{\frac{1}{2}}\] 標準差,可推估母體資料距離平均值的離散程度,假設此資料為樣本,無法利用樣本去推估母體標準差(Biased Moment Estimation)
Variance \[\sigma^2 = \frac{1}{N}\sum_{i=0}^{N-1} (x_i - \bar{x})^2\] 母體資料的變異數(標準差的平方),假設此資料為樣本,無法利用樣本去推估母體變異數(Biased Moment Estimation)
Variation Coefficient \[\frac{\sigma}{\bar{x}} \times 100\%\] 母體變異係數,表示標準差佔平均值的百分比,用於比較多組資料個別間的離散程度(Biased Moment Estimation)
Skewness \[g_1 = \frac{1}{N \cdot \sigma^3} \sum_{i=0}^{N-1} (x_i-\bar{x})^3\] 母體偏度,用以推估資料分佈圖形的對稱性,即第三中央慣性矩除以標準偏差的三次方(Biased Moment Estimation)
Kurtosis \[g_2 = \frac{1}{\sigma^4} \sum_{i=0}^{N-1} (x_i-\bar{x})^4 - 3\] 母體峰度,用來推估資料分佈圖形是高瘦或者是矮胖,即第四中央慣性矩除以標準偏差的四次方減 3 (Biased 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)

Semi Standard Deviation \[\sqrt{\frac{1}{N} \sum_{i=0}^{N-1} [(x_i-\bar{x})b_i]^2}\] 將母體資料之半變異數開根號即為資料之半標準偏差(Biased Moment Estimation)。
離散程度統計值說明(UnBiased)
StdDev
(Unbiased)
\[s = \left(\frac{1}{N-1}\sum_{i=0}^{N-1} (x_i - \bar{x})^2\right)^{\frac{1}{2}}\] 標準差,當此資料為樣本,計算樣本不偏估之標準差(Unbiased Moment Estimation),可以用來推估母體標準差。
Variance
(Unbiased)
\[s^2 = \frac{1}{N-1}\sum_{i=0}^{N-1} (x_i - \bar{x})^2\] 當此資料為樣本,計算樣本不偏估之變異數(Unbiased Moment Estimation),可以用來推估母體變異數。
Variation Coefficient \[\frac{s}{\bar{x}} \times 100\%\] 當此資料為樣本,計算樣本不偏估之變異係數(Unbiased Moment Estimation),可以用來推估母體變異係數。
Skewness \[G_1 = \frac{\sqrt{N(N-1)}}{N-1} \cdot g_i\] 當此資料為樣本,計算樣本不偏估之偏度(Unbiased Moment Estimation),可以用來推估母體偏度。
Kurtosis \[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-1} \sum_{i=0}^{N-1} [(x_i-\bar{x})b_i]^2\] 當此資料為樣本,計算樣本不偏估之樣本半變異數(Unbiased Moment Estimation),可以用來推估母體之半變異數。
Semi Standard Deviation \[\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:計算每個通道的統計值,結果會為一個 \(m \times n\) 的矩陣,其中 \(n\) 為輸入的通道數, \(m\) 為計算的統計值數(單一或所有統計值),輸出座標格式為 Indexed

  • AcrossChannel:計算同一個時間點下,輸入訊號中所有通道的 \(m\) 個統計值,(\(m\) 為單一或所有統計值數)最後輸出一個\(m\) 通道訊號,每通道長度跟輸入訊號相同,輸出座標格式為 Regular。此時 View Statistics Reporter 無作用

PerChannel
Stats Type

選擇統計計算種類:

  • All:計算所有統計資料,輸出會包含所有的統計值, View Statistics Reporter 也會列出所有統計值
  • 個別統計種類(Sum、Max、Min, Mean等):只輸出所選擇之單一統計值供其他計算使用,此時 View Statistics Reporter 無作用
All
View Statistics… 在 Stats Mode = PerChannel 及 Stats Type = All 的情況,可開啟 Reporter 視窗顯示模組元件計算結果。也可雙擊元件圖示開啟 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
Start Position 設定統計計算之資料範圍起始點。可點擊本欄右方之Dots開啟資料範圍圈選對話窗,請參考【Data Selection】章節說明 start
End Position 設定統計計算之資料範圍結束點。可點擊本欄右方之Dots開啟資料範圍圈選對話窗,請參考【Data Selection】章節說明 end

範例

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

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

    若是開啟【Data Viewer】則可看見輸出資料格式:

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

  3. 結果如下圖:

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

  5. 另外在一個新的專案中,Source / Noise 產生一個 White Noise,再將其接至 HHT / RCADA EEMD,將 RCADA EEMD 連接至 Compute / Statistics / Basic Statistics,然後 Properties / Stats Mode 選擇 AcrossChannels,如下圖:

    若是開啟【Data Viewer】則可看見輸出資料格式:

    Data Viewer】一次只能顯示 16 個通道,可在上方 Channel 欄位設定要瀏覽之通道,及用下方之滑桿看其他的統計值通道。若將 Stats Mode 設定為其他單一統計值,則只會輸出一個通道。

相關指令

Equiphase Statistics、Rolling Statistics、Merge to Multi-Channel

參考

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.

4.9.2 Bayesian Inference*

*Only in Professional*

Bayesian Inference 是一項讓使用者能用貝氏推論估算常態分佈的工具。

說明

貝氏推論利用貝氏定理結合「事前機率」及新的證據,得到「事後機率」,且貝式推論可以迭代計算,將事後機率當成事前機率,配合更新的證據資料數據,即算出下一代的事後機率。貝氏定理定義如下:

\[P(H|E)=\frac{P(E|H) \cdot P(H)}{P(E)}\]

其中:

事前及事後機率可為機率分布,如果兩者皆為同類分布時,事前及事後分布稱之為「共軛分布」(conjugate distribution),而事前機率分布則稱之為概似率函數的「共軛事前」(conjugate prior)。如果概似率函數為高斯函數(即正常分布),則可依照事前分布的參數(稱之為超參數 hyperparameters)計算出事後分布參數。

假設有一組長度為 \(N\) 的資料 \(X = \{x_0, x_1, x_2, \dots, x_{N-1}\}\),其平均為:

\[\bar{x} = \frac{\sum_{i=0}^{N-1}{x_i}}{N}\]

而變異數為:

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

假設其 likelihood 為正常分布(normal distribution),分布之參數為平均(mean) \(\mu\) 及變異數(variance)\(\sigma^2\),則有以下三種可能:

Variance \(\sigma^2\) 已知,Mean \(\mu\) 未知:

假設共軛事前分布為正常分布,其超參數(hyperparameters)為 \(\mu_0\)\(\sigma_0^2\),則事後分布也是正常分布,其超參數為:

\[\mu' = \sigma' \left(\frac{\mu_0}{\sigma_0^2} + \frac{N \bar{x}}{\sigma^2} \right)\]

\[\sigma' = \left(\frac{1}{\sigma_0^2} + \frac{N}{\sigma^2} \right)^{-1}\]

原正常分布之 Likelihood 的未知 Mean \(\mu\) 可以反推估為 \(\mu'\)

Mean \(\mu\) 已知,Variance \(\sigma^2\) 未知:

假設共軛事前分布為 inverse-gamma 分布,其超參數為 \(\alpha\)\(\beta\),則事後分布也是 inverse-gamma 分布,其超參數為:

\[\alpha' = \alpha + \frac{N}{2}\]

\[\beta' = \beta + \frac{N s^2}{2}\]

原正常分布之 Likelihood 的未知 Variance \(\sigma^2\) 可以反推估為 \(\frac{\beta'}{\alpha' + 1}\)

Mean 及 Variance 皆未知:

假設共軛事前分布為 normal-inverse-gamma 分布,其超參數為 $_0, $lambda, \(\alpha\)\(\beta\),則事後分布也是 normal-inverse-gamma 分布,其超參數為:

\[\mu' = \frac{\lambda \mu_0 + N \bar{x}}{\lambda'}\]

\[\lambda' = \lambda + N\]

\[\alpha' = \alpha + \frac{N}{2}\]

\[\beta' = \beta + \frac{N s^2}{2} + \frac{N \lambda}{\lambda'} \frac{(\bar{x} - \mu_0)^2}{2}\]

原正常分布之 Likelihood 的未知 Mean 及 Variance \((\mu, \sigma^2)\) 可以反推估為 \((\mu', \quad \frac{\beta'}{\alpha' + 1.5})\)

參數設定(Properties)

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

貝氏推論參數說明
參數名稱 參數定義 預設值
Parameters

選擇未知之常態分佈參數:

  • Mean
  • Variance
  • MeanAndVariance
Variance
KnownMean Parameters 選擇 Variance 時,可設定已知常態分佈平均值(Mean) 0
KnownVariance Parameters 選擇 Mean 時,可設定已知常態分佈變異數(Variance) 1
參數分布參數說明
參數名稱 參數定義 預設值
Mu0 Parameters 選擇 Mean 或 MeanAndVariance 時,可設定貝氏先驗常態或常態-逆伽瑪分布之「超參數」:\(\mu_0\)(平均)。計算完後會更新為事後分布的參數。如輸入為多通道,可設定每個通道的參數 0
Sigma0Squared Parameters 選擇 Mean 時,可設定貝氏先驗常態分布之「超參數」: \(\sigma_0^2\)(變異數)。計算完後會更新為事後分布的參數。如輸入為多通道,可設定每個通道的參數 1
Alpha Parameters 選擇 Variance 或 MeanAndVariance 時,可設定貝氏先驗逆伽瑪或常態-逆伽瑪分布之「超參數」:\(\alpha\)。計算完後會更新為事後分布的參數。如輸入為多通道,可設定每個通道的參數 1
Beta Parameters 選擇 Variance 或 MeanAndVariance 時,可設定貝氏先驗逆伽瑪或常態-逆伽瑪分布之「超參數」:\(\beta\)。計算完後會更新為事後分布的參數。如輸入為多通道,可設定每個通道的參數 0
Lambda Parameters 選擇 MeanAndVariance 時,可設定貝氏先驗常態-逆伽瑪分布之「超參數」:\(\lambda\)。計算完後會更新為事後分布的參數。如輸入為多通道,可設定每個通道的參數 1

範例

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

  1. 於 Network 視窗下選擇 Source / Noise 創造一個雜訊,類別設為 Gaussian ,參數設定如下:

    Noise 參數設定值
    參數名稱 Noise 參數值 Noise2 參數值
    Sigma 1 2
    AmplitudeOffset 0 0

    再將兩個 Noise 元件接上 Conversion / MergeToMultiChannel,再接上 ChannelViewer 及 Compute / Statistics / Bayesian Inference 以上述預設參數計算,如下圖:

    點擊 Bayesian 元件後開啟【Data Viewer】則可看見輸出資料格式:

    可以看到在 Variance 模式下,使用預設之超參數(Alpha = 1, Beta = 0)以及已知的 Likelihood 正常分布 Mean = 0,第一次計算結果推估的未知 Variance 為 ~0.910 及 ~3.89。更新後的 Posterior 分布超參數如下圖:

  2. 此時按下Execute圖示,Noise 及 Noise2 元件會以同樣參數更新,模擬由同 Likelihood 正常分布取樣得到新的證據資料,此時 Bayesian 元件會使用先前更新後的超參數重新計算。每次按下Execute就會疊代更新,每次更新則可以在 DataViewer 裡看到Variance 推估值趨近 Noise 及 Noise2 原始設定的 Sigma 平方值(1 & 4)。

  3. 此時改變 Noise 及 Noise2 之 Gaussian 參數如下:

    Noise 參數設定值
    參數名稱 Noise 參數值 Noise2 參數值
    Sigma 1 1
    AmplitudeOffset 1 2

    並設定 Bayesian 元件參數更新如下:

    點擊 Bayesian 元件後開啟【Data Viewer】則可看見輸出資料格式:

    可以看到在 Mean 模式下,使用預設之超參數(Mu0 = 0, Sigma0Squared = 1)以及已知的 Likelihood 正常分布 Variance = 1,第一次計算結果推估的未知 Mean 為 ~0.987 及 ~2.02。更新後的 Posterior 分布超參數如下圖:

  4. 此時按下Execute圖示,Noise 及 Noise2 元件會以同樣參數更新,模擬由同 Likelihood 正常分布取樣得到新的證據資料,此時 Bayesian 元件會使用先前更新後的超參數重新計算。每次按下Execute就會疊代更新,每次更新則可以在 DataViewer 裡看到 Mean 推估值趨近 Noise 及 Noise2 原始設定的 AmplitudeOffset 值(1 & 2)。

  5. 此時改變 Noise 及 Noise2 之 Gaussian 參數如下:

    Noise 參數設定值
    參數名稱 Noise 參數值 Noise2 參數值
    Sigma 2 3
    AmplitudeOffset 3 5

    並設定 Bayesian 元件參數更新如下:

    點擊 Bayesian 元件後開啟【Data Viewer】則可看見輸出資料格式:

    可以看到在 MeanAndVariance 模式下,使用預設之超參數(Mu0 = 0, Lambda = 1, Alpha = 1, Beta = 0),第一次計算結果推估的未知 Mean 為 ~3.00 及 ~5.10,未知 Variance 為 ~3.89 及 ~9.58。更新後的 Posterior 分布超參數如下圖:

  6. 此時按下Execute圖示,Noise 及 Noise2 元件會以同樣參數更新,模擬由同 Likelihood 正常分布取樣得到新的證據資料,此時 Bayesian 元件會使用先前更新後的超參數重新計算。每次按下Execute就會疊代更新,每次更新則可以在 DataViewer 裡看到 Mean 及 Variance 推估值趨近 Noise 及 Noise2 原始設定的 AmplitudeOffset 值(3 & 5)及 Sigma 值(2 & 3)。

相關指令

NoiseMergeToMultiChannelViewerData Viewer

參考

https://en.wikipedia.org/wiki/Conjugate_prior

4.9.3 Covariance Matrix*

*Only in Professional*

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

說明

\(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)})\]

參數設定

本模組接受實數(Real Number),多通道(Multi-Channel),Regular 的訊號(Signal ) 輸入。輸出為一個 M * M 的方形矩陣,其中 M 為通道數,輸出格式是 Indexed 的數值資料。


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

點擊 Properties / View Matrix… 欄位右側的Dots即可開啟 Reporter 視窗,或雙擊元件圖示,即可看到計算結果(見下面範例)。Reporter 詳細說明請看【Reporter】章節。

範例

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

  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 之間的共變異數矩陣。



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

相關指令

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

參考

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

4.9.4 Correlation Matrix*

*Only in Professional*

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

說明

\(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\) 為通道代碼。

參數設定

本模組接受實數(Real Number),多通道(Multi-Channel),Regular 的訊號(Signal ) 輸入。輸出為一個 \(M \times M\) 的方形矩陣,\(M\) 為 channel 數,輸出格式是 Indexed 的數值資料。


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

點擊 Properties / View Matrix… 欄位右側的Dots即可開啟 Reporter 視窗,或雙擊元件圖示,即可看到計算結果(見下面範例)。Reporter 詳細說明請看【Reporter】章節。

範例

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

  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. 結果如下圖:


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



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

相關指令

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

參考

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.

4.9.5 Equiphase Statistics*

*Only in Professional*

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

說明

\(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 模組。

參數設定

本模組接受實數(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內容。

範例

以一組 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,則模組會計算週期下每個元素位置的四分之三位值。



相關指令

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

參考

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.

4.9.6 Kernel Smooth Density*

*Only in Professional*

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

說明

設數列為\(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)。此方法是將離散分佈之每個點代入核函數中,再疊加每個點的核函數計算結果,以達到平滑之目地。在概念上與作統計直方圖類似。

參數設定

本模組接受實數(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 \mid u \mid \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\]
Triangle \[K(u) = \begin{cases} 1 - \mid u \mid, & \quad \mid u \mid \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\]
Epanechnikov \[K(u) = \begin{cases} \frac{3}{4}(1-u^2), & \quad \mid u \mid \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\]
Quartic \[K(u) = \begin{cases} \frac{15}{16}(1-u^2)^2, & \quad \mid u \mid \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\]
Triweight \[K(u) = \begin{cases} \frac{35}{32}(1-u^2)^3, & \quad \mid u \mid \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 \mid u \mid \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\]
Cosine \[K(u) = \begin{cases} \frac{\pi}{4}\cos(\frac{\pi}{2}u), & \quad \mid u \mid \leq 1\\ 0, & \quad \text{otherwise}\\ \end{cases}\]

範例

  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,可看到結果更為平順。



相關指令

Histogram、Noise、XY Plot

參考

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

4.9.7 Mean Frequency*

*Only in Professional*

Mean Frequency 是一項能讓使用者計算滾動平均頻率的工具。

說明

假設有一組長度為 \(N\) 的訊號資料 \(X = \{x_0, x_1, x_2, \dots, x_{N-1}\}\),資料點之間的時間間隔為 \(\Delta_t = 1 / f_s\)\(f_s\) 為取樣率),取一從第 \(j\) 點開始長度為 \(M\) 的滾動窗:

\[X_j = \{x_j, x_{j+1}, x_{j+2}, \dots, x_{j + M - 1}\}\] \[0 \le j < N - W\]

可先取滾動窗之傅立葉轉換:

\[Y_k^j = FFT(X_j) = \{y_0^j, y_1^j, y_2^j, \dots, y_{M / 2}^j\}\]

對應之頻率軸為(每個滾動窗的頻率軸都相同):

\[F_k = \{f_0, f_1, f_2, \dots, f_{M / 2}\}\] \[f_0 = 0\] \[f_{M / 2} = \frac{f_s}{2}\]

再用加權平均法算出該滾動窗之平均頻率:

\[\bar{f}_j = \frac{\sum_{k = 0}^{M / 2}{y_k^j f_k}}{\sum_{k = 0}^{M / 2}{y_k^j}}\]

假設滾動窗向右移動一點計算一次,會得到一個平均頻率的系列:

\[\bar{F} = \{\bar{f}_0, \bar{f}_1, \bar{f}_2, \dots, \bar{f}_{N - M - 1}\}\]

參數設定(Properties)

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

本元件本身沒有其他參數,但內嵌了滾動窗計算及 FFT 元件,可參考【Fourier Transform】及【滾動窗計算】章節說明。FFT 元件自身也內嵌了【RemoveDC】及【Windowing Function】,請參考各章節說明。

範例

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

  1. 於 Network 視窗下選擇 Source / Advanced / Jaehne 創造一個 Chirp 訊號,後接上 Compute / Statistics / Mean Frequency 以上述預設參數計算,同時也接上Compute / Transform / Hilbert Transform (OutputType 設為 InstantFrequency)以比較 Hilbert Transform 的瞬時頻率功能。所有元件再接上 ChannelViewer,如下圖。

    Jaehne/Chirp 訊號如下:

    Mean Frequency 輸出如下:

    Hilbert Transform 瞬時頻率輸出如下:

    可以看見相較於 Hilbert Transform 順時頻率在訊號起始及結束兩端有震盪的現象, Mean Frequency 利用滾動窗計算 FFT 平均的做法可以顯示更平滑的即時頻率。

相關指令

JaehneHilbert TransformChannel Viewer

4.9.8 Orthogonality Matrix*

*Only in Professional*

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

說明

\(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\) 為通道編號。

參數設定

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


點擊 Properties / View Matrix… 欄位右側的Dots即可開啟 Reporter 視窗,或雙擊元件圖示,即可看到計算結果(見下面範例)。Reporter 詳細說明請看【Reporter】章節。

範例

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

  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。




相關指令

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

參考

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

4.9.9 Quartiles and Quantiles*

*Only in Professional*

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

說明

\(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 \(\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\) 是小數部份。
離分位位置最近的位置作分位數。

參數設定


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

參數設定介面如下圖,本模組預設就計算數列的四分位數、中位數、四分之三位數等 Quartiles 值,另外可在參數 Quantile Fractions 下設定希望計算的 Quantiles 值。

點擊 Properties / View Matrix… 欄位右側的Dots即可開啟 Reporter 視窗,或雙擊元件圖示,即可看到計算結果(見下面範例)。Reporter 詳細說明請看【Reporter】章節。

參數 Quantile Method 則可選擇 Quantile 的估計方法。下面就各參數內容分項說明。


上圖 Reporter 視窗,每一筆訊號的計算結果以 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
  • Average
  • Weighted Mean
  • Nearest
Linear
Quantile Fractions 可設定多個 Quantile 的百分比。 0.01, 0.1, 0.25, 0.5, 0.75, 0.9, 0.99

範例

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

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



  2. 結果如下圖:


  3. 於 Noise 後方接 Compute / Statistics / Quartiles and Quantiles 計算各項分位數值,打開 Reporter 檢視結果。




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


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


  5. 再次打開 Reporter,可以看到已經新增了一個 17th Quantile。


相關指令

Basic Statistics、Rolling Statistics、Channel Viewer

4.9.10 Rolling Statistics*

*Only in Professional*

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

說明

\(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模組相同,此處不再贅述。

參數設定

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


參數說明
參數名稱 參數定義 預設值
Type 可選擇想要計算的統計值,詳細清單請見上圖,各統計量定義請參考【Basic Statistics】說明。 Mean

部分統計量選項會再出現參數需要設定,如下圖:

詳情以及各統計量的定義請參考【Basic Statistics】章節說明,Quantile 的參數請參閱【Quartiles and Quantiles】章節說明,有關 Rolling 計算的參數設定可參考【滾動窗計算】章節說明。

範例

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

  1. 於 Network 按右鍵新增 Source / Noise,調整 Properties / Noise Type 為 Brown,以 Viewer / Channel Viewer 繪出結果。接著於 Noise 後方接 Compute / Statistics / Rolling Statistics,其統計值預設為Mean,window 預設為 100, Overlap 為 0。以Channel Viewer 輸出結果。



    Rolling Statistics 結果為:


  2. 調整 Overlap 大小為 99 ,算出的結果如下圖所示;


相關指令

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

4.9.11 Hypothesis Test*

*Only in Professional*

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

理論

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

虛無假設(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。

參數設定

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


Z-Test 參數說明
參數名稱 參數定義 預設值
Mean 設定母體的平均值。 0
Sigma 設定母體的標準差。 1
SignificanceLevel 設定拒絕虛無假設的範圍,佔常態分佈面積的比例。一般常見設定為 0.1、0.05 或 0.01,設定越小,要拒絕虛無假設就越嚴苛。 0.05
Hypothesis

設定檢定方法為:

  • Null(雙尾)
  • RightTail(右尾,其中輸入資料平均值必須大於樣本平均值)
  • LeftTail(左尾,其中輸入資料平均值必須小於樣本平均值)
Null
T-Test


T-Test 參數說明
參數名稱 參數定義 預設值
Mean 設定母體的平均值。 0
SignificanceLevel 設定拒絕虛無假設的範圍,佔常態分佈面積的比例,一般常見設定為 0.1、0.05 或 0.01,設定越小,要拒絕虛無假設就越嚴苛。 0.05
Hypothesis

設定檢定方法為:

  • Null(雙尾)
  • RightTail(右尾,其中輸入資料平均值必須大於樣本平均值)
  • LeftTail(左尾,其中輸入資料平均值必須小於樣本平均值)
Null
Var-Test


Var-Test 參數說明
參數名稱 參數定義 預設值
Variance 設定母體的變異數。 0
SignificanceLevel 設定拒絕虛無假設的範圍,佔常態分佈面積的比例,一般常見設定為 0.1、0.05 或 0.01,設定越小,要拒絕虛無假設就越嚴苛。 0.05
Hypothesis

設定檢定方法為:

  • Null(雙尾)
  • RightTail(右尾,其中輸入資料平均值必須大於樣本平均值)
  • LeftTail(左尾,其中輸入資料平均值必須小於樣本平均值)
Null
Runs-Test


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(右尾,其中輸入資料平均值必須大於樣本平均值)
  • LeftTail(左尾,其中輸入資料平均值必須小於樣本平均值)
Null

範例

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

範例一

  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小於預設值,虛無假設被拒絕,因此推斷單一窗口等待時間的變異數變小。




相關指令

Noise、Square Wave、Basic Statistics

4.9.12 Least Square Fitting*

*Only in Professional*

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

說明

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

回歸曲線種類
回歸曲線種類 方程式 係數說明及單位
Linear
線性回歸
\[y = a_0 + a_1 x\] \(a\): Slope(斜率) [y_unit/x_unit]
\(b\): Intercept(截距) [y_unit]
Polynomial
多項式回歸
\[y = a_0 + a_1 x + \dots + a_k x^k\] \(a_0\): Constant(常數) [y_unit]
\(a_n\): \(n^{th}\) Coefficient (第 \(n\) 係數)[y_unit/x_unit^n]
PowerLaw
冪次回歸
\[y = A x^B\] \(A\): Scale(比例) [y_unit/x_unit^Exponent]
\(B\): Exponent(指數)
Exponential
指數回歸
\[y = e^{a x + b}\] \(a\): Rate(速率) [1/x_unit]
\(b\): Intercept(截距) [y_unit]
Logarithm
對數回歸
\[y = a + b \ln x\] \(a\): Constant(常數) [y_unit]
\(b\): Scale(比例) [y_unit/ln(x_unit)]

上表中 [x_unit] 為 X 訊號的資料單位,在 TimeSeries 模式(見下文說明)下為 Y 資料的時間軸單位;[y_unit] 則為 Y 訊號的資料單位。

以線性回歸為例,用方程式 \(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)。

使用說明

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

  1. TimeSeries(線性回歸方程式為 \(y = a t + b\)

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

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

首先,先決定您想要知道的是 1. 一組數據與時間的關係或是 2.兩組數據之間的關係 ,再依照下列所敘述的方法來連接。

  1. 一組數據與時間的關係:形式為 TimeSeries 。

    將訊號直接與本元件連接,並用【Channel Viewer】來觀看結果。如以下流程圖:

    依照上述流程圖, Viewer 畫出來的圖表中有兩條線,一條為原來的時間序列,另一條為回歸後的曲線(下圖使用線性回歸),經過 Viewer 的編輯後,可以得到下列圖表。

    特別注意當為時間序列時,用【Channel Viewer】來觀看結果,不要用到【XY Plot】。

    欲得知此回歸後的係數,找到屬性視窗中的 View Regression Parameters,或雙擊元件圖示,會開啟如以下的係數報表對話窗(報表對話窗請參考【Reporter】章節說明):

    即可查詢回歸曲線的相關係數。以線性回歸為例,Slope 為斜率,即線性方程式中的係數 \(a\);Intercept 為截距,即線性方程式中的 \(b\)。Error StdDev 為每一數據點與回歸誤差的平均標準差,用來的得知是回歸線之可信度;R square 值為【Coefficient of Determination】,也是用來得知回歸線的可信度,詳見前文及參考資料。

    報表列出的係數及其單位會依照回歸的種類而有所不同。係數的 y_unit 單位為輸入訊號的 Data Unit 單位,如為空白則以 y_unit 顯示;係數如有時間單位則為輸入訊號的時間單位。請參考前文各回歸類別的方程式,係數,及相關單位列表。

    如果時間軸的起始點不為零,或是時間軸為時日軸,或是某些回歸種類不允許時間軸起始點為零(例如對數回歸等),計算係數時可能會需要重設時間軸起始點(請參考後文有關 Enable Time Shift 參數的說明)。報表上的 Parameter Based On 欄位會顯示「Shifted 或 Original Time Axis」,註明計算係數時是根據原始時間座標或是重設後的時間座標。

  2. 兩組數據之間的關係:形式為 XY

    將第一組數據 X 與第二組數據 Y 依序連接至本元件,再將 LeastSquareFit 的結果與數據 X 和 Y 連接至 Merge to Multi-Channel 合併成多通道,最後接入【XY Plot】觀看結果。連接方式如下面的流程圖:

    注意在連接至 ToMulti 時,連接順序必須是 LeastSquareFit, X, Y 或是 X, Y, LeastSquareFit 才能在 XY Plot 圖表中正確的顯示。上述流程範例可經過 XY Plot 的編輯,產生如下圖:

    報表對話窗顯示的線性回歸係數如下:

    係數的 x_unit 單位為第一輸入訊號(即 X 訊號)的 Data Unit 單位,如為空白則以 x_unit 顯示;係數的 y_unit 單位為第二輸入訊號(即 Y 訊號)的 Data Unit 單位,如為空白則以 y_unit 顯示。

以上兩種方式為使用本元件的基本方法。

LeastSquareFit 在判斷要使用 TimesSeries 或 XY 時,是從輸入的數目來判斷。如果只有一個輸入,LeastSquareFit 會將此輸入中每一個通道的時間與數值做回歸,而輸出 \(y = a t + b\) 中的 \(y\),可接至【Channel Viewer】。若有兩個輸入,則第一個輸入為 X,第二組輸入為 Y,使用 XY 方式做回歸後,輸出回歸方程式裡 \(y = a x + b\) 的 x 與 y。若一個輸入含有多通道時,其中 TimeSeries 可以依照前文 1. 中流程圖把每通道中的回歸曲線以及原本數據畫出,但是使用 XY 線性回歸時,兩輸入的第一通道會互相配對做回歸(第二通道互相配對、第三通道互相配對…以此類推),而輸出通道依序為 x1, y1, x2, y2…等等。若要將所有 X-Y 配對之數據以及其回歸曲線畫出,特別注意輸入 XY Plot 的通道順序必須要是 x1, y1, x2, y2,…(即奇數通道與偶數通道配對),才能在圖表中正確顯示。可以參閱【XY Plot】 的說明。

參數說明

本元件接受實數(Real Number),單或多通道(Single or Multiple Channel), Regular 的訊號(Signal)或聲音訊號(Audio)輸入。相關參數說明如下圖表。

回歸元件之參數定義
參數名稱 參數意義 預設值
Fitting Type

選擇回歸種類:

  • Linear:線性回歸
  • Polynomial:多項式回歸
  • PowerLaw:冪次回歸
  • Exponential:指數回歸
  • Logarithmic:對數回歸

因回歸演算法的限制,選擇 PowerLaw X 與 Y 的資料值都必須大於零;選擇 Logarithmic 時,X 的資料值必須大於零。

Linear
View Fitting Parameters 顯示係數報表
Enable Time Shift

在 TimeSeries 回歸模式下,可設定是否重設時間軸的起始點。

此參數可用於時間軸的起始點不為零,或是時間軸為時日軸,或是某些回歸種類不允許時間軸起始點為零(例如對數回歸等)的情況。

計算係數時會根據重設之時間軸計算,此時報表上的 Parameters Based On 欄位會標註是根據 Shifted Time Axis。輸出時則會移回原始時間座標,以便與原始資料比對。

當時間軸為時日(DateTime)軸時本參數強制設定為 True 並隱藏之。計算係數時會先將時日軸轉成數字時間軸,計算完再轉回原始時日軸。

本參數開啟之後會內嵌 Time Shift 元件,其參數設定可參考【Time Shift】章節說明

False
Input Type

顯示輸入類別(即回歸模式):

  • TimeSeries
  • XY

此為根據輸入模式而自動判別,使用者無法自行設定。

FitOrder 選擇多項式回歸時,可用此參數設定多項是最大的次數。次數為 1 時等同線性回歸,多項式的常數即為線性的截距,第一次方的係數則為線性的斜率。 1
X Output Source

選擇輸出 X 資料來源:

  • AutoRegular
  • XInputChannel

XInputChannel 選項取輸入之 X 通道資料來計算新的輸出 Y 值; AutoRegular 選項則自動由輸入之 X 通道資料範圍產生一個遞增的數列來計算新的輸出 Y 值。

AutoRegular

相關指令

Channel ViewerXY PlotMerge To Multi-Channel

參考資料

  1. Coefficient of Determination : http://en.wikipedia.org/wiki/Coefficient_of_determination

  2. http://mathworld.wolfram.com/LeastSquaresFitting.html

4.10 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:將時頻圖的時間軸與頻率軸對換。

  7. Secondary Spectrum:將時頻圖再做一次時頻轉換。

4.10.1 Short-Term Fourier Transform

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

說明

數學式為

\[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)\) 代表了訊號某一時間與頻率上的強度或相位。各窗函數的定義,請參閱【Signal Windowing】元件說明。

窗函數大小(Windows Size)與頻率解析度之間的關係如下:

\[\textit{Window Size} = \frac{f_s}{\delta f}, \quad \textit{Freq Resolution} = 2 \cdot \frac{f_s}{\textit{Window Size}}\]

其中,\(f_s\) 為取樣率(Sample Frequency)。

窗函數設定越長,頻率解析度越小,所以頻率越不確定,時間越確定。窗函數設定的越短,頻率解析度越大,頻率越確定,時間越不確定。

參數設定

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號(Signal )、聲音訊號(Audio)輸入;輸出訊號格式為複數,單通道的時頻(Spectra)資料結構。各參數定義詳如下方圖表。


參數說明
參數名稱 參數定義 預設值
FreqAxis 時頻圖頻率的分佈可以設定為是 LinearAxis(線性尺度)或是 LogAxis(對數尺度),LogAxis 多用於聲音訊號分析 LinearAxis
FreqMin 設定計算時頻資訊之最低頻率 0
FreqMin 設定計算時頻資訊之最高頻率 \(f_s / 2\)
FreqCount 設定計算時頻資訊之頻域格數 256
TimeCount 設定計算時頻資訊之時域格數 2048
Window 在 STFT 分析,進行時間軸的分割時,會利用窗函數進行濾波,此處可選擇不同窗函數。關於各窗函數的定義,請參閱【Signal Windowing】元件說明 Gauss
WindowSize 設定窗函數大小,與頻率解析度成反比,見前文說明 \(f_s / 40\)

與【Fourier Transform】元件類似,本元件有內嵌 Remove DC 元件,可選擇在計算 STFT 之前移除輸入訊號中的直流部分,參數可參考【Remove DC】元件說明。

範例

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

  1. 按下 Network Window 工具列的,或以 Source / Import Data 讀取訊號檔,檔案 chirp1000.tfa 位在安裝目錄下 data 資料夾(預設為 C:\Program Files\AnCad\Visual Signal\demo\Basic)。(類似的鳥鳴訊號也可以用 Source / Advanced / Chirp 元件)


  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,計算時間並未因此縮短。


以下範例使用 Impulse 訊號接上 STFT 示範 Window Size 參數與時域精確度的關係。

  1. 以 Source / Advanced / Impulse 接上 STFT 再接上合適的 Viewer,如下圖:

  2. 將 Impulse 的參數設為位於 0.5s 的單一脈衝(Start = 0.5,SingleImpulse = True),其他參數皆為預設值,如下圖:

    STFT Window Size 參數為 25 的預設值時,時頻圖如下:

  3. 接著將 Window Size 設為 5,可以看到降低 Window Size 時 Frequency Resolution 上升,頻域收斂,但是時域擴散精確度下降,如下圖:

    接著將 Window Size 設為 100,可以看到提高 Window Size 時 Frequency Resolution 下降,頻域擴散,但是時域收斂精確度提高,如下圖:

以下範例使用 Sine Wave 訊號接上 STFT 示範 Window Size 參數與頻域精確度的關係。

  1. 承上,將 Impulse 換成 Source / Sine Wave ,如下圖:

  2. 將 Sine Wave 的頻率設為 200 Hz,其他參數皆為預設值,如下圖:

    STFT Window Size 參數為 25 的預設值時,時頻圖如下:

  3. 接著將 Window Size 設為 5,可以看到降低 Window Size 時 Frequency Resolution 上升,頻域收斂,精確度上升,如下圖:

    接著將 Window Size 設為 100,可以看到提高 Window Size 時 Frequency Resolution 下降,頻域擴散,精確度下降,如下圖:

相關指令

Fourier TransformSignal WindowingRemove DCImpulseSine Wave

參考資料

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

4.10.2 Morlet Transform

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

說明

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

\[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\)


參數設定

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號(Signal )、聲音訊號(Audio)輸入;輸出訊號格式為實數,單通道,Regular 的時頻(Spectra)資料。參數須設定起始與終點位置,其單位等於輸入訊號的時間單位。


參數說明
參數名稱 參數定義 預設值
FreqAxis 時頻圖頻率的分佈可以設定為是 LinearAxis(線性尺度)或是 LogAxis(對數尺度),LogAxis 多用於聲音訊號分析 LinearAxis
FreqMin 設定計算時頻資訊之最低頻率 0
FreqMax 設定計算時頻資訊之最高頻率 \(f_s / 2\)
FreqCount 設定計算時頻資訊之頻域格數 256
TimeCount 設定計算時頻資訊之時域格數 2048

與【STFT】元件一樣,本元件有內嵌 Remove DC 元件,可選擇在計算 STFT 之前移除輸入訊號中的直流部分,參數可參考【Remove DC】元件說明。

範例

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

  1. 按下 Network Window 工具列的,或以 Source / Import Data 讀取訊號檔,檔案 chirp1000.tfa 位在安裝目錄下 data 資料夾(預設為 C:\Program Files\AnCad\Visual Signal\demo\Basic),以 Viewer / Channel Viewer 繪出。(類似的鳥鳴訊號也可以用 Source / Advanced / Chirp 元件)



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



    本元件的演算法可改良以改善高頻發散的問題,請見【Enhanced Morlet】元件說明。

相關指令

Short Term Fourier TransformRemove DCEnhanced Morlet Transform

參考資料

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

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

4.10.3 Enhanced Morlet Transform*

*Only in Professional*

Morlet Transform 的缺點是在高頻部分,由於頻率解析度下降的關係,所以高頻會發散,(請見【Morlet Transform】元件說明)。Enhanced Morlet transform 預先以 Gauss 函數處理,以解決高頻處能量發散的狀況。

說明

在小波轉換之前,會先乘上一個高斯函數,拿掉較邊緣、低振幅的訊號,使高頻解析度增加。此轉換的方程式如下,見 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)\) 使得頻率解析度增加。

參數設定

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號(Signal )、聲音訊號(Audio)輸入;輸出訊號格式為實數,單通道,Regular 的時頻(Spectra)資料。各參數定義詳如下表。


參數說明
參數名稱 參數定義 預設值
FreqAxis 時頻圖頻率的分佈可以設定為是 LinearAxis(線性尺度)或是 LogAxis(對數尺度),LogAxis 多用於聲音訊號分析 LinearAxis
FreqMin 設定計算時頻資訊之最低頻率 0
FreqMax 設定計算時頻資訊之最高頻率 \(f_s / 2\)
OverlappedFactor Gaussian window 移動時之重疊量,即為原式的 \(\sigma\) 1
FreqCount 設定計算時頻資訊之頻域格數 256
TimeCount 設定計算時頻資訊之時域格數 2048

與【STFT】元件一樣,本元件有內嵌 Remove DC 元件,可選擇在計算 STFT 之前移除輸入訊號中的直流部分,參數可參考【Remove DC】元件說明。

範例

以下範例為一個鳥鳴訊號(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 來的好。



相關指令

Short Term Fourier TransformMorlet TransformRemove DC

參考資料

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

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

4.10.4 Hilbert Spectrum

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

說明

在此模組內,包含了兩種 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\text{,}\]

其中 \(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。

參數設定

本模組接受實數(Real Number),單通道(Single Channel)或多通道(Multi-Channel ),Regular 的訊號(Signal)、聲音訊號(Audio)輸入;輸出訊號格式為實數,單通道,Regular 的時頻(Spectra)資料。參數定義整理如下。


參數說明
參數名稱 參數定義 預設值
Method

選擇 Hilbert Spectrum 計算的方法:

  • HilbertSpectrum:使用傳統的 Hilbert Transform
  • ByEnvelope:為逸奇科技自行開發之方法,利用訊號包絡線當作瞬時振福求得正交分量
HilbertSpectrum
FreqAxis 時頻圖頻率的分佈可以設定為是 LinearAxis(線性尺度)或是 LogAxis(對數尺度),LogAxis 多用於聲音訊號分析 LinearAxis
FreqMin 顯示 Hilbert Spectrum 時設定的最小頻率 0
FreqMax 顯示 Hilbert Spectrum 時設定的最大頻率 Sample frequency / 2
FreqCount 設定 Hilbert Spectrum 於頻率之離散網格數 256
TimeCount 設定 Hilbert Spectrum 於時間之離散網格數 1024
Inst. Freq. Method

計算瞬時頻率的方法(請參考微分【Diff】元件):

  • Simple:簡單微分法:\(df = (f(t+dt) - f(t))/dt\)
  • Robust:可由調整濾波器長度(FilterLength)有效抑制雜訊影響微分
Simple
Filter Length 瞬時頻率方法選擇 Robust 時,可設定濾波器長度,為數值微分的取樣點數,表示由多少離散函數點來決定此點的微分值;需為介於 5~999 間,並小於訊號長度的奇數 51
Smoothing 因 Hilbert Spectrum 為離散之數值, Smoothing 是利用 Gaussian 函數使其平滑 True

範例

  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 / RCADA EEMD 計算出 IMF(Intrinsic Mode Function),再以 Viewer / Channel Viewer 繪出。



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


  4. RCADA 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 進行時頻計算。






相關指令

RCADA EEMDIMF PropertiesHaar TransformDiff

參考資料

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

4.10.5 Marginal Time / Marginal Frequency

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

說明

在已處理過時頻分析的訊號,\(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)\) 將與做傅立葉轉換無異。

參數設定

本模組接受實數(Real Number)、複數(Complex Number),單通道(Single Channel),Regular 的時頻(Spectra)資料輸入;輸出訊號格式為實數,單通道,Regular 的訊號(Signal)。


Marginal 參數
參數名稱 參數定義 預設值
MarginalMethod

選擇時頻資訊在時間軸/頻率軸積分時針對複數陣列的處理方法:

  • Complex(複數)
  • Magnitude(絕對值)
  • RealPart(實部)
  • ImagPart(虛部)
  • Powerspectrum(頻譜功率)

選項詳細說明請見下面表格,或【Convert From Complex】元件說明

Magnitude
IntegrationMethod

選擇積分方法:

  • CumulativeSum(累積和)
  • Simple(長方形法)
  • Trapezoidal(梯形法)
  • Simpson(辛普森法)。
  • FFT (FFT 法)

選項詳細說明請見【Integrate】元件說明

CumulativeSum
Normalize

設定是否將積分規一化:

  • Marginal Time:積分頻率軸時後除頻率軸長度
  • Marginal Freq:積分時間軸時後除時間軸長度


False
True
Marginal Method 選項
選項名稱 選項定義
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\]

範例

範例以聲音訊號 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 Transform(FreqCount 設為預設的兩倍:256),再以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,其計算結果之橫軸為頻率,縱軸為振幅。



相關指令

Short-Term Fourier TransformEnhanced Morlet TransformConvert From ComplexIntegrate

4.10.6 Transpose Spectra

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

參數設定

本模組接受實數(Real Number)、複數(Complex Number),單通道(Single Channel),Regular 的時頻(Spectra)資料輸入

範例

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



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


相關指令

OrderSpectrogram by STFT、OrderSpectrogram by EnMorlet、STFT

4.10.7 Secogram

Secogram 為二次頻譜(Secondary Spectrum)的縮寫,將經過時頻分析(TFA)的時頻資料再做一次 FFT 轉換,可看出原始訊號中每個基頻出現的頻率分布。

說明

假設一原始訊號經過時頻分析後得出一時頻陣列:

\[TFA[x(t)] = X(t, f)\]

其中 \(x(t)\) 是輸入訊號,\(t\) 為時間,\(f\) 為頻率。此訊號可以視為是一組不同基頻的時域訊號序列:

\[X(t, f) = X_F(t) = \{X_{f_0}(t), X_{f_1}(t), X_{f_2}(t) \dots X_{f_{N-1}}(t)\}\]

其中 \(F = \{f_0, f_1, f_2, \dots f_{N-1}\}\)\(N\) 為時頻陣列的頻率網格數(例如 STFT 中的 FreqCount 參數)。如果再針對每一個 \(X_{f}(t)\) 做 FFT 則可得二次頻譜:

\[\begin{aligned} S(f', f) &= \{FFT[X_{f_0}(t)], FFT[X_{f_1}(t)], \dots FFT[X_{f_{N-1}}(t)]\}\\ &= \{X'_{f_0}(f'), X'_{f_1}(f'), \dots X'_{f_{N-1}}(f')\} \end{aligned}\]

因為時頻陣列 \(X\) 可能為複數,因此在做 FFT 前可先轉換為實數,接著也可選擇取對數後再做 FFT(見下面 LogMode 參數說明)。

參數設定

本模組接受時頻訊號,輸出訊號格式為複數、單通道的時頻 (Spectra)資料結構。各參數定義詳如下表。

Secogram 參數
參數名稱 參數說明 預設值
LogMode

設定在 FFT 前對時頻圖計算對數模式:

  • None (不做對數計算)
  • Magnitude(取複數的絕對值後再取對數)
  • Phase(取複數的相位值再取對數)
  • Unwrapped Phase(同上,過 \(360^\circ\) 不歸零)

以上可參考【Convert From Complex】元件說明

None
SortType

選擇輸出統計報表中,各通道排序的依據:

  • MaxAmplitude(以頻譜最大值排列)
  • Energy(以頻譜總能量排列)
Energy
TopN 設定輸出統計報表中顯示的通道數量 10
View Output Information 顯示輸出統計報表。按下右邊Dots,或雙擊元件圖示,可開啟【Reporter】視窗顯示輸出統計報表。

本元件嵌入了 FFT 元件,而 FFT 元件同時也嵌入了 Remove DC 以及 Windowing 元件,因此本元件還包括了所有嵌入元件的相關參數。詳情請參考 【FFT】、【[Remvoe DC]】、【Windowing】等元件說明。

範例

  1. 載入一雙通道音訊檔「鋼琴版小星星教學」(可由下面參考資料中之連結取得),接上 Compute / Channel / Channel Switch 和 Viewer / Channel Viewer,再用 TFA / Short Term Fourier Transform 或 Enhanced / Fast Short Term Fourier Transform 計算時頻圖(本範例使用 Fast Short Term Fourier Transform),並用 Viewer / Time-Frequency Viewer 顯示之,在 Fast Short Term Fourier Transform 後再接上 Compute / TFA / Secogram,同樣也以 Viewer / Time-Frequency Viewer 顯示。

  2. 「鋼琴版小星星教學」音訊檔如下,此檔案為使用鋼琴彈奏單音版的歌曲「小星星」。

  3. Fast Short Term Fourier Transform (或 Short Term Fourier Transform)參數設定如下

  4. Time-Frequency Viewer 參數設定如下:

  5. 原始訊號經由 Fast Short Term Fourier Transform 或 Short Term Fourier Transform 計算並調整參數,即可得到下列時頻圖;深紅色的方塊為該時間點出現的音階(紅框處),其中不同的音階可用不同的頻率表示,從下圖可看出原始訊號的頻率大部分在 500Hz以下;較高頻率的地方(例如 1000Hz 到 2000Hz 之間),也有部分訊號,此為主訊號的倍頻。

  6. 將上述的時頻數據做二次頻譜計算(即 Secogram),可得到下面的時頻圖,縱軸同樣為組成原始訊號的頻率,橫軸則為特定訊號在原始訊號中出現的頻率。Secogram 可統計出每個音階在整首歌曲出現的頻率,由下圖可深紅色區塊分布在橫軸 0 到 10Hz 之間,表示歌曲中的音階最多每 10 秒會重複一次。

相關指令

FFTSTFTFast STFTTime-Frequency ViewerConvert From ComplexRemove DCWindowing

參考資料

鋼琴版小星星教學:https://www.youtube.com/watch?v=4WwZCnLSMIc

4.11 Transform

本模組為提供各種訊號處理常用之轉換運算。

  1. Fourier Transform / Inverse Fourier Transform:傅立葉轉換與反轉換。

  2. Discrete Cosine Transform / Inverse Discrete Cosine Transform:離散餘弦轉換與反轉換。

  3. Haar Wavelet Transform / Inverse Haar Wavelet Transform:小波轉換中的Haar 轉換及反轉換。

  4. Hilbert Transform / Inverse Hilbert Transform:Hilbert轉換與反轉換。

  5. Auto Correlation:計算訊號的自相關性。

  6. Cross Correlation:計算訊號的互相關性。

  7. Multi-Scale Entropy(MSE):計算訊號之多尺度熵。

  8. Coherence:計算兩組訊號間之同調性。

  9. Signal Windowing:計算原始訊號乘上窗函數之轉換。

4.11.1 Fourier Transform and Inverse Fourier Transform

傅立葉轉換為將時間訊號轉換為頻率之訊號,藉此檢視訊號內之的頻率與振幅分佈,其結果可以用傅立葉反轉換計算回原始的時間訊號。此理論廣泛的應用於通信、聲音訊號、系統分析以及自然科學等領域。

說明

\(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)以降低洩漏效應。

在離散傅立葉轉換,Resolution 參數可用以增加頻率上的解析度。訊號長度越長,訊號的周期性越明確,所以增大 Resolution 可以增加訊號長度,可以增加頻率上的解析度。

參數設定

傅立葉轉換 FFT 元件接受實數(Real Number),單或多通道(Single/Multi-Channel), Regular 的訊號(Signal)、聲音訊號(Audio)輸入;輸出格式為複數,單或多通道, Regular 的訊號(Signal)。參數定義與相關設定如下。


FFT 參數說明
參數名稱 參數定義 預設值
Min 設定傅立葉轉換的頻率下限。 0
Max 設定傅立葉轉換的頻率上限,大小依輸入訊號不同而異。 auto
Resolution 調整傅立葉轉換時採用之解析度,意思為將整個資料列重複接續在原資料後面。如原資料數列為 1-100,若將 Resolution 設為 2,既為第 101 個數列值同第一個,第 102 個數列值同第二個,以此類推,持續至 200。 1
Power of 2 設定是否將輸入訊號補零至最接近的 \(2^n\) 長度,計算傅立葉轉換時可用較有效率的 FFT 演算法。 False
Normalize 設定是否將轉換結果以資料長度常規化。 True
Full FFT 因為傅立葉轉換結果為對稱,因此通常只輸出一半的資料,頻譜最高頻率為取樣率的一半(Nyquist 頻率)。在某些運算可能會需要完整的頻譜,可用此參數設定是否輸出完整的轉換結果。 False

Remove DC 相關參數請參考【Remove DC】章節說明,Windowing Function 相關參數請參考【Signal Windowing】 章節說明。

反轉換 IFFT 元件接受實數/複數(Real/Complex Number),單或多通道(Single/Multi-Channel),Regular 的訊號(Signal)輸入;輸出格式為實數,單或多通道,Regular 的訊號(Signal)。

傅立葉反轉換不需要參數設定。FFT 元件會將所設定的一些參數一起包在輸出頻譜資料裡面送到下游元件,因此在執行 IFFT 會自動讀取這些參數並做出相應的調整,盡量合理還原原來的時域訊號。

範例

本範例(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 輸出,即可得到原輸入訊號。



相關指令

Short-Term Fourier TransformHaar Wavelet Transform

參考

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

4.11.2 Discrete Cosine Transform and Inverse Cosine Transform

Discrete Cosine Transform(以下簡稱 DCT)離散餘弦轉換,可將訊號轉換為由 Cosine 構成的序列,類似於作離散傅立葉轉換的實數部份;訊號轉換後大部份能量分佈於低頻處。其應用在音訊或影像方面的壓縮,以及求解偏微分方程的數值方法。

說明

常見的離散餘弦轉換可概分八種不同類型,本模組採用的是第二型。令 \(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}\]

參數設定

離散餘弦轉換 DCT 元件接受實數(Real Number),單或多通道(Single/Multi-Channel),Regular 的訊號(Signal)、聲音訊號(Audio)輸入;輸出格式為實數,單或多通道,Regular 的訊號(Signal)。離散餘弦轉換其參數設定如下。

主要調整參數為 RemoveDC 與窗函數等設定。此兩者為內嵌元件:RemoveDC 可移除訊號的直流部分,參數設定可參考【Remove DC】章節說明;窗函數可降低洩漏效應對轉換的影響,參數設定可參考【Signal Windowing】章節說明。

反轉換 IDCT 元件接受實數(Real Number),單或多通道(Single/Multi-Channel), Regular 的訊號(Signal)輸入;輸出格式為實數,單或多通道,Regular 的訊號(Signal)。反轉換無設定參數。

範例

本範例(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,即轉換回原訊號。



相關指令

Fourier TransformChannel Viewer

參考

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

4.11.3 Haar Wavelet Transform

Haar Wavelet 是首先發表的小波函式,由 Alfréd Haar 所提出,小波理論也自此發展。 Haar Wavelet 是最簡單的小波,但由於不是連續函數,所以作為基本小波,性能並不是特別好。但 Haar 小波是最簡單的正交小波,為二進小波變換的基礎,仍有其存在的價值。

說明

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}\]


參數設定

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號(Signal )、聲音訊號(Audio)輸入;輸出格式為實數,多通道,Regular 的訊號(Signal)。參數說明詳見下表。

參數說明
參數名稱 參數定義 預設值
Filter Bank Level 設定正交基底數,從零開始。1 是兩組基底,5 是六組基底,以此類推 1
Resampling Method 對輸入訊號重新取樣時,補點之方法,選項有:最近點(Nearest)、線性(Linear)、曲線逼近(Spline)及 MonotonicCubic。請參考【Resampling】章節說明 Linear

RemoveDC 為內嵌元件,可移除訊號的直流部分,參數設定可參考【Remove DC】章節說明。

範例

  1. 製造一個方波全採用預設值,再疊加上一 White Noise 並設 Noise 振幅為 0.2。



  2. 將此混合後之訊號接上 Compute / Transform / Haar Transform,並設定 Filter Bank level 為 3:


    明顯方波的特性集中在第四條,而在原方波不連續點處,第二與三條依然強烈地保留此跳躍特性,高頻雜訊大多集中在第一條。

  3. 將第二與第三訊號相乘,以縮小雜訊所造成的影響,再與第四條相加。



    如此處理,可見雜訊被消除,原方波的特性被保留下來。

  4. 類似於 EMD,可將 HaarTransform 後的結果經由 Hilbert Spectrum 處理,即可看到時頻圖:



相關指令

MixerMultiplierFourier TransformHilbert Spectrum

參考

http://amath.colorado.edu/courses/4720/2000Spr/Labs/Haar/haar.html

4.11.4 Inverse Haar Transform

Inverse Haar Transform 為 Haar Transform 的反轉換,可還原經由 Haar Transform 處理過的原始訊號。

說明

Haar Transform 為小波轉換的一種型態,任意之訊號皆可由小波轉換之基底的線性組合所合成,而小波轉換即是算出此訊號中,所含有的每一個基底的分量,而 Inverse Haar Transform 即為由每一個基底的分量,轉換回訊號,此概念與傅立葉轉換及反轉換類似。小波轉換的基底在一維時,具有時間與頻率的資訊,在二維時,具有空間位置和頻率的資訊。

Haar Wavelet 的母小波可由以下函式表示:

\[ \psi (t)= \begin{cases} 1, 0\leq t \leq \frac{1}{2}\\\\ -1, \frac{1}{2} \leq t \leq 1 \\\\ 0, otherwise\end{cases} \]

Haar Function 在離散時域的定義如下:

\[ \psi_{j,k} (t) \equiv \psi (2^jt-k), t \in \mathbb{R}\]

其中 j 為非負整數以及 \[ 0\leq k\leq 2^{j}-1 \],如

\[ \psi_{0,0} (t) = \psi (t) \] \[ \psi_{1,0} (t) = \psi (2t) \] \[ \psi_{1,1} (t) = \psi (2t-1) \] \[ \psi_{2,0} (t) = \psi (4t) \]

因此可將一訊號源 \(f(t)\) 以 Haar Function 展開表示成

\[ f(t) = c_0 + \sum_{j=0}^{\infty} \sum_{k=0}^{2^j-1} c_{j,k} \psi_{j,k} (t)\]

由以上數學定義,可列出不同維度(dimension)的 Haar Matrix:

當我們要對一時域訊號計算 Haar Transform 時,需將此訊號乘上相同維度(dimension)的 Haar Matrix 和其反矩陣,數學式如下:

\[ B=HAH^T \]

其中 \(A\) 是原始訊號,\(B\) 是經過 Haar Transform 計算後的新訊號,\(H\) 即為 Haar Matrix,\(H^T\) 則為 Haar Matrix 的轉置矩陣(\(HH^T=1\))。

當我們想從 \(B\) 逆推回 \(A\),則需對 \(B\) 計算 Inverse Haar Trasform,數學式如下:

\[ A=H^TBH \]

訊號 \(B\) 經由 Inverse Haar Transform 的處理,即可得到原始訊號 \(A\)

參數設定

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

參數說明
參數名稱 參數定義 預設值
Resampling Method 對輸入訊號重新取樣時,補點之方法,選項有:最近點(Nearest)、線性(Linear)、曲線逼近(Spline)及 MonotonicCubic。請參考【Resampling】章節說明 Linear

範例

  1. 在 Network 視窗,從 Source 新增訊號源 Sine Wave,接上 Haar Transform (位於 Compute/Transform/Haar Transform),並各自以 Channel Viewer 顯示(流程圖和 Haar Transform 參數設定如下)。

  2. Sine Wave 的參數使用預設值(Frequency=10,Amplitude=1),經由 Haar Transform 計算後得到一組雙通道的新訊號,圖形如下:

  3. 在 Haar Transform 後接上 Inverse Haar Transform (位於 Compute/Transform),再以 Channel Viewer 顯示(Inverse Haar Transform 參數設定: ResamplingMethod=Linear)

  4. 下圖為經由 Inverse Haar Transform 還原的 Sine Wave。

相關指令

Haar Wavelet Transform

參考資料

1. https://zh.wikipedia.org/wiki/%E5%93%88%E7%88%BE%E5%B0%8F%E6%B3%A2%E8%BD%89%E6%8F%9B

2. https://en.wikipedia.org/wiki/Haar_wavelet#Haar_transform_and_Inverse_Haar_transform

3. http://silverwind1982.pixnet.net/blog/post/125107214-%E5%B0%8F%E6%B3%A2%E8%BD%89%E6%8F%9B-%28wavelet-transform%29

4. http://mathworld.wolfram.com/HaarFunction.html

4.11.5 Hilbert Transform

Hilbert Transform 為對輸入訊號 \(x(t)\)\(\frac{1}{\pi t}\) 作折積(即 Convolution),將一個實數的時間訊號轉換為一個複數平面上的解析訊號,而它的實部為輸入訊號,虛部則是對輸入訊號做折積後的部份,根據解析訊號的性質可定義出訊號瞬時的瞬時頻率、瞬時振幅,其應用在通訊系統及無線電訊號處理及分析上有相當不錯的成果。

說明

\(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)}\text{,}\\ a(t) = \sqrt{x^2(t) + y^2(t)}\text{,} \theta(t) = \tan^{-1}\frac{y(t)}{x(t)}\text{。}\]

其中 \(a(t)\) 為振幅 (亦原訊號之包絡線),而 \(\theta(t)\) 為相角;在解析函數 \(z(t)\) 的極座標表示中,可進一步定義 Hilbert Transform 的瞬時頻率 \(\omega(t)\)( instantaneous frequency):

\[\omega(t) = \frac{d\theta(t)}{dt}\text{。}\]

除此之介紹外,可參考【Hilbert Spectrum】章節說明。

參數設定

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

參數說明
參數名稱 參數定義 預設值
Method

選擇轉換的方法:

  • HilbertTransform:上述之 Hilbert 轉換積分法
  • ByEnvelope:利用包絡線當作瞬時振幅求得正交分量
HilbertTransform
Output Type

選擇轉換結果呈現的格式,選項有:

  • Quadrature:輸出 Hilbert 轉換的積分結果,亦即解析訊號 Z 之虛部
  • Complex:輸出解析訊號 Z,資料儲存為複數
  • SplitComplex:將解析訊號 Z 的實部 X 與虛部 Y 分作兩個通道,儲存其數值大小
  • Phase:解析訊號 Z 的相位角 \(\theta(t)\) 對應各時間點的值(介於 \(-180^\circ \sim 180^\circ\) 度之間)
  • Unwrapped Phase:解析訊號 Z 的相位角 \(\theta(t)\) 對應各時間點的值(過 \(360^\circ\) 後不歸零)
  • InstantAmplitude:解析訊號 Z 的振幅 \(a(t)\) 對應各時間點的值
  • InstantFrequency:解析訊號 Z 的相位角 \(\theta(t)\) 對時間的微分,既瞬時頻率 \(\omega(t)\)
Quadrature
Inst. Freq. Method

輸出格式選擇 InstantFrequency 時,可選擇計算瞬時頻率的方法:

  • Simple:簡單微分法:\(df = (f(t+dt) - f(t))/dt\)
  • Robust:可由調整濾波器長度(FilterLength)有效抑制雜訊影響微分
Robust
Filter Length 瞬時頻率方法選擇 Robust 時,可設定濾波器長度,為數值微分的取樣點數,表示由多少離散函數點來決定此點的微分值;需為介於 5~999 間,並小於訊號長度的奇數 51

RemoveDC 為內嵌元件,可移除訊號的直流部分,參數設定可參考【Remove DC】章節說明。

範例

用 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^\circ\) 的相位偏移(Phase Shift)。

  3. 重覆步驟 2 的作法,僅改變 Output Type 為 InstantFrequency,Inst. Freq. Method 設定為 Simple,圖示名稱也改為Instant Frequency,結果為輸入訊號在每個時間點上的瞬間頻率。

  4. Channel Viewer 不能繪出解析函數 Z(t) 在複數平面的圖型,必需使用 Viewer / XY Plot 的功能。將 Split Complex 的輸出用 Viewer / XY Plot 即可繪出解析函數 Z(t) 在複數平面的圖型,改變 XY Plot 的 ViewerWidth 與 ViewerHeight 為相等的數值(如 350),就能使 X Y 軸的比例一樣。

相關指令

XY PlotHilbert Spectrum

參考資料

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

4.11.6 Auto Correlation

自相關性就是一個時間訊號與它自身作折積(Convolution),以作為相關性分析之依據,自我相關性分析可瞭解一個訊號在時間尺度上改變的有多快,及觀察訊號是否有週期性的變化。

說明

如果訊號為遍歷訊號(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 函式庫的公式,有三種類可選(Normal、Biased、Unbiased):

\[R_{XX}[j] = \sum_{i=0}^{N-1} x^*_i x_{i+j}, \quad 0 \leq j < N \quad \text{(normal)},\] \[R_{XX}[j] = \frac{1}{N} \sum_{i=0}^{N-1} x^*_i x_{i+j}, \quad 0 \leq j < N \quad \text{(biased)},\] \[R_{XX}[j] = \frac{1}{N-j} \sum_{i=0}^{N-1} x^*_i x_{i+j}, \quad 0 \leq j < N \quad \text{(unbiased)},\]

並加以鏡像對稱化,即

\[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]\) 為對稱點。

參數設定

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號(Signal )、聲音訊號(Audio)輸入;輸出訊號格式為實數,單通道,Regular 的訊號。

本元件唯一參數為類別參數(Type)可選擇 Normal、Biased、Unbiased 三種自相關性(見上面說明方程式)。

範例

本範例分別對 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 混合後作自我相關分析,可得到下面的結果:


相關指令

Cross CorrelationMixer

參考

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

4.11.7 CrossCorrelation

CrossCorrelation,交互關聯是將一時間訊號與另一時間訊號作旋積(Convolution),以作為相關性分析之依據;通常將不了解的訊號與一已知性質的訊號作交叉相關分析,藉此探求該訊號之特性。

說明

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\) 訊號的延遲時間。

參數設定

本模組接受實數(Real Number),單通道(Single Channel),Regular 的訊號(Signal )、聲音訊號(Audio)輸入,且須有兩個輸入訊號;輸出訊號格式為實數,單通道, Regular 的訊號。輸入兩個訊號長(可以不一樣,不過限制是兩訊號的取樣頻率與時間單位必須一樣)。

本元件唯一參數為交互相關參數報告 Reporter。點擊欄位最右方Dots或雙擊元件圖示即可開啟 Reporter 對話窗顯示兩個輸入各通道的相對延遲時間,如下圖:

有關 Reporter 對話窗可參考【Reporter】章節說明。

範例

先產生一組 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 秒的資料是完全一樣的,此結果符合兩輸入訊號的特性。

相關指令

Auto CorrelationData SelectionMixerTime Shift

4.11.8 MSE

MSE 是 Multi-Scale Entropy(多尺度熵)之縮寫,是分析系統的時間序列的複雜度。複雜度越高代表系統愈健康。此法可應用於分析生物(biological)、地球科學(earth science)及機械振動(mechanical vibration)的訊號。

此複雜度的意義與傳統熵(Entropy)值有所不同;在傳統熵值觀念中若系統愈規則熵值愈低反之系統愈混亂熵值愈高。在新的観念中,複雜度愈高代表系統愈健康(在此高低是相對量),系統太規則或系統太混亂都是不健康的狀況(因為此時複雜度較健康系統低)。將每個尺度的時間序列,計算出對應的熵值,即為多尺度訊號熵分析,訊號的複雜度則展現在多種尺度下熵值的變化。

計算多尺度熵有兩個步驟:

1. Coarse-Graining

假設有一數列 \(x_i = \{x_0, x_1, \dots, x_{N-1}\}\),在尺度(scale)為\(\tau\) 下,用 Coarse-Graining 方法得出一個新序列 \(y_j^{(\tau)}\),定義如下:

\[y_j^{(\tau)} = \frac{1}{\tau} \sum_{i=j\tau}^{(j+1)\tau-1} x_i, \quad 0 \leq j < n \equiv \frac{N}{\tau}\]

Coarse-Grained 數列 \(y_j^{(\tau)}\) 中每個點即為在尺度 \(\tau\) 下每段「Coarse-Grain」\(\{x_{j\tau}, x_{j\tau + 1}, \dots, x_{(j+1)\tau - 1}\}\) 之平均數,如下圖:

2. Entropy

接著對每個尺度 \(\tau\) 下的 Coarse-Grained 數列 \(y^{(\tau)}\) 計算 Entropy (\(En_{\tau}\)),得出一個 Entropy vs. \(\tau\) 序列:

\[En_{\tau} = \{En_1, En_2, \dots, En_T\}, \quad T \equiv \text{max. scale} < N\]

本模組中 Entropy 的計算的有四種選擇:

Shannon

Shannon Entropy 為最基本的熵定義:

\[ S_{En}^{(\tau)}(h) = -\sum_{i=0}^{h - 1} p_i^{(\tau)} \log_2 p_i^{(\tau)} \]

\(p^{(\tau)}\) 定義為 Coarse-Grained 數列 \(y^{(\tau)}\) 之常規化分布統計數列,亦即概率分布:

\[p^{(\tau)} = \{p_0, p_1, p_2, \dots, p_{h-1}\}, \quad 0 \leq i < h\]

計算方法可將 \(y^{(\tau)}\) 數列由 \(y_{min}\)\(y_{max}\) 的數值範圍分割為 \(h\) 個分格,每一個分格統計 \(y^{(\tau)}\) 數列在該分格數值範圍的數目,再除以數列長度 \(n\)

Spectral

Spectral Entropy 利用 Coarse-Grained 數列 \(y^{(\tau)}\) 的 Power Spectrum 頻譜,以其頻譜總和常規化後當作概率分布 \(p^{(\tau)}\),再用上述 Shannon Entropy 定義計算出每個尺度 \(\tau\) 的熵值。上式之 \(h\) 在這裡定義為頻譜之頻率分格數。

Approximate

\[A_{En}^{(\tau)}(m, r, n) = \frac{1}{(n-m)} \ln \displaystyle\sum_{i=0}^{n-m-1} \ln \frac{n_i^m}{n_i^{m+1}}\]

\(n_i^m\) 為 Coarse-Grained 數列 \(y^{(\tau)}\) 中所有距離很接近之長度為 \(m\) 的子數列向量數目,定義如下:

數列 \(y^{(\tau)}\) 中由 \(i\) 開始,長度 \(m\) 之子數列向量定義為

\[u_m(i) = \{y_i, y_{i+1}, \dots, y_{i + m-1}\},\quad 0 \leq i < n - m, \quad m < n\]

兩個子數列 \(u_m(i), u_m(j)\) 之間的距離定義為

\[d[u_m(i),u_m(j)] = \max\{|u(i+k)-u(j+k)|\}, \quad 0 \leq k < m\]

\(n_i^m\) 定義為滿足以下條件之的子向量數目:

\[d[u_m(i), u_m(j)] \leq r \cdot \sigma\]

其中 \(r\) 為容忍誤差值,\(\sigma\) 為輸入資料標準差。

Sample

Sample Entropy 改良於上述 Approximate Entropy,使計算出的熵值在大範圍的 \(r\), \(m\), \(n\) 變數中更有一致性,因此可以用更短的數列長度增加計算效率。Sample Entropy 定義如下:

\[S_{En}^{(\tau)}(m, r, n) = \ln \frac{\displaystyle\sum_{i=0}^{n-m-1} n_i^m}{\displaystyle\sum_{i=0}^{n-m-1} n_i^{m+1}}\]

此處 \(n_i^m\) 定義與上述雷同,唯一不同處為在比較子數列向量之間的距離時忽略同一向量,即 \(i = j\) 的情況。

參數設定

本模組接受實數(Real Number),單通道(Single Channel)或多通道(Multi-Channel ),Regular 的訊號(Signal)、聲音訊號(Audio)輸入;輸出訊號格式為實數,單通道或多通道,Regular 的訊號。參數說明詳見下表。

參數說明
參數名稱 參數定義 預設值
Entropy Method

選擇熵的計算方法(見上文說明):

  • Sample
  • Approximate
  • Spectral
  • Shannon
Sample
MinScale 最小尺度。作多尺度分析時設定尺度縮放之下限值 1
MaxScale 最大尺度。作多尺度分析時設定尺度縮放之上限值 20
ScaleStep 尺度步長,於尺度上限以下取一步幅長,依此步幅長遞增(減)尺度至最大(小)尺度。 1
MatchPoint Entropy Method 設定為 Sample 或 Approximate 時,可設定比較相似度之數列長度,即上述相關定義中之 \(m\) 2
MatchTolerance Entropy Method 設定為 Sample 或 Approximate 時,可設定判斷相似度所設定的容忍誤差值,即上述相關定義中的 \(r\),單位為輸入資料之標準差 0.15
BinCount Entropy Method 設定為 Shannon 時,可設定計算概率之分格數,即上述相關定義中的 \(h\) 10
Eable Composite MSE 設定是否開啟組合式 MSE,即加入少量白噪音多次重複計算 MSE 後合併結果,可用較少的資料得出較平滑的 MSE 結果 False

範例

本範例針對人體生理訊號為分析:

  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 作比較,年輕人的訊號複雜度較中年人來的高,年輕人心臟比較能應付外在各種變化,並進行調節心臟跳動。


相關指令

NoiseR-R IntervalChannel Viewer

參考資料

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.

4.11.9 Coherence

同調性(Coherence)用於評估兩組訊號間頻率之相關性。輸入為兩組相同時序與取樣頻率之訊號,輸出為頻率之函數,其數值介於 0 與 1 之間。

說明

給定兩時域訊號 \(x(t)\)\(y(t)\),Coherence 數學定義:

\[C_{xy}(f)=\frac{|G_{xy}(f)|^2}{G_{xx}(f)G_{yy}(f)}\]

  1. \(G_{xx}(f)\)\(G_{yy}(f)\) 各為 \(x\)\(y\) 的功率譜密度 (power spectral density, PSD), \(G_{xy}(f)\)\(x\)\(y\) 的交叉譜密度 (cross-spectral density)。

  2. \(0 \leq C_{xy}(f) \leq 1\)\(0\) 為完全不同調,\(1\) 為完全同調。

參數設定

本模組接受實數 (Real Number),單通道 (Single Channel) 或多通道 (Multi-Channel) ,Regular 的訊號 (Signal) 或聲音訊號 (Audio) 輸入。輸出為以頻率為函數之 Coherence 值。

主要調整參數為 RemoveDC、滾動窗計算、與窗函數等設定。此三者為內嵌元件:RemoveDC 可移除訊號的直流部分,每個輸入各有一個 RemoveDC 欄位可分別設定,參數設定可參考【Remove DC】章節說明;滾動窗計算參數可參考【Rolling Window】章節說明;窗函數應用於每個滾動窗,可降低洩漏效應對轉換的影響,參數設定可參考【Signal Windowing】章節說明。

範例

建立兩正弦波,並以 Coherence 進行分析。

  1. 以 Source / Sine Wave 建立正弦波,調整 Property / SingalFreq 為 100,而得頻率為 100Hz 之正弦波。

  2. 點選 Sine 按右鍵選擇 Compute / Transform / FFT Viewer Marco,以頻譜圖示意其正弦波之頻率。

  3. 重複 1. 至 2. 步驟,產生一頻率為 200Hz 之正弦波與其頻譜圖。

  4. 點選 100Hz 之 Sine 訊號源按右鍵選擇 Compute / Transform / Coherence,並將 200 Hz 之 Sine 訊號源與 Cohere 連結。

  5. 點選 Cohere 按右鍵選擇 Viwer / Channel Viewer,顯示 Coherence 之結果。

觀察結果可發現於 100Hz 及 200Hz 之 Coherence 值接近於 0,表示兩組訊號於此頻率為不同調;而其它頻段之 Coherence 值為 1,表示兩組訊號於其它頻率為同調。因此兩組訊號僅分別為 100Hz 及 200Hz,而無其他頻率存在,故在其它頻段皆為同調。

參考資料

1. https://en.wikipedia.org/wiki/Coherence_(signal_processing)

1. http://www.ym.edu.tw/~cflu/MedSigProcess_Class10_CFLu.pdf

1. https://www.mathworks.com/examples/signal/mw/signal-ex53096804-coherence-function

4.11.10 Signal Windowing

Signal Windowing是指在定義的有限時間區間內,將原始訊號乘上一個特定形式的窗函數 (Window Function),以便後續做訊號處理,任何函數與窗函數之積仍為窗函數。窗函數在頻譜分析、濾波器設計、波束形成以及音頻數據壓縮等方面有廣泛的應用。

說明

Signal Windowing提供”None”、“Barlett”、“Blackman”、“Flat Top”、“Hanning”、 “Hamming”、“Guass”七種窗函數可選擇,定義與圖形如下說明:

  1. None:

    \[w[n]=1, 0 \leq n \leq N-1\]

    \[w[n]=0, otherwise\]

  2. Barlett:

    \[w[n]=\frac{2n}{N-1}, 0 \leq n \leq \frac{N-1}{2}\]

    \[w[n]=2-\frac{2n}{N-1}, \frac{N-1}{2} \leq n \leq N-1\]

    \[w[n]=0, otherwise\]

  3. Blackman:

    \[w[n]=\frac{\alpha-1}{2}-\frac{1}{2} cos(\frac{2 \pi n}{N-1})+\frac{\alpha}{2} cos(\frac{4 \pi n}{N-1}), 0 \leq n \leq N-1\]

    \[w[n]=0, otherwise\]

  4. FlatTop:

    \[w[n]=1-1.93 cos(\frac{2 \pi n}{N-1})+1.29 cos(\frac{4 \pi n}{N-1})-0.388 cos(\frac{6 \pi n}{N-1})+0.032 cos(\frac{8 \pi n}{N-1}), 0 \leq n \leq N-1\]

    \[w[n]=0, otherwise\]

  5. Hanning:

    \[w[n]=0.5-0.5 cos(\frac{2 \pi n}{N-1}), 0 \leq n \leq N-1\]

    \[w[n]=0, otherwise\]

  6. Hamming:

    \[w[n]=0.54-0.46 cos(\frac{2 \pi n}{N-1}), 0 \leq n \leq N-1\]

    \[w[n]=0, otherwise\]

  7. Gauss:

    \[w[n]=e^{-\frac{1}{2}(\frac{n-(N-1)/2}{\theta(N-1)/2})^{2}}, \theta \leq 0.5\]

    \[w[n]=0, otherwise\]

參數設定

Window 參數設定
參數名稱 說明 預設值
Window 選擇窗函數(Window Function)的類型,共有None、Bartlett、Blackman、FlatTop、Hanning、Hamming、Gauss七種類型 None
Enhanced 選擇True,可額外調整Normalized、Half Window、Alpha、Peak等參數,詳見以下介紹 False

Enhanced 參數設定
參數名稱 說明 預設值
Normalized 是否將函數值正規(True/False) True
Half Window 設定 Half-Windowing 的位置(Center/Left/Right) Center
Alpha 設定 Blackman、Gauss 和 Flattop 的 \(\alpha\) Auto
Peak 設定 Gauss 的 peak 值 Auto

範例

  1. 從Source/Sine Wave新增一正弦波,利用Compute/Transform做傅立葉轉換FFT,再用 Channel Viewer觀察Sine Wave的頻譜圖。接下來利用Compute/Transform/Signal Windowing改變Sine Wave的窗函數(Window Function),並且再做傅立葉轉換FFT和 Channel Viewer觀察不同窗函數對Sine Wave的影響及變化。

  2. Sine Wave 原始參數設定如下。

  3. FFT 參數設定如下,注意參數 Window 需選擇「None」,避免和 Signal Windowing 重複運算。

  4. Sine Wave(Frequency=10Hz, Amplitude=1)原始訊號和 FFT 頻譜圖如下。

  5. 設定Signal Windowing參數:Window選擇”Bartlett”,Enhanced選擇”False”。下圖為 Sine Wave經過Bartlett Window運算後的圖形,可看出FFT頻譜圖較原始訊號寬。

  6. 設定Signal Windowing參數:Window選擇”FlatTop”,Enhanced選擇”False”。下圖為 Sine Wave經過FlatTop Window運算後的圖形,可看出Sine Wave在0.3-0.7之間較明顯;頻譜圖中的peak,頂部明顯較Bartlett Window寬,兩側雜訊也較少。

相關指令

FIR, Fourier Transform

參考資料

https://zh.wikipedia.org/wiki/%E7%AA%97%E5%87%BD%E6%95%B0

5 訊號格式轉換模組(Conversion)

5.1 Change X-Axis Unit

訊號資料讀取進來之後,常會碰到需要轉換時間單位的狀況,過去可能必須重新輸入訊號檔,再設定時間,現在可以利用 Change X-Axis Unit 直接換算時間。除轉換時間單位外,本模組最特別處,可將以頻譜的橫座標(X-Axis)由頻率進行轉換成各種週期單位。

參數設定

本模組接受實數(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 軸單位。


X 軸單位參數
參數名稱 參數定義 預設值
Abscissa Unit 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(每年次數)
Hz
Convert to period 參數
參數名稱 參數定義 預設值
Convert to period 當資料的 x 軸為頻率時會出現此參數。將原 x 軸為頻率轉換為各種週期。 False
Abscissa Unit 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 天
sec

範例

  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。




相關指令

SineChannel ViewerTime-Frequency ViewerFourier TransformEnhanced Morlet Transform

5.2 Convert to Audio

變更訊號之資料類型。將資料類型由訊號(Signal)轉換為聲音訊號(Audio)。

說明

Convert to Audio 的輸出資料格式是以 Microsoft Wave Format 所規定的架構作設定,分為三區塊:RIFF、FMT 與 DATA,內容分述如下。

RIFF:RIFF 內規定此檔案格式(format)與檔案長度等資訊,格式就是 WAVE。

FMT:包含編碼類型、取樣頻率、聲道數、byte rate 等聲音訊號的相關參數。

DATA:包含聲音訊號的原始資料。

參數設定

本模組接受實數(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

範例

以訊號資料檔 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 右上方之工具撥放此聲音訊號。



相關指令

Channel Viewer

相關參考

Microsoft Wave Format:

http://ccrma.stanford.edF/CCRMA/Courses/422/projects/WaveFormat/

5.3 Convert to Regular

變更訊號資料之時間軸設定。將資料時間軸由非等時間距(Indexed)轉換為等時間距(Regular)。

說明

使用 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\) 相同,僅改變輸入訊號時間軸為等間隔排列。

參數設定

本模組接受實數(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 的取樣間隔。

參數 Convert Method 可選擇使用 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

範例

  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 達成。



相關指令

Convert to AudioFill Null ValueResample

5.4 Convert to Indexed

訊號被進行各種運算時,訊號日期或時間絕大部分是時間間距固定(Regular),但是總有例外的情形,使用者需要將計算後結果以非等間距(Indexed)的展示。Convert To Indexed 可以將 Regular 的訊號中時間點會依照另一個 Indexed 訊號的不等間距的時間點,重新組合成一個新的 Indexed 訊號。

參數設定

本模組接受一個實數(Real Number)、複數(Complex Number),單通道(Single Channel)或多通道(Multi-Channel), Regular 的訊號以及另一個實數(Real Number)、複數(Complex Number),單通道(Single Channel)或多通道 (Multi-Channel),Indexed 的訊號;輸出訊號格式為實數、複數,單通道、多通道的 Indexed 訊號。

範例

  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 格式的訊號。


相關指令

Import DataChannel ViewerTrend EstimatorData Viewer

5.5 Convert From Complex

將複數(Complex Number)訊號轉換成特定的實數(Real Number)訊號,例如只輸出實部、虛部部分等。

說明

\(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}\]

參數設定

本模組接受複數(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 平方。


參數說明
參數名稱 參數定義 預設值
Map Method

將複數訊號轉換成何種訊號,其中包含:

  • Magnitude(絕對值)
  • Phase(相位角)
  • UnwrappedPhase(相位角,過 \(360^\circ\) 不歸零)
  • RealPart(實部)
  • ImagPart(虛部)
  • Gain(增益)
  • Powerspectrum(頻譜功率)
Magnitude

範例

本範例將示範以兩個訊號皆為 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. 接著用 Convert From Complex 將此複數訊號轉為實數訊號,選擇 Compute / Conversion / Convert From Complex,藉由 Properties調整 Map Method,用 Viewer / Channel Viewer 顯示結果。Convert From Complex 預設是輸出訊號的 Magnitude。




相關指令

SineMerge to ComplexChannel Viewer

5.6 Merge to Complex

將兩個實數訊號合併成一個複數訊號,其中第一筆輸入訊號作實部,第二組輸入訊號作虛部。

說明

\(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\) 的取樣頻率。

參數設定

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:第一組輸入訊號

範例

本範例將示範兩種操作模式,首先以兩筆單通道實數訊號合成為一筆單通道複術訊號,並示範複數訊號該如何繪圖;接下來示範以兩筆取樣頻率一樣,但時間長度不等的實數,多通道訊號輸入 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 / Convert From Complex 取出虛部,用 Viewer / Channel Viewer 顯示結果。



    再回到 ToComplex 元件,打開 Properties 下的 Module,裡面 OutputType 欄位內容訊號已變更為 Complex。

相關指令

NoiseSineTriangleSquareConvert From ComplexMerge to Multi-Channel

5.7 Merge to Multi-Channel

將多組輸入訊號組成一組多通道(Multi-Channel)資料訊號。

說明

\(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 聯集來決定輸出的時間起始與長度。

參數設定

本模組接受實數(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 相一致。

範例

範例一:將兩個時間起始相同的單通道輸入合併成一個多通道


  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 秒。

相關指令

Square WaveSine WaveChannel Viewer

5.8 Split Complex

將複數訊號或數值的實、虛部分離。

說明

\(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\),且均為實數資料。

參數設定

本模組接受複數(Complex Number),單通道(Single Channel)或多通道( Multi-Channel),Regular 或 Indexed 的訊號(Signal),聲音訊號(Audio)或數值資料(Numeric)輸入;輸出訊號為實數,多通道(Multi-Channel)資料。

範例

本範例將示範以一個訊號各為 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 為訊號虛部。


相關指令

NoiseSine WaveMerge to Multi-ChannelFourier Transform

5.9 Convert to Matrix*

*Only in Professional*

將訊號轉換為 Numeric 型態的矩陣資料,並可以進行各種矩陣運算。

參數設定

本模組接受實數(Real Number)、複數(Complex Number),單通道(Single Channel)或多通道(Multi-Channel), Regular 或 Indexed 的訊號 (Signal),聲音訊號(Audio)或時頻資料(Spectra)。


參數說明
參數名稱 參數定義 預設值
Column-Major 設定為 True,輸入訊號時間序列為矩陣的縱列,反之則相反。 True

範例

  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 顯示其結果。



相關指令

Short-Term Fourier TransformConvert from Matrix

5.10 Convert from Matrix*

*Only in Professional*

將 Numeric型態的矩陣資料轉換為各種訊號例如時序訊號、頻譜訊號、時頻資料。

參數設定

本模組接受實數(Real Number)、複數(Complex Number),Regular 或 Indexed 的 Numeric 矩陣資料。


參數說明
參數名稱 參數定義 預設值
Column-Major 設定為 “True”,輸入訊號時間序列為矩陣的縱列,反之則相反。 True
DataType 設定輸出的訊號為 TimeDomainSignal(時序訊號)、FreqDomainSignal(頻譜訊號)和 TimeFrequencySpectra(時頻資料)。 TimeDomainSignal

若是 DataType 為 TimeDomainSignal,則會有下列參數需要設定。

TimeDomainSignal 參數說明
參數名稱 參數定義 預設值
StartDateTime 設定輸出時序訊號的起始的 DateTime。 0001/1/1 上午 12:00:00
SamplingPeriod 設定輸出時序訊號的取樣周期。 0.001
TimeUnit 設定輸出時序訊號的單位。 sec

若是 DataType 為 FreqDomainSignal,則會有下列參數需要設定。

FreqDomainSignal 參數說明
參數名稱 參數定義 預設值
StartFreq 設定輸出頻譜訊號的起始頻率。 0
EndFreq 設定輸出頻譜訊號的結束頻率。 500
FreqUnit 設定輸出頻譜訊號的單位。 Hz

若是 DataType 為 TimeFreqSpectra,則會有下列參數需要設定。

TimeFreqSpectra 參數說明
參數名稱 參數定義 預設值
StartDateTime 設定輸出時頻資料時間軸的起始 DateTime。 0001/1/1 上午 12:00:00
SamplingPeriod 設定輸出時頻資料的點跟點之間的時間間距。 0.001
TimeUnit 設定輸出時頻資料時間軸的的單位。 sec
StartFreq 設定輸出時頻資料頻率軸的起始頻率。 0
EndFreq 設定輸出時頻資料頻率軸的結束頻率。 500
FreqUnit 設定輸出時頻資料頻率軸的單位。 Hz

範例

  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 顯示其結果。


相關指令

Short-Term Fourier TransformConvert to Matrix

5.11 Convert from Spectra

將 Spectra 資料轉換為單、多個通道的時序訊號或者單、多個頻譜訊號。

說明

可以將時頻資料中的某一個列(Row)或全部列萃取出來,即為某一固定頻率振幅隨著時間變化。將時頻資料中的某一個欄(Column)或全佈欄萃取出來,即為某一時間點的頻率分佈。

參數設定

本模組接受實數(Real Number)、複數(Complex Number),單通道(Single Channel)或多通道(Multi-Channel)的時頻資料(Spectra)。


參數說明
參數名稱 參數定義 預設值
ExtractionMode 設定要擷取的是列(Row)或欄(Column),設定選擇有 MultiChannelRows、MultiChannelColumns、SingleRow、SingleColumn。 SingleRow
Row 設定要擷取第幾個列(Row)。 0
Column 設定要擷取第幾個欄(Column)。 0

範例

  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 欄的結果,得到頻率分佈。


相關指令

Short-Term Fourier TransformConvert from Spectra

5.12 Convert to dB

將訊號(如聲源)藉由參考數值轉換為分貝(dB)。

說明

分貝(decibel)是量度兩個相同單位之數量比例的單位,主要用於度量聲音強度,常用 \(dB\) 表示,「分」(deci-)指十分之一,「貝」(bel)是紀念發明家亞歷山大‧格拉漢姆‧貝爾。計算方法視其物理量而定,可分為兩種:

  1. 功率量,考慮功率或者強度時,其比值可以表示為分貝,其數學式為

    \[L_dB=10\times log (P_1/P_0)\]

  2. 場量,考慮到場(field)的幅值(amplitude)時,通常使用 \(A_1\) (度量到的幅值) 的平方與 \(A_0\) (參考幅值)的平方之比,其因為大多數應用,功率與幅值的平方成比例,其數學式為

    \[L_dB=20\times log (A_1/A_0)\]

    以聲壓為例,常用之空氣參考聲壓為 \(p_{ref}=20\mu Pa\),其被認為是人類的最少聽覺響應值。

參數設定

本模組接受實數 (Real Number),單通道 (Single Channel) 或多通道 (Multi-Channel),Regular 的訊號 (Signal) 或聲音訊號 (Audio) 輸入。輸出為時間序列之 dB 值。主要參數設定與 RMS 相同,以及參考值設定。

Integrate 欄位參數
參數名稱 參數定義 預設值
Method 數值積分的方法,可選擇:
Simple (長方形法)、
Trapezoidal (梯形法)、
Simpson (辛普森法)
(詳細介紹請參閱 Integrate
Trapezoidal
StartPosition 設定橫軸上的積分起始值。 訊號的起始值
EndPosition 設定橫軸上的積分終點值。 訊號的終點值
Remove DC 欄位參數
參數名稱 參數定義 預設值
DC Value 訊號的 DC 值 根據輸入訊號而定
DC type 定義 DC 值求得法,可選:
Mean、
DFTZerothTerm、
TrapezoidIntegration、
UserSetting
Mean
Rolling Window 欄位參數
參數名稱 參數定義 預設值
Use Time Unit 是否使用原始訊號的時間單位設定 Window 和 Overlap False
Window 設定窗函數的大小,如 Use Time Unit 設定 False,數值之單位為資料點數。 100
Overlap 設定窗與窗之間重疊的資料點數。Overlap \(\le\) Window。 99
Vibration Level 參數說明
參數名稱 參數定義 預設值
Type

設定Vibration Level,可選:

  • RMS、
  • Peak、
  • PeakToPeak

(詳見下表介紹)

RMS
ReferenceLevel 定義dB的參考大小 20
ReferenceUnit 定義dB的參考單位 \(\mu Pa\)
Vibration Level 種類
Types of Vibration Level 參數定義
RMS 計算一段時間內振動的能量平均值。
Peak 假設振動訊號為正弦波,正弦波的振幅最大值為正弦波的 RMS 的 \(\sqrt{2}\) 倍。
PeaktoPeak 假設振動訊號為正弦波,正弦波的振幅最大值與最小值的差距為 2×Peak。

範例

本範例以 C:\Program Files\AnCAD\Visual Signal\demo\Basic\hello.wav 為訊號源,其為音訊檔(.wav),藉由 Conver to dB 之功能,可轉換成 dB 值。

  1. 點擊 Network Window 工具列之 Import Data 選擇 hello.wav (預設路徑為 C:\Program Files\AnCAD\Visual Signal\demo\Basic\hello.wav ),並對點選 hello 按右鍵選 Viewer  Channel Viewer,將此聲音檔以圖形展示出來。


  2. 點選 hello 點擊右鍵選擇 Conversion  Conver to dB,並點選 Conver to dB 點擊右鍵選擇 Viewer  Channel Viewer。


  3. 點擊 TodB 於 Property  Vibration Level  ReferenceLevel 與 ReferenceUint,可設定參考聲壓值及單位,預設為空氣之參考聲壓值 \(20\mu Pa\)


相關指令

RMS

參考資料

https://en.wikipedia.org/wiki/Decibel

5.13 Split

說明

Split可依照設定的切割框長度,將長度較長之單通道訊號切割成數個獨立的長度較短之多通道訊號,並輸出成一組多通道訊號(Multi-Channel Signal)。

參數設定


Split 參數
參數名稱 參數定義 預設值
Period 切割週期訊號的時間長度 輸入週期(0~1)
Period Start 開始切割週期訊號的時間點 輸入起始時間(0)
Time Unit Period和Period Star的時間單位 sec

範例

  1. 先用 Source / Sine Wave 新增一個Sine Wave做為原始訊號源,使用 Conversion / Split 功能進行訊號切割,再用 Viewer / Channel Viewer 顯示(如下圖)。




  2. 使用Split預設的參數設定,從起始點開始,每隔0.1秒分割一次訊號。下圖為 Sine Wave 原始訊號,紅框為使用 Split 切割的部分訊號。


  3. 使用 Split 切割後的訊號如下,輸出一組 10 個通道的訊號,並保留時間從 0~0.1s 的部分訊號。


  4. 將 Split 的參數 Period 改為 0.05(即原週期的一半),分割出新的多通道訊號( Multi-Channel Signal)如下圖,其中紅線為原 0~0.05s 之訊號、綠線為原 0.05~0.1s之訊號。



相關指令

Join

5.14 Join

說明

Join可將多通道訊號串接成一組連續的單通道訊號,並按照通道順序依序串接。

範例

  1. 利用 Source 新增一訊號源 Sine Wave,再利用 Mathematics / Math 輸出三個組數據,再用 Conversion / Join 合併,並用 Viewer / Channel Viewer 顯示結果。





  2. 利用 Compute / Mathematics / Math 視覺化元件,輸出一組三通道數據,分別為一倍振幅(X1[1])、兩倍振幅(X1[1]x2)和三倍振幅(X1[1]x3)。


  3. 將輸出的三通道數據利用 Channel Viewer 輸出如下圖。


  4. 將 Math 輸出的三通道數據接上 Join,並利用 Channel Viewer 顯示,會將三組數據依照通道順序排列,轉換成單通道訊號,結果顯示如下圖。


相關指令

Split

6 訊號源模組(Source)

6.1 Open Data

由外部匯入訊號檔。

目前 Visual Signal 支援四種方法可以匯入外部訊號檔:

  1. 在 Network 工具列上點選 Import Data 圖示 ,可選擇輸入檔案(即左下圖紅框按鈕)

  2. 可以於模組編譯區利用滑數右鍵選單之 Source / Import Data(即右下圖所示):

  3. 將檔案由檔案管理員或桌面拖放至元件編輯區,如下圖:

  4. 如欲匯入檔案後自動產生並連結對應之 Viewer 元件,可將檔案由檔案管理員或桌面拖放至繪圖視窗,如下圖:

操作上述步驟後會先跳出如下圖視窗供使用者選擇輸入的檔案:

支援檔案包括純文字類的檔案,如 .txt.csv.tfa 等,聲音檔案如 .wav.mp3 等,以及特殊檔案格式如 MATLAB MAT 用的二進位檔(binary file),SAC 地震分析軟體的資料檔,HEA 是由Physionet 組織所發展一系列生醫訊號軟體之通用格式。支援的檔案格式整理如下表:

支援檔案格式
副檔名 檔案類型
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 資料檔

其中 .tfa.vsb 為 Visual Signal 自訂資料格式,因自帶有描述資料的檔頭,讀取這兩種檔案時不需要再經過任何參數設定,可直接匯入資料。.tfa.txt 一樣是純文字資料檔案,但是多了資料描述檔;.vsb 的資料描述檔頭與 .tfa 相同格式(為純文字),資料本身則為Binary格式。

以下為 .tfa 檔案的格式,主要包含兩部分有時間軸資訊和訊號。開始起頭為「#」的是標頭文字,記錄訊號的時間軸資訊(因此可直接在讀取.tfa 訊號檔時得到時間軸的資訊)。檔頭以下的內容便是訊號資料,第一縱列為時間軸,第二縱列開始為通道訊號,如果是複數資料,則每個通道有一個實數縱列及一個虛數縱列。

# Version: TFA2.0.0
# DataType: Signal
# Complex: False
# ChannelCount: 1
# ChannelNames: CH1
# DataUnit: 
# SampleFreq: 1000
# TimeUnit: sec
# StartTime: 0
# TimeFormat: Regular
#+ SeparateChannels: False
              0      -0.995347718
          0.001      -0.476466238
          0.002       0.152831315
          0.003      0.0668273037
          0.004       0.172097169
          0.005        0.01285767
          0.006       0.854871343
          0.007       0.537974745
          0.008      -0.794657195
          0.009       0.935031347
           0.01       0.550789911

詳細檔頭格式可參考 Visual Signal 匯出的 .tfa.vsb 資料檔(請參考【儲存資料】 或 【Writer】),用任何文字瀏覽器或編輯器開啟該檔案檢視其檔頭。使用者亦可用文字編輯器將 .txt 資料檔加入同樣格式的檔頭,改成 .tfa 檔案匯入。

6.1.1 Text Importer

說明

CSV 與 TXT 是文字檔,CSV 是以逗點分格之形式;選定文字檔匯入時,會跳出 Text Importer 輸入設定介面(如下圖所示),供使用者定義訊號必備的格式。此外,若 Visual Signal 無法辨識匯入檔案格式,也會訊問使用者是否使用 Text Importer 嘗試匯入資料。Text Importer 介面操作上較複雜,但是基本上可以歸納為以下的流程:

解析(Parser) \(\implies\) 轉換(Transformer)\(\implies\) 建構(Constructor)

詳細用法上會以範例作進一步的說明,在此說明各參數之意義。


符號說明:

  1. 解析(Parser)

    此步驟將原始文字資料依照設定的格式及一定程度的智慧自動化,分辨出時間軸及通道的數值。

    Parser 參數說明
    參數名稱 參數定義 預設值
    *Data Direction

    指定資料是「垂直向下讀取」或是「水平向右讀取」。

    • Column Based:垂直向下讀取。
    • Row Based:水平向右讀取。
    Column Based
    Field Format

    定義資料分隔的方式,定義完成後方能正確分隔通道。

    • White Spaced:代表資料間以空白或 Tab 鍵分隔。
    • Delimiter:使用者自訂資料分隔符號。
    • Fixed Field:提供使用者自訂讀取的格式。

    注意,若開啟 .csv,則不會出現此欄位,因 .csv 本為逗號分隔檔。即默認為 Delimiter,分隔符號為英文半形逗號「,」。

    各項設定請見「Field Format 額外參數說明」

    White Space
    Row Range

    資料在「橫列」的讀取範圍,意即希望從第幾列讀取至第幾列,格式為「起始:結束」。

    • 輸入「5:20」代表從第 5 列讀取至第 20 列。
    • 輸入單一數字,例如「5」,代表從第 5 列讀取至最後一列,等同「5:end」。
    • 輸入「all」即代表讀取第一列至最後一列,等同於「1:end」。
    • 輸入任何無法辨識的字串等同 end
    All (1:end)
    Column Range

    資料在「縱行」的讀取範圍,意即希望從第行讀取至第幾行,格式為「起始:結束」。

    • 輸入「5:20」代表從第 5 行讀取至第 20 行為止。
    • 輸入單一數字,例如「5」代表從第 5 行讀取至最後一行,等同「5:end」。
    • 輸入「all」即代表讀取第 1 行至最後一行,等同於「1:end」。
    • 輸入任何無法辨識的字串等同 end

    注意:若發現資料並未正確分隔,請先至 Field Format 欄位進行調整。

    All (1:end)
    Exclude Rows 設定忽略的橫列,以逗點分隔。例如輸入「1,3,5」則忽略第 1、3、5 列的資料。此設定可配合 Row Range,精確設定資料的橫列範圍。
    RegEx Pattern &
    RegEx Replace

    此兩個欄位可設定讓 Text Importer 在解析資料之前替換一些指定的字樣。

    • RegEx Pattern:以常規表達式(Regular Expression)語法設定搜尋的模型。
    • RegEx Replace:以常規表達式(Regular Expression)語法設定搜尋後替換的字樣。

    RegEx 的語法可參閱Regular Expression Language - Quick Reference

    Time Axis Type 選擇要採用的時間軸格式,指定或自動判別出來的時間軸資料在預覽視窗內會以藍色標示。各項設定請見以下「Time Axis Type 選項說明」。 Regular
    *Complex Channel 是否為複數通道。若設定為 True,排除時間軸後,將兩兩頻道視為一組複數,前者為實部,後者為虛部(將顯示為綠色文字)。 False
    *Handle Repeat Time

    處理重複時間的方式。

    • Sample:取第一筆時間所對應的值
    • Average:取每一筆時間所對應資料的平均值。
    Sample
    Time Axis Type 選項說明
    Time Axis Type 說明
    Regular 資料內不含時間軸,需前往 Constructor(建構)自行設定取樣率和起始時間(Index 或日期)等資訊。
    String 資料內的時間軸為字串,在 Time Channel 設定做為時間軸的通道,即可直接讀入;任何合法的字元都可以匯入,但原始資料不會出圖。
    Numeric 數值時間。
    Auto Date Time 自動偵測,系統會抓取符合通用格式的資料作為時間軸。若系統有判讀成功,將會出現一行(或一列)藍色的資料;若未出現藍色表示您的時間資料非系統可自動識別的格式,需選擇其他選項或自行定義。
    Custom Date Time 自行定義時間日期格式。若系統有判讀成功,將會出現一行(或一列)藍色的資料。若未出現藍色表示您的時間資料非系統可自動識別的格式,需重新定義。若因錯誤的格式定義導致解析時間過久,Text Importer 會自動暫停詢問是否取消解析。
    Field Format 額外參數說明
    額外參數 說明
    +Custom Delimiters

    Field Format 選擇 Delimeter 時會出現此參數,可設定資料分隔符號。所有列出在此欄位的單一字元,包括空白鍵「」與 Tab 「\t」都會分別被辨識為分隔符號。如果只需辨識單一分隔符號,可以輸入以下特殊字串:

    • SPACE」: 等同空白鍵「\(\Box\)
    • TAB」:等同 Tab 鍵「\t
    • 「」:無字元,默認為 Tab 鍵
    +Fixed Field Format

    Field Format 選擇 Fixed Field Format 時會出現此參數,可自訂資料讀取格式,見下面說明。

    • 起始:左起第一個字元
    • 「|」 (豎線,非數字 1)代表抓取 1 個字元
    • []」 代表連續抓取 2 個字元
    • [-]」 代表連續抓取 3 個字元
    • [--]」 代表連續抓取 4 個字元
    • 輸入 n 個空白鍵代表連續跳過 n 個字元

    例如:此欄設為 「|\(\Box\)[--][]」 (「\(\Box\)」代表空白鍵),讀取資料列「123456789」,資料會儲存為 3 個通道:

    • 第一個通道有一個字元,抓取「1」
    • 有一個空白,因此跳過 2
    • 第二個通道有四個字元,抓取「3456」
    • 第三個通道有兩個字元,抓取「67」
    • 8 與 9 不在讀取格式定義內,會被捨棄
    +Custom Date Time Format Time Axis Type 選擇 Custom Date Time 時會出現此參數,可自訂時間日期格式。例如輸入「yyyyMMddhhmmss」 可將 「19771002120000」 解析為 1977/10/02 12:00:00。時間日期格式請參閱:.NET Custom Date and Time Format Strings
  2. *轉換(Transformers)

    此步驟為進階選項,提供各種資料轉換模式將解析好的資料傳換成各種方便後續運算的形式,例如合併通道、降取樣、補點等等。

    Transformer 參數說明
    參數名稱 參數定義 預設值
    *Merge to One Channel 若 Time Axis Type 設定為 Regular 時,是否將所有通道結合為一個通道。若選擇 True,系統會將資料內所有定義好的通道(不包含時間軸)合併為一個通道。 False
    *Downsample Step 當資料量過大時,選擇是否要進行降取樣。輸入的數字 N 代表「每 N 筆資料取一筆讀入」 1
    *+Downsampple Method

    當 Downsample Step 設定為 \(N > 1\) 時,可選擇降取樣方式:

    • Sample:每 \(N\) 筆資料取其第一筆之值
    • Average:每 \(N\) 筆資料取其平均值
    • Max Detect:每 \(N\) 筆資料取其最大值
    • Min Detect:每 \(N\) 筆資料取其最小值
    • Peak Detect:每 \(2N\) 筆資料取其最大和最小值,再依其出現的順序先後排序。

    降取樣方式與 Resample 元件的參數設定相同,詳情請參閱相關說明。

    Sample
    *+Anti-Aliasing Method

    當 Downsample Step 大於 1 時,可選擇是否使用消除混疊方法:

    • None:不採用
    • IdealFilter:採用理想 IIR 濾波器
    • Butterworth:採用 Butterworth IIR 濾波器
    • Chebyshev:採用 Chebyshev IIR 濾波器

    消除混疊方式及以下濾波器相關設定與 Resample 元件的參數設定相同,詳情請參閱相關說明。

    None
    *++Filter Order Anti-Aliasing Method 設定為 Butterworth 或 Chebyshev 時,可設定濾波階數 1~12。 10
    *++Filter Ripple Anti-Aliasing Method 設定 Chebyshev 時,可設定震盪參數(Ripple),即頻率響應(frequency response)的幅度波動(overshoot 振幅),單位為分貝(dB) 0.1
    *Handle Null Value

    選擇資料缺值的處理方式:

    • None:不處裡
    • FixedValue:以一固定值補點。固定值可在 Fixed Value 參數設定
    • PrevValue:取前一筆非缺值補點
    • NextValue:取下一筆非缺值補點
    • Linear:以線性內插方式補點
    • Spline:以 Cubic Spline 方式補點
    • MonotonicCubic:以 Monotonic Cubic Spline 方式補點

    資料缺值補點的方式與 Fill Null 元件的參數設定相同,詳情可參閱相關說明。

    Linear
    *+Fixed Value Handle Null Value 選擇 FixedValue 時,可設定一固定值補資料缺值。 0
  3. 建構(Constructor)

    此為最後一個步驟,將解析並轉換好的原始資料建構為 Visual Signal 內部的資料結構,以便匯入 Visual Signal 進行後續的運算。此步驟大多參數都是 Time Axis Type 設定為 Regular 或 Numeric 時所使用,以定義時間軸。若設定為 Date Time (Auto 或 Custom),則不會顯示時間軸相關參數。

    Consructor 參數說明
    參數名稱 參數定義 預設值
    +Sapmle Frequency 數據的取樣率 因數據而異
    +Sample Frequency Unit 取樣率的單位 因 Time Unit 設定而異
    +Time Unit 數據時間軸的最小單位 因數據而異
    +Start Time Type 設定時間軸的種類:Numeric(數值)或 DateTime(日期) Numeric
    +Start Time 設定數據的起始時間 0
    Channel Names 當解析資料為多通道時,可自行設定各通道的名稱。若未設定則預設為 CH1CH2…等等。

範例

多通道訊號資料檔
  1. C:\Program Files\AnCAD\Visual Signal\demo\Enhanced 匯入一個多通道訊號資料檔 Bird and Frog.txt 。此檔案使用空白鍵做為資料間隔,若未更改 Field Fromat 預設之 White Space,便會依照空白鍵區隔為三個綜行:


  2. 此數據第一行為時間軸,第二、三行各為鳥鳴和蛙鳴的數據。時間軸可能非等間隔的格式,因此 Time Axis Type 可選擇 Numeric,Time Channel 選擇 1(因為每一行都是數值,必須指定哪一行為時間軸,否則無法正確解析)讀取數字格式的時間軸。時間軸成功讀取後會以藍色顯示:


  3. 設定好後點選 Import,以 Viewer / Channel Viewer 顯示此數據。黑色線條為第一通道 CH1,藍色線條為第二通道 CH2:


AutoDateTime 時間軸
  1. C:\Program Files\AnCAD\Visual Signal\demo\Enhanced 匯入一個資料檔 AutoDateTime.txt ,此檔案使用空白鍵做為資料間隔,若未更改 Field Fromat 預設之 White Space,Time Axis Type 也仍是前範例所設之 Numeric,便會依照空白鍵區隔為四個綜行:


  2. 此數據第一行是日期,第二行是時間,因此 Time Axis Type 可選擇 AutoDateTime嘗試自動辨識時間日期,時間軸成功讀取後會自動合併第一、二行,視為一個綜行,此時分隔線會將資料分隔成三個綜行,如前一個範例,第一綜行為合併之時間軸,以藍色顯示,第二、三行各為第一通道與第二通道的數據:


    如果一開始讀取檔案時 Text Importer 自動辨識時間日期格式成功,此時也會自動設定Time Axis Type 為 AutoDateTime,直接進入如上圖狀態。

    又,成功自動辨識為時間軸後便不需要如前範例般再手動設定 Time Channel,此參數也不會顯示出來。

  3. 設定好後點選 Import,以 Viewer / Channel Viewer 顯示此數據。黑色線條為第一通道 CH1,藍色線條為第二通道 CH2:


CustomDateTime 時間軸
  1. 同前一範例,匯入資料檔AutoDateTime.txt ,自動辨識分隔為下圖狀態:


  2. 此時打開 Advanced 設定,可用 RegEx Pattern 及 RegEx Replace 參數修改第一、二行的格式,將時間軸的 /:、空白鍵等移除(請參考 Regular Expression 語法),如下:

    RegEx 參數設定
    參數 設定
    RegEx Pattern (\d{2})-(\d{2})-(\d{4}) +(\d{2}):(\d{2}):(\d{2})
    RegEx Replace $1$2$3$4$5$6
  3. 設定好後,可以看到原來的時間軸變成一串數字,Text Importer 已經無法自動辨識, Time Axis Type 自動跳回 Regular 設定:


  4. 此時可以將 Time Axis Type 設定為 CustomDateTime,並依照原來時間日期數字的順序將 Custom DateTime Format 設定為 「MMddyyyyHHmmss」(請參考 DateTime String 語法),可看到第一行成功辨識為時間軸:


  5. 同前範例,設定好後點選 Import,以 Channel Viewer 顯示此數據,可得到與前範例同樣的圖:


相關指令

Fill NullResample

6.1.2 Matlab Importer

若匯入者為 mat 這種 MATLAB 專用的二進位檔,則會進入如下列介紹的 Matlab Importer:

  1. 首先介紹開啟 mat 檔案而訊號格式為 Signal,則會進入以下畫面的 Matlab Importer ,參數設定大致與文字檔完全相同。。


  2. 若匯入 mat 為包含訊號格式為時頻資料(Spectra),此 mat 檔案必定包含三種變數:資料 (*_value\(N*M\) 矩陣)、時間軸(*_time\(M*1\) 矩陣)、頻率軸 ( *_freq\(N*1\) 矩陣),Visual Signal 才能匯入時頻資料,列如本示範包含 STFT_valueSTFT_timeSTFT_freq,如下圖所示。

    假設 Import as Spectra 為 Unchecked,則將會把資料 (*_value )以多通道訊號匯入,並不會將頻率資訊 ( *_freq ) 引入,在此必須特別注意。


相關指令

ViewerFill Null Value

6.1.3 Import Audio

若匯入是支援的音訊檔,則會直接產生一個 Data Source 元件,不需要用 Importer 設定輸入參數。



6.1.4 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 則可選擇是否設定年月日等時間軸資訊。

6.1.5 WaveFormDatabase Importer

HEA 是 Physionet 此組織發展一系列生醫訊號軟體之通用格式檔。讀取此檔時會跳出 WFDB Importer 協助使用者設定參數,下圖是 WFBD Importer 的使用介面。


介面前三大項 Signal Information、Data Range、DataAxis 與 SAC Importer 相同,這裡不再重複。當輸入訊號為多通道時,會出現 Selected Channels 的選項,讓使用者選擇讀取的 Channel。

6.1.6 Load Data Dialog

成功讀取檔案後,Visual Signal 會開啟 Load Data 對話窗,如下:

如欲利用完整的讀入資料,則點擊 Load All 按鍵,則 Visual Signal 會產生一個 Data Source 元件,並將所有讀取的檔案資料存放於該元件,(詳情請見下章【Data Source】)。

有時讀取的資料量太大,如果全部匯入 Visual Signal 可能會造成無法繼續進行計算的情形,此時可以利用 Load Data 對話窗擷取部分資料匯入,如下圖所示,在對話窗的下拉選單中選擇 Partial Load:

則對話窗會換成部分擷取的介面:

下表解說各欄位:

部分擷取資料設定欄位說明
欄位 說明
Start 擷取窗的起始點
Length 擷取窗的長度
Overlap 移動擷取窗時之重疊

每個輸入欄位的右方還有兩組數字顯示 X%/YY 為資料總長度(資料點數),X 為該欄位輸入之點數為總長度之百分比。

擷取窗的起始點除了可以在 Start 欄位輸入點數之外,還可以使用對話窗下方的滑動控制設定位置。滑動時 Start 欄位的數值會同步變動,此時 Length 欄位必須設為小於總長度,否則滑動控制無作用。點擊滑動桿左方或右方的長條空處可以讓滑動桿以 Overlap 設定的點數跳躍移動;點擊最左方或最右方的箭頭則可以將滑動桿移動一個點數。如下圖:

Overlap 的設定也決定了資料匯入後,在執行元件計算時用【元件編輯窗工具列】的連續重讀/單次前進重讀/單次後退重讀的按鍵運作。Overlap 與跳躍移動擷取窗的定義可以參考【滾動窗】之 Overlap 定義。

6.2 Data Source

成功匯入檔案資料後(完整資料或是部分擷取),Visual Signal 會產生一個 Data Source 類別的資料源元件,元件名稱為檔案名稱。

以匯入 C:\Program Files\AnCAD\VisualSignal\demo\Basic\hello.wav 為例:

如果是採用拖放檔案至繪圖視窗的方式匯入檔案(見【Open Data】章節說明),則除了 Data Source 之外還會自動產生並連結對應之 Viewer 元件,如下圖。

參數設定

Data Source 參數說明
餐數名稱 參數定義
FileName 檔案名稱,可重讀,見下文【重讀檔案】章節
Channel Count 顯示資料通道數
Sampling Frequencye 顯示資料取樣率,單位為 \(1 / Unit\)
Data Length 顯示資料長度,單位為點數
StartValue 顯示時間軸起始時間,單位見 Unit
EndValue 顯示時間軸結束時間,單位見 Unit
Unit 顯示時間單位。在 Viewer 顯示時會正確地標示 X 軸標題上
TimeFormat 顯示時間軸格式:Regular 或 Indexed
Data Unit 顯示資料的單位,本欄位只有在資料檔頭有特別才會顯示。如有資料單位,則在 Viewer 顯示時會正確地標示在 Y 軸標題上
Extended Information 顯示其他額外的資訊,見下文【額外資訊】章節

6.2.1 部分擷取資料源

當匯入資料時在【Load Data】對話窗選擇了 Load All,本元件輸出的資料為完整的檔案匯入資料,此時 StartValue 參數為原資料之起始時間(如無檔頭或時間軸資訊則為 0),EndValue 參數為原資料之結束時間(如無檔頭或時間軸資料則為資料時間長度), Data Length 為全資料的時間長度,如下圖(以 hello.wav 為例):

當匯入資料時在【Load Data】對話窗選擇了 Partial Load,本元件輸出的資料為所設定之部分檔案匯入資料,此時 StartValue 參數為所設定之部分擷取窗之起始時間, EndValue 為擷取窗之結束時間,Data Length 為擷取窗的時間長度,如下圖(以 hello.wav 為例,起始設為 1000,長度為 1000):

當元件資料為部分擷取,使用者可使用【元件編輯窗工具列】上的圖示移動擷取窗重讀資料:

移動擷取窗重讀工具列圖示
圖示 說明
AutoReload 依照【Load Data】對話窗之 Overlap 設定,連續將擷取窗移至下個位置,讀取資料,並重新執行 DataSource 元件下游連結的所有元件。此步驟會自動連續執行,直到擷取窗移至原資料最尾端
ReloadForward 依照【Load Data】對話窗之 Overlap 設定,單次將擷取窗移至下個位置,讀取資料,並重新執行 DataSource 元件下游連結的所有元件
ReloadBackward 依照【Load Data】對話窗之 Overlap 設定,單次將擷取窗移至下個位置,讀取資料,並重新執行 DataSource 元件下游連結的所有元件

無論元件的資料為完整匯入或是部分擷取,使用者都可以用雙擊元件的方式(見下文)重新設定擷取窗或直接完整重讀資料。

6.2.2 重讀檔案

本元件提供三種方法可以重讀檔案資料,功能稍有不同:

  1. 點擊 FileName 參數,欄位最右側會出現三個點的圖示ThreeDots,點擊該圖示則會跳出如【Open Data】時的檔案選擇對話窗,此時操作跟【Open Data】時一樣,檔案匯入後會自動更新本元件的輸出資料以及 FileName 參數的路徑。

  2. 直接更改 FileName 參數的路徑,如果檔案存在該路徑,則本元件會不經過檔案選擇示窗而直接讀取檔案。

  3. 雙擊元件圖示。此動作會開啟一個類似【Load Data】的 Reload 對話窗,如下圖:

Reload 對話窗

重讀對話窗的操作與【Load Data】對話窗類似,但是下拉選單多了幾個選項:

如果是經過 Importer 設定對話窗(例如 Text Importer) 匯入的檔案,則還會多出一個選項:

如欲整個取消重讀,則點擊 Cancel 鍵;如欲重讀,則根據下拉選單的選項 Reload 按鍵會有不同功能:

重讀選項 說明
Load All 如果元件的資料是從原檔案部分擷取的,此功能從記憶體內重讀所有的資料(不重讀檔案)
Partial Load 此部分操作與【Load Data】對話窗中同名選項一樣,進入部分重讀對話窗設定或改變擷取窗參數,從記憶體內擷取部分資料重讀(不重讀檔案)
Load File 從 FileName 參數設定之路徑重讀檔案,重讀後會再次出現【Load Data】對話窗,使用者可選擇完整讀取或部分擷取資料。
Load File New Settings 同上,如果是經過 Importer 匯入的檔案,則重讀檔案後會再次出現該 Importer 對話窗,讓使用者可以重新設定匯入參數。

6.2.3 額外資訊

當資料檔含有額外資訊時,使用者可以點擊 Extended Information 參數,欄位最右側會出現三個點的圖示ThreeDots,點擊該圖示則會跳出一個 Reporter 對話窗(請參考【Reporter】章節說明)。

以匯入 C:\Program Files\AnCAD\VisualSignal\demo\Basic\hello.wav 為例,音訊檔相比其他的資料格式有額外的 BitsPerSample 資訊(取樣位元數),顯示在 Extended Information 的 Reporter 中如下圖:

除了音訊檔之外,.tfa.vsb 的檔頭(見【Open Data】章節說明)也支援加入非內建的 Extension 檔頭資訊,用「#+」標示。這些 Extension 檔頭資訊匯入 Visual Signal 後則可以在 Extended Information 的 Reporter 中顯示出來。

以匯入C:\Program Files\AnCAD\VisualSignal\demo\Extended\rain.tfa 為例,該檔案的檔頭如下:

# Version: TFA1.6.0
# DataType: Signal
# Complex: False
# ChannelCount: 1
# ChannelNames: CH2
# DataUnit: 
# SampleFreq: 24
# TimeUnit: day
# StartDate: 2014/01/01 00:00:00.0000000
# TimeFormat: Regular
#+ SeparateChannels: False
#+ Latitude: 202357.432
#+ Longitude: 2528417.116

檔頭最後三行 SeparateChannelsLatitudeLongitude 為非內建 Extension 資料,顯示在 Extended Information 的 Reporter 中則如下圖(欲完整顯示座標數值須將 Report 的數字顯示格式改成精確度 3 之 Fixed 格式):

6.3 Noise

建立雜訊訊號源,可產生七種不同雜訊(Noise)。

說明

以下介紹各項雜訊的定義,令 \(x(t)\) 代表雜訊:

參數設定


參數說明
參數名稱 參數定義 預設值
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 還多了以下參數 :

參數說明
參數名稱 參數定義 預設值
Sigma 設定高斯函數之寬度。 1

Speckle Noise 還多了以下參數 :

參數說明
參數名稱 參數定義 預設值
Probability 設定 Speckle 雜訊發生之機率。 0.005

範例

雜訊檢測:

  1. 以 Source / Noise 建立七個不同種類的雜訊訊號源,全部以 Viewer / Channel Viewer 繪出。









  2. 接下來測試各雜訊的行為:將 Pink Noise 做 Compute / Transform / FFT 傅立葉轉換,取Conversion / Map ToReal,再將 ToReal 中的 Properties / MapMethod 設定為 PowerSpectrum,可發現此頻譜密度值大體上與頻率成反比也可不接 Convert From Complex 直接將 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 的統計直方圖,其分佈曲線即為常態分怖。


相關指令

Channel ViewerFourier TransformConvert From Complex

相關資料

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

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

6.4 Sine Wave

建立正弦波。

說明

\(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}\]

參數設定


參數說明
參數名稱 參數定義 預設值
SignalFreq 此訊號之實際頻率,單位為時間長度之倒數(注意,是頻率,非角速度)。 10
Phase 初始相角值,以角度為單位。 0

其他共有參數請參考 Noise Source

範例

正弦波之建立:

  1. Source / Sine Wave 建立正弦波。



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

  2. 可設定其 Phase(初始相角)為 90,如此正弦波即可變為餘弦波(Cosine Wave)。



  3. 設定 Amplitude 為 3,AmplitudeOffSet 為 1.5,再設定 TimeStart 為 2.0, SignalFreq 設為 0.5,可得下列圖形:



相關指令

Noise SourceChannel ViewerSquare WaveTriangle Wave

6.5 Square Wave

建立方波。

說明

\(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\) 是振幅之平移量。

參數設定


參數說明
參數名稱 參數定義 預設值
SignalFreq 此訊號之實際頻率,單位為時間長度之倒數(注意,是頻率,非角速度)。 10
Phase 初始相角值,以角度為單位。 0
Symmetry 修改波形的對稱性,訊號的一個週期內,訊號值大於零的部份之比例量為 \(s\),小於零的負部份為 \(1-s\) 0.5

其他共有參數請參考 Noise Source

範例

方波之建立:

  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,可得下列圖形:



相關指令

Noise SourceChannel Viewer

6.6 Triangle Wave

建立三角波。

說明

\(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\) 是振幅之平移量。

參數設定


參數說明
參數名稱 參數定義 預設值
SignalFreq 此訊號之實際頻率,單位為時間長度之倒數(注意,是頻率,非角速度)。 10
Phase 初始相角值,以角度為單位。 0
Symmetry 修改波形的對稱性,訊號的一個週期內,訊號斜率為正的部份之比例量為 \(s\),負部份為 \(1-s\) 0.5

其他共有參數請參考 Noise Source

範例

建立三角波。

  1. 以 Source / Triangle Wave 建立三角波。



  2. 可將 AmplitudeOffSet 設為 0.3,再設定 TimeStart 為 0.3,SignalFreq 設為 4, Symmetry 設為 0.7,可得下列圖形:



相關指令

Noise SourceSquare WaveSine WaveChannel Viewer

6.7 Custom Wave

自行輸入欲創建之訊號的方程式。

參數設定


參數說明
參數名稱 參數定義 預設值
Expression 設定欲產生訊號之方程式 sin(2*pi*10*t)

其他共有參數請參考 Noise Source

Expression 可用 sin,cos,tan,exp,asin 等常用數學函數,在此與Math 中的 fn 選單所支援之函數完全一樣(可參考 C sharp所支援之數學函式)。特別注意次方的表式法:\(a^n\) 需寫為 pow(a,b)

範例

建立一頻率整比於時間的準穩態訊號:

  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})\)



相關指令

Noise SourceChannel ViewerShort Term Fourier TransformationMath

參考資料

http://msdn.microsoft.com/en-us/library/system.math_methods.aspx

6.8 Impulse*

*Only in Professional*

建立脈衝訊號。

說明

\(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:

參數設定


參數說明
參數名稱 參數定義 預設值
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

範例

脈衝訊號之建立,脈衝訊號的時頻分析:

  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 能清楚看到頻寬較大的現象。




相關指令

Noise SourceChannel ViewerTime-Frequency ViewerShort Term Fourier Transform

6.9 Jaehne*

*Only in Professional*

建立 Jaehne signal。

說明

\(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\) 是振幅之平移量。

參數設定


共有參數請參考 Noise Source

範例

Jaehne 訊號之建立,並將 Jaehne 訊號進行時頻分析:

  1. 以 Source / Advanced/ Jaehne 建立訊號,並以 Viewer / Channel Viewer 繪出圖形。



  2. 再將 Jaehne 接至 Compute / TFA / Short Term Fourier Transform 運算,最後以 Viewer / Time-Frequency Viewer 顯示結果,Jaehne 訊號類似 Chirp 訊號,隨著時間增加,訊號頻率增加。



相關指令

Noise SourceChannel ViewerTime-Frequency ViewerShort Term Fourier Transform

6.10 DAQ*

* Only in DAQ Module *

6.10.1 Audio-DAQ

Audio-DAQ 可將外接麥克風錄製的聲音訊號輸入 Visual Signal,使用者可自訂錄音長度與解析度,或是連續監測即時動態訊號(Real Time);此功能位於Source / DAQ / Audio-DAQ。

參數設定

  1. 從 Source / DAQ / Audio-DAQ 新增此功能,並接上 Viewer / Channel Viewer 顯示。

  2. 滑鼠雙擊元件 Audio-DAQ,開啟設定視窗。

    Audio-DAQ 參數說明
    參數名稱 說明
    Input Device 選擇輸入音源的裝置
    Mic Volume 麥克風音量
    Bits Per Sample 錄音的解析度,預設為16 bits per sample
    Channel 選擇收音系統:Mono(單聲道)或Stereo(立體聲)
  3. 切換到 Data Acquisition 介面,可設定資料擷取的參數

    Data Acquisition 參數說明
    參數名稱 說明
    Sample Time(s) 量測時間(秒),如未勾選 Continuous Mode,則需填選訊號量測時間
    Sample Rate(Hz) 取樣頻率(Hz),可自行依照資料的種類及要求的資料品質選擇取樣頻率(建議:若資料為連續訊號,取樣率最少須為該訊號最大頻率的 2 倍)
    Data Length 資料點數長度(\(\text{Sample Time}×\text{Sample Rate}=\text{Data Length}\),三者互相連動)
    Continuous Mode 連續監測模式,若需要連續監測訊號,則將此項目勾選
    Scrolling 連續監測模式下的取樣方法,包含:無(Off)、抽樣(Sample)、平均(Average)、最大值(Extrema)、短時距傅立葉變換(STFT)
    Logging 檔案量測存取位置,勾選後可選擇檔案存取路徑

    參數及資料擷取設定完成後,即可按下開始量測。

6.10.2 NI-DAQ

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 元件,元件圖示如下圖。


在 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

ADLINK-DAQ (USB-2405)為 Visual Signal 和 ADLINK 資料擷取卡的中間窗口。

說明

  1. 使用前說明: 購買 ADLINK 擷取卡後,可於其網站上下載驅動程式(Driver),下載完成後便可與本軟體之 DAQ 模組合併使用。

  2. Visual Signal內操作說明

  1. 呼叫路徑:在 Visual Signal 的 Network 視窗按下滑鼠右鍵,依路徑 Source\DAQ\Adlink-DAQ 叫出 Adlink-DAQ 元件,元件圖示如下圖。

  2. 操作介面:在元件上雙擊兩次滑鼠左鍵或點選 Property 視窗中的 Open Adlink-DAQ Interface 即可跳出 Adlink-DAQ 的操作介面 。

在 Type 的下一階層,需勾選傳感器所連接的 USB-2405 頻道(Al0、Al1、Al2、Al3),並調整其參數,各參數說明如詳見下一節。

參數設定

ADLINK-DAQ 參數設定分為兩部分:Adlink 和 Data Acquisition (資料擷取設定)

參數說明
參數名稱 說明 |
Coupling DC:直流,AC:交流 |
Input Type
IEPE=ICP 需微小電源啟用,內有放大器,一般需外部激發 Disable<轉速計>:大的,Enable <麥克風、加速規>:小的 |
Scale/Sensitivity 自行輸入 Sensor Sensitivity 數值與單位。例如:42.8mV/Pa |
Data Acquisition(資料擷取設定)

介面說明圖示如下

詳細參數說明如下:

  1. SampleTime 量測時間(秒):如未勾選 Continuous Mode,則需填選訊號量測時間

  2. Sample Rate 取樣頻率(Hz):可自行依照資料的種類及要求的資料品質選擇取樣頻率。

    建議:若資料為連續訊號,取樣率最少須為該訊號最大頻率的 2 倍

  3. Data Length:資料點數長度

    \(\text{SampleTime}*\text{Sample Rate}=\text{Data Length}\) 以上三者互相連動

  4. DAQMode:Continuous Mode 連續監測模式,若需要連續監測訊號,則將此項目勾選

  5. DAQMode:Scrolling(連續監測模式下)取樣方法;在連續監測的模式下的取樣方法,包含:無(Off)、抽樣(Sample)、平均(Average)、最大值(Extrema)、短時距傅立葉變換(STFT)。

  6. DAQMode: Logging 檔案量測存取位置,勾選後可選擇檔案存取路徑

參數及資料擷取設定完成後,即可按下開始量測,並用 Viewer 展示結果,如以下圖。

參考資料

  1. ADLINK-DAQ (USB-2405): http://www.adlinktech.com/PD/web/PD_detail.php?pid=1297
  2. Visual Signal with ADLINK DAQQuickStart https://www.youtube.com/watch?v=e6yB7LvgT9I

6.10.4 Simulated-DAQ

Simulated-DAQ可產生所有Visual Signal內建的訊號源(Source),也可自行匯入數據 (Import Data),並模擬數據隨時間變化的即時動態(Real Time);此功能位於 Source/DAQ/Simulated-DAQ。

參數設定

  1. 從Source/DAQ/Simulated-DAQ新增此功能,並接上Viewer/Channel Viewer顯示。

  2. 滑鼠雙擊元件”Simulated-DAQ”,開啟參數設定視窗。

  3. Simulator介面可設定訊號源的波形和基本參數,從 可增加或刪除通道。

  4. Data Acquisition介面可設定數據顯示的時間長度(Sample Time),勾選”Continuous Mode”數據將以Real Time方式顯示。

參數設定 說明
Sample Time(s) 量測時間(秒),如未勾選Continuous Mode,則需填選訊號量測時間
Sample Rate(Hz) 取樣頻率(Hz),可自行依照資料的種類及要求的資料品質選擇取樣頻率(建議:若資料為連續訊號,取樣率最少須為該訊號最大頻率的2倍)
Data Length 資料點數長度(SampleTime×Sample Rate=Data Length,三者互相連動)
Continuous Mode 連續監測模式,若需要連續監測訊號,則將此項目勾選
Scrolling 連續監測模式下的取樣方法,包含:無(Off)、抽樣(Sample)、平均(Average)、最大值(Extrema)、短時距傅立葉變換(STFT)
Logging 檔案量測存取位置,勾選後可選擇檔案存取路徑
  1. 參數設定好後,點選即可將數據輸出至 Channel Viewer。

範例

用DAQ-Simulator輸出Sine Wave的Real Time訊號。

  1. 從Source / DAQ / Simulated-DAQ 新增此功能,並接上 Viewer / Channel Viewer 顯示

  2. Device 選擇 Wave,Setting / Type 選擇 Sine,Amplitude=1,Frequency=10

  3. 切換到 Data Acquisition 介面,勾選 Continoous Modex,Scrolling 選擇 Off。

  4. 點選 ,即可從 Channel Viewer 觀察 Sine Wave 在 0.05 秒內的動態變化(下圖為靜態截圖)。

相關指令

Import Data, Source

7 繪圖模組(Viewer)

7.1 Channel Viewer

Channel Viewer的功能是以圖形的方式將訊號波形繪製出來,以供操作者作進一步的訊號分析與判讀。

說明

Channel Viewer 是繪出訊號資料的工具,可以用圖形的方式呈現時域訊號和頻譜等訊號。繪圖時會依照每個資料點所對應的時間或頻率大小,由小到大將訊號資料繪製出來。

當輸入訊號為時域訊號時,橫軸為時間值,縱軸為資料值。如有多通道則會用不同顏色繪出,也可開啟 Legend 顯示各通道名稱。使用者可用 PlotElemEditor 改變通道名稱及繪圖方式(見下文詳細說明)。

當輸入訊號為音頻時域訊號時,會有相應的音頻播放介面出現(請參閱【視覺化繪圖區】章之【播放功能】詳細說明)。

當輸入訊號為頻譜訊號時,橫軸為頻率值,縱軸為資料值。頻譜訊號通常為複數值,此時會依照 YValueType 參數決定繪圖的數值,預設為 Magnitude (即複數的絕對值)。在頻譜模式時使用者可以開啟倍頻模式(見下文以及【視覺化繪圖區】章之【倍頻模式】詳細說明)。

無論輸入是時域或頻域訊號,本元件還提供了類似示波器的量測模式,使用者可以定義兩條垂直或水平的量測線計算其差值(見下文以及【視覺化繪圖區】章之【量測模式】詳細說明)。

參數設定

本模組接受實(real number)、複數(complex number),單通道(single channel)或多通道(multi-channel),regular或Indexed的訊號(signal)或聲音訊號(audio)輸入輸入,而且支援多個訊號連入。由於 Channel Viewer 的參數眾多,下面將分類一一介紹。

  1. Appearance

    在 Viewer 模組下可以調整以下四個參數;包含 BackColor、ViewerWidth、 ViewerHeight、ListOrder。詳細的說明,可參考各參數的定義。


    Appearance 欄位參數
    參數名稱 參數定義 預設值
    BackColor 設定繪製圖形的底色。 White
    ViewerWidth 設定繪製圖形的寬度,以 pixels 為單位。 650
    ViewerHeight 設定繪製圖形的高度,以 pixels 為單位。 180
    ListOrder 設定圖形於繪圖視窗中的排序。 依照 Viewer 的建立順序排列
    RetainPlot 設定是否要保留圖形,如果設定 True,若將連接至 Channe Viewer 的模組刪除,圖形還是會被保留,若設定 False,則圖形被消除。 False
  2. Channel


    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

    Representation 欄位參數
    參數名稱 參數定義 預設值
    TimeUnit 顯示訊號的時間單位。 依輸入而異
    LegendPosition 圖例說明方塊呈現的位置。選項有不顯示、左上、左下、右上、右下、圖框外右邊或使用者自行設定。若設定為使用者自行設定,可以利用滑鼠拖拉 Legend 至適當的位置。 None
    AutoLegendNames 設定是否要根據輸入訊號的資訊顯示出個通道 Legend,若設定為 True,將會根據輸入訊號去調整 Legend,若為 False,Legend 則是根據 PlotElemEditor 的設定。 False
    XAxisType X 軸的類型,有 Linear Axis 或 Log Axis。 LinearAxis
    PlotElemEditor 可叫出 Plot Element Setting 介面,供使用者編輯繪圖的樣式,見下文。 PlotEditor
    DataValueType 當輸入為複數資料(通常為頻譜資料)時,此欄位可選擇繪出不同的圖形,選項有Magnitude、Phase、Real、Imagine、Gain、Powerspectrum。相關定義請參閱 Conversion/Convert From Complex。 Magnitude
    GainReference 若 DataValueType 設定為 Gain,此欄位會自動出現供使用者設定。相關定義請參閱 Conversion/Convert From Complex。 1
    HoldPlotRange 當此欄位為設定為 True, 即使圖面被縮放或平移工具調整過,在更新計算後,圖面仍可維持在之前調整的範圍。 False
    Xmin 設定圖 X 軸的最小值。 auto
    Xmax 設定圖 X 軸的最大值。 auto
    Ymin 設定圖 Y 軸的最小值。 auto
    Ymax 設定圖 Y 軸的最大值。 auto
    X-Axis Label Format 設定 X-軸標籤格式: Auto
    X-Label Format String X-軸標籤格式設定為 Custom 時,可設定 X-軸標籤格式字串。 Auto
    Y-Axis Label Format 設定 Y-軸標籤格式: Auto
    Y-Label Format String Y-軸標籤格式設定為 Custom 時,可設定 Y-軸標籤格式字串。 Auto
    Show Title 是否顯示標題。 True
    Show X Axis 是否顯示 X 軸。 True
    Show Y Axis 是否顯示 Y 軸。 True

    繪圖的線條顯示樣式設定要在 PlotElemEditor 對話窗裡設定,使用者可以直接在元件上雙擊開啟 PlotElemEditor 對話窗,或是在其參數欄位的右側點擊! Dots圖示開啟,如下圖:

    PlotElemEditor 點選後會出現一對話窗供使用者編輯繪圖樣式。使用者可調整線條的顏色、線寬、實線、虛線、更改通道名稱,以及是否要加 Marker 等,也可以在 Display 勾選欄位下選擇是否要用線條繪出該 Channel 的訊號,如下圖:

    下表說明對話窗中各欄位設定:

    PlotElemEditor 欄位說明
    欄位 說明 預設
    Display 打勾選擇是否顯示該通道 Enabled
    Channel Name 輸入訊號 Legend 中顯示的通道名稱 輸入訊號通道名稱
    Line Color 選擇線條顏色,點擊開啟標準系統顏色選擇對話窗 依照通道預設顏色
    Line Width 選擇線條粗細,由最細(1)至最粗(10) 1
    Line Style

    選擇線條形式:

    • Solid:實線
    • Dash:橫虛線
    • Dot:點虛線
    • DashDot:橫-點虛線
    • DashDotDot:橫-點-點虛線
    Solid
    Marker Style

    資料點標籤圖示:

    • None
    • Circle
    • Cross1
    • Cross2
    • Square
    • TriangleUp
    • TriangleDown
    • Diamond
    • FlagUp
    • FlagDown
    • FilledCircle
    • FilledSquare
    • FilledTriangle
    • FilledDiamond
    • VerticalLine
    None
    Marker Size Marker Style 設定非 None 時,可以設定資料點標籤圖示大小(單位為像素) 6
    Draw Style 訊號繪圖形式(見下圖示範): | Lin |
    • Line:資料點之間以直線連接  |
    • Stem:每個資料點以由Y-軸零點開始之垂直線呈現 | |

    下圖為預設之訊號繪圖形式「Line」繪出 20 個資料點之 Brown Noise 訊號,預設之 Marker Style 為 None:

    下圖為同樣訊號以 Stem 形式繪圖,Marker 設為 Circle,大小為預設(6):

  4. Title

    Title 欄位參數
    參數名稱 參數定義 預設值
    Title 圖名。 輸入模組的名稱
    Xtitle X 軸名稱。 輸入模組的 X 軸單位
    Ytitle Y 軸名稱。
  5. Fonts and Colors


    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


    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
  7. Measurement

    量測模式參數
    參數名稱 參數定義 預設值
    EnableMeasurement 設定為 True 時開啟量測模式,同時開放下列所有參數欄位;設定為 False 時則隱藏所有欄位 False
    HorizontalCursor1 設定第一條水平量測線位置
    HorizontalCursor2 設定第二條水平量測線位置
    HorizontalMeasurement 顯示水平量測結果(水平量測線之差)
    VerticalCursor1 設定第一條垂直量測線位置
    VerticalCursor2 設定第二條垂直量測線位置
    VerticalMeasurement 顯示垂直量測結果(垂直量測線之差)
    CursorColor 設定量測線顏色 Magenta
    CursorWidth 設定量測線寬 1
    CursorStyle 設定量測線樣式 Dash
    CursorLabelFont 設定量測線標籤字型 Arial, 9pt, style=Italic

    量測線之位置可以在參數欄位上輸入數值,或是用【視覺化繪圖區】章之【量測模式】章節說明的方式以滑鼠在圖上拖曳,以此方式設定後對應之參數欄位的數值會自動更新。設定好水平或垂直兩條量測線後所量測的結果會同時顯示在量測線標籤上(第一條量測線會有 REF 的標籤,第二條量測線標籤則為量測結果)以及在 HorizontalMeasurement 或 VerticalMeasurement 參數欄位中。

  8. Harmonics

    倍頻模式參數
    參數名稱 參數定義 預設值
    Harmonics Type

    選擇倍頻模式:

    • Disabled:關閉倍頻模式
    • Harmonics:開啟倍頻模式
    • SubHarmonics:開啟次頻模式
    • Sideband:開啟邊頻模式
    • FracHarmonic:開啟分頻模式

    選擇任何倍頻模式時會開放以下參數欄位,選擇 Disabled 時則隱藏所有欄位。各模式詳細說明請參閱【視覺化繪圖區】章之【倍頻模式】章節

    Disabled
    Range Mode

    選擇範圍模式:

    • All:顯示全範圍內所有倍頻線
    • Count:顯示部分倍頻線
    • Range:顯示部分範圍內所有倍頻線

    Count 及 Range 模式需要額外的參數設定,見下表。另外,在邊頻模式時強制設定為 Count 模式,此參數欄位不顯示

    Count
    Fundamental 設定基礎頻率。 0
    Last Frequency 顯示最後一條倍頻線之頻率
    Unit 顯示頻率單位
    Color 設定倍頻線及標籤顏色 HotPink
    Line Width 設定倍頻線寬 2
    Line Style 設定倍頻線樣式 Dash
    Label Mode

    選擇標籤模式

    • None:不顯示標籤
    • Show Index Only:只顯示倍頻數
    • Show Fundamental Frequency:顯示倍頻數,基頻線多出頻率數值
    • Show All Frequencies:顯示倍頻數及頻率數值
    Show Fundamental
    Frequency
    Frequency Label Format 設定標籤數字格式 0.00
    Label Font 設定標籤文字字型 Arial, 8pt,
    style=Bold, Italic
    其他參數
    參數名稱 參數定義 預設值
    Count 在 Count 範圍模式下,可設定除基礎頻率外顯示 \(N\) 條倍頻線。在邊頻模式下 Count 的定義為邊頻數,即除基礎頻率外顯示 \(2N\) 條邊頻線 5
    Interval 在邊頻模式下,可設定邊頻的間隔 0
    Min Frequency 在 Range 範圍模式下,可設定頻率範圍的最小值 Auto
    Max Frequency 在 Range 範圍模式下,可設定頻率範圍的最大值 Auto

    Fundamental 線之位置,及 Count 與 Interval 的參數設定,除了在參數欄位上輸入數值外,也可以以滑鼠在圖上拖曳(Fundamental),以及用滑鼠滾輪配合 Shift/Alt 鍵的方式(Count 與 Interval)更改。以此方式設定後對應之參數欄位的數值會自動更新。詳情請參考【視覺化繪圖區】章之【倍頻模式】章節說明。

    倍頻線上的標籤預設是顯示倍頻數(以xN 格式顯示,\(N\) 為基頻倍數,基頻為 x0,第一倍頻為 x1 等等),除此之外基頻線標籤還會顯示頻率數值。Label Mode 參數可以改變這個預設,設定為不顯示、只顯示倍頻數,或全部都顯示頻率數值。

範例

以下用範例簡單介紹 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 功能鍵。將 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 的顏色為紅色,線條形式為虛線,並採用 \(\blacklozenge\) 為 Marker,按下 Apply 後可看到圖形改變如下。



  7. 示範以 Channel Viewer 繪製頻譜圖,並且改變 YValueType 繪製不同的圖形。在 Square 作 Compute / Transform / Fourier Transform,結果可用 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 分類中 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,結果如下圖。



相關指令

FFTMerge to Multi-ChannelConvert to Audio

7.2 Time-Frequency Viewer

Time-Frequency Viewer 是以圖像方式呈現三維時頻訊號(時間、頻率、訊號強度)的展示模組。

說明

Time-Frequency Viewer 是繪製時頻分析資料的工具,依照輸入訊號的類別,X 軸與 Y 軸軸可以為訊號的時間軸或頻率:

時頻圖是以色階分布呈現,其顏色代表某個時間與頻率交叉點的強度,可關閉的色階會顯示在圖右方。

參數設定

本元件接受實數(real number)或複數(complex number)的單通道(single channel)時頻訊號(Spectra),以及【瞬時頻率時域訊號重疊】(見下文說明)所需之實數或複數時域訊號(Signal)。 部分參數如 Appearance、Title、Fonts and Colors、Grid 、 Representation、Measurement、Harmonics 大致上與 Channel Viewer 的參數相同,可以參考【Channel Viewer】說明,本章節僅介紹 Time-frequency Viewer 所獨有參數。


TF Viewer 專有參數
參數名稱 參數定義 預設值
CMin 設定時頻圖顏色最小值所對應的資料大小。 Auto
CMax 設定時頻圖顏色最大值所對應的資料大小。 Auto
Colormap 設定時頻圖顏色的樣式,有 Jet、Hsv、Rainbow、Gray 等四種樣式。 Jet
Show Color Bar 在圖的右方是否需要顯示顏色條。 False

倍頻相關參數跟 Channel Viewer 一樣(請參考【Channel Viewer】章節說明),但會因頻率軸的方向而被歸納在不同類別中:

瞬時頻率之時域訊號重疊

本 Viewer 元件還支援將一組多通道之時域訊號重疊在時頻圖上。時域訊號值必須為頻率,以對應時頻圖之頻率軸,因此無法重疊隨意任何時域訊號,通常應用為重疊瞬時頻率時頻訊號。時頻訊號必須接至第二個輸入埠,接法如下:

在所有參數為預設的情況下,得出的圖為:

當本元件接上重疊訊號時,Representation 會多出相關參數欄位:

重疊相關參數
參數名稱 參數定義 預設值
Overlay CVal 當重疊訊號為單通道時,可設定單一頻道之色階表對應之數值。預設的數值讓重疊線有較高機率凸顯於時頻圖 9999
Overlay CVals 當重疊訊號為多通道時,可設定各頻道之色階表對應之數值。預設的數值讓重疊線有較高機率凸顯於時頻圖 9999
Overlay Width 設定重疊線條的寬度 2

範例

產生一個 Square Wave 訊號並以 Enhanced Morlet Transform 作時頻分析後,以 Time-Frequency Viewer 繪出,同時示範幾個常用的參數調整作進一步的說明。

  1. 在 Source / Square Wave 產生一組方波訊號,並以 Compute / TFA/Enhanced Morlet Transform 進行時頻分析,再以 Time-Frequency Viewer繪出時頻圖,預設繪出的資料是 Magnitude。



  2. 設定 CMax 為 0.197772704820884,此值為時頻分析結果的顏色最大值,顏色最大值預設是對應資料色彩的最大值。 在不同的分析情況,使用者可能對某些頻段的資料較感興趣,這時可藉由調整 CMax 的大小來改變時頻圖的色彩顯示狀況,依不同的狀況調整 CMax 可找到較適的時頻圖,若是想要調整預設 CMax,可至Perference / Plot / Time Frequency Plot 中調整 CMax 。



  3. 設定 Show ColorBar 為 True 會於圖面右方新增一個顏色的色條,此色條可作為時頻圖顏色與數值間的一個對照參考。



  4. 改變 TF Viewer 的 ValueType,設定為 Phase,則 TF Viewer繪製相位角。



相關指令

FastSTFTTransposeSpectraSecogramChannel Viewer

7.3 XY Plot Viewer

將兩組輸入訊號,分別當作相對應的 X、Y 軸進行繪圖。

說明

XY Plot Viewer主要可接受三種訊號資料型態,並進行圖形的繪製。主要的說明與介紹如下:

  1. 兩組單通道訊號資料:Channel 1 為 X 軸;Channel 2 為 Y軸,以此為原則進行 Plot 。

  2. 一組多通道訊號資料:奇數 Channel 為 X軸;偶數 Channel 為 Y軸,以此為原則進行 Plot。

  3. 單通道複數資料:以實數為 X 軸;虛數為 Y 軸,以此為原則進行 Plot。

參數設定

本模組接受實數(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 所特有的參數。

XY Plot 專有參數
參數名稱 參數定義 預設值
MaxPointCount 繪圖用到的點數,由第一點開始計算。 1001

範例

用 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,調整 NoiseType 為 Brown;接著從Source / Custom Wave 建立一個 Custom Wave,於 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 ,調整 Phase 為 90,便可產生一個 Cosine Wave。從 Conversion / To Complex可將訊接轉為單通道複數資料,最後以 XY Plot Viewer 繪出如下圖所示:




  2. 調整 Viewer Width 以及 ViewerHeight 為300,重新以 XY Plot Viewer 繪製,結果顯示如下圖所示:



相關指令

Channel ViewerKernel Smoothing Density

7.4 Histogram Viewer*

*Only in Professional*

利用 Histogram Viewer 可以簡單的繪製出統計直方圖。

說明

Histogram是統計常用的一種繪圖方式。其作法是將所蒐集的數據、特性值或結果值用一定的範圍加以區分成幾個相等的區間做為橫軸,並將各區間內的測定值所出現的次數累積起來作為縱軸,即 X 軸代表區間;Y 軸代表區間內測定值出現的次數,以此為原則用柱形畫出直方圖。

參數設定

本模組接受實數(Real Number)、複數(Complex Number),單通道(Single Channel)或多通道(Multi-Channel),Regular 或Indexed 的訊號(Signal)或聲音訊號(Audio )輸入。參數 Appearance、Fonts and Colors、Grid 以及Title 相同於 Channel Viewer ,這部分請參考 Channel Viewer 內容,下面說明 Histogram 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

範例

產生一個 Gaussion Noise 與 CustomWave,用 Merge to Multi-channel產生一多通道訊號,再以 Box Plot Viewer 繪出兩訊號的方盒圖。

  1. 在 Source / Noise 建立一個雜訊,調整 NoiseType 為 Gaussion;調整 TimeLength 為 5。另外在 Source / Custom Wave 建立一個Custom Wave,從 TimeLength 調整時間長度為 5 秒。以 Conversion / Merge To Multi-Channel 將兩組訊號合成一多通道訊號,再用Viewer / Channel Viewer 將圖繪製出來。



  2. 將 ToMulti 以 Viewer / Histogram Viewer 畫圖。此時會畫出 Channel 1 的直方圖。



  3. 改變 IsDrawLine 為True,則直方圖上同時會顯示出線條,如下圖所示:



  4. 改變 Active Channel 為 Channel 2,則直方圖會繪製Channel 2 訊號。



  5. 改變 BrushStyle 為Vertical,則漸層的方向會轉為垂直方向。


相關指令

Box Plot Viewer使用者介面Merge To Multi-Channel

7.5 Bar Plot Viewer*

*Only in Professional*

繪製長條圖。

說明

Bar Plot Viewer 可將 Indexed 資料以長條方式繪圖顯示。長條圖類似 Channel Viewer 中的 Stem 繪圖形式,但長條的繪圖形式、著色等有更多的選項。

參數設定

本模組接受實數(real number)、單通道(single channel)或多通道(multi-channel),Indexed 的訊號(signal)或數值(Numeric)資料輸入,只支援單一個訊號連入。參數 Appearance 、Fonts and Colors、Grid、 Title 這些部分請參考 Channel Viewer,下面說明 Bar Plot Viewer 所特有的參數。

Bar Plot 專有參數
參數名稱 參數定義 預設值
TicksLabelAngle 長條圖 X 軸座標標籤排列的角度(degree), 0 為正常橫向排列(\(0^\circ\)),90 為順時針旋轉 \(90^\circ\) 直向排列(見下圖示範) 30

長條的顯示樣式設定如同 Channel Viewer 一樣要在 PlotElemEditor 對話窗裡設定,使用者可以直接在元件上雙擊開啟 PlotElemEditor 對話窗,或是在其參數欄位的右側點擊! Dots圖示開啟,如下圖:

下表說明對話窗中各欄位設定:

PlotElemEditor 欄位說明
欄位 說明 預設
Display 打勾選擇是否顯示該通道 Enabled
Bar Name 輸入訊號 Legend 中顯示的通道名稱 輸入資料通道名稱
Color 選擇線條顏色,點擊開啟標準系統顏色選擇對話窗 依照通道預設顏色
Line Width 選擇線條粗細,由最細(1)至最粗(10) 1
Line Style

選擇線條形式:

  • Solid:實線
  • Dash:橫虛線
  • Dot:點虛線
  • DashDot:橫-點虛線
  • DashDotDot:橫-點-點虛線
Solid
Gradient Style

選擇長條框內著色形式:

  • Solid:單色
  • Horizontal:水平漸層色
  • Vertical:垂直漸層色
  • ForwardDiagonal:斜角漸層(左上右下)
  • BackwardDiagonal:斜角漸層(右上左下)
  • HorizontalCenterFade:水平中間漸層
  • VerticalCenterFade:垂直中間漸層
Solid
Color1 長條框單色著色,或漸層第一顏色 依照通道預設顏色
Color2 長條框漸層第二顏色(單色時忽略)
Auto 打勾自動設定長條寬度,長條之間緊貼無縫隙。多通道時應設為非自動,否則通道間的長條圖會重疊 Enabled
Bar Width 當取消 Auto 時設定長條寬度。多通道時各通道會偏移 10~15 個像素左右,所以將長條寬度設為 15 以下便可以在每個資料點上顯示所有通道的長條圖(見下圖示範) 15

下圖為單一通道 20 資料點之 Brown Noise 訊號用 Convert To Indexed 轉換成 Indexed 訊號輸入,所有 Bar Plot Viewer 參數為上述之預設:

下圖為同一 Noise 訊號經過 AnCAD:EMD 元件分解為三通道再轉換為 Indexed 訊號輸入,將 Bar Plot Viewer 之一些參數按照下表修改:

多通道訊號 PlotElemEditor 參數修改
欄位 位置 設定
LegendPosition Properties TopLeft
Gradient Style PlotElemEditor ForwardDiagonal
Auto PlotElemEditor Disabled
Bar Width PlotElemEditor 10

相關指令

NoiseConvert To IndexedAnCAD:EMD

7.6 Box Plot Viewer*

*Only in Professional*

繪製方盒圖。

說明

Box Plot Viewer 是統計常用的一種繪圖方式。將一群組的數值以中位數、四分之一位數及四分之三位數為基礎,繪出一方盒, 用連接至方盒的直線表示數列的極大值與極小值,藉以展現群組的統計資訊。

參數設定

本模組接受實(real number)、複數(complex number),單通道(single channel)或多通道(multi-channel),regular或Indexed的訊號(signal)或聲音訊號(audio)輸入,且支援多個訊號連入。參數 Appearance 、Fontsand Colors、Grid、 Title 這些部分請參考 Channel Viewer,下面說明 Box Plot Viewer 所特有的參數。


Box Plot 專有參數
參數名稱 參數定義 預設值
BrushColor 繪製方盒內部的筆刷顏色。 LightGrey
BorderColor 繪製方盒邊界的筆刷顏色。 Black
TicksLabelAngle 方盒圖下方標題文字排列的角度(degree)。 0
MaxMarkerStyle 畫數列中最大值所使用的符號。 Circle
MinMarkerStyle 畫數列中最小值所使用的符號。 Cross1
MeanMarkerStyle 畫數列中平均值所使用的符號。 FilledSquare

範例

產生一個 Brownian Noise 與 CustomWave,用 Channel Viewer 繪出訊號後,再以 Box Plot Viewer 繪出兩訊號的方盒圖。

  1. 在 Source / Noise 建立一個雜訊 Noise,調整 NoiseType 為 Brown,接著在Source / Custom Wave 建立一個 CustomWave,在 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,即可畫出含有兩個方盒的方盒圖。



相關指令

TF Viewer使用者介面Convert From Complex

7.7 Error Bar Viewer*

*Only in Professional*

Error Bar Viewer 為可畫出誤差線之繪圖工具。

說明

通常在做實驗、量測數據都會有誤差產生,若要將此誤差量表現在圖表中,用以說明數據點的可信度或準確性時,便可利用 Error Bar Viewer。下圖為 Error Bar Viewer 可繪出的典型樣式。


使用說明

本模組要求數據、誤差上限、誤差下限三個時間序列必須”依序”存在於同一個輸入(Input )之中。連接至本模組之輸入若不恰好含有三個通道(Channel),皆會跳出錯誤訊息。

若數據、誤差上限、誤差下限三者不在同一個輸入之中,可以利用Merge to Multi-channel將其並排於同一輸入的不同通道中,再接至 Error Bar Viewer,如下圖所示。


參數說明

本模組接受多通道(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 ,會跳出如下圖之視窗:


可以選擇是否要在圖中顯示誤差線,為數列命名,以及調整數據點的標記類型與顏色。目前誤差線的顏色不能與數據點的顏色分開設定。

相關指令

Channel Viewer

7.8 Annotation(標註元件)*

*Only in Professional*

資料呈現在 Channel Viewer 及 XY Plot 時,可以在圖上加上標註與畫上線條。

說明

此群組包含水平線(HLine)、垂直線(VLine)、直線(Line)、水平區域(HRegion)、垂直區域(VRegion)、矩型(Rect)、橢圓(Ellipse)、文字(Text,包括數值標籤模式)等標註功能。

每個標註元件在圖上的位置是以該 Channel Viewer 或 XY Plot 的座標軸為依據繪於圖上,使用者可以在對應的參數(Position、Start、End 等)欄位中輸入座標值,也可直接使用滑鼠拖拉標註至適當的位置,拖拉後位置對應的參數會即時更新。拖拉時,將滑鼠游標移至標註圖樣上,此時滑鼠游標會由箭頭變成以下幾種游標:

滑鼠控制游標類型
游標類型 說明
ArrowCursor1

當滑鼠游標移至以下標註區域時,會出現此游標:

  • 垂直線(VLine)上:可上下移動垂直線
  • 垂直區域(HRegion)上緣與下緣:可上下移動區域上下緣,改變垂直區域大小
  • 矩形(Rect)或橢圓(Ellipse)的上緣與下緣:可上下移動上下緣,改變垂直大小
ArrowCursor2

當滑鼠游標移至以下標註區域時,會出現此游標:

  • 水平線(HLine)上:可左右移動水平線
  • 垂直區域(HRegion)左緣與右緣:可左右移動區域左右緣,改變水平區域大小
  • 矩形(Rect)的上緣與下緣:可上下移動上下緣,改變矩形水平大小
  • 橢圓(Ellipse)的上緣與下緣:可上下移動上下緣,改變橢圓水平大小
ArrowCursor3

當滑鼠游標移至以下標註區域時,會出現此游標:

  • 矩形(Rect)的左上角與右下角:可改變矩形大小
  • 橢圓(Ellipse)的左上角與右下角:可改變橢圓大小
ArrowCursor4

當滑鼠游標移至以下標註區域時,會出現此游標:

  • 矩形(Rect)的右上角與左下角:可改變矩形大小
  • 橢圓(Ellipse)的右上角與左下角:可改變橢圓大小
FingerCursor

當滑鼠游標移至以下標註區域時,會出現此游標:

  • 矩形(Rect)內部:可移動矩形位置
  • 橢圓(Ellipse)內部:可移動橢圓位置
  • 文字(Text)內部:可移動文字位置
  • 文字數值標籤模式之資料點上:可移動資料點位置
CrossCursor 當滑鼠游標移至直線(Line)標註之兩端時,會出現此游標,可改變直線兩端的位置

共有參數設定

共有參數
參數名稱 參數定義 預設值
ZOrder 圖型所在的層,越上面越大。原資料是第零層。所以 -1 就壓在原資料下面,反之 1 為壓掉原資料 -1

水平與垂直線相關參數

HLine(水平線標註功能)與 VLine(垂直線標註功能)之參數
參數名稱 參數定義 預設值
LinePen 線條的繪圖設定。可設定顏色(Color)、線條樣式(DashStyle)、與線條寬度(Width) Color = Red
DashStyle = Solid
Width = 1
Position 線條所在之座標點。若為水平線則為 Y 軸座標,若為垂直線則為 X 軸座標。若為日時 X 軸座標,則必須輸入 .NET 接受之【標準日時格式】的日期/時間 相關座標的中央點
PixelIndent 邊界之線條空白寬度,若設為 0 則線條兩端與上下或左右邊框連接在一起 0
EnableLabel 設為 True 時開啟線條標籤功能,可將 Position 數值或其他文字顯示在線條旁邊 False

下圖展示 HLine(紅線)與 VLine(藍線)以及其對應之 Position 參數值。與線條顏色對應的箭頭為滑鼠可以拖拉的方向:

如果水平軸為日時軸,則 Position 參數值為日時:

如上圖所示,水平與垂直線支援標籤功能,EnableLabel 設為 True 後可開啟標籤功能,可將 Position 參數值或其他文字顯示在線條旁。以下為標籤功能開啟後出現的相關參數:

水平或垂直線標籤功能相關參數
參數名稱 參數定義 預設值
PositionTextFormat 位置座標數值的格式。請參考 .NET 【標準數值格式】及【客製數值格式】。若為日時 X 座標,則參考【標準日時格式】及【客製日時格式】。設定為空白則採用預設自動格式
PositionText 顯示依照 PositionTextFormat 設定格式之線條標籤文字
LabelAnchor

標籤左上角的錨點,標籤的實際位置為錨點加上 Offset:

  • Minimum Edge (座標軸最小值邊緣)
  • Maximum Edge (座標軸最大值邊緣)
  • Center (座標軸中央點)

使用者也可以用滑鼠拖拉圖上的標籤至任何位置,此時會自動計算最接近的錨點並更新。

Center
Offset

從錨點開始偏移的<x>, <y> 像素數,此 Offset 值加上錨點的位置為標籤左上角的實際位置:

  • \(x > 0\):錨點右方
  • \(x < 0\):錨點左方
  • \(y > 0\):錨點上方
  • \(y < 0\):錨點下方

使用者也可以用滑鼠拖拉圖上的標籤至任何位置,此時會自動計算最接近的錨點以及其 Offset 值並更新。預設值依照水平或垂直線、錨點、文字字型等設定而有不同,通常會在標籤與線條及圖框中間保留大約 10 像素點的空白

(Various)
LabelText 標籤文字。可以輸入任何文字,或是用「$<property>」語法參照其他參數數值。使用者也可以點擊欄位右方的Dots開啟參數瀏覽器選擇欲參照的參數值,(詳情請參考【參數參照】章節說明) $PositionText
TextFont 文字字型,包括大小、字體、樣式,支援的種類依系統所擁有的字型而定

下圖為上面範例中 HLine 所用的參數:

其中 LabelText 的參數值為

HLine (Position=$PositionText)

其中「$PositionText」為參數參照,插入 PositionText 的參數值(0.60),其他文字會一字不變的顯示,結合起來則實際顯示在圖上的標籤文字則變為

HLine (Position=0.60)

直線、矩形、橢圓相關參數

Line(直線標註)、Rect(矩型標註)、Ellipse(橢圓標註)之參數
參數名稱 參數定義 預設值
LinePen 線條的繪圖設定。可設定顏色(Color)、線條樣式(DashStyle)、與線條寬度(Width) Color = Red
DashStyle = Solid
Width = 1
Start 圖型座標起點{X=<x>,Y=<y>},若為矩型或橢圓,則起點設定在左下角。預設值由位置在圖形正中央,大小為圖形的一半而計算之。 Various
見下表
End 圖型座標終點{X=<x>,Y=<y>},若為矩型或橢圓,則終點設定在右上角。預設值由位置在圖形正中央,大小為圖形的一半而計算之。 Various
見下表

下圖展示 Start 與 End 與標註在圖形中的關係:

圖中的直線(綠線)、矩形(藍線)、橢圓(紅線)都為預設大小及位置,在圖中顯示的座標軸中換算成參數值為:

Start & End 參數預設值
參數名稱 預設參數值
Start {X=0.25,Y=-0.6}
End {X=0.75,Y=0.6}

水平與垂直區域相關參數

HRegion(水平區域面積標註)與 VRegion(垂直區域面積標註)之參數
參數名稱 參數定義 預設值
ZOrder 因為整片區域著色會蓋過圖形最底層的方格,因此預設值設為一個很大的負數。如果方格不是很重要,或覺得區域中有方格不美觀,可以改回跟其他標註一樣的 -1,即標註區域畫在方格之上,資料線之下 -2000
Position1 繪圖之座標起點。若為水平區域則為 Y 軸座標,若為垂直區域則為 X 軸座標。預設值由位置在圖形正中央,大小為圖形垂直高度或水平寬度一半而計算之。 Various
見下表
Position2 繪圖之座標終點。若為水平區域則為 Y 軸座標,若為垂直區域則為 X 軸座標。預設值由位置在圖形正中央,大小為圖形垂直高度或水平寬度一半而計算之。 Various
見下表
PixelIndent 邊界之線條空白寬度 0
Color1 起點之顏色 Red
Color2 終點之顏色。中間區域之顏色為 color1 與 color2 以漸層之方式以整張圖比例混合 White

下圖展示 Position1 與 Position2 與 HRegion 標註在圖形中的關係:

下圖展示 Position1 與 Position2 與 VRegion 標註在圖形中的關係:

圖中所有相關參數都為預設大小及位置,在圖中顯示的座標軸中換算成參數值為:

Position1 & Position2 參數預設值
參數名稱 HRegion VRegion
Position1 -0.6 0.25
Position2 0.6 0.75

文字與數值標籤相關參數

Text(文字標註)之參數
參數名稱 參數定義 預設值
Text 文字內容 TEXT
Position 文字所在位置之座標點(以文字框左上角為準)。預設位置在圖形的左上角 Various
(依照圖形左上角計算)
TextColor 文字顏色 Red
TextFont 文字字型,包括大小、字體、樣式,支援的種類依系統所擁有的字型而定 字體 Arial,大小 10。
IsLabel 設為 True 的話本標註為「數值標籤」標註,見下文 False

下圖展示 Position 與文字標註在圖形中的關係:

文字內容支援多行格式,可點擊 Text 參數欄位右側Dots圖示開啟文字編輯器編輯多行文字內容,如下圖:

編輯完成後關閉編輯器即可:

文字編輯器的操作跟【DoMatlab】元件的 DoMatlab Editor 相同,除了預設內建編輯器之外,使用者可以在工具列上選擇其他編輯器類別。如果在偏好設定裡設定了其他的編輯器類別,則開啟本文字編輯器或 DoMatlab Editor 都會預設為偏好設定的編輯器。詳情請參閱【DoMatlab Editor】章節說明。

數值標籤模式

文字標註有數值標籤模式,將 IsLabel 參數設為 True 即可,此時會有額外的參數可設定:

數值標籤模式相關參數
參數名稱 參數定義 預設值
Offset

取代原有的 Position 參數。在數值標籤模式下文字標籤的位置是以資料點為依據,因此原有的 Position 會轉換成以資料點位置為基礎的<x>, <y> 像素偏移值:

  • \(x > 0\):資料點右方
  • \(x < 0\):資料點左方
  • \(y > 0\):資料點上方
  • \(y < 0\):資料點下方

使用者也可以用滑鼠拖拉標籤至任何位置,此時會自動計算 Offset 值並更新

0, 0
DataPosition 資料點位置。使用者也可以用滑鼠拖拉資料點至任何位置。如果數值標籤是由數值抓取模式中十字交點的【產生標籤功能】所產生,則會隱藏此參數,無法變動位置。預設位置在圖形的左上角,與標籤預設位置重疊。 Various
(依照圖形左上角計算)
LinePen 連接資料點及標籤之線條的繪圖設定。可設定顏色(Color)、線條樣式(DashStyle)、與線條寬度(Width) Color = Red
DashStyle = Solid
Width = 1
MarkerSize 資料點的標記圖形大小 6
MarkerStye

資料點的標記圖形樣式,有以下選擇:

  • None
  • Circle
  • Square
  • TriangleUp
  • Cross2
  • Cross1
  • TriangleDown
  • Diamond
  • FlagUp
  • FlagDown
  • FilledCircle
  • FilledSquare
  • FilledTriangle
  • FilledDiamond
  • VerticalLine
Circle

下圖展示 DataPosition、Offset 與數值標籤在圖形中的關係:

範例

將正弦波加註。

  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至繪圖區內的某處,其他的標註也都可以用相同的方法去拖拉移動,不需要在參數內重新輸入位置或起始點。



相關指令

Channel ViewerSine Wave

8 訊號輸出模組(Writer)

8.1 Export Data

Export Data 可將資料另存為各種格式的檔案。

說明

當需要將資料以另一軟體開啟,或是將計算結果儲存時,可以使用此功能。

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 的訊號資料。

相關指令

Data Writer

8.2 Export to Excel

可將訊號資料以 Microsoft Excel 開啟。

說明

在需要將資料以 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)為頻率,選擇所輸出的數值在對應的時間與頻率格子中。下圖為示意圖:


8.3 Data Writer

本元件主要功能是將資料寫出並另存為各種格式的檔案。

說明

當希望計算的資料可以自動存成指定檔案時,尤其在使用 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 元件執行開關打開,檔案就會存出了。

相關指令

Export Data