Vous êtes sur la page 1sur 6

Université de Bordj Bou Arréridj Année Universitaire 2020/2021

Faculté ST
Département d’Electronique
Tp-01-02 CN L3-Télécommunications Pr. Khaled ROUABAH

Codage en ligne
% Ce programme permet de calculer er de tracer les DSPs des différents types
de codage en ligne
% Ces DSP concernent :
% 1- DSP du code NRZ unipolaire ;
% 2- DSP du code RZ unipolaire ;
% 3- DSP du code NRZ bipolaire ;
% 4- DSP du code RZ bipolaire ;
% 5- DSP du code Manchester ;
% 6- DSP du code HDB3 ;
% Le calcul de la DSP est réalisé par l’utilisation de la méthode de Welch.
% C’est un estimateur consistant de la densité spectrale de puissance.
clear all
close all
clc

% Génération de la séquence d'information binaire


% Nombre d’éléments binaires
N=20000;
% Génération de la séquence binaire par la fonction randint
bits = randint(1,N);
% Taux de bits
bitrate = 1;
% Représentation de l'information binaire pour le codage NRZ unipolaire

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% Codage de l’information binaire en NRZ unipolaire %%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Temps de la séquence
T = length(bits)/bitrate;
% Nombre d’échantillons par bit
n = 100;
% Nombre d’échantillons de la séquence
N = n*length(bits);
% Période d’échantillonnage
Te = T/N;
% Fréquence d'échantillonnage
Fe=1/Te;
% Temps
t = 0:Te:T;
% Initialisation du signal de sortie
x = zeros(1,length(t));
% Codage
for i = 0:length(bits)-1
if bits(i+1) == 1
x(i*n+1:(i+1)*n) = 1;
else
x(i*n+1:(i+1)*n) = 0;
end
Université de Bordj Bou Arréridj Année Universitaire 2020/2021
Faculté ST
Département d’Electronique
Tp-01-02 CN L3-Télécommunications Pr. Khaled ROUABAH

Codage en ligne
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% Représentation de la DSP du signal codé en NRZ Unipolaire %%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure
[Pxx,f] = pwelch(x,[],[],4096,Fe,'twosided');
f1=linspace(-(max(f))/2,(max(f))/2,4096);
semilogy(f1,fftshift(Pxx),'LineWidth',3)
title('DSP du code NRZ
Unipolaire','FontSize',10,'FontWeight','bold','FontName','Times New
Roman','Color','k');
xlabel('Fréquence en Hz','FontSize',10,'FontWeight','bold','FontName','Times
New Roman','Color','k')
ylabel('DSP','FontSize',10,'FontWeight','bold','FontName','Times New
Roman','Color','k')
axis([-7 7 1e-6 1e4])
grid
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% Codage de l’information binaire en RZ Unipolaire %%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Initialisation du signal de sortie


x1 = zeros(1,length(t));
% Codage
for i = 0:length(bits)-1
if bits(i+1) == 1
x1(i*n+1:(i+0.5)*n) = 1;
x1((i+0.5)*n+1:(i+1)*n) = 0;
else
x1(i*n+1:(i+1)*n) = 0;
end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% Représentation de la DSP du signal codé en RZ Unipolaire %%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure
[Pxx1,f] = pwelch(x1,[],[],4096,Fe,'twosided');
f1=linspace(-(max(f))/2,(max(f))/2,4096);
semilogy(f1,fftshift(Pxx1),'LineWidth',3)
title('DSP du code RZ
Unipolaire','FontSize',10,'FontWeight','bold','FontName','Times New
Roman','Color','k');
xlabel('Fréquence en Hz','FontSize',10,'FontWeight','bold','FontName','Times
New Roman','Color','k')
Université de Bordj Bou Arréridj Année Universitaire 2020/2021
Faculté ST
Département d’Electronique
Tp-01-02 CN L3-Télécommunications Pr. Khaled ROUABAH

Codage en ligne
ylabel('DSP','FontSize',10,'FontWeight','bold','FontName','Times New
Roman','Color','k')
axis([-7 7 1e-6 1e+3])
grid
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%% Codage de l’information binaire en RZ Bipolaire %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Initialisation du signal de sortie


x2 = zeros(1,length(t));
% Codage
for i = 0:length(bits)-1
if bits(i+1) == 1
x2(i*n+1:(i+0.5)*n) = 1;
x2((i+0.5)*n+1:(i+1)*n) = 0;
else
x2(i*n+1:(i+0.5)*n) = -1;
x2((i+0.5)*n+1:(i+1)*n) = 0;
end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% Représentation de la DSP du signal codé en RZ Bipolaire %%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure
[Pxx2,f] = pwelch(x2,[],[],4096,Fe,'twosided');
f1=linspace(-(max(f))/2,(max(f))/2,4096);
semilogy(f1,fftshift(Pxx2),'LineWidth',3)
title('DSP du code RZ
Bipolaire','FontSize',10,'FontWeight','bold','FontName','Times New
Roman','Color','k');
xlabel('Fréquence en Hz','FontSize',10,'FontWeight','bold','FontName','Times
New Roman','Color','k')
ylabel('DSP','FontSize',10,'FontWeight','bold','FontName','Times New
Roman','Color','k')
axis([-7 7 1e-6 1e1])
grid
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%% Codage de l’information binaire en NRZ Bipolaire %%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Initialisation du signal de sortie


x3 = zeros(1,length(t));
% Codage
for i = 0:length(bits)-1
Université de Bordj Bou Arréridj Année Universitaire 2020/2021
Faculté ST
Département d’Electronique
Tp-01-02 CN L3-Télécommunications Pr. Khaled ROUABAH

Codage en ligne
if bits(i+1) == 1
x3(i*n+1:(i+1)*n) = 1;
else
x3(i*n+1:(i+1)*n) = -1;
end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% Représentation de la DSP du signal codé en NRZ bipolaire %%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure
[Pxx3,f] = pwelch(x3,[],[],4096,Fe,'twosided');
f1=linspace(-(max(f))/2,(max(f))/2,4096);
semilogy(f1,fftshift(Pxx3),'LineWidth',3)
title('DSP du code NRZ
bipolaire','FontSize',10,'FontWeight','bold','FontName','Times New
Roman','Color','k');
xlabel('Fréquence en Hz','FontSize',10,'FontWeight','bold','FontName','Times
New Roman','Color','k')
ylabel('DSP','FontSize',10,'FontWeight','bold','FontName','Times New
Roman','Color','k')
axis([-7 7 1e-6 1e1])
grid
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%% Codage de l’information binaire en Manchester %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Initialisation du signal de sortie


x4 = zeros(1,length(t));
% Codage
for i = 0:length(bits)-1
if bits(i+1) == 1
x4(i*n+1:(i+0.5)*n) = 1;
x4((i+0.5)*n+1:(i+1)*n) = -1;
else
x4(i*n+1:(i+0.5)*n) = -1;
x4((i+0.5)*n+1:(i+1)*n) = 1;
end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% Représentation de la DSP du signal codé en Manchester %%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

figure
[Pxx4,f] = pwelch(x4,[],[],4096,Fe,'twosided');
f1=linspace(-(max(f))/2,(max(f))/2,4096);
Université de Bordj Bou Arréridj Année Universitaire 2020/2021
Faculté ST
Département d’Electronique
Tp-01-02 CN L3-Télécommunications Pr. Khaled ROUABAH

Codage en ligne
semilogy(f1,fftshift(Pxx4),'LineWidth',3)
title('DSP du code
Manchester','FontSize',10,'FontWeight','bold','FontName','Times New
Roman','Color','k');
xlabel('Fréquence en Hz','FontSize',10,'FontWeight','bold','FontName','Times
New Roman','Color','k')
ylabel('DSP','FontSize',10,'FontWeight','bold','FontName','Times New
Roman','Color','k')
axis([-7 7 1e-6 1e1])
grid
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%% Codage de l’information binaire en HDB3 %%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Représentation de l'information binaire pour le codage HDB3 unipolaire


% Génération de la séquence d'information binaire
bits1=bits;
% Temps de la séquence
T = length(bits1)/bitrate;
% Nombre d’échantillons par bit
n = 100;
% Nombre d’échantillons de la séquence
N = n*length(bits1);
% Période d’échantillonnage
Te = T/N;
t = 0:Te:T;
% Initialisation du signal de sortie
x5 = zeros(1,length(t));

% Pour le codage HDB3, nous avons besoin d'une variable supplémentaire pour
% enregistrer le bit précédent. Ce bit est donné par l’utilisateur.
% Si ce n'est pas le cas, nous le déclarerons à 1.

dernier_bit = 1;

% Nous avons besoin aussi d'une autre variable pour compter le nombre de 0
consécutifs.
% Comme il n'y a pas de zéros comptés au début, cette variable est déclarée à
% « 0 ».

zeros_consicutif = 0;

% Dans le codage HDB3, nous devons compter le nombre d'impulsions non nulles
% après la dernière substitution. Nous allons donc déclarer une variable
% nommée imp_n_nulle et la valeur initiale de imp_n_nulle sera 0.
Université de Bordj Bou Arréridj Année Universitaire 2020/2021
Faculté ST
Département d’Electronique
Tp-01-02 CN L3-Télécommunications Pr. Khaled ROUABAH

Codage en ligne
imp_n_nulle=0;

% Codage
for i=1:length(bits1)
if bits1(i)==0
zeros_consicutif = zeros_consicutif + 1;
if zeros_consicutif==4
if(mod(imp_n_nulle, 2)==0)
x5((i-1-3)*n+1:(i-3)*n) = -dernier_bit;
dernier_bit = -dernier_bit;
x5((i-1-2)*n+1:(i-2)*n) = 0;
x5((i-1-1)*n+1:(i-1)*n) = 0;
x5((i-1)*n+1:i*n) = dernier_bit;
zeros_consicutif = 0;
imp_n_nulle = 0;
else
x5((i-1-3)*n+1:(i-3)*n) = 0;
x5((i-1-2)*n+1:(i-2)*n) = 0;
x5((i-1-1)*n+1:(i-1)*n) = 0;
x5((i-1)*n+1:i*n) = dernier_bit;
zeros_consicutif = 0;
imp_n_nulle = 0;
end
end
else
zeros_consicutif = 0;
x5((i-1)*n+1:i*n) = -dernier_bit;
dernier_bit = -dernier_bit;
imp_n_nulle = imp_n_nulle + 1;
end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% Représentation de la DSP du signal codé en HDB3 %%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure
[Pxx5,f] = pwelch(x5,[],[],4096,Fe,'twosided');
f1=linspace(-(max(f))/2,(max(f))/2,4096);
semilogy(f1,fftshift(Pxx5),'LineWidth',3)
title('DSP du code HDB3','FontSize',10,'FontWeight','bold','FontName','Times
New Roman','Color','k');
xlabel('Fréquence en Hz','FontSize',10,'FontWeight','bold','FontName','Times
New Roman','Color','k')
ylabel('DSP','FontSize',10,'FontWeight','bold','FontName','Times New
Roman','Color','k')
axis([-7 7 1e-6 1e1])
grid
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Vous aimerez peut-être aussi