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