clear all
close all
load ecg_es_20121128.mat

fc=1/dt; 
t=dt*[0:length(ecg)-1];
figure;plot(t,ecg)

%eseguiamo la Trasformata di Fourier di un segmento
%di segnale in modo da avere una risoluzione pari a 0.1 Hz

ecg_1=ecg(220:410);
figure;plot(t(220:410),ecg_1);

dF=0.1;% per cui
N=1/(dF*dt);%otteniamo 2500 punti

ECG_1=fft(ecg_1,N); 

dF=1/(N*dt);
F=dF*(-1250:1249);
figure;plot(F,fftshift(abs(ECG_1)));

%ne prendiamo un altro
ecg_2=ecg(5380:5570);

figure;plot(t(5380:5570),ecg_2);
%ne prendiamo un altro
ecg_2=ecg(5380:5570);

figure;plot(t(5380:5570),ecg_2);
ECG_2=fft(ecg_2,N); 

figure;plot(F,fftshift(abs(ECG_2)));
hold on;plot(F,fftshift(abs(ECG_1)),'r-');


%analizziamo il primo segmento ma con zero padding 
%in modo da avere N0=6500

N=6500;
ECG_1=fft(ecg_1,N); 

dF=1/(N*dt);
F=dF*(-3250:3249);
figure;ax=axes;stem(F,fftshift(abs(ECG_1)));
set(ax,'FontSize',16);
x1=xlabel('f (Hz)');
set(x1,'FontSize',16);



%analizziamo il segnale nel suo totale
N=6500;
dF=1/(N*dt);
F=dF*[-3250:3249];
ECG=fft(ecg);
figure;plot(F,fftshift(abs(ECG)));
figure;plot(F,fftshift(angle(ECG)));
%facciamo uno zoom tra 0 e 5 Hz
%per facilitare la ricerca di campioni
%notiamo che 5 Hz è approssimativamente
% il campione numero 5/dF +1 (il +1 è legato che il primo campione è lo
% zero) 

F=dF*[0:130];
figure;plot(F,abs(ECG(1:131)));


%eseguiamo la TDF del segmento del segnale ECG1
N=410-220+1;
dF=1/(N*dt);

ECG_1=fft(ecg_1)/N; 


F=dF*(-95:95);
figure;ax=axes;stem(F,fftshift(abs(ECG_1)));
set(ax,'FontSize',16);
x1=xlabel('f (Hz)');
set(x1,'FontSize',16);

%troviamo la frequenza pari a 5 Hz 
% o comunque, se non presente, la più vicina

%in effetti è presente la frequenza 5.2356
%corrispondente a k=4

F=dF*[0:4];
figure;ax=axes;stem(F,(abs(ECG_1(1:5))));
set(ax,'FontSize',16);
x1=xlabel('f (Hz)');
set(x1,'FontSize',16);


%grafico totale
fc=1/dt; 
t=dt*[0:length(ecg)-1];
figure;plot(t,ecg)
%sovrappongo la componente a frequenza a 0.3846
%dal grafico della fase mi accorgo che ha una fase pari a
% -1.838

s=101.6/6500*cos(2*pi*0.3846*t-1.838);
hold on
plot(t,s,'r-')
