Comnum
Comnum
Comnum
Syllabus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Exercices de pré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Codage source 6
Exercices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Travaux pratiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Modulation et démodulation 9
Filtres de mise en forme d’impulsions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Expressions des filtres en (racine) de cosinus surélevé . . . . . . . . . . . . . . . . . . . 11
Exercices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Exercices pratiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Codage canal 15
Exercices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Exercices pratiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Polynômes générateurs des codes BCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
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.
Contenu du cours
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 traite-
ment du signal (transformée de Fourier, analyse fréquentielle, numérisation, démodulation cohérente,
filtrage adapté). Vous trouverez page 5 des exercices de révision pour préparer ce module.
Enseignant
2
Évaluation
La note du module 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ôles 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/comnum/. Certains programmes sont à compléter : les em-
placements 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/comnum/.
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-t-
il ?, 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 11 février 2016).
[16] Wikipedia : List of ITU-T V-series recommendations, 2015. (Accédé le 11 février 2016).
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
Exercices de pré-requis
Exercice 4 : probabilités
Un système de transmission binaire a une probabilité d’erreur égale à p = 0, 05, c’est-à-dire que, en
moyenne, 95 % des bits reçus sont corrects.
Dans un premier temps, on transmet un seul bit égal à 0.
1. Quelle est la probabilité de recevoir 0 ?
2. Quelle est la probabilité de recevoir 1 ?
Dans un deuxième temps, on transmet un message de quatre bits.
3. Quelle est la probabilité de bonne transmission (donc que tous les bits transmis soient corrects) ?
Enfin, on ajoute au message de quatre bits trois bits supplémentaires qui permettent de retrouver le
message émis même s’il y a une une erreur de transmission. De ce fait, ce codage permet d’atteindre
une probabilité de transmission correcte égale à la probabilité que six ou sept bits soient transmis sans
aucune erreur.
4. Quelle est la probabilité qu’aucun des sept bits soit erroné ?
5. Quelle est la probabilité que seul le premier des sept bits soit erroné ?
6. Quelle est la probabilité qu’un seul des sept bits soit erroné ?
7. En déduire la probabilité de bonne transmission avec ce code ?
a b and or xor
0 0
0 1
1 0
1 1
5
Exercice 6 : calcul matriciel
Calculez A · B + AT où :
3 3 7 1
A= et B= .
0 2 1 5
3. Comment s’appelle le filtre qui permet de détecter un motif particulier m(t) dans un signal
bruité ? Quelle est sa réponse impulsionnelle ?
4. Quel est l’effet d’une modulation d’amplitude d’un signal sur son spectre ?
5. Un signal de bande passante fp est multiplié deux fois par cos(2πfp t) puis filtré par un passe-bas
idéal de fréquence de coupure fp . Quel sera le spectre du signal ainsi synthétisé ?
6
Codage source
Exercices
Exercice 1
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’auto-information des symboles.
2. Calculez l’entropie de la source.
3. Quel est le débit de la source ?
4. Calculez le taux d’émission de la source.
5. Quel est le débit du canal ?
6. Quelle est la capacité du canal ?
7. La transmission est-elle possible sans erreur ?
Exercice 2
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 3
Une source X 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 4
On considère l’alphabet défini ci-dessous :
Symbole A B C D E F G
Probabilité 0, 35 0, 30 0, 20 0, 10 0, 04 0, 005 0, 005
1. Calculez l’auto-information des symboles.
2. Calculez l’entropie de la source
3. Déterminez le code de Huffman associé à la source.
4. Calculez la longueur moyenne et l’efficacité du code obtenu.
Exercice 5
Mêmes questions que l’exercice 4 avec l’alphabet défini ci-dessous :
Symbole A B C D E F G H
Probabilité 0, 36 0, 14 0, 13 0, 12 0, 10 0, 09 0, 04 0, 02
7
Codage source
Travaux pratiques
1. Un code de deuxième extension est défini à partir d’un nouvel alphabet contenant les symboles originaux regroupés
deux par deux. Dans le cas considéré ici, le nouvel alphabet correspond aux symboles {AA, AB, AC, . . .}.
2. N’oubliez pas le deuxième argument qui permet de régler l’échelle des intensités !
8
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 :
taille de l’image compressée
Taux de compression = 1 − .
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 coeffi-
cients 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); % Taille de l’image DCT I
T = 0.5; % Taux de compression (entre 0 et 1)
[X,Y] = meshgrid(1:C,1:C); % Matrices des coordonnées
M = ( (X+Y) <= 2*C*T ); % Définit un masque triangulaire
imshow(M,[]); % Affichage du masque
J = I.*M; % 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
9
Modulation et démodulation
Filtres de mise en forme d’impulsions
−T T
−T T
Filtre rectangulaire
−T T
−T T
α = 0, 2 α = 0, 2
α = 0, 8 α = 0, 8
−T T
−T T
α = 0, 2 α = 0, 2
α = 0, 8 α = 0, 8
−T T
−T T
10
Modulation et démodulation
Expressions des filtres en (racine) de cosinus surélevé
Dans les définitions suivantes, α ∈ [0, 1] est le coefficient de retombée (roll-off factor ).
• Réponse fréquentielle :
1−α
T si |f | < 2T ,
T
πT
1−α
1−α 1+α
H1 (f ) = 1 + cos |f | − si 2T ≤ |f | < 2T ,
2
α 2T
1+α
si
0 |f | ≥ 2T .
• Réponse fréquentielle :
p
H2 (f ) = H1 (f ) où H1 est la réponse fréquentielle du filtre en cosinus surélevé.
11
Modulation et démodulation
Exercices
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]
Exercice 2
Exercice 3
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 ?
12
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 [ 1 si t ∈ [0, T /2[
h1 (t) = et h2 (t) =
0 sinon 0 sinon.
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 1
0 0 0
−1 −1 −1
−2 −2 −2
−0.5 −0.25 0 0.25 0.5 −0.5 −0.25 0 0.25 0.5 −0.5 −0.25 0 0.25 0.5 −0.5 −0.25 0 0.25 0.5
13
Modulation et démodulation
Exercices pratiques
Message à émettre
Message reçu
Figure 1 – Principe d’une transmission en bande de base.
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).
3. Les deuxième et troisième arguments de la fonction peuvent être laissé libres ([]), le quatrième sera égal à 100/T
où T est la durée d’un bit.
14
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*). Obser-
vez le signal en entrée du détecteur pour différents niveaux de bruit.
3. Dans un premier temps, on ne tient pas compte du filtre de réception : r(t) = δ(t). Échantillonnez
(sampling*) le signal z(t) = y(t) et appliquez un seuil pour retrouver, tous les T , les symboles
αk émis.
4. Dans un deuxième temps, appliquez le filtre de détection (convolution avec conv 4 ), 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 ?
4. Précisez le troisième argument ’same’ pour conserver des signaux de même taille.
15
Codage canal
Exercices
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.
16
3. Calculez la distance minimale du code.
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 :
1 1 1 1
message 0 1 0 1 parité ligne
0 1 1 0
1 1 0
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 à parité croisée par rapport à un code à parité simple.
Exercice 7
On considère le code convolutif ci-dessous :
u1
+ 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 le diagramme en treillis.
Exercice 8
Même questions que dans l’exercice 7 pour le code convolutif ci-dessous :
+ u1
+ 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’algo-
rithme de Viterbi.
17
Codage canal
Exercices pratiques
+
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’algo-
rithme de Viterbi (decconv*). Testez le bon fonctionnement de votre code sur un exemple.
18
Codage canal
Polynômes générateurs des codes BCH
Les codes BCH (du nom de leurs inventeurs : Bose, Chaudhuri, Hocquenghem en 1959–1960) sont des
codes cycliques binaires ou M -aires. Il en existe de plusieurs longueurs et rendements et leur décodage
est simple. C’est pourquoi ils sont très utilisés comme codes de taille faible ou modérée, comme par
exemple en communication satellitaire, pour les disques optiques, les disques durs et SSD ou les codes
barres bi-dimensionnels.
Le tableau ci-dessous donne les coefficients (en octal) des polynômes générateurs de quelques codes
BCH binaires (d’après [5]). Ces codes fournissent des mots de longueur n à partir de blocs du message
de taille k. Le code résultant à un pouvoir de correction égal à t.
n k t coefficients de g(X)
7 4 1 13
15 11 1 23 Le code BCH (7,4) est capable de corriger
7 2 721 t = 1 erreur. Les coefficients de son polynôme
5 3 2467 générateur sont 138 = 10112 , donc :
31 26 1 45
21 2 3551 g(X) = 1 · X 3 + 0 · X 2 + 1 · X 1 + 1 · X 0
16 3 107657
= X3 + X + 1
11 5 5423325
6 7 313365047
63 57 1 103
51 2 12471
45 3 1701317
39 4 166623567
36 5 1033500423
30 6 157464165547
24 7 17323260404441
18 10 1363026512351725
16 11 6331141367235453
10 13 472622305527250155
7 15 5231045543503271737
127 120 1 211
113 2 41567
106 3 11554743
99 4 3447023271
92 5 624730022327
85 6 130704476322273
78 7 26230002166130115
71 9 6255010713253127753
64 10 1206534025570773100045
57 11 33526525205705053517721
50 13 54446512523314012421501421
43 14 17721772213651227521220574343
36 15 3146074666522075044764574721735
29 21 403114461367670603667530141176155
22 23 123376070404722522435445626637647043
15 27 22057042445604554770523013762217604353
8 31 7047264052751030651476224271567733130217
19