{%hackmd @themes/orangeheart %} # QRS Complex Detection 建立時間:20/06/08 \ 作者:Aaron Huang 下面會依據題目 Procedures 的要求列出結果,有關 R 的原始碼可以參考我的 [Github gist](https://gist.github.com/aaronhuang1005/c047bda4cd1a5f4829eb234540244bd8) ## Spectrum estimtion **a.** 將 1000Hz ECG訊號取出一次完整的心電圖:  **b.** 將訊號前後補齊使訊號長度符合1024:  **c.** 將訊號做FFT轉換並輸出頻率與相位圖:   **d.** 將訊號長度改為2048,並再做一次FFT並輸出結果:    ## QRS detection **e.** 題目給定二極點遞歸濾波器 $$y[n] = 1.56102y[n-1] - 0.64135y[n-2]+0.2008x[n] -0.2008 x[n-2]$$ 並輸出頻域響應以及相位響應:   **f.** 題目給定整數濾波器 $$y[n] = 2y[n-1] – 3y[n-2] +2y[n-3] –y[n-4] +x[n] –2x[n-12] + x[n-24$$ 並輸出頻域響應以及相位響應:   **g.** 使用200Hz的ECG訊號套用上述兩個濾波器做比較,並顯示處理後的訊號:\ flirt 1  flirt 2  **h.** 將濾除後的ECG與原始的ECG訊號之頻域圖做比較:\ 原始訊號  flirt 1  flirt 2  **i.** 題目給定 $$ y[n] = 1.3(|x[n] – x[n-2]|)+ 1.1(|x[n] – 2x[n-2] + x[n-4]|$$ 將此帶通微分濾波器套用至200Hz的ECG訊號,並比較其頻域圖與原始訊號之頻域圖:    **j.** 將上一步訊號平方  **k.** 將訊號以moving average 方式濾波,這裡 filter length 是 30:  **l.** 將術數訊號加以閾值,並找出峰值位置\ ==計算心跳數:55== ※這裡稍微使用距離修正峰值的標記,優化標記位置  **m.** 將上述標記套用至原始訊號 ※這裡似乎因為訊號經過處裡長度不一因此不完全會標記在R波峰上  **n.** 設計一個自訂的帶通濾波,並比照上述方法標記波峰: 這裡使用 butterworth (low=0.05, High=100) 濾波器的頻域與相位響應   標記的結果\ ==計算心跳數:55==  **o.** 將1000Hz套用到上述的處理步驟: ※這裡僅處理至平均平滑化,但圖中後段仍有明顯訊號飄移因此無法加以閾值及QRS標記  ## 討論 **a.** 請描述用於偵測 QRS 波的帶通濾波器的特性和設計標準 在200Hz的帶通濾波上(即上一段的步驟 **i.**),訊號濾除前的在中段以及高段的原始訊號FFT仍有部分的頻率產生\ 但經過濾波後,僅剩後段的低頻訊號保留,有效提升訊號的SNR 而另者的Butterworth的濾波器設計,原本預期的心電圖頻帶範圍會在0.05Hz~150Hz,但此採樣率卻只有200Hz,因此設計出來的濾波器反而偏向高通濾波器 在頻率響應圖上也確實高頻未被濾除 **b.** 噪訊是否會影響QRS波偵測的結果?哪一種方法具有更好的抗噪音能力? 噪訊確實會影響QRS的偵測,像是上述的兩種濾波結果,雖然最後計算的峰值皆為55,但明顯可以看到若僅做低頻的雜訊濾除,標記的點位仍然會有錯誤 **c.** 您能想到比使用固定閾值更好的其他檢測技術嗎? 由於訊號可能造成漂移的影響導致閾值的位置並不會全局固定,因此可以利用設定一個固定的窗口大小,以該窗口的訊號平均或是最大四分位的方式設定訂閾值\ 而QRS波的波峰大小較其他更大,因此此方法便可以使其他不相干的雜訊消除,窗口也可以避免訊號飄導致閾值無法套用的問題
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up