function [TimeTuL,accTuL,magTuL,tempTuL,ay_TuL,ay_TuL_AC,ErrTunnelLink] = defDatiTuL_Dati(... DatiTunnelLink,ay_TuL,ay_TuL_AC,Ndatidespike,rTuL,NuovoZeroTuL,ErrTunnelLink,MEMS,FileName) fileID = fopen(FileName,'a'); fmt = '%s \r'; text = 'defDatiTuL function started'; fprintf(fileID,fmt,text); [r,c] = size(DatiTunnelLink); Ncorr = 0; % Elimino gli eventuali Not a Number for a = 2:r for b = 2:c check = isnan(DatiTunnelLink(a,b)); if check == 1 DatiTunnelLink(a,b) = DatiTunnelLink(a-1,b); ErrTunnelLink(a,b-1) = 1; Ncorr = Ncorr+1; end end end text = ['' num2str(Ncorr) ' NaN of Tunnel Link corrected by defDatiTuL function']; fprintf(fileID,fmt,text); % Definisco Data (gg:mm:aaaa hh:mm), i 3 dati di accelerometro % e magnetometro e la Temperatura per la calibrazione TimeTuL = DatiTunnelLink(:,1); % data accTuL = zeros(r,rTuL*3); % dati accelerometro magTuL = zeros(r,rTuL*3); % dati accelerometro tempTuL = zeros(r,rTuL); % temperatura del nodo per la calibrazione p = 7; % passo nella definizione dei dati s = 1; for i = 1:rTuL accTuL(:,s) = DatiTunnelLink(:,2+(i-1)*p); accTuL(:,s+1) = DatiTunnelLink(:,3+(i-1)*p); accTuL(:,s+2) = DatiTunnelLink(:,4+(i-1)*p); magTuL(:,s) = DatiTunnelLink(:,5+(i-1)*p); magTuL(:,s+1) = DatiTunnelLink(:,6+(i-1)*p); magTuL(:,s+2) = DatiTunnelLink(:,7+(i-1)*p); s = s+3; tempTuL(:,i) = DatiTunnelLink(:,8+(i-1)*p); [rT,~] = size(tempTuL); if MEMS == 2 for j = 1:rT if tempTuL(j,i) > 200 tempTuL(j,i) = tempTuL(j,i) - 256; % Correzione della temperatura dei nuovi MEMS end end end end s = 1; Num_Dati = Ndatidespike; % numero di dati per il despike if Num_Dati > r Num_Dati = r; end [rAC,~]=size(ay_TuL); y = 1; Num_Dati_AC = Ndatidespike; % numero di dati per il despike if Num_Dati_AC > rAC Num_Dati_AC = rAC; end xlswrite('Dati.xlsx',accTuL,2); xlswrite('Dati.xlsx',magTuL,3); ay_TuL = ay_TuL'; ay_TuL_AC = ay_TuL_AC'; for i = 1:rTuL % despiking accelerometri accTuL(:,s) = filloutliers(accTuL(:,s),'linear','movmedian',Num_Dati); accTuL(:,s+1) = filloutliers(accTuL(:,s+1),'linear','movmedian',Num_Dati); accTuL(:,s+2) = filloutliers(accTuL(:,s+2),'linear','movmedian',Num_Dati); magTuL(:,s) = filloutliers(magTuL(:,s),'linear','movmedian',Num_Dati); magTuL(:,s+1) = filloutliers(magTuL(:,s+1),'linear','movmedian',Num_Dati); magTuL(:,s+2) = filloutliers(magTuL(:,s+2),'linear','movmedian',Num_Dati); s = s+3; if NuovoZeroTuL == 1 % despiking dati ay di riferimento ay_TuL(:,y) = filloutliers(ay_TuL(:,y),'linear','movmedian',Num_Dati_AC); ay_TuL_AC(:,y) = filloutliers(ay_TuL_AC(:,y),'linear','movmedian',Num_Dati_AC); y = y+1; end end text = 'Data of Tunnel Link defined correctly. defDatiTuL function closed'; fprintf(fileID,fmt,text); fclose(fileID); end