Noninvasive Fetal ECG: The PhysioNet/Computing in Cardiology Challenge 2013 1.0.0
(798 bytes)
function Y=preprocessing(I,fs,wr)
% simple preprocessing of the raw data using OSET tools (slightly modified)
[m,n]=size(I);
if m>n % make sure I is a row matrix
I=I';
[m,n]=size(I);
end
Y=zeros(m,n);
[num1,den1] = iirnotch(50/(fs/2),1/(fs/2));
[num2,den2] = iirnotch(100/(fs/2),1/(fs/2));
[num3,den3] = iirnotch(60/(fs/2),1/(fs/2));
[num4,den4] = iirnotch(120/(fs/2),1/(fs/2));
for j = 1:m,
I(j,:) = filter(num1,den1,I(j,:));
I(j,:) = filter(num2,den2,I(j,:));
I(j,:) = filter(num3,den3,I(j,:));
I(j,:) = filter(num4,den4,I(j,:));
b = movMedian(I(j,:),wr*fs+1);
b = movMedian(b,wr*fs+1);
b = LPFilter(b,15/fs);
Y(j,:) = I(j,:) - b;
end
end