function [ z ] = es5( )
%ES5 Valutazione parametri corrente Ic
%Caricamento dati
prn=load('s00.prn');
t=prn(:,1);
vr=prn(:,4);
dati=load('data.txt');
R1=dati(2);
%Tempo di salita
ic=vr/R1;
j=find(t<0.4e-3 & t>-0.4e-3);
tRise=t(j);
icRise=ic(j);
j=find(icRise>=0.1*max(icRise) & icRise<=0.9*max(icRise));
tR=tRise(j);
icR=icRise(j);
tr=(tR(length(tR))-tR(1))*1000;
%Tempo di discesa
j=find(t<0.9e-3 & t>0.2e-3);
tFall=t(j);
icFall=ic(j);
j=find(icFall>=0.1*max(icFall) & icFall<=0.9*max(icFall));
tF=tFall(j);
icF=icFall(j);
tf=(tF(length(tF))-tF(1))*1000;
%Selezione di un periodo del segnale
trigger=find(t==0);
estremi=find(vr==vr(trigger));
tPer=t(estremi(1):estremi(2)-1);
vrPer=vr(estremi(1):estremi(2)-1);
icPer=vrPer/R1;
%FFT
N=length(icPer);
ck=fft(icPer);
%Valor medio
ICmedia=sum(icPer)/N;
ICmediaFreq=ck(1)/N;
%Valore efficace
ICrms=sqrt(sum(icPer.2)/N);
ICrmsFreq=sqrt(sum(abs(ck).2))/N;
%Deviazione standard
sigmaIC=sqrt(ICrms2-ICmedia2);
%Fattore di cresta
ICmediaAbs=sum(abs(icPer))/N;
CF=max(icPer)/ICmediaAbs;
%Fattore di forma
FF=ICrms/ICmediaAbs;
%Calcolo incertezze
%Tempo di salita e tempo di discesa
Kt=0.2;
U=zeros(4,1);
U(1)=0.01/100;
U(3)=100e-9;
Tsa=10*Kt/500;
U(4)=Tsa/2;
incTr=incDiff(U,tr);
incTf=incDiff(U,tf);
%Incertezza campioni ic
RFS=500;
R1=R1*1000;
G=0.2;
P=-0.55;
U=zeros(4,1);
Q=G/64;
U(1)=1.9/100;
U(2)=2.56*Q+0.5*abs(P)/100;
U(4)=Q/2;
incVR=incDir(U,vrPer);
U=zeros(4,1);
U(1)=0.06/100;
U(3)=2*RFS/50000;
incR1=incDir(U,R1);
incIC=1000*(incVR*abs(R1)+incR1*abs(vrPer))/R12;
%Incertezza valor medio
incICmedia=sum(incIC)/N;
%Incertezza valore efficace
incAux=sum(incIC.*icPer)/N;
incICrms=incAux/ICrms;
%Incertezza deviazione standard
incSigmaIC=(incAux+incICmedia*ICmedia)/sigmaIC;
%Incertezza fattore di cresta
incAux=incICmedia/ICmediaAbs;
[ICmax,j]=max(icPer);
incICmax=incIC(j);
incCF=(incICmax/abs(ICmax)+incAux)*abs(CF);
%Incertezza fattore di forma
incFF=(incICrms/abs(ICrms)+incAux)*abs(FF);
%Visualizzazione risultati
plot(tRise,icRise);
hold on;
plot(tR,icR,'ro');
xlabel('t [s]');
ylabel('Ic [mA]');
title('Tempo di salita');
hold off;
stringa=['Tempo di salita: tr = ' num2str(tr,'%0.3f') ' ' num2str(incTr,'%0.3f') ' ms'];
disp(stringa);
pause;
plot(tFall,icFall);
hold on;
plot(tF,icF,'ro');
xlabel('t [s]');
ylabel('Ic [mA]');
title('Tempo di discesa');
hold off;
stringa=['Tempo di discesa: tf = ' num2str(tf,'%0.3f') ' ' num2str(incTf,'%0.3f') ' ms'];
disp(stringa);
pause;
close;
stringa=['Valor medio (formula nel tempo): ICmedia = ' num2str(ICmedia,'%0.2f')
'
'
num2str(incICmedia,'%0.2f') ' mA'];
disp(stringa);
stringa=['Valor medio (formula in frequenza): ICmedia = ' num2str(ICmediaFreq,'%0.2f') ' mA'];
disp(stringa);
stringa=['Valore efficace (formula nel tempo): ICrms = ' num2str(ICrms,'%0.1f')
'
'
num2str(incICrms,'%0.1f') ' mA'];
disp(stringa);
stringa=['Valore efficace (formula in frequenza): ICrms = ' num2str(ICrmsFreq,'%0.1f') ' mA'];
disp(stringa);
stringa=['Valore efficace ac (deviazione standard): sigmaIC = '
num2str(sigmaIC,'%0.2f') '
'
num2str(incSigmaIC,'%0.2f') ' mA'];
disp(stringa);
stringa=['Fattore di cresta: CF = ' num2str(CF,'%0.2f') ' ' num2str(incCF,'%0.2f')];
disp(stringa);
stringa=['Fattore di forma: FF = ' num2str(FF,'%0.2f') ' ' num2str(incFF,'%0.2f')];
disp(stringa);