% _________________________________________________________________________ % จจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจ % PREDICTION OF ACUTE HYPOTENSIVE EPISODES USING NEURAL NETWORK MULTIMODELS % _________________________________________________________________________ % จจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจ % Copyright (C) 2009 % : Jorge Henriques ... , % : Teresa Rocha ... % This software is released under the terms of the GNU % General Public License (http://www.gnu.org/copyleft/gpl.html) % จจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจ % mmCorrelation.m %__________________________________________________________________________ % จจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจ %บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ %บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ OUTPUT %บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ function [YY, YM, CC, II, CCM]=mmCorrelation(YBEF, DBEF, YAFT, DAFT, ... ORDSIZ, TOL, TOLSUM, TYPECOR, WEIGHT, NUMCOR ); %บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ % Correlation coeficients %บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ N =size(DBEF,2); TAM=length(YBEF); CC =zeros(1, N ); %จจจจจจจจจจจจจจจจจจจจจจจจจจจจ Correlation between ABP signal and templates %จจจจจจจจจจจจจจจจจจจจจจจจจจจจ Consider time period = SIZE = ORDSIZ(i,2) for j=1:N bef=ORDSIZ(j,2); ini=TAM-bef+1; y1=YBEF(ini:end); y2=DBEF(ini:end,j); y1=mmNormalize(y1, -1, 1, 0, length(y1) ); y2=mmNormalize(y2, -1, 1, 0, length(y2) ); ci=corrcoef(y1,y2); CC(j)=ci(1,2); end if size(DBEF,1) TOL if TYPECOR==0 id=find(CC>TOL); ii=id; %.............................. if isempty(ii) [val,ii]=max(CC); end II=ii; end %บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ % TYPECOR = 1 %บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ %จจจจจจจจจจจจจจจจจจจจจจจจจจจ Templates such that sum(correlation) < TOLSUM if TYPECOR==1 idp = find(CC>0); CCP = CC(idp); TOLSUM = TOLSUM*sum(CCP); [valor,indice]=sort(CC); some=0; posicao=length(CC); indii=[]; while some2 some=some+CC(indice(posicao)); indii=[indii indice(posicao)]; posicao=posicao-1; end II=indii; end %บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ % TYPECOR = 2 %บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ %จจจจจจจจจจจจจจจจจจจจจจจจจจจ First NUMCOR templates if TYPECOR==2 [CI,II]=sort(CC); CCM=CI(end-NUMCOR+1:end); II =II(end-NUMCOR+1:end); end %บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ % WEIGHTS %บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ %จจจจจจจจจจจจจจจจจจจจจจจจจจจ 1: Weight proportional to correlation %จจจจจจจจจจจจจจจจจจจจจจจจจจจ 0: Weight equal for all templates if WEIGHT CCM=CC(II)./sum(CC(II)); else CCM=ones( size(II) )./max(size(II)); end %บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ % PREDICTION based on correlation %บบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบบ %จจจจจจจจจจจจจจจจจจจจจจจจจจจ 1: Weight proportional to correlation YY = []; Yset = [YBEF; YAFT ]; YM = 0*Yset; for indice=1:length(II) ind = II(indice); Dset = [DBEF(:,ind); DAFT(:,ind) ]; YMcon= mmConverte( Yset, Dset, length(Yset) ); YY = [YY YMcon]; YM = YM + CCM(indice)*YMcon; end