% Romain Monchaux - 22/11/2016
% M2 DFE - Techniques Expérimentales Avancées
%
% Partie 1: Moyenne, écart-type et densité de probabilité d'un bruit blanc gaussien
%
% chargement du signal
clear all
clc
close all
temp1=load('..\signaux\sig1.mat');
%
%% Question 1: Tracé du signal brut:
t1=temp1.t;
Sig1=temp1.Sig1;
Fs1=temp1.Fs;
figure(101)
hold on
box on
set(gca,'FontSize',18)
plot(t1,Sig1,'.-')
xlabel('temps (s)')
ylabel('Signal')
title('Sig1')
%
% zoomons sur différentes parties du signal:
xmin=0;
xmax=?;
xlim([xmin xmax])
%
%% Question 2: Calcul des moyennes et écart-types avec plus ou moins de points:
NbPt=2.^[?];
for ii=1:length(NbPt)
    Data=Sig1(1:NbPt(ii));
    Moyenne(ii)=mean(Data);
    EcartType(ii)=std(Data);
end
figure(1001)
hold on
box on
set(gca,'FontSize',18)
plot(NbPt,Moyenne,'-or')
plot(NbPt,EcartType,'-sb')
plot([2 2^20],[0 0 ],'-.k')
plot([2 2^20],[1 1],'-.k')
xlabel('Nombre de points')
ylabel('Valeur du moment')
title('Sig1')
legend({'Moyenne','Ecart-Type'})
% set(gca,'Xscale','log')
% xlim([2 2^20])
%
%% Question 3: estimation de la densité de probabilités:
NbPt=2^?;
NbBin=[];
%
figure(1002)
hold on
box on
set(gca,'FontSize',18)
xlabel('Signal Values')
ylabel('PDF')
title('Sig1')
BG=linspace(-5,5,2^20);
Gauss=1/(sqrt(2*pi))*exp(-(BG.^2)/2);
for ii=1:length(NbBin)
    [Bin,PDF]=Calc_PDF(Sig1(1:NbPt),NbBin(ii));
    subplot(2,5,ii)
    hold on
    plot(Bin,PDF,'LineWidth',1.5)
    plot(BG,Gauss,'-.k')
    title(['NbBin=',num2str(NbBin(ii))])
    xlabel('Signal Values')
    ylabel('PDF')
    ylim([0.25 0.45])
    %xlim([-1 1])
    subplot(2,5,ii+5)
    hold on
    plot(Bin,PDF,'LineWidth',1.5)
    plot(BG,Gauss,'-.k')
    set(gca,'Yscale','log')
    xlabel('Signal Values')
    ylabel('PDF')
    title(['NbBin=',num2str(NbBin(ii))])
end
%set(gca,'Yscale','lin')
xlim([-5 5])
ylim(10.^-[5 0])
set(gcf,'Position',[1 41 1920 964])
%
%% Synthèse des résultats:
figure
hold on
box on
set(gca,'FontSize',18)
xlabel('Nombre de points')
ylabel('Nombre de Bin')
title('Convergence PDF')
NbPt  = 2.^[10 12 16 18 20  ];
NbBin =    [25 40 65 85 250 ] ;
plot(NbPt,NbBin,'ob','LineWidth',1.5)
plot(linspace(0,10^6,10^5),0.25*sqrt(linspace(0,10^6,10^5)),'-.k','LineWidth',1.5)
%
%% Spectre:
NbPoint=2^?; % nombre de points considérés dans le signal
Nfft=; % nombre de points utilisés pour le calcul de la transformée de Fourier
Noverlap=Nfft/2;
Nwindow=Nfft;
Fs=Fs1; % fréquence d'échantillonage
%
[Pxx,F] = pwelch(Sig1(1:NbPoint),Nwindow,Noverlap,Nfft,'psd',Fs);
figure;
hold on
box on
set(gca,'FontSize',18)
plot(F,Pxx)
xlabel('Fréquence (Hz)')
ylabel('Densité spectrale de puissance')
title(['L signal=2^{',num2str(log(Nwindow)/log(2)),'} - Nfft=2^{',num2str(log(Nfft)/log(2)),'}'])
clc
Fs/Nfft
%
%% Autocorrélation:
[Cy,Lags] = xcorr(Sig1,'coeff');
hold on
box on
set(gca,'FontSize',18)
xlabel('\Delta t')
ylabel('Autocorrélation normalisée')
plot(Lags/Fs,Cy,'o')
% xlim([-0.00001 .01])
%