Noninvasive Fetal ECG: The PhysioNet/Computing in Cardiology Challenge 2013 1.0.0

File: <base>/sources/mhaghpanahi_at_gmail.com/SetSelect.m (817 bytes)
function S = SetSelect(FECG,fs)

[nrow,ncol]=size(FECG);


blocksize=2000;
nblocks=ncol/blocksize;
subset=[];

% F=0:150;
% interval=21:38;
maxInd= zeros(1,nblocks);

for j=1:nblocks
%     for i=1:nrow    
%         [S(:,i),F,T,P(:,i)] = spectrogram(FECG(i,(j-1)*blocksize+1:j*blocksize),blocksize,[],F,fs);
%     end
% 
%     p_ratio =  sum(P(interval,:))./sum(P);
    
    
    k_meas=kurtosis(FECG(:,(j-1)*blocksize+1:j*blocksize)');
    
%     [dummy, maxInd(j)]=max(k_meas.*p_ratio);
    [dummy, maxInd(j)]=max(k_meas);

    clear S T P;
end

compare= hist(maxInd,1:nrow);
[csort, set]=sort(compare,'descend');

if sum(csort==0)<2
    S = set;
    return;
else
    sub_set = SetSelect(FECG(set(csort==0),:),fs);
end

w=set(csort==0);
S = [set(csort~=0) w(sub_set)];

end