Projet 1
Projet 1
Projet 1
-Aya Hamza
Projet :
Le codage de source :
Consiste à supprimer la redondance contenue dans les messages de la source d’information.
Il peut être avec ou sans pertes d’information. La compression avec pertes vise les signaux
numérisés (image, audio ou vidéo). Après numérisation et codage, la source de message
numérique est caractérisée par son débit binaire D. défini comme le nombre d'éléments binaires
émet par unité de temps. D est égale à : avec T est la durée d’un bit.
Le codage :
Le codage de canal, encore appelé codage détecteur-Correcteur d’erreurs Consiste à
insérer dans le message des éléments binaires dits de redondance, suivant une loi donnée.
Exemple : Le bit de parité (paire ou impaire) ...
Les codes de Hamming, pour lesquels n=2k-1 et m=n-k, permettent de corriger une
erreur ; pour k fixé et n grand, le taux de transmission est voisin de 1. Leur
description fait appel à l'algèbre linéaire modulo 2, ou bien aux polynômes modulo
2. Un mot de p bits est représenté par un vecteur binaire de longueur p, c'est-à-dire
un élément de l'espace vectoriel (Z/2Z)p, par exemple pour 110 :
La matrice de parité d'un code de Hamming est une matrice binaire à klignes
et n colonnes : les colonnes contiennent les représentations binaires des entiers
entre 1 et n, par exemple :
3
ce qui fait que les 3 premiers bits sont ceux de correction, les 4 suivants étant les
bits d'information.
Modulation à l’émission
Les modulations numériques consistent à utiliser une porteuse sinusoïdale haute
fréquence modulée par un signal informatif numérique. Les techniques de modulation
diffèrent mais les circuits modulateurs et démodulateurs sont identiques dans leur
principe aux modulations analogiques.
Le rapport signal sur bruit est meilleur avec un système numérique car, même si un
signal numérique est bruité, distordu ou parasité, il est facile de le reconstruire en
comparant ce signal déformé à un seuil.
Les densités spectrales des signaux modulés numériquement ont des largeurs
moindres qu’en analogique, ce qui permet d’augmenter le nombre de canaux utilisables
par Hz pour les transmissions d’informations Multiplexage fréquentielle.
Si on veut diminuer le bruit dont est victime l’information lors de sa transmission →on
augmente le rapport signal sur bruit SNR.
Dans ce TP on utilise La PSK-2 (Phase Shift Keying) ou modulation par saut de phase
Par exemple, pour la PSK-2 (ou « BPSK », Binary PSK), la phase de la porteuse, de
fréquence et d’amplitude constantes, saute brusquement de φ1 à φ2 lorsque e(t) passe de 1 à
0. Elle est utilisée dans les réseaux locaux, les modems…
Canal de transmission :
Une ligne de transmission est une liaison entre les deux machines. On désigne
généralement par le terme émetteur la machine qui envoie les données et par récepteur celle
qui les reçoit. La ligne de transmission, appelée aussi parfois canal de transmission ou voie de
transmission.
5
Le canal de transmission est basé sur des supports physiques de transmissions qui sont les
éléments permettant de faire circuler les informations entre les équipements de transmission, ils
peuvent être :
Les supports filaires permettent de faire circuler une grandeur électrique sur un
câble généralement métallique
Les supports aériens désignent l'air ou le vide, ils permettent la circulation d'ondes
électromagnétiques ou radioélectriques diverses
La transmission de données sur un canal de transmission ne se fait pas sans pertes, C’est
dûe aux perturbations qui peuvent être de nature :
Démodulation
L'étape de la démodulation consiste à récupérer l'information utile en supprimant la
porteuse. Ceci revient à passer du signal passe bande à un signal passe-bas. Nous
avons considéré ici une démodulation fondée sur un filtre adapté à base de cosinus
surélevé
Le syndrome est un objet fondamental dans le décodage des codes linéaires. On rappelle qu’un
message msg est encodé avec le mot de code c=G*msg. Dans notre exemple, le message 011 est
encodé par
Le destinataire reçoit un mot bruité y=c + e, où e est un vecteur d’erreur contenant au
plus (d−1)/2 positions d’erreur. Le syndrome du mot y est la valeur
S = H y = H (c + e) = H c + H e = H e
Où les égalités découlent de la linéarité de la multiplication de matrices et du fait que H est la
matrice de parité du code (et que donc H c = 0 pour tout mot de code c), le syndrome d’un mot ne
dépend que de l’erreur e et pas du tout du mot de code c. Même sans connaître l’erreur, on peut
donc calculer son syndrome en calculant le produit S = H y.
Une fois calculé le, on trouve l’erreur e par recherche sur tous les mots d’erreur possibles.
Comme notre code est 1-correcteur, les seules erreurs qu’on peut corriger sont celles de poids au
plus 1, si le syndrome est zéro, alors nécessairement e=0 et il n’y a pas eu d’erreurs. Sinon, on
note e i le vecteur contenant un 1 à la position i et 0 partout ailleurs ;
On peut donc trouver l’erreur e simplement en cherchant dans H la colonne qui correspond au
syndrome, une fois trouvée l’erreur e, on retrouve le mot de code c =y + e. Il ne reste plus qu’à
trouver le mot d’origine tel que c =G msg. Mais, puisque G est sous forme systématique, le mot
d’origine apparaît tel quel dans les k premières composantes du mot de code.
8
Pour résumer
Le destinataire
Le destinataire qui a pour fonction de reconstituer le message émis par la source à
partir du signal. Le destinataire qui a pour fonction de reconstituer le message émis par
la source à partir du signal reçu qui comprend des circuits de démodulation (pour les
transmissions sur onde porteuse), de filtrage puis d'échantillonnage et de prise de
décision. Le démodulateur permet de ramener le signal modulé en bande de base. Le
signal en bande de base est, ensuit, filtré puis échantillonné à des instants
caractéristiques. Finalement un circuit de décision identifie la valeur des éléments
binaires transmis à partir des échantillons reçus. Le choix effectué par le circuit de
décision est binaire, décision 0 ou décision 1, ce qui correspond à une opération dite de
« détection ».
9
Le code en MATLAB :
clc;
msg = [ 1 0 0 ] %le message juste en sequence de 3 bits
N=3;
%**********************aficher le msg binaire*************************
x_inp= msg;%pour ne risquer pas la perde de msg original
Tb=0.0001; % la periode (en second)
x_bit=[];
nb=100;
for n=1:1:N
if x_inp(n)==1;
x_bitt=ones(1,nb);
else % x_inp(n)==0;
x_bitt=zeros(1,nb);
end
x_bit=[x_bit x_bitt];
end
t1=Tb/nb:Tb/nb:nb*N*(Tb/nb);
subplot(7,1,1);plot(t1,x_bit,'r','lineWidth',2);
grid on;axis([ 0 Tb*N -0.5 1.5]);ylabel('Amp(volt)');
xlabel(' Time(sec)');title('le message a envoyé');
% ********************* le code de hamming *****************************
n = 6;k = 3;
A = [ 1 1 0;1 0 1;0 1 1 ];%(combinaison de 6,5,3)
G = [ eye(k) A ]%le matrice Generatrice
H = [ A' eye(n-k)]
% ENCODER
code = mod(x_inp*G,2); %coded with hamming
N=n; %pour eviter les problems de maj et min
% ********************* Representer le signal codé en hamming *************
x_inp= code;
x_bit=[];
nb=100;
for i=1:1:N
if x_inp(i)==1;
x_bitt=ones(1,nb);
else % x_inp(i)==0;
x_bitt=zeros(1,nb);
end
x_bit=[x_bit x_bitt];
end
t1=Tb/nb:Tb/nb:nb*N*(Tb/nb); % le temps de signal signal
subplot(7,1,2);
plot(t1,x_bit,'lineWidth',2);grid on
axis([ 0 Tb*N -0.5 1.5]);ylabel('Amp(volt)');
xlabel(' Time(sec)');title('le message codé en hamming');
% ********************* Modulation BPSK *********************************
Ac=5; % Amplitude de porteuse
fc=(1/Tb); % frequence de porteuse
fi1=pi/2; % le phase pour bit 1
fi2=-pi/2; % le phase pour bit 0
t2=Tb/nb:Tb/nb:Tb;
t2L=length(t2);
x_mod=[];
for (i=1:1:N)
if (x_inp(i)==1)
x_mod0=Ac*cos(2*pi*fc*t2+fi1);%modulation de signal pour bit 1
else
10
xx_bit=[];
for i=1:length(x_out);
if x_out(i)==1;
xx_bitt=ones(1,nb);
else %x_out(i)==0;
xx_bitt=zeros(1,nb);
end
xx_bit=[xx_bit xx_bitt];
end
t4=Tb/nb:Tb/nb:nb*length(x_out)*(Tb/nb);
subplot(7,1,5);plot(t4,xx_bit,'LineWidth',2);grid on;
axis([ 0 Tb*length(x_out) -0.5 1.5]);
xlabel('T(sec)');ylabel('Ampl(volt)');
title('le signal récu avec un erreur');
% **************************** decoder/correcteur d'erreur le signal
numerique avec hamming*****************************
recd = x_out; %code recu avec erreur
syndrome = mod(recd * H',2);
11
affichage du code :
13
msg =
1 0 0
G=
1 0 0 1 1 0
0 1 0 1 0 1
0 0 1 0 1 1
H=
1 1 0 1 0 0
1 0 1 0 1 0
0 1 1 0 0 1
nz =
1 0 1 1 1 0
numerrs =
pcterrs =
0.1667
Codecorrecte =
1 0 0 1 1 0
msg_dec =
1 0 0
-Aya Hamza