ECG-Kit 1.0
(1,784 bytes)
%% Remove baseline wandering with the median estimation method
% This scripts exemplifies the baseline wander removal by
% estimation/substraction and linear filtering.
% For details refers to:
%
% Philip de Chazal; O'Dwyer, M.; Reilly, R.B - Automatic classification of
% heartbeats using ECG morphology and heartbeat interval features. IEEE
% TRANSACTIONS ON BIOMEDICAL ENGINEERING, VOL. 51, NO. 7, JULY 2004. Section
% IV-A. ECG Filtering
%
% Sörnmo L, Laguna P. Bioelectrical Signal Processing in Cardiac
% and Neurological Applications. Elsevier, 2005. ISBN
% 0-12-437552-9. Page 457.
%
% Example
%
% [ECGblr, delayBLR]= BaselineWanderRemovalMedian( noisyECG, SamplingFreq)
%
% where:
% *noisyECG is a the signal matrix, signals in columns.
% *SamplingFreq is the sampling frequency.
%
% and:
% *ECGblr is the clean signal
% *delayBLR is the delay introduced by the method.
%
% See also BaselineWanderRemovalSplines
%
% Author: Mariano Llamedo Soria llamedom@electron.frba.utn.edu.ar
% Version: 0.1 beta
% Birthdate: 01/01/2006
% Last update: 18/10/2014
% Copyright 2008-2015
%
function [ECGblr, delayBLR]= BaselineWanderRemovalMedian( noisyECG, SamplingFreq)
WinSize = round(0.2*SamplingFreq);
delayBLR = round((WinSize-1)/2);
%Baseline estimation.
BaselineEstimation = MedianFilt(noisyECG, WinSize );
WinSize = round(0.6*SamplingFreq);
delayBLR = delayBLR + round((WinSize-1)/2);
BaselineEstimation = MedianFilt(BaselineEstimation, WinSize );
%Baseline removal
% ECGblr = zeros(size(noisyECG));
%
% AuxRange = delayBLR:delayBLR+size(BaselineEstimation,1)-1;
% ECGblr(AuxRange,:) = noisyECG(AuxRange,:) - BaselineEstimation;
ECGblr = noisyECG - BaselineEstimation;