clc;
clear all;
close all;
load dataset_627%载入需要筛选的mat数据 dataset_627为示例
sample_counts=627;
[M1,M2,M3]=size(data_627);
accept_test=zeros(M1,1);
a=0;
n=1;
for i=1:1:M1
test_record(:,:)=data_627(i,:,:);
accept_test(i,1)=panduan(test_record);
if accept_test(i,1)==1
a=a+1;
end
end
A=zeros(a,M2,M3);
for i=1:1:M1
if accept_test(i,1)==1
A(n,:,:)=data_627(i,:,:);
n=n+1;
end
end
save('saixuan.mat','A')
function accept=panduan(test_record)
REPEAT=500;
AVG=2;
len=length(test_record);
seg=len/10;
for chan= 1: 1: 12
accept=1;
SUM=0;
standard=zeros(1,12);
for i=1:1:5000
SUM=test_record(i,chan)+SUM;
end
if (SUM/5000)>AVG%平均值
accept=0;
end
for i=1:1:4500
current=0;
for j=1:1:500
if test_record(i,chan)==test_record(i+j,chan)
current=current+1;
end
end
if current>=REPEAT
accept=0;%导联脱落
end
end
for m=1:10
standard(1,chan) = std(test_record( 1+(m-1)*seg : m*seg ,chan));%方差
end
stdd=std(standard(1,1:12));
if stdd>0.29
accept=0;
end
if accept==0
break;
end
end
end
评论1