%% 
clear; %supprime les variables
clc; %supprime le contenu de l'invite de commande
close; %ferme la fenêtre d'affichage
%% Définition des variables
D=1000;          %débit en bits/s
Nech_bit=40;    % nombre d'échantillons par symbole; doit être pair.
fe=D*Nech_bit;  %fréquence d'échantillonnage.

Te=1/fe;% période d'échantillonnage
Tb=1/D;   % durée d'un bit

data=[0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 ];  %séquence utilisateur de 10 bits
alea=randi([0 1],1,10000);%genère un tableau de une valeur qui prend soit 1 soit 0 sur 10000 colonnes 
data=[data alea];  %ajoute 10000 bits aléatoires
                                         %après la séquence utilisateur

Nb=size(data,2);          %Nb de bits à transmettre
Nech=Nech_bit*Nb;        %nombre total d'échantillons  
Tmax=Nb*Tb;               %durée de la trame

t=0:Te:Tmax-Te;%vecteur temps constitué de Ns*Nb échantilllons   


%% Création du signal MLT3
signal_MLT3=[];             %initialisation du signal codé en MLT3
nbr1 = 0;
symbole1 = 5 * ones(1,  Nech_bit);
etat = 0;
for n=1:size(data,2)      %codage des différents bits
     if (data(n) == 1)
         etat = cos(nbr1 * pi/2);
         nbr1 = nbr1 + 1;
         
     end
    signal_MLT3 = [signal_MLT3 symbole1 * etat];
end   


%% Affichage du chronogramme du signal MLT3
subplot(2,1,1) %2 est est le nombre de ligne, 1 le nombre de colonne et 1 la position
plot(t*1000,signal_MLT3,"b"); %t en ms
title('représentation du chronogramme du signal MLT3')
xlabel('t(ms)')
ylabel('Volt')
legend('MLT3(t)')
axis([0 1000*10/D -20 20])  %affichage de 10 symboles
grid on


%% Calcul puis affichage du spectre su signal MLT3 
[X f]=spectre(signal_MLT3,fe,Nech); %prend la sortie dans des variables X et f de la fonction spectre
subplot(2,1,2);
plot(f,X,"b");
title('Spectre en amplitude du signal codé en MLT3')
xlabel('f(Hz)')
ylabel('Volt')
legend('|MLT3(f)|')
axis([0 4*D -60 0])  %affichage entre 0 et 2*D (Hz)
grid on

