function [y, set] = SigMerge(FECG,fsample,goodint,fs) set=SetSelect(FECG,fs); j=1; factorcheat=[0 0 0 0]; test_flag=1; sig_sign=[0 1 -1]; factorcheat(set(j))=1; [dummy,dummy,s0,dummy,findc0,qflag0]=Fetal_Peakdetection2(FECG,fsample,fs,factorcheat,test_flag); factorcheat(set(j))= qflag0*sign(sum(fsample.*s0)); if factorcheat(set(j))==-1 [dummy,dummy,s0,dummy,findc0,qflag0]=Fetal_Peakdetection2(FECG,fsample,fs,factorcheat,test_flag); end if qflag0==0 fpeaks1 = PeakDetection3(FECG(set(j),:),fs,fsample,.1,4,goodint); fpeaks2 = PeakDetection3(FECG(set(j),:),fs,-fsample,.1,4,goodint); if sum(fpeaks1)>=sum(fpeaks2) find1=find(fpeaks1==1); pp=PhaseCalculation(fpeaks1); sgn=1; else find1=find(fpeaks2==1); pp=PhaseCalculation(fpeaks2); sgn=-1; end dfetal=diff(find1); fetal_ind_test1=dfetal>=600; fetal_ind_test2= fetal_ind_test1+[0 fetal_ind_test1(1:end-1)]+[fetal_ind_test1(2:end) 0]; fetal_ind_test3=filter([0.5 0 0.5],1,dfetal); fetal_ind_test3=[fetal_ind_test3(3) fetal_ind_test3(3:end) fetal_ind_test3(end)]; ind_set=find(abs(fetal_ind_test3-dfetal).*~fetal_ind_test2>100)+1; dd=find(dfetal