Table of Contents
選取多通道(multi-channel)訊號內其中一個通道的訊號。
參數設定(Properties)
本模組接受實(real number)、複數(complexnumber),多通道(multi-channel),regular的訊號(signal)或聲音訊號(audio)輸入。參數定義詳如下面圖表。
參數名稱 |
參數定義 |
預設值 |
Channel Count |
輸入訊號的總通道數。 |
0 |
Active Channel |
設定欲選取的資料。 |
Channel 1,即第一個通道資料。 |
Select Last Channel |
是否預設為選定最後一個通道資料。 |
false |
範例(Example)
將正弦波與三角波合為一個 multi-channel 資料,用 Channel Switch 選擇正弦波訊號。
以 Source / Sine Wave 建立正弦波源,Source / Triangle Wave 建立三角波源,在 Sine 與 Triangle 這兩元件的 Properties / Source 裡,取樣頻率(SamplingFreq)設定為預設值 1000,訊號頻率(SignalFreq) 分別設定為 6 與 15,再用 Conversion / Merge to Multi-channel 將兩組格式相同的訊號結合為一組多筆 ( multi-channel ) 的訊號。
再將 ToMulti 的輸出接上 Channel Switch,再以 Viewer / Channel Viewer 繪製結果,並改變 Channel Switch 的 Properties / Active Channel,可觀察到只留下正弦或三角波。
注意 :
Channel Switch 只是將原本多通道訊號減為單通道(single channel)資料,並非分離波形。
相關指令
Merge to Multi-channel,Channel Viewer,Sine Wave ,Triangle Wave。
選取某段時間內的訊號資料。
參數設定(Properties)
本模組接受實數(real number)、複數(complex number),單通道(single channel)或多通道(multi-channel),regular的訊號(signal)或聲音訊號(audio)輸入。參數須設定起始與終點位置,其單位等於輸入訊號的時間單位。
參數名稱 |
參數定義 |
預設值 |
StartPosition |
設定選取資料的時間起點。 |
輸入訊號的時間起點。 |
EndPosition |
設定選取資料的時間終點。 |
輸入訊號的時間終點。 |
DownSampleStep |
每多少個點重新取一個點,用來降低取樣頻率。 |
1 |
NewCount |
擷取出新資料的數量。 |
0 |
範例(Example)
以 Source / Sine Wave 建立正弦波,在 Sine 元件的 Properties / Source ,此例的取樣頻率(SamplingFreq) 設定為預設值 1000,訊號頻率(SignalFreq) 設為 20,並用 Viewer / Channel Viewer 觀察之。
原本訊號接上 Data Selection,並設定選取的起點與終點 ( 在此例為起點 0.2 s,終點 0.4s ),可觀察到該段時間內訊號被截取出來。注意選取部份不可超過原長度( 以此例來說就是不在 [ 0 , 1]的範圍內 ),否則將無法運作。
相關指令
Channel Switch,Channel Viewer,Sine。
複製輸入訊號源。(主要可應用為 Macro 之起點,請參考 Chapter 8.1。)
參數設定(Properties)
Dup 接受所有訊號格式作為輸入,無需設定參數。
範例(Example)
將正弦波複製:
以 Source / Sine Wave 建立正弦波,並觀察之。
在 Sine 元件的 Source / Properties,此例的取樣頻率 ( SamplingFreq ) 設定為預設值 1000,訊號頻率 ( SignalFreq ) 設為 10。
原本訊號接上 Dup,可見複製出來者完全相同。
下面是將Dup 應用於 Macro 的實例:
將訊號做傅立葉轉換以算出頻率;同時將原訊號做 Hilbert 轉換,比較兩者算出頻率之異同。處理程序如下配置:
將此配置為 Macro (巨集),再匯入時會成為如下結果:
(剛匯入時計算並不會執行,要按下 force update 才會有結果)
由上圖可見,若將原訊號置換為其他訊號以進行計算,是需要以手動方式將新訊號源接上 FFT 以及 Hilbert 模組。在要做更多處理時會愈加複雜,並易出錯。
若現在將資料源與計算中間插入一 Dup :
同樣地,存為巨集然後匯入 :
可見到只要將資料替資並連結上 Dup,較之前方法方便極容易許多。
相關指令
Macro。
將缺值的資料補值。
說明
將輸入訊號資料為 NaN ( Not A Number ) 或
Null 之缺值部份補齊。
參數設定(Properties)
本模組接受實數(real number),單通道(single channel)或多通道(multi-channel),regular 的訊號(signal)或聲音訊號(audio)輸入。參數為 FillMethod,內有五個選項,相關定義與預設值整理如下表。
參數為 FillMethod 內有五個選項,可選擇不同的補值方法。相關定義與預設值整理如下表。
參數名稱 |
參數定義 |
預設值 |
FillMethod |
填補方法,有 FixedValue、PrevValue、NextValue、LinearInterpolation 與 SplineInterpolation。 |
LinearInterpolation |
選項名稱 |
選項定義 |
FixedValue |
由使用者輸入一個定值作為缺值的大小。此參數下方會出現欄位 NullValue,即設定欲補入之數值。 |
PrevValue |
缺值處之值以前方最鄰近非缺值之數值補值。 |
NextValue |
缺值處之值以後方最鄰近非缺值之數值補值。 |
LinearInterpolation |
缺值處之值,以前後第一個非 Null 的兩值做線性內插。 |
SplineInterpolation |
做三次曲線內插補值。 |
MonotonicCubic |
為有 damping 的三次內插法,此法在處理在斜率很大的訊號(如方波)時,可避免劇烈振盪,較 Spline 為佳。 |
範例(Example)
填補缺值複製:
打開安裝目錄 ( C:\ Program Files \ AnCAD \ Visual Signal \ demo \ Basic ) 下的 Demo53,可看見有缺值的訊號。
在 Demo53 中,利用 SplineInterpolation、Linear、Fixed Value、MonotonicCubic 四種方法補值,下圖是以 SplineInterpolation 方法補值後的圖形。
若是以 Linear Interp,補值後圖形可知填補法明顯不同。
在外部匯入資料時,Text Importer 即有一選項為填補缺值之功能,與此元件完全相同。
現在將一個缺值的訊號匯入(此資料為將原本的方波隨意去除部份值),匯入後不補值(將 Text Importer 的 Null Value Handle下的 Use Null Handle 關閉),結果如下。
現在將原始輸入訊號分別以 Spline Interpolation 以及 Monotonic Interpolation 填補。
由此可看出兩者填補的結果不盡相同,細黑線是 Spline Interpolation,藍粗線為 Monotonic Interpolation。
相關指令
Text Importer,Resampling。
將多通道(multi-channel)訊號中的某中一個通道的訊號移除。
參數設定(Properties)
本模組接受實數(real number)、複數(complex number),多通道(multi-channel),regular或indexed的訊號(signal)或聲音訊號(audio)輸入,參數定義詳見下面圖表。
參數名稱 |
參數定義 |
預設值 |
Channel Count |
輸入訊號的總通道數。 |
0 |
Remove Channel |
選定欲移除的資料。 |
Channel 1 |
Select Last Channel |
是否設為選定最後一筆資料。 |
False |
範例(Example)
將正弦波、三角波及方波結合為同一個 (multi-channel) 訊號,再將其中某個通道訊號移除:
以 Source / Sine Wave、Square Wave 及 Triangle Wave 建立正弦波、方型及三角波,並用 Conversion / Merge to Multi-Channel 將三個輸入訊號整合為一個(multi-channel) 訊號。在各波源的取樣頻率 ( SamplingFreq ) 皆為預設值 1000,而訊號頻率 ( SignalFreq ),分別為 5 (Sine Wave )、8 ( Square Wave )、Triangle 設定為 15,以觀察不同波形。
在 Merge to Multi-Channel 後連結上 Compute / Channel / RemoveChannel ,選定移除第一通道訊號 ( Sine Wave ),可得如下頁圖之結果:
再改變 Remove Channel 的 Properties,將 Select Last Channel 調整為 True,則 Remove Channel 將自動設為 Channel 3,為刪除第三個通道資料,即也就是 Triangle Wave 訊號。
注意:
Channel Switch 為將選取的資料留下,其餘刪除;而 Remove Channel 恰相反:刪除選取訊號、其餘保留。
相關指令
Merge to multi-channel,Channel Switch。
將訊號中一數值取代為另一數值,或將一段訊號的數值全以另一數值取代。
參數設定(Properties)
本模組接受實數(real number),單通道(single channel)或多通道(multi-channel),regular的訊號(signal)與聲音訊號(audio)輸入。參數定義與預設值整理如下表。
參數名稱 |
參數定義 |
預設值 |
ReplaceMethod |
設定取代的方法,包含 All、Expression、ByPass。 |
Expression |
假設 ReplaceMethod 設定為 Expression,則可設定參數如下表。
參數名稱 |
參數定義 |
預設值 |
Condition Expression | 輸入要取代的條件式。可使用+,-,*,/,<,>,==,!=,&,|| 等運算元。 | y == null |
Replace Value | 設定取代後的數值。 | 0 |
StartPosition |
設定被取代訊號的起始點。預設為輸入訊號的起始點。 |
start |
EndPosition |
設定被取代訊號的終點。預設為輸入訊號的終點。 |
end |
假設 ReplaceMethod 設定為 All,則可設定參數如下表。
參數名稱 |
參數定義 |
預設值 |
ReplaceValue |
設定取代後的數值。 |
0 |
StartPosition |
設定被取代訊號的起始點。 |
start |
EndPosition |
設定被取代訊號的終點。 |
end |
若設定 ReplaceMethod為 ByPass,則輸出與輸入相同。
範例(Example)
將一方波的峰值改變成另一數值:
以 Source / Square Wave 建立一方波,以 Viewer / Channel Viewer 繪出。
將 Square 連上 Compute / Channel / ReplaceValue,設定 Properties / Condition Expression 為 y==1,ReplaceValue 為 -0.5,StartPosition 為 0.2 ,EndPosition 為 0.6。
如此處理可將訊號中0.2s到0.6s中所有等於1 的數值取代成-0.5。可見圖形有明顯不同:
再將 ReplaceValue 中 Properties/ ReplaceMethod 調整為 All,進一步設定 Properties / ReplceValue 為 0.2,StartPosition 為 0.3 ,EndPosition 為 0.6,如下圖。
相關指令
無
Resample 為重新取樣,常用的用途有下列兩種:
當資料量過大時,用來降低資料量。
資料點數不足時,以內插的方式獲得比原數據點數更多的資料。
不管是做以上哪一種用途,重新取樣可能會造成 aliasing 的現象,因此,如果要用重新取樣完的數據來做頻譜分析時,應特別小心。另外,內插方式的選擇也會影響重新取樣完的數據,若需做較精細的分析時,也應該考慮此因素來選擇內插的方式。
參數設定(Properties)
本模組接受實數(realnumber)、複數(complex number),單通道(single channel) 或多通道(multi-channel),regular的訊號(signal)與聲音訊號(audio)輸入。
參數 Properties / Data 下顯示輸入訊號的頻率單位、取樣頻率與資料數量長度。
![]() |
參數 Properties / Resample 定義詳見下面圖表。其中若Step Downsampling為true時, NewSamplingFrequency以DownSamplingStep為基準(DownSamplingStep必須為整數); 若Step Downsampling為false時,NewSamplingFrequency可任以更改。
![]() |
參數名稱 |
參數定義 |
預設值 |
Step Downsampling |
設定是否要顯示 StepDownsampling 模式控制。 |
True |
DownSamplingFrequency |
降低取樣的方法,方法 Sample、Average、MaxDetect、MinDetect、PeakDetect,說明如下圖表。。 |
Sample |
DownSamplingStep |
降低取樣時,設定每多少個點重新取出一個點,此設定將影響 NewSamplingFrequency。 |
1 |
NewSamplingFrequency |
重新的取樣的頻率,既單位時間內的點數。 |
與 source 相同 |
NewCount |
顯示重新取樣後的總點數。 |
無 |
DownSamplingMethod 參數的選擇及說明如下圖表所列。
選項名稱 |
選項定義 |
Sample |
DownSamplingStep 設定點數,取出這些點的第一點。 |
Average |
DownSamplingStep 設定點數,取出這些點的平均。 |
MaxDetect |
DownSamplingStep 設定點數,取出這些點的最大值。 |
MinDetect |
DownSamplingStep 設定點數,取出這些點的最小值。 |
PeakDetect |
DownSamplingStep 設定點數,取出這些點的最大及最小值。 |
若參數 StepDownsampling 為 False,參數 ReSamplingMethod 代表對輸入訊號作重新取樣時所採用的計算方式, ReSamplingMethod 的參數選擇及說明如下圖表所列。
![]() |
參數名稱 |
參數定義 |
預設值 |
ReSamplingMethod |
重新取樣時,補點之方法,在此有三:最近點(Nearest)、線性(Linear)、曲線逼近(Spline)以及(MonotonicCubic)。 |
Linear |
選項名稱 |
選項定義 |
Nearest |
以最臨近的原訊號值,做為新樣本點處之值。 |
LinearInterpolation |
以前後第一個有定義的兩原訊號值做線性內插。 |
SplineInterpolation |
將原訊號做三次曲線內插以從新取樣。 |
MonotonicCubic |
有 damping 的三次內插取樣,此法在處理在斜率很大的訊號(如方波)時,可避免劇烈振盪,較Spline為佳。 |
範例 (Example)
範例 I : 建立一取樣頻率較高的正弦波,並以 Resampling中Step Downsampling 重新取樣。
以 Source / Sine Wave 建立正弦波,調整 Source 下的 SamplingFreq 以及 DataLength 為 100000 以及 100001,再接上 Viewer / Channel View 觀察之。
![]() |
![]() |
將 Sine 接至 Compute / TFA / Enhanced Morlet Transform 可以看到計算時間約 30 sec。
![]() |
將 Sine 接至Compute / Channel / Resampling ,於Resampling 的 Property 中更改 DownSamplingStep 為 2000,再接上 Viewer[1] 與原訊號一起比較(黑線為原始訊號,藍線為Resampling後),可以看出此降低取樣頻率造成了資料失真。
![]() |
![]() |
![]() |
故將Resampling 的Property中更改DownSamplingStep為500,再接上 Viewer[1]與原訊號一起比較,可以看出此降低取樣頻率沒有造成了 資料失真,接著接至Compute/TFA/ Enhanced Morlet Transform可以看到計算時間不需1 sec就可計算完成。
![]() |
![]() |
範例 II : 建立一取樣頻率太低正弦波,並以 Resampling 重新取樣。
以 Source / Sine Wave 建立正弦波,調整 Source 下的 SamplingFreq 以及 DataLength 為 100 以及 101, 再接上 Viewer / Channel View 觀察之。可發現繪製正弦波因為取樣點數不夠多而有點失真。
![]() |
![]() |
將原本訊號 Sine 接上 Compute / Channel / Resample,設定 Resample 下的 Step Downsampling 設定為 False。 若將ReSamplingMethod取Spline且NewSamplingFrequency提高至500,再接上 Viewer / Channel View,可以看出由於增加了採樣頻率而還原出較正確的正弦波。
![]() |
![]() |
![]() |
亦可由其他ReSamplingMethod取樣法嘗試,比較結果之異同。
![]() |
範例 III : 比較不同 ReSamplingMethod 的差異。
由 Source 下產生 Square Wave,參數使用預設值,接上兩個 Compute / Channel / Resampling,Step Downsampling 設定為 False,分別以 Spline 與 MonotonicCubic 增點 100 倍 ( NewSamplingFrequency 設為100000 ) ,並接上 Viewer / Channel View,畫在同一個 Viewer 上,比較不同的ReSamplingMethod差異。
![]() |
注意到在邊緣處,兩者結果相當不同,放大圖形來看為 (於 Viewer[1] 中 Property 將 XMin 改為 0.048, XMax 改為 0.054 )。 如下圖,其中黑細線為 Spline 的結果,藍線為 MonotonicCubic,可見後者之結果較佳。
![]() |
範例 IV : 比較 StepDownsampling 為 True 或 False 的差異。
以 Source / Sine Wave 建立正弦波,調整 Source 下的 SamplingFreq 以及 DataLength 為 100 以及 101, 接上Compute / Channel / Resampling,將 DownSamplingStep 改為 2。
再接上 Viewer / Channel View,設定Viewer的Representation中的PlotEditor ,將 MarkerStyle 改成 空心圓○及實心稜形◆。可以清楚看到當DownSamplingMethod為Sample時,是根據 DownSamplingStep 設定點數,取出這些點的第一點。
![]() |
![]() |
可由其他 DownSamplingMethod 嘗試,下圖DownSamplingMethod 的參數選擇依序為Average、MaxDetect、MinDetect、PeakDetect,比較結果之異同。
設定 Resample 下的 Step Downsampling 設定為 False ,選取不同的ReSamplingMethod 嘗試,比較結果之異同。
相關指令
參考資料
1. Numerical Recipes 3rd Edition: The Art of Scientific Computing by H. Press , Saul A. Teukolsky , WilliamT. Vetterling , Brian P.Flannery
將訊號時間點移動,可以對訊號平移(ShiftStartTime)、或直接設定欲移動處之時間點(SetStartTime)、亦或指定起點時間日期(SetStartDateTime),即訊號的時間軸方向的平移。
參數設定(Properties)
本模組接受實數(real number)、複數(complex number),單通道(single channel)、多通道(multi-channel),regular的訊號(signal)與聲音訊號(audio)輸入。
主要參數為ShiftMode,其中包括三個選項,ShiftStartTime、SetStartTime、SetStartDateTime,每選項對應不同的設定,各選項設定之意義整理如下表。
參數名稱 |
參數定義 |
預設值 |
ShiftMode |
設定時間起點的方法,包含 ShiftStartTime、SetStartTime、SetStartDate。 |
ShiftMode = ShiftStartTime |
選項名稱 |
選項定義 |
選項參數 |
ShiftStartTime |
將整個時間平移。 |
ShiftValue |
SetStartTime |
直接指定新的時間起點。 |
StartValue |
SetStartDate |
指定新時間起點的日期、為年月日時分秒之型式。 |
StartDate StartTime |
範例(Example)
建立一正弦波,並以 Time Shift 平移。
以 Source / Sine Wave 建立正弦波,調整 Properties / TimeStart為 3。可見得此正弦波初始點為第三秒。
將原本訊號 Sine 接上 Compute / Channel / TimeShift,設定移動方法為 ShiftStartTime,平移量為 2,可見時間起點改為第五秒。
若改用 SetStartTime,而起點 StartValue 設為 1,可發現時間起點移至第一秒。
注意 : RemoveDC 不只可移除直流訊(為訊號既有之縱向平移),亦可由 User_setting 讓使用者設定縱向平移量,可與 TimeShift 作對應。
相關指令
Time Shift,RemoveDC。
可以將一個單通道訊號連接至一個單通道訊號,形成一個單通道訊號。或者將一個多通道訊號連接至一個多通道訊號,形成一個多通道訊號。
參數設定(properties)
本模組可以接受實數(real number),單通道(single channel)、多通道(multi-channel),等間距(regular),訊號(signal)、聲音訊號(audio)。各參數定義與預設值如下表:
參數名稱 |
參數定義 |
預設值 |
StartPosition |
要被連接訊號的新位置,新位置以參考訊號的為基準,預設為參考訊號的最後位置。 |
end |
ReferenceInput |
設定參考訊號,StartPosition 是以參考訊號為準。 |
0 |
範例(Example)
本範例以 Source / Noise 及 Sine 為原始訊號,然後進行 Data Merge,產生一長度更長的訊號,然後進行運算,步驟如下:
Network 視窗下選擇 Source / Noise,設定時間長度(TimeLength) 為 2s、振幅(Amplitude) 為 1.5,另外再選擇 Source / Sine,設定時間長度(TimeLength) 為 1.5s、振幅(Amplitude) 為 2,兩個模組再各自接至 Viewer / Channel Viewer,所有設定如下圖。
再將 Noise 及 Sine 連接至 Compute / Channel / Data Merge,設定 Data Merge 的參數 ReferenceInput 為 0: Noise,StartPosition 為 1.5,將 Data Merge 連接至 Viewer / Channel Viewer 顯示結果。
將 Data Merge 連接至 Compute / TFA / ShortTerm Fourier Transform,參數皆按照預設值,最後再將 STFT 計算結果以 Viewer / Time-Frequency Viewer顯示。可以看見100Hz 的 Sine 出現在 1.5s 至 3s 之間。
相關指令
Noise,Sine,ShortTerm Fourier Transform,Channel Viewer,Time-Frequency Viewer。
可以從多個資料型態訊號中選擇某一個通道訊號。
參數設定(properties)
本模組可以接受實數(real number)、複數(complex number),單通道(single channel)、多通道(multi-channel),等間距(regular)、不等間距(indexed),訊號(signal)、聲音訊號(audio)、數值資料(Numeric)、時頻資料(spectra)。各參數定義與預設值如下表:
參數名稱 |
參數定義 |
預設值 |
Input Count |
進入此模組的通道數目。 |
0 |
Active Input |
設定欲選取的資料通道。 |
1 |
範例(Example)
本範例以 Source / Noise 為原始訊號,然後進行各種運算,產生各種格式資料,最後利用 Input Switch 選擇出某個通道的訊號,步驟如下:
於 Network 視窗下選擇 Source / Noise,取樣頻率(SamplingFreq) 為 1000,時間長度( TimeLength) 為 1s、振幅(Amplitude) 為 1,設定如下圖。
將Noise 依順序接上 Compute / Transform / Fourier Transform,Compute / HHT / RCADA EEMD,Conversion / Convert to Audio ,Compute / TFA / Short Term Fourier Transform,Conversion / Convert to Matrix,所有模組設定都依照原本設定。
將 Noise 及所有運算結果連接至Compute / Channel / Input Switch,最後由 Input Switch 連接至 Viewer / Channel Viewer,並且調整 Input Switch 的參數 Active Input,觀察 Noise、FFT、RCADA::EEMD 和 ToAudio 的結果。
再將 Input Switch 連接至 Viewer / TFAViewer,並且調整 Input Switch 的參數 Active Input,觀察 STFT 的結果。
最後調整 Input Switch 的參數 Active Input 至 ToMatrix,可利用 DataViewer 觀察 Input Switch 內矩陣資料。
相關指令
Noise、Fourier Transform、RCADA EEMD 、Convert to Audio、ShortTerm Fourier Transform、Convert to Matrix。
將訊號正規化,即訊號除以正規化參數。
說明
訊號源為 X = {x0, x1, … , xN-1} ,訊號標準差值為 σ ,此標準差值即為正規化參數,將 Y={ x0/ σ , x1/ σ , … , xN-1/ σ} 為正規化結果。
參數設定 (Properties)
本模組接受實數(real number),單或雙通道(single or multiple channel),regular的訊號(signal)、聲音訊號(audio)輸入。相關參數說明如下表。
參數名稱 | 參數定義 | 預設值 |
---|---|---|
RemoveMean | 是否在正規化前,先移除訊號的平均值。 | True |
NormalizationType |
選擇正規化型態,包含 absoluteMax( 絕對最大值 ), Custom( 自定值 ), Integrate( 積分值 ), MaxRange( 最大範圍 ), RootMeanSquare( 均方根 ), StandardDeviation( 標準差 ) 。 |
StandardDeviation |
NormalizationType 選項 | 選項定義 | |
---|---|---|
absoluteMax | 訊號的最大值取絕對值 | |
Custom | 自定正規化參數 | |
Integrate | 訊號的積分值,使用梯形法 | |
MaxRange | 最大值減最小值 | |
RootMeanSquare |
|
|
StandardDeviation |
|
範例 (Example)
建立一個Y軸經平移、並調整過振幅大小的正弦波,利用Normalize移除Y軸平移及正規化此訊號。
以 Source/Sine Wave 建立正弦波, 調整 Properties/ Source / AmplitudeOffset 為 2 ,可將訊號對 Y 軸往正方向平移 2 ,修改 Properties/ Source / Amplitude 為 4 ,可改變訊號的振幅,再以 Viewer / Channel View 觀察 。
將原本訊號Sine接上Compute / Math / Normalize,保持RemoveMean的預設為True,設定NormalizationType的方法為absoluteMax,再利用Viewer / Channel View顯示結果,可發現Y軸的平移被移除,訊號原先的振幅經過正規化後變為在±1振盪。
相關指令
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 濾除趨勢性,再做擷取:
參數設定 (Properties)
本模組接受實數(real number),單通道(single channel),regular的訊號(signal)或聲音訊號(audio)輸入;輸出訊號格式受不同的Output Type影響。
參數名稱 | 參數定義 | 預設值 |
---|---|---|
OutputType | 選擇偵測波峰 後輸出的形式,包含PreprocessOutpu(輸出前處理轉換後的訊號)、PeakIntervalVsTime(波峰間隔與時間關係)、 PeakIntervalVsPeakNumber(波峰間隔與波峰數的關係)、PeakDetection(抓取波峰)、RemovePeak(移去峰值) | PeakDetection |
UseMedian Filter | 是否使用中值濾波器移除趨勢性 | False |
PeakType | 抓取上或下峰值 | Upper |
PreprocessTransform | 在抓取峰值前根據選擇下述的峰值特性對訊號做轉換,None(不使用)、Width(波寬)、WidthByArea(波寬乘面積)、WidthByExtrema(波寬乘極值)、Area(面積)、Extreme(極值)。 | Extrema |
MinimaInterval | 兩波峰間的最短時間間隔 | Auto |
PeakThreshold | 如訊號超過此界限值,則視為波峰 | Auto |
OutputType 參數選項 | 選項定義 |
---|---|
PreprocessOutput | 輸出前處理轉換後的訊號,格式為 Indexed |
PeakIntervalVsTime | 波峰間隔與時間關係,輸出格式為 Indexed |
PeakIntervalVsPeakNumber | 波峰間隔與波峰數的關係,輸出格式為 Regular |
PeakDetection | 抓取波峰,輸出格式為 Indexed |
RemovePeak | 移去峰值,輸出格式為 Regular |
PreprocessTransform 參數選項 | 選項定義 |
---|---|
None | 不使用任何前處理轉換,輸出移除均值後之訊號 |
Width | 輸出移除均值後的過零點及波寬值 |
WidthByArea | 輸出移除均值後的過零點和波寬值與波面積之乘值 |
WidthByExtrema | 輸出移除均值後的過零點和波寬值與局部極值之乘值 |
Area | 輸出移除均值後的過零點及波面積 |
Extreme | 輸出移除均值後的過零點及局部極值。 |
範例(Example)
人工訊號的波型
利用 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,可得移去峰值後的訊號(紅線)。
帶有趨勢的人工訊號
使用Source / Custom Wave,Expression為cos(2*pi*20*t)+exp(2*t),其餘參數為預設,得到下圖:
依 Peak Detection 的預設參數擷取峰值,無法得到正確的峰值。
開啟 Peak Detection 的UseMedianFilter功能,並將PrepressionTransform設為None:
利用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參數可針對不同波峰做特性強化。
脈診儀資料
原始資料為下圖:
直接使用 Peak Detection 的所有預設參數,但是效果不是很好;紅線為PeakThreshold auto值的位置。
此時有兩種調整方式:
(1) 加大MinimaInterval,忽略過近的峰值:
(2) 降低PeakThreshold:
如需更進一步利用MSE分析心跳,可選擇輸出PeakIntervalVsPeakNumber:
相關指令
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 點做為計算 RR interval 的參考,故不列入計算。
參數設定(Properties)
本模組需接受標準 ECG 訊號,可為兩電極間的差值 ( DeltaVoltage ) 亦或兩極之值 ( TwoElectrode),量測單位為伏特或微伏特。輸入資料最少為 3000 點( 實際上,前三千點並不做計算,而是做為參考標準)。
本模組接受實數(real number),單通道 ( DeltaVoltage ) 或雙通道 ( TwoElectrode ),Regular的型式;輸出訊號格式為 index 型式、單通道資料。各參數定義詳如下方圖表。
參數名稱 |
參數定義 |
預設值 |
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 | 詳見 3.4.1 Basic statistics 的 Mean | 計算 R-R interval 算數平均值。 |
Variance | 詳見 3.4.1 Basic statistics 的 Variance | 計算 R-R interval 變異數 ( 標準差的平方 ) 。 |
SDNN | 詳見 3.4.1 Basic statistics 的 StdDev | 計算 R-R interval 標準差。 |
SDANN | ![]() |
R-R interval 每五分鐘平均值的標準差 |
RMSSD | ![]() |
相鄰的 R-R interval 差值的 RMS |
SDNN index | ![]() |
R-R interval 標準差指標,為每五分鐘標準差的平均值 |
SDSD | ![]() |
相鄰的 R-R interval 差值的標準差 |
NN50 Count | ![]() |
相鄰的 R-R interval 差值超過 50 豪秒的個數 |
PNN50 | ![]() |
相鄰的 R-R interval 差值超過 50 豪秒的個數與 R-R interval 總數百分比 |
Geometric measures | ||
HRV triangular index | ![]() ![]() |
R-R interval 總數除上 RR interval 直方圖最高點 y 值 |
TINN | ![]() |
RR interval 直方圖底寬 |
範例(Example)
範例一 :以 MITDB (http://www.physionet.o rg/physiobank/database/mitdb/)的 100 資料為例。
資料格式為 hea 檔,匯入時會出現下面視窗,可發現資料為雙通道(明顯為雙極資料),單位為 mV
:
資料匯入後,可利用 Viewer/ Channel Viewer 觀察之 ( 上圖為 Viewer[1] , 下圖為上圖之放大圖 ,於 Viewer[1] 中 Property 將 XMin 改為 792.1, XMax 改為 795.9 ):
:
再將資料 接至 Compute / Enhanced/ RR interval 處理此資料,並將 Type 設定為 TwoElectrode ,在將之接至 Channel Viewer 觀察之 ( Viewer[2]) 。
:
若將 Output Type改為HeartBeatIntervalVsBeatNumber,輸出結果之 x 軸為 beat number, y 軸為兩 R 波之間的時間差 。 注意 RR interval 的之輸出,時間是由 9.1 秒開始,這是因為前面 3000 點做為計算 RR interval 的參考,故不列入計算。
點選 View Time-Domain Measures … 屬性,其右方會出現一按鈕,點選按鈕可顯示此元件的分析結果如下。
範例二
此為一人躺在床上時量測到的 ECG 訊號,為兩電極間的差值,單位為 Volt 。
再將資料接至 RR interval 處理此資料,並將 Type 設定為 DeltaVoltage
得到結果如下圖。
本模組對輸入訊號之特性相當敏感,若以非標準 ECG 訊號輸入之,會發出警告,並相當可能無法做計算。
若欲以非標準 ECG 訊號做 RR interval 處理,請使用 Peak Detection 模組。
相關指令
Peak Detection。
參考資料
Heart rate variability European Heart Journal (1996) 17, 354–381