第四章 SOPC 雛型系統軟硬體共同設計
4.3. ECG 雛型系統之軟體設計
圖 4.26. ECG 雛型系統之軟體流程圖
圖4.26 為本文 ECG 雛型系統軟體流程圖,系統啟動之後,可以 選擇量測或是查看歷史紀錄。若是選擇量測,待十秒鐘後,LTM 即 顯示心電圖相關數據分析,其波形可以選擇是否儲存到資料庫。
在數據分析上,主要是針對單位時間內所量測到的數據,進行分 析並計算出單位時間內的心跳數、心跳振幅強度、RR-Interval 平均 值、RR-Interval 標準差和心律變異性。
Measure Explorer Knowledge User Guide
Start
Browse
Start Measure
Save Analysis
Finish
Finish Analysis
Read Rename Delete New
Finish
圖 4.27. 標準心電圖
圖 4.28. 演算法流程圖
圖 4.27 為標準心電圖,主要是由心臟各部份的電氣訊號混合而 成的,主要基本波分為P 波、Q 波、R 波、S 波、T 波,從波形中可 以觀察出R 波的特徵最為明顯,而單位時間內 R 的數量等於心跳數,
要分析 RR Interval 之前,必須先計算出 R 的數量,在這本文依據波 形的特徵,提出一演算法來找R 波的位置,圖 4.28 為演算法流程圖。
首先計算出波形的一次平均值,計算方式是將所有的資料相加除 DATA IN
一次篩選
二次篩選 計算二次平均值 計算一次平均值
擷取 R 波
擷取 QS 波
擷取 PT 波
計算 RR 標準差
計算 RR 平均值 計算心跳數
離開
以總數,接著乘上一個係數,作為一次篩選的標準值,而這個係數是 由麻省理工提供的部分五十筆心電圖資料去計算調整出的一個係數 值[18],如圖 4.29 所示,紅色為數據平均值,黃色為平均值乘上係數 (0.125)後的一次篩選值,主要是保留大於一次篩選的資料,為了減少 誤判的情形,在這演算法內做了兩次篩選,如圖 4.30 所示,黃色為 一次篩選值,紅色為保留大於二次篩選的值,如此一來只要分別將各 頂點的資料擷取下來即獲得R 波,如圖 4.31。
圖 4.29. 一次篩選
圖 4.30. 二次篩選
圖 4.31. R 波
統計完所有R 波的位置之後,相對的也間接的已經找到 Q 波和 S 波,依照心電圖的特徵,在 R 波之前是 Q 波,可以往前搜尋間段性 的最小值,其值為 Q 波,如圖 4.32 所示,相反的在 R 波之後即為 S 波,可以仿照Q 波的方式往後尋找間段性的最小值,其值為 S 波。
圖 4.32. QS 波
當找到Q 波和 S 波之後,在仿照一樣的方法去搜尋 P 波和 T 波,
但是這裡必須更改參考值,依照心電圖特徵中的 Q 波是在 P 波產生 後一段時間內急遽下降,這時反搜尋回去尋找 P 波,以本文的 ADC 取樣頻率50Hz 為例,每秒中轉換 50 個類比點且心跳每分鐘 60 下為
圖 4.33. PT 波位置圖
例,如圖 4.33 所示,假設一個完整的 ECG 週期由 50 個點來表示,
假設 R 波為第 25 點,Q 波為第 15 點,S 波為第 35 點,以尋找 P 波 為例,在心電圖特徵上,P 波產生之後是 Q 波,而 Q 波在找到 R 波 的同時就已經被找到了,是在第 15 點,所以可以尋找出第 0 點到第 15 點的最大值與最小值,但是由於 Q 波是一下降曲線,這樣尋找出 來的最小值會受影響,造成最小值錯誤,因此重新調整數值的範圍,
從Q 波往回搜尋到斜率大於等於 0,並將之設為新參考點,如圖 4.33 左邊由黃色標示的第10 點,再重新計算第 0 點到第 10 點的最大值和 最小值,如果最大值減平均值的絕對值大於最小值減平均值的絕對 值,即為正P 波,反之為負 P 波。同理以 T 波為例,其搜尋方式與 P 波相同,由T 波往下尋找出斜率小於等於 0,並將之設為新參考點,
如圖4.33 右邊由黃色標示的第 40 點,計算第 40 點到第 50 點的最大 值和最小值,如果最大值減平均值的絕對值大於最小值減平均值的絕
對值,即為正 T 波,反之為負 T 波。圖 4.34 為麻省理工資料庫的心 電圖數據,套用本文中的演算法,P_ref 為尋找 P 波的新參考點,T_ref 為尋找T 波的新參考點。
圖 4.34. PT 波
圖 4.35 是完整的數據分析結果,麻省理工資料庫的心電圖取樣 頻率為250Hz,與本文的所使用的演算法取樣頻率不一樣,所以修改 了演算法取樣頻率數值,而結果一樣可以檢出 P、Q、R、S、T 波的 對應位置,驗證了本文的演算法是有效的。P、Q、R、S、T 波檢出 程式,將附置於附錄C。
圖 4.35. P、Q、R、S、T 波檢出
以下為麻省理工學院的心電圖數據資料之部分檢出結果:
圖 4.36. 數據一 P、Q、R、S、T 波檢出(P、S 波異常)
圖 4.36 所示,藍色為麻省理工學院的心電數據資料,此數據為 一個 P、S 波異常的心電圖,經過本文提出的演算法計算分析後,如 圖中黃色所示,成功的找出 P、Q、R、S、T 波,其數據與麻省理工 學院的心電數據資料吻合。
圖 4.37. 數據二 P、Q、R、S、T 波檢出(T 波異常)
圖 4.37 所示,藍色為麻省理工學院的心電數據資料,此數據為 一個T 波異常的心電圖,經過本文提出的演算法計算分析後,如圖中 黃色所示,成功的找出 P、Q、R、S、T 波,其數據與麻省理工學院 的心電數據資料吻合。
圖 4.38. 數據三 P、Q、R、S、T 波檢出(正常)
圖 4.38 所示,藍色為麻省理工學院的心電數據資料,此數據為 一個正常的心電圖,經過本文提出的演算法計算分析後,如圖中黃色 所示,成功的找出 P、Q、R、S、T 波,其數據與麻省理工學院的心 電數據資料吻合。
圖 4.39. 數據四 P、Q、R、S、T 波檢出(心律異常)
圖 4.39 所示,藍色為麻省理工學院的心電數據資料,此數據為 一個心律異常的心電圖,經過本文提出的演算法計算分析後,如圖中 黃色所示,成功的找出 P、Q、R、S、T 波,其數據與麻省理工學院 的心電數據資料吻合。
圖 4.40. 數據五 P、Q、R、S、T 波檢出(P、T 波異常)
圖 4.40 所示,藍色為麻省理工學院的心電數據資料,此數據為 一個P、T 波異常的心電圖,經過本文提出的演算法計算分析後,如 圖中黃色所示,成功的找出 P、Q、R、S、T 波,其數據與麻省理工 學院的心電數據資料吻合。
根據本文提出的演算法進行分析麻省理工學院的心電數據資料 成功的從50 筆資料中找出 P、Q、R、S、T 波,而圖 4.35~圖 4.40 是 其中 50 筆內的部分數據之分析結果,驗證了本文的演算法能有效的 檢出P、Q、R、S、T 波,並進行 RR Interval 時域分析。
(4-1) (4-2)
(4-3)
本文在 RR Interval
的分析上,是以時域分析為主,而分析內 容包含RR 平均值、RR 標準差和心律變異性三項。RR 平均值主要是 統計單位時間內兩個相鄰的 R 波產生的平均速率,如(4-1)式所示,將N 個 RR 間距的時間相加除以總數量 N 等於 RR 區間平均值。再將 求出來的平均值帶入(4-2)即可求出 RR 標準差,式中的 R 是兩相鄰的 時間差,將 N 個時間差減掉平均值的差值平方後全部相加,再除以 總數量N,然後開根號等於 RR 標準差。有了平均值跟標準差之後,
再來必須計算RR 的變異性,也就是 RR Interval 最重要的一項,將平 均值與標準差分別帶入統計學內的變異數公式(4-3),即可求得心律的 變異性,可以判讀其變化是否在正常值 0.12 內秒,若是異常必須立 即就醫進行診斷。
本章節為本文主要的軟硬體設計部分,完成了Nios2 Core Module 和ADC Module 的雛型系統硬體設計,以及提出演算法找到 P、Q、
R、S、T 波,並進行了 RR Interval 的時域分析,內容主要包含了臨 床實驗上所需的RR Interval 平均值、RR Interval 標準差和心律變異 性,完成雛型系統軟體設計,結合硬體與軟體即為SOPC 雛型系統軟 硬體共同設計。
圖 4.41. 軟體程式資源使用統計