心电信号去噪(part2)--中值滤波器
本系列上一篇(心電信號簡介)指路:https://blog.csdn.net/m0_37422217/article/details/90738308
注:這里是以小型手持心電圖機為研究對象的(單導聯)。
?
上一篇中我們說到基線漂移是心電信號中的主要噪音之一,本張介紹的中值濾波器可以較好的去除基線漂移的噪音。
中值濾波器原理
中值濾波器一種非線性的數字濾波技術,具有抑制噪聲和保護邊緣的特性。中值濾波去除基線漂移噪聲的基本思想是先去掉心電信號中較大的值,得到只含有基線的趨勢項信號,然后讓它與原始的信號進行疊加,從而消除原始心電信號中的基線漂移干擾。中值濾波的原理:是把心電信號中某一點的值,用該點一個鄰域內各點值的中值點代替。
這里我們設心電信號為y={y (n) |n=1, 1, …, N},中值濾波器滑動窗口的大小為L=2R+1,L<N,一般窗口的大小為采樣頻率的30%
則用中值濾波器處理后的信號Y(n)為:
代碼
以下是中值濾波器的MATLAB代碼(我占時不想解釋為什么中值的變量名要叫BL):
%% 中值濾波器 %x為原始信號,R為某點左右鄰域大小.(窗口大小=2*R+1) function [y] = myMedfilt(x, R) y = x; for (i = 1:length(x))if ((i+R)<= length(x) && (i-R)>= 1)BL = median(x((i-R):(i+R)));elseif ((i+R)<= length(x) && (i-R)< 1)BL = median(x(1:(i+R)));elseif ((i+R)> length(x) && (i-R)>= 1)BL = median(x((i-R):end));endy(i) = y(i)- BL; end end實例
這里我以某心電信號為例,有800個采樣點,未經處理的信號如下圖所示:
原始心電圖這個漂移的有點狠,第一次看到我有點心累。
這里用分別用窗口大小為33,65,129的進行測試。
窗口大小33的中值濾波器 窗口大小65的中值濾波器 窗口大小129的中值濾波器觀察了半天,要我選我就選窗口大小為65的,大概是boy我的直覺吧,,開玩笑的,因為結合前輩們的實踐經驗和理論【一般窗口的大小為采樣頻率的30%】,以及,之后要把P波和T波識別出來,窗口33過濾的“太過”,而窗口129過濾的"太弱",所以就選窗口大小為65的啦。
主要參考文獻:
[1]去除心電信號基線漂移算法的比較
[2]心電信號質量評估與去噪方法的研究與實現
下一篇(數學形態學)指路:https://blog.csdn.net/m0_37422217/article/details/90744326
總結
以上是生活随笔為你收集整理的心电信号去噪(part2)--中值滤波器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么查看银行卡开户行支行 如何查询银行卡
- 下一篇: 你不是一个人是什么意思