Vous êtes sur la page 1sur 8

2011

TP n4: TELECOM

-CHARAF MOHAMED EL MEHDI


-LAGRAWI HAMZA
MASTER RESEAUX &
TELECOMMUNICATIONS
2011/2012

TP n2: TELECOM
Pr. M BOUSMAH
Pr. Mme LABOUIDYA
Pr. M SABRI

Binme:

LAGRAWI HAMZA

CHARAF Mohamed
EL Mehdi

TP41. Code de parit


Nous allons mettre en uvre dans cette partie un code de parit (8, 7, 2). La distance

minimale de ce code est 2 : il ne permet pas la correction dune ventuelle erreur, mais
simplement sa dtection et la localisation du bloc contenant lerreur.
1. Gnrer un message binaire m de 70 bits avec la fonction randint(1,70)
m= randint(1,70)

2. Dcouper ensuite ce message par blocs de 7 bits en utilisant la fonction reshape().


u=reshape(m,10,7)

3. Montrer que la matrice gnratrice G du code de parit peut scrire de la faon


suivante:
Cette Matrice est compose dune matrice unitaire I7 plus une colonne des 1, donc en multipliant notre
matrice u avec G, on va avoir une matrice compos de notre matrice u plus une colonne qui contient les
bits de parits.
4. Crer cette matrice avec la commande suivante
G=[eye(7),[1 1 1 1 1 1 1]']
5. Expliquer cette commande
Cest une concatnation dune matrice unitaire dordre 7 et une matrice colonne des 1.
6. Montrer que la matrice de contrle H peut scrire de la faon suivante:
H=[1 1 1 1 1 1 1 1]

La matrice de contrle est compose de la transpos de la matrice de parit concatn a une matrice
unitaire dordre n-k qui gale dans notre cas 1 ce qui est vrai pour notre H.
7. A chacun des blocs, ajouter manuellement le bit de parit adquat en utilisant la
matrice gnratrice. C=u.G
0 1 1 1 1 1 1 0
0 0 0 1 0 0 0 1
1 0 0 0 1 1 1 0
0 1 1 0 1 0 1 0
0 1 1 1 1 0 1 1
0 1 1 0 0 1 0 1
0 0 1 1 0 0 0 0
0 1 1 1 0 1 0 0
1 0 1 0 1 1 1 1
1 0 0 0 1 1 1 0
8. Maintenant, gnrer automatiquement la matrice C en utilisant la commande suivante :
C=mod(u*G,2)

9. Expliquer cette commande, conclure


Cette commande permet la multiplication du matrice u et G avec modulo 2
On peut dire que la rgnration des matrices gnratrice, contrle et envoyer est trs rapide laide de
Matlab.
10. Transmission sans erreur
On suppose quil ny a pas derreur de transmission, vrifier avec la commande
Suivante que le syndrome S est nul.
S=mod(C*H',2)
Le syndrome gale 0.
Le programme complet est :
m=randint(1,70)
u=reshape(m,10,7)
G=[eye(7),[1 1 1 1 1 1 1]']
C=mod(u*G,2)
H=[1 1 1 1 1 1 1 1]
S=mod(C*H',2)

11. Transmission avec erreur

On suppose maintenant quune erreur dun bit sest glisse dans le premier, le
Quatrime et le septime bloc. Avec e= [0 1 0 0 0 0 0 0]
Voici es commandes permettant de simuler ces erreurs :
C(1,:)=mod(C(1,:)+e,2) , C(4,:)=mod(C(4,:)+e,2), C(7,:)=mod(C(7,:)+e,2)
Expliquer ces commandes
On a ajout une erreur dans la premire ligne, la quatrime et la septime ligne.
Afficher alors le syndrome S, avec S=mod(C*H',2)

Conclure
Ce code permet la dtection dune erreur mais sans correction.
Le programme complet est :
m=randint(1,70)
u=reshape(m,10,7)
G=[eye(7),[1 1 1 1 1 1 1]']
C=mod(u*G,2)
e=[0 1 0 0 0 0 0 0];
C(1,:)=mod(C(1,:)+e,2) ; C(4,:)=mod(C(4,:)+e,2); C(7,:)=mod(C(7,:)+e,2) ;
H=[1 1 1 1 1 1 1 1]
S=mod(C*H',2)

TP42. Code de Hamming (7, 4, 3)


Au contraire du code prcdent, un code de Hamming permet la dtection et la localisation,
donc la correction, dune erreur par bloc.
Il nest pas donc pas toujours ncessaire demettre une requete de renvoie lors de la rception
dun bloc erron.
T.A.F
En sinspirant du TP41, Ecrire un programme matlab permettant de :
1. Gnrer un message binaire m de 40 bits

2. Dcouper ensuite ce message par blocs de 4 bits not u

3. Gnrer automatiquement la matrice code C

4. Faire une dtection et correction derreur


En va ajouter une erreur e=[0 1 0 0 0 0 0] dans les lignes 1,4et7
La matrice reus est

Le syndrome

La position errone dans chaque ligne est

Le message reus est corrig

Le programme qui a permet cette dtection et correction est :


m=randint(1,40)
u=reshape(m,10,4)
G=[[1 1 0 1]',[1 0 1 1]',[1 0 0 0]',[0 1 1 1]',[0 1 0 0]',[0 0 1 0]',[0 0 0
1]'];
C=mod(u*G,2)
e=[0 1 0 0 0 0 0]
H=[[0 0 1]',[0 1 0]',[0 1 1]',[1 0 0]',[1 0 1]',[1 1 0]',[1 1 1]'];
C(1,:)=mod(C(1,:)+e,2) ; C(4,:)=mod(C(4,:)+e,2); C(7,:)=mod(C(7,:)+e,2) ;
C
S=mod(C*H',2)
for i=1:10
%pos permet de detecter la position d'erreur
a=1;pos(i)=0;
for j=1:3
pos(i)=pos(i)+S(i,j)*a;
a=a*2;
end
end
pos'
for i=1:10
if (pos(i)~=0)
C(i,pos(i))=mod(C(i,pos(i))+1,2);
end
end
C