Bourassa Benjamin MSC 2019
Bourassa Benjamin MSC 2019
Bourassa Benjamin MSC 2019
par
Benjamin Bourassa
Membres du jury
Les codes polaires sont une famille de codes de correction d’erreurs récemment
développées. Leurs bonnes propriétés font en sorte qu’ils ont été sélectionnés pour
être intégrés dans les nouveaux standards de télécommunication (5G) vers 2020.
L’algorithme de décodage, connu sous le nom de décodeur par annulation successive,
est une méthode de décodage itérative. Cet algorithme permet aux codes polaires
d’atteindre le taux de transmission d’informations optimal qu’on peut transmettre
pour un modèle de bruit donné.
Ce mémoire présente une méthode de décodage graphique basée sur les réseaux
de tenseurs, un outil très utilisé en physique des problèmes à N-corps. L’aspect
innovant de ce mémoire est la prise en compte d’un modèle de bruit avec mémoire,
une généralisation du décodeur par annulation successive. Il est possible d’étendre
la famille des codes polaires en introduisant une structure interne convolutive. Ces
codes ainsi obtenus sont nommés les codes polaires convolutifs. L’algorithme de
décodage reste valide pour ces généralisations.
iii
Remerciements
Je remercie Jessica pour avoir été une collègue de bureau exemplaire. J’ai eu
beaucoup de plaisir à tes côtés au cours des deux dernières années. J’ai apprécié ta
grande écoute durant mes interrogations ainsi que ton amitié.
Je remercie Lucas pour avoir été un coloc formidable. Ton écoute et tes conseils
judicieux m’ont aidé à travers mon parcours de maîtrise et de vie.
Je remercie Mathieu pour m’avoir permis de rentrer dans ton bureau à tout
moment pour parler de tout et de rien.
J’aimerais aussi remercier mes amis Léo, Martin, Félix-Antoine et Félix alias le
gars des signets.
Merci à ma famille pour votre soutien dans mes études. Merci maman et papa
iv
Remerciements v
Sommaire ii
1 Introduction 1
vi
Table des matières vii
2.5.2 Remodelage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.5.3 Permutation des indices . . . . . . . . . . . . . . . . . . . . . . 39
2.5.4 Contraction d’un réseau de tenseurs . . . . . . . . . . . . . . . 40
2.5.5 L’ordre de contraction . . . . . . . . . . . . . . . . . . . . . . . 41
2.6 Les codes polaires convolutifs . . . . . . . . . . . . . . . . . . . . . . . 43
3 Méthodologie 46
3.1 Formulation d’un circuit en termes des réseaux de tenseurs . . . . . . 46
3.2 Le décodage, un problème de contraction . . . . . . . . . . . . . . . . 48
3.2.1 Calculs sur une densité de probabilité . . . . . . . . . . . . . . 48
3.2.2 Décodeur par annulation successive . . . . . . . . . . . . . . . 49
3.2.3 L’obtention de la densité de probabilité . . . . . . . . . . . . . 50
3.3 Modèle de réseaux de tenseurs pour canal bruyant . . . . . . . . . . . 51
3.3.1 Canaux sans mémoire . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.2 Canaux avec mémoire . . . . . . . . . . . . . . . . . . . . . . . 52
3.4 Algorithme de décodage . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.5 Sélection des bits gelés . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4 Résultats et analyse 62
4.1 Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Conclusion 66
A Chaînes de Markov 68
Bibliographie 73
Liste des tableaux
4.1 Différents paramètres pour les canaux étudiés dans la figure 4.1 a), c)
et d) où le ratio ρ = 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
viii
Table des figures
ix
Table des figures x
Introduction
Une des plus grandes révolutions du 20e siècle est sans aucun doute l’inven-
tion du transistor qui mènera quelques années plus tard à l’ère du digital avec ces
technologies qui nous sont bien familières aujourd’hui. À cette même époque, un
jeune scientifique nommé Claude Shannon fut une découverte tout aussi impres-
sionnante, mais moins connue peut-être pour son caractère plus fondamental. Cette
découverte est une théorie mathématique de la communication, elle permit entre
autres la naissance de la théorie de l’information avec d’importantes applications
en transmission de signaux numériques. Les découvertes de Shannon ont permis
de donner une description mathématique de l’information. L’information au sens
large semble difficile à quantifier mathématiquement puisqu’elle est intangible et
abstraite, mais Shannon parvint à en donner une définition adéquate.
1
2
tâche est donc d’inférer le message d’Alice m sachant la chaîne reçue y. Il s’agit de la
procédure de décodage. Ce principe est à la base de la correction d’erreurs. La figure
1.1 illustre un schéma simplifié du protocole de communication implémentant un
code de correction d’erreurs.
il suffit de choisir le bon code de correction d’erreurs. Il s’avère que cette tâche
est extrêmement complexe. Les codes qui satisfont les conditions de Shannon se
nomment les codes qui atteignent la capacité. En principe, il est possible d’utiliser
une méthode de décodage dite optimale. Toutefois, celle-ci nécessite une complexité
de décodage qui grandit de manière exponentielle avec la quantité d’information
envoyée. Cette notion de complexité de décodage est importante à considérer puis-
qu’elle est intimement liée au temps d’exécution et au coût énergétique que pourrait
avoir l’implémentation d’un tel code dans une technologie de la vie courante.
Depuis ce résultat de Shannon prouvé dans les années 40, les scientifiques ont
tenté de trouver des codes qui atteignent la capacité, mais c’est seulement en 2009
avec l’invention des codes polaires par E. Arikan qu’un premier exemple réalisable
de manière efficace est donné. En effet, la complexité d’encodage et de décodage
est de O(N log N ) où N est la taille du code. Ces codes prometteurs ont même été
annoncés comme une des technologies utilisées dans la cinquième génération de
standards pour la téléphonie mobile (5G) [6]. Le but de mon projet de maîtrise est
l’étude des codes polaires et ses généralisations dans un contexte de bruit avec
mémoire, c’est-à-dire, un bruit dont les erreurs sont corrélées. Ce type de modèle de
bruit est intéressant puisqu’il permet de simuler bon nombre de processus causant
dans erreurs dans des applications technologiques réelles. Par exemple, les erreurs
causées par une rayure ou de la poussière sur un disque compact sont des erreurs
corrélées. Ainsi, des méthodes de correction d’erreurs sont appliquées pour traiter
l’information sur un disque compact offrant une résilience aux erreurs corrélées.
Dans ce projet, les réseaux de tenseurs, un outil graphique populaire en physique
des systèmes quantiques à N-corps, sont utilisés afin de reformuler l’algorithme de
décodage standard des codes polaires. Cette formulation facilite l’implémentation
d’algorithmes et permet de généraliser les codes polaires en les codes polaires convo-
lutifs, une famille de codes introduite antérieurement par A. Ferris et D. Poulin.
L’aspect innovant de se mémoire provient d’une généralisation du décodeur pour
les codes polaires et les codes polaires convolutifs permettant de prendre en compte
les canaux à états finis, un type de modèle de bruit avec mémoire. Les résultats
de simulation obtenus montrent que ce décodeur surpasse les performances d’un
décodeur qui ne prend pas en compte une structure de bruit avec mémoire. Une com-
paraison avec les codes polaires et les codes polaires convolutifs dans le contexte du
4
bruit avec mémoire indique que les codes polaires convolutifs offrent de meilleures
performances que les codes polaires.
5
6
Dans cette section, la notion d’un code de correction d’erreurs est introduite
selon 3 définitions équivalentes, traitant des concepts d’espace vectoriel, de matrice
génératrice et de matrice de contrôle. Un code de correction d’erreurs comprend un
encodeur E , une application linéaire et injective, qui prend en entrée une chaîne de
bits de message m ⃗ ∈ Fk2 et produit un mot de code ⃗x ∈ Fn2 avec k < n. L’injectivité
assure l’obtention de 2k mots de code distincts provenant des 2k chaînes de bits de
message.
Une conséquence de la linéarité est que si x⃗1 et x⃗2 ∈ C, alors x⃗1 ⊕ x⃗2 ∈ C. Il est
possible de spécifier une base pour le sous-espace vectoriel C. Cette base contient
k vecteurs de n bits qui sont appelés les générateurs {g⃗1 , g⃗2 , ..., g⃗k }. Ainsi, tout mot
de code ⃗x ∈ C peut être représenté comme une combinaison linaire des vecteurs de
bases : ⃗x = ki=1 ai g⃗i . Il est possible de définir une matrice G de dimension k × n
∑
dont chaque ligne est formée d’un générateur. Cette matrice est appelée la matrice
génératrice et elle définit l’encodage de la manière suivante : ⃗x = mG. ⃗ Ceci donne
donc une deuxième définition d’un code de correction d’erreurs prenant en compte
la spécificité d’un code linaire.
Définition 2 Un code de correction d’erreurs est défini par une matrice génératrice de
dimension k × n,
C = {⃗x ∈ Fn2 | ⃗x = mG
⃗ , m⃗ ∈ Fk2 }.
∑n
où ⟨⃗c, ⃗x⟩ = i=1 ci xi .
Cet espace définit aussi un code qui encode n − k bits d’information dans n bits.
Posons H la matrice génératrice de C ⊥ qui est de dimension (n − k) × n. Ce code
est le code dual de C et donc par définition HGT = 0. Supposons donc un code C
avec la matrice génératrice G et H la matrice génératrice de C ⊥ . Si ⃗x ∈ C obtenus par
⃗x = mG,
⃗ alors H⃗xT = HGT m ⃗ T = 0. Ceci mène donc à une autre définition de C :
Définition 4 Un code de correction d’erreurs est défini par une matrice de contrôle de
dimension (n − k) × n,
C = {⃗x ∈ Fn2 | H⃗xT = 0}.
Par exemple,
dH (101011, 110100) = 5,
wH (101011) = 4.
Soit un modèle de bruit agissant sur les différents mots de code par des erreurs
linéaires 3 , indépendantes et de faibles poids. Ce modèle de bruit est nommé le
canal binaire symétrique et produit des erreurs d’inversion de bits avec une certaine
probabilité. Soit un mot de code ⃗x ∈ C et une erreur ⃗e ∈ Fn2 telle que wH (⃗e) ≤ s
avec s un entier assez faible. Alors, la chaîne à la sortie du canal est obtenue par
⃗y = ⃗x ⊕ ⃗e. Le travail du décodeur consiste donc à trouver ⃗x avec la connaissance du
code C et du vecteur ⃗y . Une stratégie optimale est d’utiliser un décodeur à distance
minimale, car si une erreur survient elle est de faible poids. Alors, le décodeur peut
répertorier l’ensemble des 2k mots de code et calculer la distance de Hamming entre
tous ces mots de code et la chaîne de bits reçue pour retenir le mot de code ayant
la distance de Hamming minimale. Mathématiquement, le décodeur à distance
minimale cherche donc à optimiser la fonction suivante,
Cette stratégie est optimale du fait que la probabilité d’avoir une erreur est une
fonction décroissante de son poids. Par contre, cette méthode requiert une quantité
énorme de calculs pour des codes très grands. De façon générale, la complexité de
décodage est exponentielle selon k puisqu’il est nécessaire de parcourir l’ensemble
des 2k mots de code. La notion de distance de Hamming permet aussi de caractériser
le paramètre de distance d’un code. Il s’agit d’un paramètre très important pour
quantifier le poids maximal d’une erreur qu’un code peut tolérer.
3. Une erreur ⃗e agit linéairement sur un mot de code ⃗x si la chaîne obtenue à la sortie du canal
est donnée par ⃗z = ⃗e ⊕ ⃗x.
9
d = min wH (⃗x)
x∈C\⃗0
⃗
Par exemple, pour le code à répétition à 3 bits, les deux mots de code sont
⃗x0 = 000 et ⃗x1 = 111, ce qui donne d = 3.
Une des méthodes typiques de décodage pour des codes de faibles tailles consiste
à utiliser un décodage par syndromes. Soit un mot de code ⃗z, alors le message reçu à
la suite de la transmission sur un canal est donné par ⃗r = ⃗z ⊕ ⃗e où ⃗e est l’erreur. Par
définition, ⃗z est un mot de code et donc H⃗z = 0. Par linéarité,
où ⃗s est un vecteur de dimension n−k appelé le syndrome de l’erreur ⃗e. Cette quantité
est intéressante puisqu’elle ne dépend pas du message envoyé, seulement de l’erreur.
Avec cela, il est possible d’implémenter une table de syndromes qui associe à chaque
vecteur d’erreurs ⃗e un syndrome. Par exemple, dans un cas où un code peut corriger
des erreurs de poids maximal t, il est possible d’énumérer toutes les erreurs de poids
au plus t {⃗ei } et de calculer leurs syndromes {⃗
si } = H{⃗ ei }, dans ce cas il est possible
d’obtenir des syndromes distincts pour chaque erreur distincte. Ensuite, pour la
réception d’un message erroné ⃗r, il suffit de calculer le syndrome associé à ⃗r et de
localiser dans la table de syndrome l’erreur ⃗e correspondante. Finalement, il suffit
de calculer ⃗r ⊕ ⃗e pour retrouver la chaîne de bits initiale. Cet algorithme est optimal
dans le cas des codes linéaires. Par contre, la table de syndrome grandit de manière
exponentielle avec la redondance n − k.
10
Le code de Hamming [7,4,3], introduit par Richard Hamming en 1950 [22], s’agit
historiquement du premier exemple non trivial de code de correction d’erreurs. Ce
code permet d’encoder 4 bits de message d1 d2 d3 d4 dans un mot de code de 7 bits.
Pour ce faire, 3 bits de parités p1 p2 p3 sont ajoutés en guise de redondance à la chaîne
du message de 4 bits. Il en résulte une chaîne de 7 bits à transmettre d1 d2 d3 d4 p1 p2 p3 .
La valeur des bits de parité est déterminée par des équations de contraintes qui sont
illustrées simplement par le diagramme de la figure 2.1. Il faut que la somme des
éléments de chacun des trois cercles soit paire. De cette manière, les 3 équations
suivantes permettent de trouver p1 , p2 et p3 ,
p1 ⊕ d1 ⊕ d2 ⊕ d3 = 0, (2.3)
p2 ⊕ d1 ⊕ d2 ⊕ d4 = 0, (2.4)
p3 ⊕ d1 ⊕ d3 ⊕ d4 = 0. (2.5)
Ainsi, chacun des 24 mots de code possibles doit satisfaire ces équations. De
plus, notons que chacune des erreurs possibles sur un des bits donne lieu à un
ensemble de parités distinct pour chaque cercle, ce jeu de parité agit donc comme le
syndrome de l’erreur. La table 2.1 présente les différentes valeurs de parités pour
chaque cercle selon les erreurs de poids 1. Comme chacune des colonnes de cette
table est distincte, toutes les erreurs de poids 1 peuvent être détectées et corrigées.
En associant les vecteurs dans le code par ⃗y = (d1 d2 d3 p1 d4 p2 p3 ), alors la table
2.1 se traduit directement comme étant la matrice de contrôle H pour le code de
Hamming à 7 bits ⎛ ⎞
⎜1 1 1 1 0 0 0⎟
⎜ ⎟
H = ⎜1 1 0 0 1 1 0⎟ .
⎜ ⎟
⎜ ⎟
⎝ ⎠
1 0 1 0 1 0 1
Erreur d1 d2 d3 p1 d4 p2 p3
Rouge 1 1 1 1 0 0 0
Vert 1 1 0 0 1 1 0
Bleu 1 0 1 0 1 0 1
Ta b l e 2.1 Table de syndromes correspondant à la parité des 3 cercles pour les erreurs
de poids 1.
12
G telle que HGT = 0. Comme il s’agit d’un code linéaire, il est suffisant de calculer
les valeurs de p1 , p2 et p3 pour les 4 vecteurs de base (d1 d2 d3 d4 ) = {0001, 0010, 0100,
1000} avec l’aide des équations ci-hautes. Ainsi, pour chaque vecteur de base, un
vecteur ⃗g = (d1 d2 d3 p1 d4 p2 p3 ) correspondant à une ligne de la matrice d’encodage
G est obtenu. En effectuant ce calcul, la matrice G est donnée par,
⎛ ⎞
⎜0 0 0 0 1 1 1⎟
⎜ ⎟
⎜ ⎟
⎜0 0 1 1 0 0 1⎟
G=⎜ ⎟.
⎜ ⎟
⎜ ⎟
⎜0 1 0 1 0 1 0⎟
⎜ ⎟
⎝ ⎠
1 0 0 1 0 1 1
Définition 9 Soit (X, Y ) deux variables aléatoires avec une distribution de probabilité
4. Lorsque le contexte est clair, la notation suivante p(xi ) = pi est utilisée, de même pour les
probabilités jointes p(xi , yj ) = pij . De plus, les variables aléatoires sont représentées en majuscule,
alors que les valeurs que peuvent prendre celles-ci sont représentées en minuscule.
5. Le logarithme est en base 2, l’entropie se mesure donc en bits.
14
jointe donnée par pxy , alors l’entropie jointe de (X, Y ) est donnée par,
ny
nx ∑
(2.7)
∑
H(X, Y ) = − pxy log pxy .
x=1 y=1
nx ,ny
pxy
(2.8)
∑
H(X|Y ) = − pxy log .
x,y
px
Une des manières d’interpréter l’entropie consiste à considérer cette quantité comme
une mesure du degré de surprise ou d’incertitude que procure une variable aléatoire
en la mesurant. Ainsi, suivant cette interprétation, l’entropie est nulle pour une
variable entièrement déterministe puisqu’elle ne procure aucune incertitude sur
sa valeur. Au contraire, si la variable est maximalement aléatoire, l’entropie est
maximale. Soit une variable aléatoire X de cardinalité 6 |X| avec une distribution de
probabilité uniforme Px = |X|1
, alors H(X) = log |X|. Cette valeur est le maximum
pour H. L’entropie d’une variable aléatoire est donc bornée par
Une autre identité intéressante est la règle de la chaîne qui relie l’entropie jointe à
une somme contenant l’entropie conditionnelle et l’entropie d’une variable de la
manière suivante,
H(X, Y ) = H(X) + H(Y |X). (2.11)
Par symétrie,
H(X, Y ) = H(Y ) + H(X|Y ). (2.12)
6. La cardinalité d’une variable aléatoire est la taille de l’ensemble des valeurs que peut prendre
cette variable aléatoire.
15
Cette quantité est appelée la fonction d’entropie binaire et elle est maximale pour
p = 12 , le cas où la probabilité est identiquement distribuée. Aussi, elle est minimale
pour p = 0 ou p = 1, correspondant aux cas déterministes.
Pour étudier la quantité d’information que contient une variable aléatoire par
rapport à une autre, le concept d’information mutuelle entre deux variables aléatoires
est utilisé.
Définition 10 Soit X et Y deux variables aléatoires avec une densité de probabilité jointe
pxy et avec probabilités marginales px et py . Alors, l’information mutuelle est
pxy
(2.15)
∑∑
I(X : Y ) = pxy log .
x y
px py
Dans le cas où les deux variables aléatoires sont indépendantes au sens où P (X|Y ) =
P (X) et P (Y |X) = P (Y ), noté X ⊥ Y , la mesure de la variable Y ne révèle aucune
information sur X et vice-versa. L’information mutuelle est donc nulle I(X : Y ) = 0.
La figure 2.2 illustre un diagramme de Venn des différentes quantités concernant
l’entropie et l’information mutuelle de 2 variables aléatoires X et Y .
16
Définition 11 Un canal binaire est défini comme un système comportant une entrée bi-
naire X ∈ {0, 1}, une sortie à valeur discrète Y et une matrice de probabilités de transitions
W (Y |X).
La notation CBE(p) est utilisée pour le canal à effacement avec probabilité d’erreur
p. La figure 2.3 b) présente le diagramme du canal à effacement. Ces deux canaux
comportent deux caractéristiques communes, ils sont symétriques et sans mémoire. Ils
sont symétriques, car envoyer le bit 0 ou 1 produit la même probabilité d’erreurs.
De plus, ils sont sans mémoire, car la probabilité jointe d’obtenir la chaîne de bits ⃗y
sachant que la chaîne ⃗x est envoyée peut s’écrire comme
N
(2.20)
∏
WN (⃗y |⃗x) = W (yi |xi ).
i=1
Les résultats du reste de cette section concernent le cas des canaux sans mémoire. Il
sera question des canaux avec mémoire à la prochaine section.
18
Ainsi, pour faire le lien avec les 2 cas limites, le canal parfait est simplement un
CBS(p = 0). Suivant la formule de la capacité, ce canal a donc une capacité de 1 bit.
Alors que le canal poubelle est donné par CBE(p = 1) ayant une capacité de 0 bit.
La notion de capacité d’un canal peut être reliée à celle du rendement d’un code de
correction d’erreurs, il s’agit du second théorème de Shannon.
Théorème 2 (Second théorème de Shannon) Soit W un canal bruyant ayant une capacité
C, alors il existe un code de correction d’erreurs tel que si le rendement est R < C, alors la
probabilité d’erreurs diminue exponentiellement avec n la taille du code.
Cette section traite d’un type de bruit avec mémoire, c’est-à-dire un bruit qui
n’agit plus indépendamment sur chacun des bits. Dans ce cas,
N
(2.21)
∏
WN (⃗y |⃗x) ̸= W (yi |xi ).
i=1
Ce type de bruit est très intéressant puisqu’il est représentatif de plusieurs situa-
tions qui peuvent survenir lors de la transmission d’informations. Par exemple, la
communication entre un satellite et la Terre où la puissance du signal envoyé est
affectée par l’effet de masque (shadowing) dû aux obstacles physiques [34], ou bien
simplement une rayure sur un disque compact. Il existe plusieurs types de canaux
avec mémoire, la famille de canaux nommée les canaux avec mémoire à états finis sont
considérés dans ce mémoire.
Un canal à d états avec mémoire est défini par un ensemble de d canaux binaires
Ws (y|x) avec s ∈ {1, 2, ...d} sur lesquels il existe une dynamique de transition entre
les états caractérisée par un processus stochastique. En spécifiant un temps i, un état
si−1 au temps antérieur et un bit d’entrée xi , alors le bit à la sortie yi et le prochain
état si sont obtenus avec probabilité W (yi , si |xi , si−1 ). Le cas où le bit de sortie yn
est indépendant du prochain état sn conditionnellement à l’entrée xn et à l’état
précédent sn−1 est considéré, c’est-à-dire que yn |xn , sn−1 ⊥ sn |xn , sn−1 . Ceci permet
donc d’écrire
W (yn , sn |xn , sn−1 ) = p(yn |xn , sn−1 )q(sn |xn , sn−1 ). (2.22)
Ces types de canaux peuvent donc être décrits par deux processus. Le premier décrit
ce qu’il se passe au niveau de l’information par la densité de probabilité p et le
second décrit les transitions d’états par la densité de probabilité q. De manière plus
précise, la transition dans les états est décrite par une chaîne de Markov 7 . Le terme
7. Voir l’annexe A pour une introduction sur les chaînes de Markov.
21
De manière générale, la probabilité jointe WN (⃗y |⃗x) est une quantité non définie
pour un canal à états finis sur N bits. Il faut spécifier un état initial s0 pour le canal.
Ainsi, la quantité WN (⃗y , sN |⃗x, s0 ) où sN représente l’état final du canal est plutôt
utilisée. Cette probabilité s’obtient récursivement
(2.23)
∑
WN (⃗y , sN |⃗x, s0 ) = W (yN , sN |xN , sN −1 )WN −1 (⃗y , sN −1 |⃗x, s0 ).
sN −1
N
(2.24)
∑∏
WN (⃗y , sN |⃗x, s0 ) = W (yn , sn |xn , sn−1 ).
−1 n=1
sN
1
N
(2.25)
∑∏
WN (⃗y |⃗x, s0 ) = W (yn , sn |xn , sn−1 ).
sN n=1
1
Cette formule est générale et s’applique à tout type de canaux avec mémoire à états
finis. Dans le cas d’un canal à interférence intersymbole cette formule peut s’écrire
N
(2.26)
∑∏
WN (⃗y |⃗x, s0 ) = p(yn |xn , sn−1 )q(sn |xn , sn−1 ).
sN n=1
1
22
N
(2.27)
∑∏
WN (⃗y |⃗x, s0 ) = p(yn |xn , sn−1 )q(sn |sn−1 ).
sN n=1
1
Pour plus de détails sur ces canaux [19] et [21] constituent de bonnes références.
Le calcul de la capacité d’un canal avec mémoire est en général très difficile.
Toutefois, pour le cas du canal avec mémoire à états finis, sous certaines conditions
il est possible de simplifier les calculs et obtenir une bonne approximation de la
capacité. Pour ce faire, il faut définir la capacité minimale et la capacité maximale
d’un tel canal.
1
C = lim ⃗ : Y⃗ |s0 ) = lim CN .
max min I(X (2.28)
N →∞ N p(⃗x) s0 N →∞
1
C = lim ⃗ : Y⃗ |s0 ) = lim CN .
max max I(X (2.29)
N →∞ N p(⃗
x) s0 N →∞
∑
Définition 15 Soit qN (sN |⃗x, s0 ) = y , sN |⃗x, s0 ), alors ce canal est indécompo-
y WN (⃗
⃗
sable si ∀ ϵ > 0, ∃ N0 tel que pour N ≥ N0
∀ sN , ⃗x, s0 et s′0 .
23
Le théorème suivant donne une formule pour la capacité d’un canal indécomposable.
1
C = lim ⃗ : Y⃗ ).
max I(X (2.30)
N →∞ N p(⃗
x)
En pratique cette quantité reste difficile à calculer puisqu’il existe en principe une
quantité infinie et indénombrable de densité de probabilité sur la chaîne d’entrée p(⃗x)
[4]. Dans le contexte des canaux de Markov à états finis, une condition nécessaire à
l’indécomposabilité provient de l’ergodicité de la chaîne de Markov.
Théorème 4 Soit un canal de Markov à états finis ayant une dynamique des états dont la
chaîne de Markov est ergodique, alors ce canal est indécomposable.
Pour la simulation du bruit en rafale, il faut imposer une persistance dans les états
B et M. Ceci est réalisé en fixant les probabilités de transitions q(M |B) et q(B|M )
à des valeurs assez faibles. De plus, la longueur moyenne d’une chaîne de bit qui
reste consécutivement dans un état donné, noté ⟨lB ⟩ pour l’état bon et ⟨lM ⟩ pour
l’état mauvais est de distribution géométrique,
1 1
⟨lB ⟩ = , ⟨lM ⟩ = . (2.33)
q(M |B) q(B|M )
Il est possible de montrer que ce canal est indécomposable par la proposition sui-
vante.
Cette proposition se prouve par induction sur l. Ce résultat montre que pour |1 −
25
q(B|M ) − q(M |B)| < 1 le canal de Gilbert-Elliott est un canal indécomposable grâce
à la définition 15.
Il s’agit d’une formule pour la capacité beaucoup plus simple que la formule 2.30
étant donné qu’elle ne requiert plus de maximiser sur les densités de probabilité
pour X.⃗ Ce sujet est traité aux références suivantes [27] et [33].
regrouper en une matrice L mots de code de manière à obtenir un mot de code par
ligne. Une matrice L × n où n est la taille du code est ainsi obtenue. Ensuite, chaque
colonne de cette matrice est transmise une à la suite de l’autre sur le canal avec
mémoire. À la suite de la réception des mots de code, un décodage pour chaque
ligne de cette matrice est effectué. Cette technique permet l’utilisation d’un code de
correction d’erreurs standard pour les bruits avec mémoire. Soit un bruit possédant
une rafale 9 de longueur lr , alors une erreur d’au plus ⌈ lLr ⌉ peut être produite sur
chaque mot de code. Ainsi, un code de correction d’erreurs pouvant corriger les
erreurs de poids ⌈ lLr ⌉ pourra donc tolérer des erreurs avec rafale de longueur lr . Pour
illustrer le principe d’entrelacement, soit le code à répétition à 3 lettres défini pour
l’alphabet avec le mot : code à envoyer. Il faut donc envoyer 4 mots de code : {ccc, ooo,
ddd, eee}. Supposons un bruit en rafale de longueur lr = 4 qui agit sur les 4 premiers
symboles en changeant ces symboles par le symbole x et agit comme l’identité sur
le reste des symboles. L’utilisation normale du code à répétition (a) est comparée
avec l’utilisation d’un entrelaceur par bloc de niveau L = 4 (b).
En a), l’usage du code à répétition standard cause une erreur après décodage,
car le mot xode est décodé au lieu de code. Tandis qu’en b), l’usage d’un algorithme
d’entrelacement permet de retrouver le message envoyé. En pratique, cette technique
souffre d’un problème de latence relié au fait qu’il faut attendre d’avoir reçu les
L mots de codes avant de pouvoir procéder au décodage. De plus, comme cette
méthode ne tient pas en compte des caractéristiques internes du canal avec mémoire,
il faut souvent s’attendre à observer une performance du décodeur sous-optimale.
9. Une rafale est une portion contiguë de la chaîne de bits qui contient les erreurs.
27
Les codes polaires sont une famille de codes de correction d’erreurs introduits en
2009 par E. Arikan [3]. Ceux-ci feront partie de la prochaine génération des standards
de télécommunication (5G) [6]. Il existe une quantité énorme de littérature sur le
sujet reliant diverses facettes des codes polaires dans le domaine des technologies
des télécommunications. Dans cette section, il sera question d’une description plutôt
sommaire des codes polaires en parlant du phénomène de polarisation, du circuit
d’encodage et du décodeur. Les codes polaires font partie des classes de codes
dits modernes, tel que les codes LDPC et les turbo codes. Contrairement au code de
Hamming présenté à la section 2.1.2, où l’analyse du décodeur s’effectue facilement
en étudiant les mots de code et la distance de Hamming, dans le cas des codes
polaires, c’est tout autrement. En effet, les méthodes de décodage sont itératives
et ne cherchent pas nécessairement à optimiser la distance de Hamming entre les
différents mots de codes. Bien qu’il reste beaucoup de travail à faire pour caractériser
complètement ces codes, ils sont les premiers codes de correction d’erreurs pouvant
être démontrés mathématiquement à atteindre la capacité sur tous les types de
canaux binaires symétriques 10 et ce avec une complexité d’encodage et de décodage
relativement faible. C’est majoritairement cet aspect qui motive donc l’introduction
des codes polaires dans les technologies du 5G malgré sa découverte récente.
L’idée fondamentale des codes polaires repose sur une transformation simple.
La figure 2.6 présente cette transformation sous forme de circuit binaire, il s’agit en
fait de la porte ou exclusif accompagnée d’une copie du premier registre. Cette porte
est nommée le non contrôlé. Soit 2 variables aléatoires binaires U1 et U2 en entrée du
circuit. L’application de la transformation non contrôlé sur les variables aléatoires
permet d’obtenir 2 autres variables aléatoires binaires X1 et X2 . Ces deux nouvelles
variables aléatoires sont transmises sur un canal bruyant composé de deux canaux
W identiques pour les deux registres donnant les variables aléatoires Y1 et Y2 . Les
10. Ils peuvent aussi atteindre la capacité pour les canaux de Markov à états finis. Ce cas est traité
à la prochaine section.
28
X2 X1 U2 U1
00 00
01 01
10 11
11 10
U 1 = X1 ⊕ X 2 , U2 = X2 (2.35)
2H(X1 |Y1 ) ≤ H(U1 |Y1 , Y2 ) + H(X1 |Y1 ) → H(X1 |Y1 ) ≤ H(U1 |Y1 , Y2 ). (2.39)
Une idée naturelle est de considérer cette procédure pour un plus grand nombre
de canaux et d’ajouter des couches de transformations de manière à polariser les
canaux les plus embellis ensemble. La figure 2.7 illustre un code polaire à 2 couches.
Le nombre de couches est donné par log2 N où N est le nombre de bits. Le cas à 1
couche se généralise donc pour une polarisation à 4 canaux. Cela permet d’obtenir
les canaux synthétiques, W −− : U1 → Y14 , W −+ : U2 → Y14 U1 , W +− : U3 → Y14 U12 et
W ++ : U4 → Y14 U13 . Les probabilités d’effacements pour ces canaux s’obtiennent de
manière récursive à partir de ceux pour W − et W + , W −− = BEC(2(2p − p2 ) − (2p −
p2 )2 ), W −+ = BEC(2p2 −p4 ), W +− = BEC((2p−p2 )2 ) et W ++ = BEC(p4 ). La figure
2.8 montre un exemple de polarisation pour le canal à effacement avec probabilité
d’effacement de 0.5 pour les tailles N = 32 bits et N = 256 bits. Remarquons que les
canaux synthétiques sont polarisés dans le sens où une certaine proportion tend
vers une probabilité d’effacement de 0 et une autre proportion vers une probabilité
d’effacement de 1. Aussi, ce phénomène est plus marqué pour un nombre de bits
plus grand. Par contre, une certaine densité de ces canaux demeure dans une région
où la probabilité d’effacement est Pe ∈ (0, 1).
32
1.00
0.75
Probabilité d'effacement
0.50
0.25
0.00
3 6 9 12 15
Position des canaux triée
(a) Code polaire de 32 bits.
1.00
0.75
Probabilité d'effacement
0.50
0.25
0.00
0 50 100 150 200 250
Position des canaux triée
(b) Code polaire de 256 bits.
Théorème 5 (Polarisation) Pour tout canal à entrée binaire W de capacité C et pour tout
0 ≤ a ≤ b ≤ 1,
1 n
lim n |sn ∈ {+, −}n : P (W s ) ∈ [0, a)| = C
n→∞ 2
1 n
lim n |sn ∈ {+, −}n : P (W s ) ∈ [a, b]| = 0
n→∞ 2
1 n n
lim |s ∈ {+, −}n : P (W s ) ∈ (b, 1]| = 1 − C
n→∞ 2n
Récursion : pour le circuit CN , la construction est basée sur une couche du bas,
une permutation intermédiaire ΠN et une couche du haut. La couche du bas est
composée de 2 copies de C N . Ensuite, une permutation ΠN particulière reliant la
2
couche du bas et du haut est appliquée. Puis, la couche du haut est composée de
portes non controlé appliquées à chaque paire de bits adjacents. La permutation ΠN
envoie chaque bit en position impaire de la couche du haut vers la première moitié
de la couche du bas, alors que chaque bit en position paire de la couche du haut est
envoyé vers la seconde moitié de la couche du bas telle que le montre la figure 2.9.
Une fois que le circuit est construit, il ne reste plus qu’à sélectionner un ensemble
de bits gelés. Pour atteindre un rendement de R = Nk , il faut sélectionner N − k bits
gelés de manière à pouvoir encoder k bits d’information. L’encodage est réalisé ( en)
propageant les bits en entrée du circuit à la sortie, ceci peut être fait en O N log2 N
2
opérations en comptant le nombre de portes d’un code polaire. En utilisant 2 proces-
N
Il s’agit de trouver l’entrée ⃗û la plus probable parmi l’ensemble des 2k entrées
possibles. Un tel décodeur n’est toutefois pas réalisable en pratique pour des chaînes
de bits de tailles considérables. Dans son article, Arikan propose un algorithme de
décodage itératif appelé le décodeur par annulation successive. Ce décodeur décode
un seul bit à la fois de droite à gauche du circuit en utilisant la connaissance des
36
bits déjà décodés, c’est-à-dire tous les bits à la droite de celui qui est à décoder et en
négligeant complètement les bits à la gauche de ce bit, même s’ils sont préalablement
dans l’ensemble F. Ainsi, le décodage correspond à calculer pour chacune des N
positions la fonction suivante :
⎧
⎨0 si i ∈ F,
ûi = (2.42)
⎩arg maxu ∑
i uN WN (⃗y |CN (⃗u)) sinon.
i+1
Les codes polaires permettent-ils la polarisation du bruit avec mémoire ? Cette ques-
tion, intéressante tant du point de vue pratique que théorique, n’est pas adressée
dans l’article original des codes polaires, seulement les modèles de bruit indépen-
dants sont traités. E. Şaşoğlu donne une réponse positive à cette question [43], [35]
où il prouve en particulier que les canaux à états finis sont aussi polarisés par le
circuit des codes polaires sans toutefois donner un décodeur pour cette situation.
Ce résultat motive donc la recherche d’un décodeur efficace pour les codes polaires
tenant en compte le bruit avec mémoire. C’est plus tard qu’il a été montré dans [40]
un décodeur efficace pour les codes polaires soumis au bruit avec mémoire. Plus
précisément, il s’agit d’une généralisation du décodeur à annulation successive de
complexité de décodage de O(|S|3 N log2 N ) avec S l’ensemble des états du canal,
nommée décodeur par annulation successive sur treillis.
37
En termes simples, les réseaux de tenseurs sont une structure de données parti-
culière pour représenter certaines données corrélées de manière efficace. Par ailleurs,
ces structures possèdent une interprétation graphique qui facilite leur usage sem-
blable à ce que les diagrammes de Feynman procurent en physique de la matière
condensée et en électrodynamique quantique. L’application principale des réseaux
de tenseurs est en mécanique quantique, plus précisément dans l’étude des sys-
tèmes corrélés à N-corps telle une chaîne de spins. Ces outils permettent la mise en
oeuvre d’algorithmes efficaces pour la simulation de ces systèmes sur un ordinateur
classique [37]. Normalement, en mécanique quantique, pour représenter un état
général |ψ⟩ de N spins ou qubits, il faut un vecteur contenant 2N amplitudes. Le
problème de simulation d’un système quantique sur un ordinateur classique est
donc intraitable puisqu’il requiert une mémoire classique grandissant de manière
exponentielle avec la taille du système. Or il s’avère qu’en réalité, la plupart des
systèmes quantiques d’intérêts n’ont pas besoin d’être spécifiés par un nombre expo-
nentiel de paramètres [31], parfois un nombre polynomial de paramètres peut suffir
auxquels cas, l’utilisation des réseaux de tenseurs pour représenter un tel système est
bénéfique. Les réseaux de tenseurs sont aussi des outils utilisés pour la simulation
de calculs quantiques [25] et l’étude des codes de correction d’erreurs quantiques
[12, 13, 29, 9]. Récemment, les réseaux de tenseurs ont aussi été appliqués dans le
domaine de l’apprentissage automatique [38]. Ils permettent notamment d’éviter le
fléau de la dimension 13 , phénomène bien connu en apprentissage automatique. De
manière générale, les réseaux de tenseurs permettent une généralisation de l’algèbre
linéaire. Dans le cadre de ce mémoire, il sera question d’utiliser les idées de bases
des réseaux de tenseurs pour étudier le décodage d’un code de correction d’erreurs
classique. Pour ce faire, il faut simplement comprendre comment manipuler ces
objets. Pour plus d’information sur les réseaux de tenseurs appliqués en mécanique
quantique [28] et [10] constituent de bonnes introductions.
13. Aussi connu sous le terme curse of dimensionality.
38
2.5.1 Définition
F i g u r e 2.10
2.5.2 Remodelage
l = j + (k − 1)χj . (2.43)
Dans la section 3, il est décrit comment les réseaux de tenseurs peuvent être
utilisés pour le décodage de certains codes de corrections d’erreurs. Cette découverte
est due principalement à A. Ferris et D. Poulin où ils ont proposé ces outils pour
le décodage de codes de corrections d’erreurs quantiques [17] applicables aussi
en correction d’erreurs classique. Ils traitent aussi d’une généralisation possible
des codes polaires inspirée par un réseau de tenseurs appelé le branching MERA
introduit par G. Vidal et G. Evenbly [15]. Ainsi, grâce à cette connexion entre les
réseaux de tenseurs et la correction d’erreurs, il a été possible de généraliser les codes
polaires en les codes polaires convolutifs. Le circuit d’encodage des codes polaires est
caractérisé par une structure interne par bloc. C’est-à-dire que pour une couche du
circuit d’encodage des codes polaires, les portes non contrôlé sont appliquées par
blocs indépendants comme le montre la figure 2.17. A. Ferris et D. Poulin ont montré
qu’il est possible d’étendre les codes polaires en ajoutant une structure convolutive
au circuit d’encodage tout en conservant les bonnes propriétés de décodage des
codes polaires [18]. La structure convolutive est caractérisée par une couche dont
les portes logiques ne sont plus appliquées par blocs indépendants. Cette situation
est illustrée à la figure 2.18. Intuitivement, l’ajout de ces portes logiques permet un
phénomène de polarisation plus marqué. En effet, pour le cas où N = 4, la structure
du circuit des codes polaires convolutifs permet de combiner les canaux synthétiques
W +− et W −+ tels qu’illustrés à la figure 2.19, alors que ceci n’est pas le cas pour les
codes polaires. Le cas à N = 8 bits est présenté à la figure 2.20, la construction du
circuit reste récursive comme dans le cas des codes polaires. Ainsi, pour des tailles
de codes plus élevées, une polarisation plus rapide des canaux que dans le cas de
codes polaires standard devrait être observée. Effectivement, les comparaisons de
performances entre les codes polaires et les codes polaires convolutifs effectuées
dans [18, 39, 26] montrent que pour des modèles de bruit sans mémoire, les codes
polaires convolutifs sont plus performants. Dans ce mémoire, ces résultats sont
étendus aux cas de modèle de bruits avec mémoire [8].
44
F i g u r e 2.17 Illustration d’une couche du circuit d’encodage des codes polaires. Cha-
cune des portes logiques agit par bloc indépendant sur chaque paire de
bits.
F i g u r e 2.18 Illustration d’une couche du circuit d’encodage des codes polaires convo-
lutifs. La structure n’est plus par bloc indépendant, mais plutôt par une
structure convolutive.
Méthodologie
. (3.1)
46
47
De cette manière, une porte logique représente un tenseur. Dans ce cas, la porte non
contrôlé est un tenseur de rang 4 avec chacun des 4 indices représentant les bits
d’entrée et de sortie. Ainsi, ce tenseur prend la valeur 1 lorsque les assignations d’in-
dices correspondent aux assignations données par la table de vérité 2.2, autrement
le tenseur vaut 0. Par exemple,
.
48
Soit une densité de probabilité sur k bits P (⃗u), où ⃗u peut être interprété comme la
chaîne de bits de message dans le contexte de la correction d’erreurs. Cet objet peut
être décrit comme un vecteur contenant 2k éléments. Celui-ci peut facilement s’écrire
comme un tenseur de rang k avec chaque indice de dimension 2 représentant chaque
bit obtenu en appliquant un remodelage par extension d’indices. Cette densité de
probabilité peut donc se représenter comme
. (3.2)
Pour trouver la chaîne de bits la plus probable ⃗u, il faut utiliser le décodage par maxi-
mum de vraisemblance. Pour ce faire, il suffit de trouver l’argument qui maximise
cette probabilité. Il s’agit donc de calculer
. (3.3)
celui du décodage optimal de l’équation 2.41. Ainsi, pour des raisons d’efficacité, au
lieu d’optimiser en fonction de la chaîne la plus probable, une technique d’optimisa-
tion itérative sur chacun des bits est utilisée. Cette technique est à la base du décodeur
par annulation successive. Pour ce faire, il est important de montrer comment effec-
tuer les calculs de probabilité conditionnelle et marginale sur la densité de probabi-
lité. Pour calculer la probabilité conditionnelle P (u1 , u2 , u4 |u3 = 1, u5 = 0, u6 = 1) à
une constante de normalisation près, il faut effectuer la contraction,
. (3.4)
(3.5)
∑
P (u2 , u3 , u4 ) = P (⃗u),
u1 ,u5 ,u6
il s’agit de sommer sur les indices. Pour ce faire, le tenseur de rang 1 suivant est
introduit,
. (3.6)
. (3.7)
Supposons une densité de probabilité P (⃗u) sur N bits. Pour maximiser chaque bit
de droite à gauche du circuit, il faut calculer ûi = arg maxui ∈{0,1} P (ui |u1 , u2 , ..., ui−1 )
pour chacune des positions. Ainsi, en termes de réseaux de tenseurs cette équation
s’écrit comme
. (3.8)
. (3.9)
Cette formulation est très générale et elle peut s’appliquer pour plusieurs circuits
d’encodage C et modèle de bruit W. Ainsi, la contraction de ce réseau de tenseurs
conditionné sur les bits de redondance spécifiés au décodeur donne une densité
de probabilité binaire sur les messages envoyés. Le décodeur à maximum de vrai-
semblance recherchera donc la chaîne de bit la plus probable. Bien entendu, ce cas
générique est intraitable, mais il est possible de spécifier C et W pour lesquels ce
schéma peut s’appliquer de manière efficace lorsqu’un décodeur par annulation
successive est utilisé.
Tel que vu précédemment, un modèle de bruit binaire symétrique est décrit grâce
à W (Y |X), une matrice contenant les probabilités conditionnelles. Ainsi, formulé
52
W (Y |X) = (3.10)
De cette manière, les tenseurs représentant les états de bits peuvent être utiliser pour
calculer la probabilité conditionnelle. Par exemple, pour un canal binaire symétrique
de probabilité d’erreur p,
W (Y = 1|X = 0) = = p. (3.11)
N
(3.12)
∏
W (⃗y |⃗x) = W (yk |xk ) =
k=1
.
Considérons le cas du canal avec mémoire à états finis avec d états en supposant
que la dynamique répond à un modèle stochastique correspondant à une chaîne de
Markov ergodique. Tel que vu à la section 2.3.1, un canal de Markov à états finis est
53
N
(3.13)
∑∏
PN (⃗y |⃗x, s0 ) = q(sk |sk−1 )p(yk |xk , sk−1 ).
sN
1
k=1
De manière équivalente,
N ∑
(3.14)
∑∏
PN (⃗y |⃗x, s0 ) = q(sk |c)δc,sk−1 p(yk |xk , c).
sN k=1 c
1
. (3.15)
Ainsi, en termes de réseaux de tenseurs un canal de Markov à états finis est décrit
par le réseau de tenseurs suivant,
...
. (3.16)
Ce réseau de tenseurs possède une topologie en chaîne bien connue dans le domaine
de la physique des systèmes quantiques à N -corps, il porte le nom d’opérateur à
produit de matrices 2 [30]. De manière plus intuitive, ce type de canal est décrit
par une chaîne combinant un tenseur de rang 2 décrivant la matrice de transition
des états et un tenseur de rang 4 décrivant l’espace des canaux WC (Y |X). De plus,
comme l’effet de ce bruit est étudié sur des chaînes de bits finies, deux tenseurs de
rang 1 agissant comme conditions frontières sont définis. Le tenseur de rang 1 sur la
frontière de droite représente la distribution initiale S0 comme étant la distribution
stationnaire décrite par le vecteur ⃗νs . Puis, le tenseur de rang 1 sur la frontière de
2. Dans la littérature, ce terme fait référence à matrix product operator (MPO).
54
gauche représente une somme sur tous les états finaux SN , encodant le fait qu’à
la fin du processus l’état du canal C peut prendre n’importe quelle valeur. Cette
somme est réalisée par un vecteur dont l’ensemble des composantes est 1. Ces deux
conditions frontières sont représentées par,
, (3.17)
. (3.18)
, (3.19)
. (3.20)
Les sous-sections précédentes montrent qu’il est possible d’utiliser les réseaux
de tenseurs pour décrire le circuit d’encodage et le modèle de bruit. En principe, les
réseaux de tenseurs peuvent être utilisés pour effectuer un décodage selon l’algo-
rithme par annulation successive pour un code polaire ou un code polaire convolutif
soumis au bruit avec mémoire. Dans cette sous-section, il est question d’appliquer
ces outils de manière efficace. Pour le décodage d’un code de la famille des codes
55
F i g u r e 3.1 Réseau de tenseur illustrant une étape du décodeur par annulation succes-
sive. Les bits u1 à u4 sont supposés connus du décodeur. La contraction
de ce tenseur donne un vecteur contenant les probabilités des valeurs
pour le bit u5 .
polaires 3 , un ensemble de bits gelés F est supposé connu, ces bits sont fixés à la
valeur 0 par convention. En utilisant la théorie développée à la section 4.2, on note
qu’il suffit de spécifier un circuit C et un modèle de bruit W. La figure 3.1 présente
un exemple du décodage du bit u5 par l’algorithme d’annulation successive pour un
code polaire (portes logiques noires) et un code polaire convolutif (portes logiques
noires et bleues) de taille N = 8 bits dans un contexte de bruit avec mémoire. A
priori, la contraction du réseau de la figure 3.1 semble difficile, mais il est possible
d’utiliser des identités algébriques simplifiant grandement le circuit. Il s’agit des
simplifications suivantes,
, , .
(3.21)
3. Le terme famille des codes polaires fait référence aux généralisations possibles telles que celle
du code polaire convolutif.
57
. (3.22)
Une des étapes cruciales pour la construction de bons codes dans la famille
des codes polaires est la sélection des bits gelés. Cette sélection est déterminante
pour obtenir un code atteignant la capacité. Intuitivement, la position des bits gelés
devrait être aux endroits où les canaux synthétiques obtenus par le phénomène de
polarisation sont le plus médiocres. Ainsi, cette sélection dépend du modèle de bruit.
Dans l’article original d’Arikan, une sélection des bits gelés basée sur le paramètre
de Battacharyya d’un canal Z(W ) est utilisée. Il s’agit d’une quantité qui mesure la
distance entre deux densités de probabilité reliées à l’entrée et la sortie du canal. Il
s’avère que pour le canal à effacement, cette quantité se calcul exactement. Par contre,
pour les autres types de canaux, tel que le canal binaire symétrique, le calcul de
Z(W ) est intraitable. Les réseaux de tenseurs offrent une méthode alternative pour
déterminer la position des bits gelés. L’algorithme consiste à évaluer la probabilité
E(i) d’obtenir une erreur indétectable en position i sachant qu’aux positions 1 à i − 1
aucune erreur n’a eu lieu. Cette probabilité est évaluée pour chacune des positions
de 1 à N . Ensuite, ce vecteur de probabilité est classifié de manière à geler N (1 − R)
bits aux positions qui ont les probabilités d’une erreur indétectable les plus élevées.
. (3.23)
La complexité de cet algorithme est similaire à celle du décodage, soit de O(N log N ).
Ainsi, avant d’effectuer les simulations numériques pour l’évaluation de la perfor-
mance d’un code on utilise cette sous-routine pour trouver F.
Chapitre 4
Résultats et analyse
4.1 Simulations
62
63
4.2 Résultats
Ta b l e 4.1 Différents paramètres pour les canaux étudiés dans la figure 4.1 a), c) et d)
où le ratio ρ = 5.
2.33, est utilisée comme paramètre d’intérêt pour l’analyse. La figure 4.1 présente
les résultats des simulations de performance des codes et décodeurs considérés en
fonction de divers paramètres du modèle de bruit de Gilbert-Elliott. Pour l’ensemble
de ces résultats, on fixe le ratio ρ = 5 et h = 0.9, ce qui donne une probabilité d’erreur
moyenne Pmoy ≈ 0.15. La table 4.1 présente les divers paramètres pour q(B|M ) et
q(M |B) avec la longueur ⟨ℓM ⟩ correspondante.
4.3 Analyse
L’ensemble des résultats de la figure 4.1 indique une meilleure performance dans
le cas des codes polaires convolutifs que le cas des codes polaires pour les paramètres
du modèle de Gilbert-Elliott considérés. Ceci vient donc étendre les résultats de [16],
[18] et [32] quant à l’avantage des codes polaires convolutifs. La figure 4.1 a) montre
que dans le régime de bruit donné, l’ajout d’un algorithme d’entrelacement pour
réduire les corrélations aux bits voisins n’a peu ou pas d’effet sur la performance
des codes. En effet, remarquons que les courbes avec le suffix permutation sont au
même niveau que celles de l’algorithme standard. Une des raisons possibles pour
cette performance médiocre de l’algorithme d’entrelacement est reliée au fait que la
probabilité d’erreurs moyenne du canal est de Pmoy = P (B)h = 0.15. Effectivement,
après l’application de permutations aléatoires le modèle de bruit avec mémoire
65
0
10
-1
10
cp_mémoire
cpc_mémoire
-2 cp_sans_mémoire
10 cpc_sans_mémoire
cp_permutation cp_mémoire
cpc_permutation cpc_mémoire
-3
10 10 20 30 40 4 5 6 7 8 9 10
0
10
-1
10
2048 bits
-2 1024 bits 2048 bits
10 512 bits 1024 bits
256 bits 512 bits
128 bits 256 bits
128 bits
-3
10
10 20 30 40 10 20 30 40
F i g u r e 4.1 Taux d’erreurs par trame en fonction de différents codes, décodeurs et pa-
ramètres du canal de Gilbert-Elliott. Les figures a), c) et d) sont obtenues
en fixant h = 0.9 et ρ = 5 et en faisant varier la longueur moyenne de la
rafale en utilisant des codes de tailles N = 210 et un rendement R = 12 .
Les paramètres exacts sont données dans la table 4.1. En a), il s’agit d’une
comparaison entre les différents types de décodeurs et codes. Les cercles
correspondent aux codes polaires alors que les losanges correspondent
aux codes polaires convolutifs. En bleu, il s’agit du décodeur développé
dans ce mémoire (adapté au bruit avec mémoire), en rouge il s’agit de la
construction standard prenant en compte la probabilité d’erreur moyenne
et en vert il s’agit d’une construction standard avec la technique d’entre-
lacement (permutation). En b), les codes polaires (carré bleu) et les codes
polaires convolutifs (losange rouge) sont comparés avec l’algorithme de
décodage proposé en fonction du niveau de polarisation n pour un ren-
dement R = 13 avec les paramètres suivants : h = 0.9, q(B|M ) = 0.05 et
q(M |B) = 0.01. Les figures c) et d) étudient la performance du décodeur
proposé selon différents niveaux de polarisation pour les codes polaires
en c) et les codes polaires convolutifs en d).
66
peut être vu comme une série de canaux binaires symétriques indépendants avec
probabilité d’erreur ≈ 0.15. Selon les résultats de [16] et [18] une probabilité d’erreur
physique de 0.15 est relativement élevée pour un code avec rendement R = 21 . Il
n’est donc pas surprenant d’obtenir un résultat de la sorte. D’autre part, remarquons
aussi que dans la limite où ⟨ℓM ⟩ → 1,les performances sont similaires pour chacun
des décodeurs dans le cas des figures 4.1 a), c) et d). En effet, cette limite correspond
à un cas où le modèle de bruit tend vers un canal sans mémoire puisque q(B|M )
et q(M |B) deviennent assez grands. Ainsi, comme le décodeur proposé dans ce
mémoire est une généralisation du décodeur standard, il est attendu que toutes les
courbes de performance se rencontrent en ce point.
La figure 4.1 b), semble indiquer que les codes polaires convolutifs polarisent
plus rapidement les canaux avec mémoire que les codes polaires. Dans les deux cas,
une diminution de la probabilité d’erreur après décodage avec la taille du système
est notable, il s’agit d’une signature d’un code qui atteint la capacité. Finalement, les
résultats de la figure 4.1 c) et d) indiquent encore une meilleure performance pour
les codes polaires convolutifs (d)). L’existence d’une valeur seuil est aussi observée
dans le cas des codes polaires convolutifs près de ⟨ℓM ⟩ = 10. En deçà de cette valeur
seuil, la performance du code dégrade avec la taille du système alors que dépassée
cette valeur, une diminution de la probabilité d’erreur après décodage en fonction
de la taille du système est observée. L’existence de cette valeur seuil dans le cas des
codes polaires convolutifs appuie l’hypothèse que ces codes peuvent atteindre la
capacité pour les paramètres du modèle de bruit considérés. Dans le cas des codes
polaires, aucune valeur seuil n’est observée, ceci peut être dû aux effets de tailles
finis.
Conclusion
67
Annexe A
Chaînes de Markov
L’ensemble S peut être interprété comme l’état d’un système au cours du temps
de sorte que Xn = i indique que l’état du système au temps n est i. La probabilité
d’une transition au temps n + 1 sachant les états au temps inférieur est donc une
quantité d’intérêt. La caractéristique d’une chaîne de Markov est que cette probabilité
de transition dépend seulement de l’état au temps n. La probabilité conjointe d’une
chaîne de Markov se factorise de la manière suivante :
q(xn , xn−1 , ..., x0 ) = q(x0 )q(x1 |x0 )q(x2 |x1 )...q(xn |xn−1 ). (A.1)
Définition 17 Une chaîne de Markov est indépendante dans le temps si q(xn+1 |xn ) ne
dépend pas de n.
68
69
m et il contient la distribution sur les états au temps 0. Soit ν0 l’état initial, alors
⃗ν1 = q T ⃗ν0 . De manière plus générale,
Définition 19 Une distribution sur les états ⃗νn est une distribution stationnaire si
Définition 20 Une chaîne de Markov est irréductible s’il est possible d’effectuer une tran-
sition de n’importe quel état vers tous les autres états en un temps fini.
Dans cet exemple, il est possible de parcourir un chemin dans ce graphe pour passer
d’un état à l’autre. Le nombre de chemins emprunté donne la valeur du pas de temps
nécessaire. Suivant l’exemple de la figure A.1, si l’état initial est S1 , alors le temps
minimal requis pour rejoindre l’état S2 est de 2. Par cette méthode de comptage, il
est possible de définir la période d’un état Si comme étant le plus grand commun
diviseur de l’ensemble des temps requis pour revenir à l’état Si . Si la période est de
1, alors l’état est apériodique. Une chaîne de Markov avec tous ses états apériodiques
est nommée une chaîne de Markov apériodique.
Définition 22 Soit P une chaîne de Markov ergodique, alors il existe une unique distribu-
tion stationnaire ⃗νs et pour toute distribution ⃗ν0 ,
⎛ ⎞
⎜ q(B|B) q(B|M ) ⎟
q=⎝ ⎠ (A.7)
q(M |B) q(M |M )
et l’état stationnaire ( )
pB
⃗ν = . (A.8)
pM
71
⎛ ⎞T
⎜ q(B|B) q(B|M ) ⎟
( ) ( )
pB pB
= . (A.9)
pM pM
⎝ ⎠
q(M |B) q(M |M )
Ce qui donne, ( ) ( )
pB 1 q(B|M )
= . (A.10)
pM q(M |B) + q(B|M ) q(M |B)
Annexe B
(B.2)
72
73
(B.3)
[1] Itai Arad and Zeph Landau. Quantum computation and the evaluation of
tensor networks. arXiv:0805.0040 [quant-ph], April 2008. arXiv : 0805.0040.
[2] E. Arikan. Source polarization. In 2010 IEEE International Symposium on Infor-
mation Theory, pages 899–903, June 2010.
[3] Erdal Arikan. Channel polarization : A method for constructing capacity-
achieving codes for symmetric binary-input memoryless channels. IEEE Tran-
sactions on Information Theory, 55(7) :3051–3073, July 2009. arXiv : 0807.3917.
[4] Dieter M. Arnold. Computing information rates of finite-state models with applica-
tion to magnetic recording. PhD thesis, ETH Zurich, 2003.
[5] Claude Berrou, editor. Codes and turbo codes. Collection IRIS. Springer-Verlag,
Paris, 2010.
[6] Valerio Bioglio, Carlo Condo, and Ingmar Land. Design of Polar Codes in 5g
New Radio. arXiv:1804.04389 [cs, math], April 2018. arXiv : 1804.04389.
[7] David Blackwell, Leo Breiman, and A. J. Thomasian. Proof of Shannon’s Trans-
mission Theorem for Finite-State Indecomposable Channels. The Annals of
Mathematical Statistics, 29(4) :1209–1220, 1958.
[8] Benjamin Bourassa, Maxime Tremblay, and David Poulin. Convolutional Polar
Codes on Channels with Memory. arXiv:1805.09378 [cs, math], May 2018. arXiv :
1805.09378.
[9] Sergey Bravyi, Martin Suchara, and Alexander Vargo. Efficient algorithms for
maximum likelihood decoding in the surface code. Phys. Rev. A, 90 :032326,
Sep 2014.
[10] Jacob C. Bridgeman and Christopher T. Chubb. Hand-waving and Interpretive
Dance : An Introductory Course on Tensor Networks. Journal of Physics A:
Mathematical and Theoretical, 50(22) :223001, June 2017. arXiv : 1603.03039.
[11] Thomas M. Cover and Joy A. Thomas. Elements of Information Theory 2nd Edition.
Wiley-Interscience, Hoboken, N.J, 2 edition edition, July 2006.
[12] Andrew S. Darmawan and David Poulin. Tensor-network simulations of the
surface code under realistic noise. Phys. Rev. Lett., 119 :040502, Jul 2017.
74
Bibliographie 75
[13] Andrew S. Darmawan and David Poulin. Linear-time general decoding algo-
rithm for the surface code. Phys. Rev. E, 97 :051302, May 2018.
[14] E. O. Elliott. Estimates of error rates for codes on burst-noise channels. The Bell
System Technical Journal, 42(5) :1977–1997, September 1963.
[15] Glen Evenbly and Guifre Vidal. A class of highly entangled many-body states
that can be efficiently simulated. Physical Review Letters, 112(24), June 2014.
arXiv : 1210.1895.
[16] Andrew J. Ferris and David Poulin. Branching MERA codes : a natural extension
of polar codes. arXiv:1312.4575 [quant-ph], December 2013. arXiv : 1312.4575.
[17] Andrew J. Ferris and David Poulin. Tensor Networks and Quantum Error
Correction. Physical Review Letters, 113(3), July 2014.
[18] Andrew James Ferris, Christoph Hirche, and David Poulin. Convolutional Polar
Codes. arXiv:1704.00715 [cs, math], April 2017. arXiv : 1704.00715.
[19] R. G. Gallager. Information Theory and Reliable Communication. Wiley, New York,
1968.
[20] E. N. Gilbert. Capacity of a burst-noise channel. The Bell System Technical Journal,
39(5) :1253–1265, September 1960.
[21] A. J. Goldsmith and P. P. Varaiya. Capacity, mutual information, and coding for
finite-state Markov channels. IEEE Transactions on Information Theory, 42(3) :868–
886, May 1996.
[22] R. W. Hamming. Error detecting and error correcting codes. The Bell System
Technical Journal, 29(2) :147–160, April 1950.
[23] Shu Lin and Daniel J. Costello. Error Control Coding: Fundamentals and Applica-
tions. Pearson-Prentice Hall, 2004. Google-Books-ID : 0nVfQgAACAAJ.
[24] Florence Jessie MacWilliams and Neil James Alexander Sloane. The Theory of
Error-correcting Codes. Elsevier, 1977. Google-Books-ID : nv6WCJgcjxcC.
[25] Igor L. Markov and Yaoyun Shi. Simulating quantum computation by contrac-
ting tensor networks. SIAM Journal on Computing, 38(3) :963–981, January 2008.
arXiv : quant-ph/0511069.
[26] R. Morozov and P. Trifonov. Efficient sc decoding of convolutional polar codes.
In Proceedings of International Symposium on Information Theory and Applications,
2018.
[27] M. Mushkin and I. Bar-David. Capacity and coding for the gilbert-elliott
channels. IEEE Transactions on Information Theory, 35(6) :1277–1290, November
1989.
[28] Roman Orus. A Practical Introduction to Tensor Networks : Matrix Product
States and Projected Entangled Pair States. Annals of Physics, 349 :117–158,
October 2014. arXiv : 1306.2164.
Bibliographie 76
[29] Fernando Pastawski, Beni Yoshida, Daniel Harlow, and John Preskill. Holo-
graphic quantum error-correcting codes : toy models for the bulk/boundary
correspondence. Journal of High Energy Physics, 2015(6) :149, Jun 2015.
[30] B Pirvu, V Murg, J I Cirac, and F Verstraete. Matrix product operator represen-
tations. New Journal of Physics, 12(2) :025012, 2010.
[31] David Poulin, Angie Qarry, Rolando Somma, and Frank Verstraete. Quantum
Simulation of Time-Dependent Hamiltonians and the Convenient Illusion of
Hilbert Space. Physical Review Letters, 106(17), April 2011.
[32] Tobias Prinz and Peihong Yuan. Successive Cancellation List Deco-
ding of BMERA Codes with Application to Higher-Order Modulation.
arXiv:1807.03601 [cs, math], July 2018. arXiv : 1807.03601.
[33] M. Rezaeian. Computation of Capacity for Gilbert-Elliott Channels, Using a
Statistical Method. In 2005 Australian Communications Theory Workshop, pages
56–61, Brisbane, Australia, 2005. IEEE.
[34] Michael Rice, Jeffrey Slack, Brian Humpherys, and Deborah S. Pinck. K-Band
Land-Mobile Satellite Channel Characterization Using Acts. International Jour-
nal of Satellite Communications, 14(3) :283–296, May 1996.
[35] Eren Sasoglu and Ido Tal. Polar Coding for Processes with Memory.
arXiv:1602.01870 [cs, math], February 2016. arXiv : 1602.01870.
[36] C E SHANNON. A Mathematical Theory of Communication. page 55.
[37] Yaoyun Shi, Luming Duan, and Guifre Vidal. Classical simulation of quantum
many-body systems with a tree tensor network. Physical Review A, 74(2), August
2006. arXiv : quant-ph/0511070.
[38] E. Miles Stoudenmire and David J. Schwab. Supervised Learning with
Quantum-Inspired Tensor Networks. arXiv:1605.05775 [cond-mat, stat], May
2016. arXiv : 1605.05775.
[39] Maxime Tremblay, Benjamin Bourassa, and David Poulin. Depth versus Breadth
in Convolutional Polar Codes. arXiv:1805.09306 [cs, math], May 2018. arXiv :
1805.09306.
[40] R. Wang, J. Honda, H. Yamamoto, R. Liu, and Y. Hou. Construction of polar
codes for channels with memory. In 2015 IEEE Information Theory Workshop -
Fall (ITW), pages 187–191, October 2015.
[41] J. R. Yee and E. J. Weldon. Evaluation of the performance of error-correcting
codes on a Gilbert channel. IEEE Transactions on Communications, 43(8) :2316–
2323, August 1995.
[42] Yun Q.Shi, Xi Min Zhang, Zhi-Cheng Ni, and N. Ansari. Interleaving for
combating bursts of errors. IEEE Circuits and Systems Magazine, 4(1) :29–42,
2004.
Bibliographie 77