快速中值滤波在心电图ECG中的应用
1.算法介紹和實現(xiàn)
首先來搞明白,什么是快速中值濾波?
快速中值濾波非常簡單,就是用過去連續(xù)N個數(shù)據(jù),再對這N個數(shù)據(jù)進行排序,取排序后的中間那個數(shù)據(jù),做為當前的輸出,N即為窗口的長度。
算法實現(xiàn):
1.設(shè)置一個緩存區(qū)1,用來緩存原始窗口數(shù)據(jù),長度為N;再設(shè)置一樣同樣的緩存區(qū)2,用來放排序后的窗口數(shù)據(jù)
2.輸入信號到緩存區(qū)1,緩存區(qū)1未滿時,不斷重復2過程,返回0。
3.緩存區(qū)1已滿,復制全部數(shù)據(jù)到緩存區(qū)2,對緩存區(qū)2進行冒泡排序,返回中值。
4.取出最早進入緩沖區(qū)1中數(shù)據(jù)data,在緩存區(qū)2中找到這個數(shù)據(jù),直接刪除,找到新數(shù)據(jù)x合適的位置,插入新數(shù)據(jù)x,返回中值,循環(huán)4,直到全部信號已過算法。
這里實現(xiàn)的時候,用了一些小技巧,每次新數(shù)據(jù)來的時候,不用每次都對整個窗口去全部排序,那樣計算量會非常大,而是直接刪除掉一個最早的數(shù)據(jù),直接把新數(shù)據(jù)插入到合適的位置(這里找位置要想高效也可以用二分法查找),這樣一來計算量就非常小。
2.在心電圖ECG上的應(yīng)用
快速中值濾波第一個應(yīng)用,是用來處理漂移非常小的ECG心電圖信號,可以很好的保存波形的特征,基本可以做到無失真,做法是設(shè)置一個比較長的窗(一般為1~2秒采樣的數(shù)據(jù)長度),將原始數(shù)據(jù)x輸入到算法中,算法出來的基本是信號的直流分量或者頻率超級低的基線漂移信號x1,將原始信號x減去算法得到的信號x1,即為想要的信號。
該應(yīng)用的前提是ECG信號的干擾信號頻率極低,但在實際應(yīng)用中,心電圖本身由于阻抗不穩(wěn)定、肌肉緊張、呼吸等原因,都會導致心電圖有較大的基線漂移,所以該應(yīng)用實際用的不多。
快速中值濾波第二個應(yīng)用,不是直接使用算法的輸出結(jié)果,比如該算法能提取基本的基線漂移,我們可以使用這些數(shù)據(jù)來做一些判斷,比如系統(tǒng)是不是漂移非常嚴重,或者配合其他算法,對結(jié)果進行二次運算,得到最終結(jié)果。
3.評價
該算法的特點是簡單,運算量小,同時對于提取頻率非常低的干擾信號非常有效,同時該算法最大的優(yōu)勢是帶來的失真度極小,下圖為在實際項目中使用快速中值濾波濾除基線漂移的效果:
圖3 快速中值濾波濾基線漂移可以看出,使用快速中值濾波濾基線漂移,出來的心電圖ECG還是很容易漂移,但是很好的保留了信號的特征值,所以快速中值濾波適合處理提取頻率非常低的干擾信號,或者對系統(tǒng)漂移情況進行快速判斷。
總結(jié)
以上是生活随笔為你收集整理的快速中值滤波在心电图ECG中的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: highCharts图表应用-模拟心电图
- 下一篇: ecg 幅度_ECG(心电图)