Support

Transcription

Support
Communications numériques
FIP 2e année (option informatique)
2014–2015
Syllabus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
4
Modulation et démodulation
Filtres de mise en forme d’impulsions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Travaux dirigés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Travaux pratiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
6
8
Codage source
Travaux dirigés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Travaux pratiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Codage canal
Travaux dirigés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Travaux pratiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Ce document est mis à disposition selon les termes de la licence
Creative Commons Attribution 4.0 International.
Version du 26 mars 2015.
1
Syllabus
Description du cours
Ce cours a pour objectif de présenter les principes de base d’un système de communications numériques.
Nous y aborderons les principaux blocs de la chaîne de communication, à savoir le codage source, le
codage canal et la modulation du signal numérique. Ce cours sera centré sur les concepts mathématiques
des différents blocs.
Pré-requis
Pour comprendre ce cours, il est nécessaire d’avoir de solides connaissances en mathématiques (calcul matriciel, algèbre de Boole, systèmes binaire et hexadécimal, code de Gray, probabilités) et en
traitement du signal (transformée de Fourier, analyse fréquentielle, numérisation, théorème de l’échantillonnage, démodulation cohérente, filtrage adapté).
Contenu du cours
• Introduction : définition, historique et intérêt du numérique, présentation rapide de la chaîne de
communication et de ses différents blocs ;
• Modulation : modulation en bande de base et sur porteuse, présentation de quelques codes en
ligne (NRZ, Manchester, AMI), principe des modulations sur porteuse (ASK, FSK, PSK, QAM),
constellation, réception dans le cas d’un canal bruité (réception en bande de base, filtre adapté),
réception dans le cas d’un canal à bande limitée (interférences entre symboles, critère de Nyquist,
diagramme de l’œil) ;
• Codage source : définition de l’information propre et de l’entropie d’une source, de la capacité
du canal, premier et deuxième théorèmes de Shannon, propriétés des codes sources (longueur
moyenne, réversibilité, etc.), codage de Huffman, illustration des compressions sans perte et avec
perte ;
• Codage canal : codes en blocs linéaire et codes convolutifs (avec quelques exemples), rendement
de codage, code systématique, distance de Hamming, matrices génératrice et de contrôle de
parité, pouvoirs de détection et de correction, représentation d’un code convolutif à l’aide des
diagrammes d’état, en arbre ou en treillis, évocation de l’algorithme de Viterbi.
Enseignant
Vincent Mazet (bureau C219, vincent.mazet@unistra.fr). N’hésitez pas à communiquer numériquement
avec moi ! J’accepte également les communications analogiques.
Calendrier des séances
jeudi 26 février 2015
vendredi 27 février 2015
mercredi 18 mars 2015
lundi 23 mars 2015
mercredi 25 mars 2015
vendredi 27 mars 2015
vendredi 27 mars 2015
lundi 13 avril 2015
vendredi 17 avril 2015
10h30
10h30
10h30
8h30
16h00
10h30
14h00
8h30
10h30
Introduction
Modulation
Modulation
TP 1
Codage source
Codage canal
TP 2
TP 3
Examen
C416
C416
C413
A202
C410
C413
A402
A202
C429
2
Évaluation
L’évaluation est un contrôle continu : il n’y a donc pas de rattrapage ! La note finale est calculée à
partir de trois contrôles et un examen théorique :
• les contrôles durent dix minutes et ont lieu au début de chaque séance de TP. Ils sont individuels.
Ils contiennent des questions de cours, de TD et de TP. Aucun document ni appareil électronique
n’est autorisé. La moyenne des notes de contrôle a pour coefficient 0,5 ;
• L’examen théorique dure 1h45. Il est individuel. Il s’agit de questions de cours et d’exercices
similaires à ceux des TD. Seules la calculatrice personnelle et une feuille A4 recto-verso sont
autorisées. Il a pour coefficient 0,5.
Déroulement des TP
Les TP consistent principalement en des simulations sous Matlab. Les fonctions principales à utiliser
sont données dans les énoncés, reportez-vous à l’aide (help ou doc) pour plus d’informations. Certaines
de ces fonctions sont intégrées dans Matlab, d’autres (identifiées par un astérisque) sont à télécharger
à l’adresse http://miv.u-strasbg.fr/mazet/communications/. Certains programmes sont à compléter :
les emplacements correspondants sont indiqués dans le code. Par ailleurs, conservez vos programmes
d’un TP au suivant car ils seront souvent réutilisés.
Site internet
Les documents présentés en cours et l’examen de l’année précédente
sont disponibles à cette adresse :
http://miv.u-strasbg.fr/mazet/communications/
3
Bibliographie
Ouvrages
[1] F. Auger : Introduction à la théorie du signal et de l’information. Éditions Technip, 1999.
[2] J.R. Barry, E.A. Lee et D.G. Messerschmitt : Digital Communication. Springer, 3e édition,
2004.
[3] M. Joindot et A. Glavieux : Introduction aux communications numériques. Dunod, 2007.
[4] U. Madhow : Fundamentals of Digital Communication. Cambridge University Press, 2008.
[5] J.G. Proakis et M. Salehi : Digital Communications. McGraw-Hill, 5e édition, 2008.
[6] H. Sari : Transmission des signaux numériques. Techniques de l’ingénieur, 1995.
[7] B. Sklar : Digital Communications, Fundamentals and Applications. Prentice Hall PTR, 2e
édition, 2001.
[8] S.G. Wilson : Digital Modulation and Coding. Prentice-Hall, 1996.
Culture générale
[9] M. Beaugeois, D. Deltombe et D. Hennequin : Comment un téléphone portable téléphone-til ?, 2013. Unisciel/Université Lille 1.
http://www.universcience.tv/video-comment-un-telephone-portable-telephone-t-il-5820.html.
[10] Espace des sciences : La théorie de l’information, une science qui s’émancipe, 2008. Conférence
de Claude Berrou. http://www.youtube.com/watch?v=_N55Bde6k7Q.
[11] C. Douillard : la technique des constellations tournées, 2012. La minute du chercheur (Télécom
Bretagne). http://vimeo.com/21291291.
[12] J. Gómez : Codage et cryptographie, 2013. Images des Mathématiques, CNRS.
http://images.math.cnrs.fr/Codage-et-cryptographie.html.
[13] C. Laot : Les communications acoustiques sous-marines, 2014. La minute du chercheur (Télécom
Bretagne). http://vimeo.com/85234793.
[14] C.E. Shannon : A Mathematical Theory of Communication. The Bell System Technical Journal,
27(3):379–423, juillet 1948.
Autres sources
Les citations issues de Wikipédia sont publiées sous licence CC-BY-SA 3.0.
[15] Wikipedia : On-off keying, 2014. (Accédé le 12 février 2015).
[16] Wikipedia : List of ITU-T V-series recommendations, 2015. (Accédé le 12 février 2015).
Ce cours est fondé également sur les documents suivants :
[17] C. Collet : Communications numériques. Cours de Télécom Physique Strasbourg, 2013.
[18] F. Salzenstein : Communications numériques. Cours de Télécom Physique Strasbourg, 2013.
4
Filtres de mise en forme d’impulsions
Réponse impulsionnelle
− T2
Réponse fréquentielle (module)
−T
T
2
T
Filtre rectangulaire
−T
T
− T2
T
2
Filtre en sinus cardinal
α = 0,2
α = 0,8
−T
α = 0,2
α = 0,8
T
−T
T
Filtre en cosinus surélevé
α = 0,2
α = 0,8
−T
α = 0,2
α = 0,8
T
−T
Filtre en racine de cosinus surélevé
5
T
TD 1 : Modulation et démodulation
Exercice 1
L’article Wikipédia sur les recommandations de transfert de données sur le réseau téléphonique présente
la norme V.32 (utilisée par les modems dans les années 1980 et 1990) ainsi :
« V.32 is an ITU-T recommendation for a modem operating as full-duplex on a 4-wire
circuit, or half-duplex on a two-wire circuit, allowing bidirectional data transfer at either
9.6 kbit/s or 4.8 kbit/s at a symbol rate of 2,400 baud. » [16]
1. Quelle est la rapidité de modulation ?
2. Quel est le débit binaire ?
3. Quelle est la taille en bits des symboles émis ?
Exercice 2
Représentez les constellations des modulations suivantes :
— OOK (on-off keying) définie dans Wikipédia par :
« OOK denotes the simplest form of amplitude-shift keying (ASK) modulation that represents digital data as the presence or absence of a carrier wave. The presence of a carrier
for a specific duration represents a binary one, while its absence for the same duration
represents a binary zero. » [15]
— 4-ASK (modulation ASK 4-aire) ;
— 2-PSK (appelée aussi BPSK pour binary PSK) ;
— 8-QAM.
Exercice 3
1. Quelle est le type de modulation dont la constellation est représentée ci-dessous ?
2. En utilisant dans la mesure du possible un code de Gray, donnez les symboles associés à chaque
point de la constellation.
Exercice 4
La transmission d’un message binaire à un débit D = 600 Mbits/s est effectuée en utilisant huit signaux
{±s(t), ± 3s(t), ± 5s(t), ± 7s(t)} où s(t) est un signal de durée T .
1. Quelle est la rapidité de la modulation ?
2. Est-ce une modulation en bande de base ou sur porteuse ?
6
Exercice 5
Les quatre modulations linéaires ci-dessous représentent la séquence binaire 0 1 1 0 0 1 1 1 1 1 0 0.
1. Identifiez les modulations en bande de base et les modulations sur porteuse.
2. Déterminez les valeurs des symboles et les formes d’onde de ces modulations.
0
1
1
0
0
1
1
1
1
1
0
0
RZ
OOK
BPSK
NRZI
Exercice 6
On considère les deux formes d’onde ci-dessous :
(
1 si t ∈ [0, T [
et
h1 (t) =
0 sinon
(
1 si t ∈ [0, T /2[
h2 (t) =
0 sinon.
1. Représentez h1 (t) et h2 (t).
2. Quelles sont les réponses impulsionnelles des filtres de réception associés à ces formes d’onde ?
3. Calculez le signal en sortie des filtres de réception.
Exercice 7
Un message binaire est transmis avec une rapidité de modulation R = 300 bits/s.
1. Y a-t-il des interférences entre symboles si le canal a une fréquence de coupure de 100 Hz ?
2. Y a-t-il des interférences entre symboles si le canal a une fréquence de coupure de 200 Hz ?
Exercice 8
Déterminez, à partir des diagrammes de l’œil ci-dessous :
— le nombre de symboles du message ;
— le meilleur instant d’échantillonnage ;
— la meilleure valeur de seuil ;
— s’il y a des IES ;
— s’il y a du bruit.
2
2
2
1
1
0
0
−1
−1
7
1
5
0
3
−1
1
−2
−0.5
−0.25
0
(a)
0.25
0.5
−0.5
−0.25
0
0.25
−2
−0.5
0.5
(b)
−0.25
0
(c)
7
0.25
0.5
−2
−0.5
−0.25
0
(d)
0.25
0.5
TP 1 : Modulation et démodulation
Exercice 9 : Étude de quelques modulations numériques
L’objectif de cet exercice est d’implémenter et de comparer quelques modulations numériques :
— NRZ (non-return-to-zero) binaire ;
— AMI (bipolar alternate mark inversion) ;
— Manchester ;
— BPSK (binary phase-shift keying) ;
— 16-QAM (quadrature amplitude modulation).
1. Créez une séquence binaire aléatoire x2 de N bits (randmary*) et convertissez-la en séquence
hexadécimale x16 (bin2mary*) : vous disposez donc du même message disponible sous deux
représentations différentes. Affichez-les (disp).
2. Représentez les signaux analogiques associés au message pour les modulations étudiées. Utilisez
pour cela les fonctions modnrz*, modami*, modmanchester*, modbpsk* et modqam16*. Pour coder
une fonction porte, vous pouvez utiliser la syntaxe :
h = V * (t>t1) .* (t<t2);
3. L’analyse spectrale des modulations peut être effectuée à l’aide de la densité spectrale de puissance, qui est le carré du module de la transformée de Fourier. En choisissant un message suffisamment long (N grand), représentez la densité spectrale de puissance de chaque modulation
en échelle décimale (periodogram 1 ).
4. Identifiez les modulations en bande de base et les modulations sur porteuse.
5. Comparez les codes en termes de simplicité de mise en œuvre, de largeur de bande, de téléalimentation possible, de robustesse au bruit et de détection d’interruption de la transmission.
6. D’après vos conclusions, quel type de modulation est le plus adapté aux communications suivantes ?
(a) périphérique USB et ordinateur ;
(b) téléphone mobile et antenne relais ;
(c) sonde spatiale et Terre ;
(d) communication par laser à l’air libre entre deux bâtiments ;
(e) bus informatique ou de terrain (I2 C, SATA, ASI, Modbus, . . .) ;
(f) liaison Wi-Fi.
Exercice 10 : Transmission en bande de base sur un canal idéal
Le principe d’une transmission en bande de base est représenté figure 5.1 (page 9).
Un canal est dit idéal si sa largeur de bande est infinie (Inf) : sa réponse impulsionnelle est alors
g(t) = A δ(t − τ ) où A et τ sont l’atténuation et le retard du signal reçu (sans perdre en généralité, on
pourra prendre A = 1 et τ = 0).
La détection des formes d’onde h(t) dans le signal bruité y(t), est effectuée à l’aide d’un filtre adapté
de réponse impulsionnelle r(t) = h(−t).
1. Donnez l’expression du signal reçu y(t) en fonction du signal émis x(t) et des caractéristiques
du canal.
2. Simulez l’émission d’un message codé en NRZ binaire (randmary*, modnrz*, channel*). Observez le signal en entrée du détecteur pour différents niveaux de bruit.
1. Les deuxième et troisième arguments de la fonction peuvent être laissé libres ([]), le quatrième sera égal à 100/T
où T étant la durée d’un bit.
8
Message à émettre
Canal b(t)
Émetteur
mapper
α
h(t)
forme d’onde
x(t)
g(t)
y(t)
+
filtre passe-bas
r(t)
Récepteur
z(t)
filtre de réception
Tb
échantillonnage
S
seuillage
Message reçu
Figure 5.1 – Principe d’une transmission en bande de base.
3. Dans un premier temps, on ne tient pas compte du filtre de réception : r(t) = δ(t). Appliquez
un seuil (sampling*) sur le signal z(t) = y(t) pour retrouver, tous les T , les symboles αk émis.
4. Dans un deuxième temps, appliquez le filtre de détection (convolution avec conv 2 ), puis effectuez
le seuillage et l’échantillonnage comme dans la question précédente.
5. Calculez les taux d’erreurs obtenus avec et sans filtre de détection (la fonction hamdist* permet
de compter le nombre de bits différents entre deux séquences binaires). Comment varie la qualité
de la détection en fonction du niveau de bruit ?
Exercice 11 : Transmission en bande de base sur un canal à bande limitée
Cette fois, on suppose le canal sans bruit mais à bande limitée. On peut alors être en présence d’IES (interférences entre symboles) si les valeurs du signal z(t) aux instants T dépendent de plusieurs symboles
αk . La détection est alors perturbée même s’il n’y a pas de bruit.
1. Simulez l’émission d’un message codé en NRZ binaire. Observez le signal en entrée du détecteur
pour différentes fréquences de coupure du canal.
2. Le diagramme de l’œil correspond aux différentes traces d’un signal affichées sur une période.
Tracez le diagramme de l’œil (eyediag*) de y(t) : que se passe-t-il lorsque la bande passante du
canal varie ?
3. Quelle est la condition sur le signal temporel y(t) pour éviter les IES ? Comment se traduit-elle
sur la transformée de Fourier de y(t) ?
4. En déduire pourquoi une forme d’onde rectangulaire n’est pas adaptée lorsque la bande passante
du canal est trop faible.
5. Simulez la transmission du message avec une forme d’onde en racine de cosinus surélevé
(modnrzrrc*).
6. Concluez sur cette forme d’onde en observant le diagramme de l’œil pour plusieurs valeurs de α.
7. Simulez l’opération de détection en comparant les deux formes d’onde.
2. Précisez le troisième argument ’same’ pour conserver des signaux de même taille.
9
TD 2 : Codage source
Exercice 1
On considère l’alphabet défini ci-dessous :
Symbole
Probabilité
1.
2.
3.
4.
5.
A
B
C
D
E
F
G
0,35
0,30
0,20
0,10
0,04
0,005
0,005
Calculez l’auto-information pour chaque symbole.
Calculez l’entropie de la source
Déterminez le code de Huffman associé à la source.
Donnez la longueur moyenne du code obtenu.
Calculez l’efficacité du code.
Exercice 2
Mêmes questions que l’exercice 1 avec l’alphabet défini ci-dessous :
Symbole
Probabilité
A
B
C
D
E
F
G
H
0,36
0,14
0,13
0,12
0,10
0,09
0,04
0,02
Exercice 3
1. Le code binaire { 0 0 , 1 1 , 0 1 0 1 , 1 1 1 , 1 0 1 0 , 1 0 0 1 0 0 , 0 1 1 0 } est-il à décodage unique ?
2. Le code ternaire { 0 0 , 0 1 2 , 0 1 1 0 , 0 1 1 2 , 1 0 0 , 2 0 1 , 2 1 2 , 2 2 } est-il à décodage unique ?
Exercice 4
Une source utilise un alphabet de trois symboles {A,B,C} dont les probabilités respectives sont égales
à 0,5, 0,3 et 0,2.
1. Calculez l’entropie de la source.
2. Combien de bits sont nécessaires pour réaliser un code de longueur fixe à décodage unique ?
On décide alors de transmettre ces symboles en les regroupant par groupe de deux : cela revient à
considérer une nouvelle source Y .
3. Combien y a-t-il de symboles dans l’alphabet de la source Y ?
4. Calculez l’entropie de la source Y .
5. Combien de bits sont nécessaires pour réaliser un code de longueur fixe à décodage unique ?
6. Cette manière de procéder est-elle plus intéressante pour la transmission de la source X ?
Exercice 5
Une source émet 100 symboles par seconde parmi un alphabet de trois symboles {A,B,C} dont les
probabilités respectives sont égales à 0,8, 0,15 et 0,05. On souhaite savoir si les messages de cette source
peuvent être transmis sur un canal binaire pouvant transmettre sans erreur 100 bits par seconde.
1. Calculez l’entropie de la source.
2. Quel est le débit de la source ?
3. Quel est le débit du canal ?
4. Calculez le taux d’émission de la source.
5. Quelle est la capacité du canal ?
6. La transmission est-elle possible sans erreur ? Si oui, proposez un code de Huffman pour réaliser
la transmission.
10
TP 2 : Codage source
Exercice 6 : Application de la théorie de l’information à la transmission d’un texte
Un texte en français est transmis sur un canal binaire. Le texte contient K = 1000 caractères parmi
les vingt-six lettres de l’alphabet (majuscules non accentuées) et quatre signes de ponctuation (point,
virgule, espace, apostrophe).
1. Quelle est la taille de l’alphabet de la source ?
2. Quelle est la taille de l’alphabet du canal ?
3. Les symboles de la source peuvent-ils être considérés comme équiprobables ?
4. Calculez l’entropie de la source. Le fichier french.mat contient un vecteur codant les probabilités
d’occurrence des caractères, la fonction load permet de le charger et le logarithme à base 2 se
calcule avec la fonction log2. Est-il possible de compresser les données avant transmission ?
5. La transmission du texte se fait à une vitesse maximale de 10 bits/s avec un taux d’erreur nul.
À quel débit canal cela correspond-il ? En déduire la capacité du canal.
6. D’après le second théorème de Shannon (théorème du codage canal), quel est le taux d’émission
maximal pour pouvoir transmettre les données sans erreur ?
7. En déduire le débit de la source puis le temps minimal théorique nécessaire pour transmettre le
texte sans erreur (aucun codage source sans perte ne permet donc de diminuer cette durée).
8. Que devient ce temps dans le cas d’un canal 8-aire (transmission 8-QAM par exemple), dans le
cas d’un canal émettant 10 symboles par seconde ?
Pour réaliser la transmission, on propose de tester trois codes :
— le code ASCII classique qui code chaque symbole sur 8 bits ;
— un code de Huffman binaire de première extention ;
— un code de Huffman binaire de deuxième extention.
9. Calculez la longueur moyenne et l’efficacité de chaque code. La fonction huffman* permet de
créer le dictionnaire dict associé au codage de Huffman. Ce dictionnaire est stocké par Matlab
dans une variable de type cell array : la syntaxe dict{i} permet d’accéder à l’élément i du
dictionnaire dict. Pour calculer le dictionnaire associé au codage de Huffman de deuxième
extention, il faut calculer les probabilités des nouveaux symboles avec kron.
10. Déterminez alors la durée de transmission nécessaire pour chaque code.
Exercice 7 : Compression d’une image numérique
Nous allons étudier deux codages source sur des images à niveaux de gris (sur 8 bits), non compressées
et de taille 128 × 128 :
smiley.pgm,
schtroumpf.pgm,
lena.pgm,
boat.pgm.
1. Quelle est l’entropie de la source ?
2. En déduire la longueur moyenne minimale d’un code dans le cas d’une compression sans perte,
puis la taille d’une image en bits.
3. Chargez (imread) l’une des images précédentes puis convertissez-la en double (double) avant
de l’afficher (imshow 1 ).
1. N’oubliez pas le deuxième argument qui permet de régler l’échelle des intensités !
11
Codage sans perte Le codage par plage (RLE : run length encoding, utilisé par exemple pour le
format BMP) est une technique de compression sans perte. Le principe est de remplacer toute séquence
consécutive d’un même symbole par la taille de cette séquence suivi du symbole. Par exemple, le message
VVVVVMVV sera codé 5V1M2V.
4. Appliquez la compression RLE à l’image (rleenc*).
5. On définit le taux de compression par :
Taux de compression = 1 −
taille de l’image compressée
.
taille de l’image non compressée
Quel taux de compression obtenez-vous ?
Codage avec perte On peut autoriser la compression d’une image avec perte tout en conservant
une qualité visuelle correcte. Ainsi, le principe fondamental de la compression JPEG est de calculer la
transformée en cosinus discrète (DCT : discrete cosine transform) de l’image pour obtenir des coefficients qui seront quantifiés afin de réduire la taille de l’image. Ce sont ces coefficients qui sont stockés
ou transmis. La transformation en cosinus discrète inverse permet de décoder l’image compressée.
6. Appliquez la transformée en cosinus discrète (dct2) sur l’image. La transformée obtenue est
une image de même taille que l’originale, les basses fréquences se situent dans le coin en haut à
gauche.
7. Visuellement, ce sont les basses fréquences qui sont les plus importantes dans l’image : les hautes
fréquences peuvent donc être fortement quantifiés voire carrément annulées. Pour annuler ces
hautes fréquences, on peut procéder de la sorte :
C = length(I);
T = 0.5;
[X,Y] = meshgrid(1:C,1:C);
M = ( (X+Y) <= 2*C*T );
imshow(M,[]);
J = I.*M;
%
%
%
%
%
%
Taille de l’image DCT I
Taux de compression (entre 0 et 1)
Matrices des coordonnées
Définit un masque triangulaire
Affichage du masque
Masquage de l’image
Ces valeurs nulles n’étant pas transmises, quel taux de compression obtenez-vous ?
8. Appliquez la transformée inverse (idct2) sur l’image masquée des coefficient puis affichez l’image
compressée.
9. Discutez la qualité de l’image compressée. On distingue la qualité visuelle de l’image (critère
qualitatif et subjectif) et la qualité quantitative qui est généralement mesurée à l’aide du rapport
signal-à-bruit en crête (PSNR : peak signal-to-noise ratio). Le PSNR quantifie l’erreur pixel par
pixel entre l’image originale I et l’image compressée J (de taille M × N ) :
D2
PSNR = 10 log10
EQM
où D est la dynamique du signal (sur 8 bits, D = 28 − 1) et
EQM =
M N
1 XX
[I(m,n) − J(m,n)]2 .
MN
m=1 n=1
10. Concluez sur les deux méthodes de compression d’image étudiées.
12
TD 3 : Codage canal
Exercice 1
Calculez les distances de Hamming entre les mots suivants :
a = 0 0 0 0,
b = 1 1 1 1,
c = 1 1 0 1.
Exercice 2
Le principe du code à parité (3, 2) est de rajouter à chaque bloc du message un « bit de parité » de
sorte que le nombre de bit à 1 dans les mots du code soient pair.
1. Donnez le rendement de ce code.
2. Donnez l’ensemble des mots du code. Est-ce un code systématique ?
3. Donnez les matrices génératrice et de contrôle de parité.
4. Représentez géométriquement dans F32 les mots du code.
5. Calculez la distance minimale. En déduire les pouvoirs de détection et de correction du code.
Exercice 3
Les codes de Hamming sont définis dans [5, p. 420] ainsi :
« Hamming codes are one of the earliest codes studied in coding theory. Hamming codes
are linear block codes with parameters n = 2m − 1 and k = 2m − m − 1, for m ≥ 3.
Hamming codes are best described in terms of their parity check matrix H which is an
(n − k) × n = m × (2m − 1) matrix. The 2m − 1 columns of H consist of all possible binary
vectors of length m excluding the all-zero vector. »
Dans cet exercice, on considère le code de Hamming (7, 4).
1. Donnez le rendement de ce code.
2. Donnez les matrices génératrice et de contrôle de parité.
3. Donnez l’ensemble des mots du code.
4. Calculez la distance minimale. En déduire les pouvoirs de détection et de correction du code.
Exercice 4
On reçoit la séquence binaire 1 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1. Trouvez le message
émis sachant qu’un code de Hamming (7,4) a été utilisé.
Exercice 5
On suppose un canal binaire où les erreurs de transmissions se traduisent par une suppression de
certains bits (et non une modification de leur état). Le récepteur sait quels sont les bits manquants
mais ne connaît pas leurs valeurs. Expliquez comment un code de Hamming (7,4) peut trouver les bits
manquants lorsque un ou deux bits consécutifs ont été supprimés.
Exercice 6
Les mots du message à coder sont de longueur k = 3 bits. On utilise un code à parité qui assure que
le nombre de bits à 1 dans chaque mot du code est pair.
1. Donnez la taille n d’un mot du code.
2. Donnez la matrice génératrice.
3. Calculez la distance minimale du code.
13
On remplace maintenant le code par un code à parité croisée, c’est-à-dire qu’en arrangeant les mots du
message sous forme d’un tableau k × k, des bits de parité sont calculés sur chaque ligne et sur chaque
colonne. L’exemple ci-dessous donne les bits de parité pour le message 1 1 1 0 1 0 0 1 1 :
message
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
parité ligne
parité colonne
Répondez aux questions précédentes en considérant le code à parité croisée. Concluez sur l’intérêt d’un
code de parité croisé par rapport à un code de parité simple.
Exercice 7
On considère le code convolutif ci-dessous :
u1
m
+
u2
1. Déterminez k, n, K. En déduire le rendement R.
2. Est-ce un code systématique ?
3. Donnez les polynômes générateurs.
4. Calculez la sortie du codeur lorsque l’entrée est 0 1 1 1 0 1 1 0.
5. Représentez les diagrammes d’état, en arbre et en treillis.
Exercice 8
Même questions que dans l’exercice 7 pour le code convolutif ci-dessous :
+
u1
m
+
u2
+
u3
Exercice 9
Le meilleur code en treillis de rendement 1/2 et de longueur de contrainte 4 a comme polynômes
générateurs 158 et 178 . Représentez son schéma bloc.
Exercice 10
À partir du treillis du codeur de l’exercice 7, décodez la séquence reçue 1 1 0 0 1 0 1 0 à l’aide de l’algorithme de Viterbi.
14
TP 3 : Codage canal
Exercice 11 : codes à parité
On considère dans cet exercice le code à parité (4, 5).
1. Déterminez k, n, K. En déduire le rendement R.
2. Déterminez la matrice génératrice G et la matrice de contrôle de parité H. En Matlab, une
matrice identité se crée avec l’instruction eye.
3. Quelle est la distance minimale du code à parité ? Pour cela, il peut être utile d’écrire tous les
mots du code. La fonction dec2binary* permet d’obtenir la valeur binaire d’un nombre décimal.
4. Complétez les fonctions encparity* et decparity* qui effectuent respectivement le codage et
le décodage. Utilisez le modulo 2 pour effectuer une multiplication dans le corps de Galois F2
(mod). Testez le bon fonctionnement de vos fonctions sur un exemple à partir d’une séquence
binaire aléatoire (randmary*).
Exercice 12 : code de Hamming (7, 4)
Le code de Hamming (7,4) a été défini exercice 3.
1. Répondez aux questions de l’exercice 3.
2. Complétez les fonctions enchamming* et dechamming* qui effectuent respectivement le codage
et le décodage. Testez le bon fonctionnement de vos fonctions sur un exemple.
Exercice 13 : codes convolutif
On considère le code convolutif dont le schéma-bloc est représenté ci-dessous :
u1
+
m
+
u2
1. Déterminez k, n, K. En déduire le rendement R.
2. Complétez la fonction encconv* qui effectue le codage. Le décodage sera effectué avec l’algorithme de Viterbi (decconv*). Testez le bon fonctionnement de votre code sur un exemple.
Exercice 14 : performances des codes
Les performances de trois codes précédents seront mesurées en considérant un canal binaire symétrique
de probabilité d’erreur α. La transmission est dite « simplex » c’est-à-dire qu’elle s’effectue dans un
seul sens (il n’est pas possible pour le récepteur de demander à l’émetteur de transmettre une nouvelle
fois le message si une erreur a été détectée sans avoir pu être corrigée).
1. Complétez la fonction bsc* qui simule un canal binaire symétrique.
2. Simulez la transmission via ce canal d’une séquence binaire aléatoire sans codage canal et avec
les codes des exercices 11, 12 et 13.
3. Tracez la probabilité d’erreur par élément du message en fonction de la probabilité d’erreur sur
le canal de transmission (faites plusieurs simulations avec des messages suffisamment longs).
15