GEL-7064 : Théorie et pratique des codes correcteurs Codes cycliques Notes de cours



Documents pareils
Introduction à l étude des Corps Finis

Université Montpellier II Sciences et Techniques du Languedoc MÉMOIRE DE STAGE DE MASTER M2

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Théorie et codage de l information

Structures algébriques

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Polynômes à plusieurs variables. Résultant

Calcul fonctionnel holomorphe dans les algèbres de Banach

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Rappels et compléments, première partie : Nombres complexes et applications à la géométrie

Un K-espace vectoriel est un ensemble non vide E muni : d une loi de composition interne, c est-à-dire d une application de E E dans E : E E E

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer


Pour l épreuve d algèbre, les calculatrices sont interdites.

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Cryptographie et fonctions à sens unique

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

Résolution d équations non linéaires

Transmission d informations sur le réseau électrique

ÉPREUVE COMMUNE DE TIPE Partie D

I. TRANSMISSION DE DONNEES

Chapitre VI - Méthodes de factorisation

Représentation des Nombres

I. Polynômes de Tchebychev

Programmation linéaire

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Algèbre binaire et Circuits logiques ( )

Cours 02 : Problème général de la programmation linéaire

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

Chapitre 7. Récurrences

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Système binaire. Algèbre booléenne

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Cours d Analyse. Fonctions de plusieurs variables

Capes Première épreuve

Exemple 4.4. Continuons l exemple précédent. Maintenant on travaille sur les quaternions et on a alors les décompositions

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Quantification Scalaire et Prédictive

Résolution de systèmes linéaires par des méthodes directes

Cours de mathématiques

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Représentation d un entier en base b

Amphi 3: Espaces complets - Applications linéaires continues

Formes quadratiques. 1 Formes quadratiques et formes polaires associées. Imen BHOURI. 1.1 Définitions

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Mathématiques Algèbre et géométrie

Extrait du poly de Stage de Grésillon 1, août 2010

Cours arithmétique et groupes. Licence première année, premier semestre

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Codage hiérarchique et multirésolution (JPEG 2000) Codage Vidéo. Représentation de la couleur. Codage canal et codes correcteurs d erreur

NOMBRES COMPLEXES. Exercice 1 :

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

Partie 1 - Séquence 3 Original d une fonction

DOCM Solutions officielles = n 2 10.

LE PRODUIT SCALAIRE ( En première S )

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Equations différentielles linéaires à coefficients constants

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux

Correction de l examen de la première session

Simulation de variables aléatoires

Conversion d un entier. Méthode par soustraction

Du Premier au Second Degré

Comment tracer une droite représentative d'une fonction et méthode de calcul de l'équation d'une droite.

Théorème du point fixe - Théorème de l inversion locale

Chapitre 2. Matrices

Optimisation Discrète

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

UNIVERSITE IBN ZOHR Faculté des sciences Agadir. Filière SMA & SMI. Semestre 1. Module : Algèbre 1

Cours de Probabilités et de Statistique

Mathématiques I Section Architecture, EPFL

Le produit semi-direct

Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

INF 4420: Sécurité Informatique Cryptographie II

Table des matières. I Mise à niveau 11. Préface

IFT2880 Organisation des ordinateurs et systèmes

aux différences est appelé équation aux différences d ordre n en forme normale.

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

1 Introduction au codage

La fonction exponentielle

IFT1215 Introduction aux systèmes informatiques

Probabilités sur un univers fini

Université de La Rochelle. Réseaux TD n 6

Précision d un résultat et calculs d incertitudes

Quelques tests de primalité

VIII- Circuits séquentiels. Mémoires

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Signalisation, codage, contrôle d'erreurs

Équations d amorçage d intégrales premières formelles

Représentation géométrique d un nombre complexe

Définitions. Numéro à préciser. (Durée : )

Quelques contrôle de Première S

Programmation linéaire

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

Résumé du cours d algèbre 1, Sandra Rozensztajn. UMPA, ENS de Lyon, sandra.rozensztajn@ens-lyon.fr

Fonctions de plusieurs variables et changements de variables

Séquence 2. Repérage dans le plan Équations de droites. Sommaire

Transcription:

linéaires GEL-7064 : Théorie et pratique des codes correcteurs Notes de cours Département de génie électrique et de génie informatique Université Laval jean-yves.chouinard@gel.ulaval.ca 12 février 2013

linéaires Plan de la présentation 1 linéaires Représentation polynômiale des codes cycliques linéaires Idéals 2 3 4

linéaires Définition des codes cycliques linéaires Représentation polynômiale des codes cycliques linéaires Idéals Définition (code cyclique linéaire) : Un code bloc linéaire C(n, k) est dit code cyclique linéaire si pour tout mot-code c = (c 0, c 1,...,c n 1 ), il existe un motcode c = (c n 1, c 0,...,c n 2 ). Dans un code cyclique linéaire C, toutes les permutations (circulaires) cycliques d un mot-code sont aussi des mot-codes. Par exemple, si le vecteur x = (1, 0, 0, 0, 1, 1, 0) est un mot-code dans C, alors toutes ses versions décalées sont aussi des mot-codes du code cyclique linéaire : (1, 0, 0, 0, 1, 1, 0),(0, 0, 0, 1, 1, 0, 1),(0, 0, 1, 1, 0, 1, 0),...,(0, 1, 0, 0, 0, 1, 1) C

linéaires Représentation polynômiale des codes cycliques linéaires Idéals Représentation polynômiale des codes cycliques linéaires Soit f(x) = a 0 a 1 x a 2 x 2...a n 1 x n 1 a n x n où les coefficients a i sont des éléments (scalaires) d un corps fini. Le degré du polynôme f(x) est la plus grande valeur de n telle que a n 0. Un polynôme de degré n est appelé polynôme monique si le coefficient a n = 1 : f(x) = a 0 a 1 x a 2 x 2...a n 1 x n 1 x n Les éléments des mot-codes peuvent être exprimés comme les coefficients d un polynôme mot-code : c(x) = c 0 c 1 x c 2 x 2...c n 2 x n 2 c n 1 x n 1 où l exposant i de x i indique la position de l élément dans le mot-code c(x), i.e. c.

linéaires Représentation polynômiale des codes cycliques linéaires Idéals Représentation polynômiale des codes cycliques linéaires En utilisant cette notation polynômiale, les décalages circulaires (ou cycliques) d un mot-code c, peuvent s exprimer en multipliant le polynôme mot-code c(x) par x i où i indique le nombre de décalages circulaires vers la droite, et en réduisant le polynôme résultant modulo x n 1. décalage circulaire mot-code polynôme mot-code i c c(x) 0 (c 0, c 1, c 2,...,c n 1 ) c(x) = c 0 c 1 x c 2 x 2...c n 1 x n 1 1 (c n 1, c 0, c 1,...,c n 2 ) x c(x) = c n 1 c 0 x c 1 x 2...c n 2 x n 1 2 (c n 2, c n 1, c 0,...,c n 3 ) x 2 c(x) = c n 2 c n 1 x c 0 x 2...c n 3 x n 1... n 1 (c 1, c 2, c 3,...,c 0 ) x n 1 c(x) = c 1 c 2 x c 3 x 2...c 0 x n 1

linéaires Représentation polynômiale des codes cycliques linéaires Idéals Représentation polynômiale des codes cycliques linéaires Considérons un autre polynôme de la forme : a(x) = a 0 a 1 x...a n 1 x n 1 CG(q)[x]/x n 1 (La notation CG(q)[x]/f(x) dénote un anneau de polynômes CG(q)[x] réduits modulo f(x).) En multipliant le polynôme mot-code c(x) par ce polynôme a(x) : a(x) c(x) = a 0 c(x)a 1 x c(x)...a n 1 x n 1 c(x) on obtient une combinaison linéaire des versions décalées (cycliques) du polynôme mot-code original c(x). Le polynôme produit a(x)c(x) est donc un autre polynôme du code, ou mot-code valide, du code linéaire cyclique C, c est-à-dire : a(x)c(x) C où a(x) CG(q)[x]/x n 1 et c(x) CG(q)[x]/x n 1

Idéals linéaires Représentation polynômiale des codes cycliques linéaires Idéals Un anneau R est un ensemble d éléments tels que : 1 R est un groupe commutatif sous l addition, c est-à-dire : 1 (ab)c = a(b c), a, b, c R (associativité), 2 a0 = 0a = a, 0 R (élément identité), 3 a R, il existe un élément unique a 1 R tel que aa 1 = a 1 a = 0 : (inverse unique), 4 a R, b R : ab = b a (commutativité). 2 L opération de multiplication est associative : (a b) c = a (b c), a, b, c R. 3 L opération de multiplication est distributive sur l addition : a (b c) = (a b)(a c), a, b, c R.

Idéals linéaires Représentation polynômiale des codes cycliques linéaires Idéals Si l opération de multiplication est commutative, i.e. a b = b a, a, b R, et qu elle possède un élément identité, 1, alors l anneau R est un anneau commutatif avec identité. L ensemble de tous les polynômes q-aires CG(q)[x] forme un anneau commutatif avec identité.

linéaires Définition d un idéal Représentation polynômiale des codes cycliques linéaires Idéals Définition (idéal) : Un sous-ensemble non vide I R, où R est un anneau, est un idéal si : 1 le sous-ensemble I forme un groupe sous l addition dans l anneau R, et 2 a r = b I pour tous les a I et r R. Par exemple, l ensemble I = {0, 4, 8, 12} est un idéal dans l anneau R = {0, 1, 2, 3,...,15} sous les opérations addition et multiplication modulo 16.

linéaires Définition d un idéal principal Représentation polynômiale des codes cycliques linéaires Idéals Définition (idéal principal) : Un idéal I R est un idéal principal si il existe un élément g I tel que chaque élément c I peut s exprimer par : c = mg pour m R.

linéaires Exemple (idéal principal) Représentation polynômiale des codes cycliques linéaires Idéals Considérons les éléments du corps de Galois CG(8) et les polynômes minimaux dans CG(2)[x]. On peut construire le corps de Galois CG(8) à l aide du polynôme primitif : p(α) = α 3 α1 = 0 α 3 = α1 représentation exponentielle représentation polynômiale 0 0 1 1 α α α 2 α 2 α 3 α 1 α 4 α 2 α α 5 α 2 α 1 α 6 α 2 1

linéaires Exemple (idéal principal) Représentation polynômiale des codes cycliques linéaires Idéals Les classes de conjugués sont : β = 0 : = {0} β = 1 : 1, 1 2 = 1 = {1} β = α : α,α 2,α 22 = α 4,α 23 = αα = {α,α 2,α 4 } β = α 3 : α 3,(α 3 ) 2 = α 6,(α 3 ) 4 = α 12 = α 5 = {α 3,α 5,α 6 } et les polynômes minimaux correspondants sont : classes de conjugués polynômes minimaux {0} M (x) = x {1} M 0 (x) = x 1 {α,α 2,α 4 } M 1 (x) = (x α)(x α 2 )(x α 4 ) M 1 (x) = x 3 x 1 {α 3,α 5,α 6 } M 3 (x) = (x α 3 )(x α 5 )(x α 6 ) M 3 (x) = x 3 x 2 1

linéaires Exemple (idéal principal) Représentation polynômiale des codes cycliques linéaires Idéals Le polynôme x 7 1 = x 7 1 peut être factorisé par l ensemble des polynômes minimaux : x 7 1 = M 0 (x) M 1 (x) M 3 (x) x 7 1 = (x 1) (x 3 x 1) (x 3 x 2 1) Les idéaux principaux dans CG(2)[x]/x 7 1 sont : 0, x 1, x 3 x 1, x 3 x 2 1, (x 1)(x 3 x 1), (x 1)(x 3 x 2 1), (x 3 x 1)(x 3 x 2 1), (x 1)(x 3 x 1)(x 3 x 2 1) Il y a donc 8 idéaux principaux incluant les deux idéaux triviaux : 0 et x 7 1 (i.e. (x 1)(x 3 x 1)(x 3 x 2 1) ).

linéaires Théorème (idéal) Représentation polynômiale des codes cycliques linéaires Idéals Théorème (idéals dans CG(q)[x]/x n 1) : Si I est un idéal dans CG(q)[x]/x n 1, alors : 1 Il existe un polynôme unique monique g(x) I de degré minimal, 2 I est un idéal principal ayant un polynôme générateur g(x), 3 le polynôme générateur g(x) divise le polynôme x n 1 dans CG(q)[x].

linéaires 1 Dans l ensemble des polynômes mot-codes {c(x)} C, il existe un polynôme unique g(x) : g(x) = g 0 g 1 x g 2 x 2...g r 1 x r 1 x r de degré minimal r < n. Ce polynôme g(x) est le polynôme générateur du code C. 2 Tout polynôme mot-code {c(x)} C peut être exprimé de manière unique par : c(x) = m(x)g(x) où m(x) est un polynôme de degré inférieur à (n r) dans CG(q)[x]. 3 Le polynôme générateur g(x) C est un facteur de (x n 1) dans CG(q)[x]

linéaires Le polynôme m(x) représente le message, un bloc d information, de degré plus petit ou égal à n r 1, c est-à-dire de (n r) éléments. Le choix des polynômes générateurs des codes cycliques linéaires est limité aux polynômes diviseurs du polynôme x n 1.

linéaires Exemple (sélection des polynômes générateurs) Supposons que l on désire trouver les polynômes générateurs pour un code linéaire cyclique binaire de longueur n = 15. Alors g(x) doit diviser x 15 1. Nous avons vu que le polynôme x 15 1 est le produit de polynômes minimaux, obtenus des classes de conjugués, c est-à-dire : avec q = 2, m = 4 pour x qm 1 1. β,β q,β q2,β q3,β q4,...

linéaires Exemple (sélection des polynômes générateurs) Les classes de conjugués sont : β = 1 : 1, 1 2 = 1 = {1} β = α : α,α 2,α 22 = α 4,α 23 = α 8,α 24 = α 16 = α = {α,α 2,α 4,α 8 } β = α 3 : α 3,(α 3 ) 2 = α 6,(α 3 ) 4 = α 12,(α 3 ) 8 = α 24 = α 9,(α 3 ) 16 = α 48 = α 3 = {α 3,α 6,α 9,α 12 } β = α 5 : α 5,(α 5 ) 2 = α 10,(α 5 ) 4 = α 20 = α 5 = {α 5,α 10 } β = α 7 : α 7,(α 7 ) 2 = α 14,(α 7 ) 4 = α 28 = α 13,(α 7 ) 8 = α 56 = α 11,(α 7 ) 16 = α 112 = α 7 = {α 7,α 11,α 13,α 14 }

linéaires Exemple (sélection des polynômes générateurs) Les polynômes minimaux sont obtenus des classes de conjugués : classes de conjugués polynômes minimaux {1} M 0(x) = x 1 {α,α 2,α 4,α 8 } M 1(x) = (x α)(x α 2 )(x α 4 )(x α 8 ) M 1(x) = x 4 x 1 {α 3,α 6,α 9,α 12 } M 3(x) = (x α 3 )(x α 6 )(x α 9 )(x α 12 ) M 3(x) = x 4 x 3 x 2 x 1 {α 5,α 10 } M 5(x) = (x α 5 )(x α 10 ) M 5(x) = x 2 x 1 {α 7,α 11,α 13,α 14 } M 7(x) = (x α 7 )(x α 11 )(x α 13 )(x α 14 ) M 7(x) = x 4 x 3 1

linéaires Exemple (sélection des polynômes générateurs) Donc le polynôme x 15 1 = x 15 1 peut de décomposer en produit des polynômes minimaux suivants : x 15 1 = M 0 (x) M 1 (x) M 3 (x) M 5 (x) M 7 (x) x 15 1 = (x 1) (x 4 x 1) (x 4 x 3 x 2 x 1) (x 2 x 1) (x 4 x 3 1) Maintenant, à l aide des facteurs du polynôme x 15 1, c est-à-dire l ensemble des polynômes minimaux, on peut construire des polynômes générateurs de codes cycliques, g(x), de n importe quel degré.

linéaires Exemple (sélection des polynômes générateurs) degré polynômes générateurs 1 g(x) = M 0 (x) g(x) = x 1 2 g(x) = M 5 (x) g(x) = x 2 x 1 3 g(x) = M 0 (x) M 5 (x) g(x) = (x 1) (x 2 x 1) g(x) = x 3 1 4 g(x) = M 1 (x) g(x) = x 4 x 1 g(x) = M 3 (x) g(x) = x 4 x 3 x 2 x 1 g(x) = M 7 (x) g(x) = x 4 x 3 1

linéaires Exemple (sélection des polynômes générateurs) degré polynômes générateurs 5 g(x) = M 0 (x) M 1 (x) g(x) = (x 1) (x 4 x 1) g(x) = x 5 x 4 x 2 1 g(x) = M 0 (x) M 3 (x) g(x) = (x 1) (x 4 x 3 x 2 x 1) g(x) = x 5 1 g(x) = M 0 (x) M 7 (x) g(x) = (x 1) (x 4 x 3 1) g(x) = x 5 x 3 x 1 6 g(x) = M 5 (x) M 1 (x) g(x) = (x 2 x 1) (x 4 x 1) g(x) = x 6 x 5 x 4 x 3 1 g(x) = M 5 (x) M 3 (x) g(x) = (x 2 x 1) (x 4 x 3 x 2 x 1) g(x) = x 6 x 4 x 3 x 2 1 g(x) = M 5 (x) M 7 (x) g(x) = (x 2 x 1) (x 4 x 3 1) g(x) = x 6 x 3 x 2 x 1

linéaires Exemple (sélection des polynômes générateurs) degré polynômes générateurs 7 g(x) = M 0 (x) M 5 (x) M 1 (x) g(x) = (x 1) (x 2 x 1) (x 4 x 1) g(x) = x 7 x 3 x 1 g(x) = M 0 (x) M 5 (x) M 3 (x) g(x) = (x 1) (x 2 x 1) (x 4 x 3 x 2 x 1) g(x) = x 7 x 6 x 5 x 2 x 1 g(x) = M 0 (x) M 5 (x) M 7 (x) g(x) = (x 1) (x 2 x 1) (x 4 x 3 1) g(x) = x 7 x 6 x 4 1 8 g(x) = M 1 (x) M 3 (x) g(x) = (x 4 x 1) (x 4 x 3 x 2 x 1) g(x) = x 8 x 7 x 6 x 4 1 g(x) = M 1 (x) M 7 (x) g(x) = (x 4 x 1) (x 4 x 3 1) g(x) = x 8 x 7 x 5 x 4 x 3 x 1 g(x) = M 3 (x) M 7 (x) g(x) = (x 4 x 3 x 2 x 1) (x 4 x 3 1) g(x) = x 8 x 4 x 2 x 1

linéaires Exemple (sélection des polynômes générateurs) degré polynômes générateurs 9 g(x) = M 0 (x) M 1 (x) M 3 (x) g(x) = (x 1) (x 4 x 1) (x 4 x 3 x 2 x 1) g(x) = x 9 x 6 x 5 x 4 x 1 g(x) = M 0 (x) M 1 (x) M 7 (x) g(x) = (x 1) (x 4 x 1) (x 4 x 3 1) g(x) = x 9 x 7 x 6 x 3 x 2 1 g(x) = M 0 (x) M 3 (x) M 7 (x) g(x) = (x 1) (x 4 x 3 x 2 x 1) (x 4 x 3 1) g(x) = x 9 x 8 x 5 x 4 x 3 1 10 g(x) = M 5 (x) M 1 (x) M 3 (x) g(x) = (x 2 x 1) (x 4 x 1) (x 4 x 3 x 2 x 1) g(x) = x 10 x 8 x 5 x 4 x 2 x 1 g(x) = M 5 (x) M 1 (x) M 7 (x) g(x) = (x 2 x 1) (x 4 x 1) (x 4 x 3 1) g(x) = x 10 x 5 1 g(x) = M 5 (x) M 3 (x) M 7 (x) g(x) = (x 2 x 1) (x 4 x 3 x 2 x 1) (x 4 x 3 1) g(x) = x 10 x 9 x 8 x 6 x 5 x 2 1

linéaires Exemple (sélection des polynômes générateurs) degré polynômes générateurs 11 g(x) = M 0 (x) M 5 (x) M 1 (x) M 3 (x) g(x) = (x 1) (x 2 x 1) (x 4 x 1) (x 4 x 3 x 2 x 1) g(x) = x 11 x 10 x 9 x 8 x 6 x 4 x 3 1 g(x) = M 0 (x) M 5 (x) M 1 (x) M 7 (x) g(x) = (x 1) (x 2 x 1) (x 4 x 1) (x 4 x 3 1) g(x) = x 11 x 10 x 6 x 5 x 1 g(x) = M 0 (x) M 5 (x) M 3 (x) M 7 (x) g(x) = (x 1) (x 2 x 1) (x 4 x 3 x 2 x 1) (x 4 x 3 1) g(x) = x 11 x 8 x 7 x 5 x 3 x 2 x 1 12 g(x) = M 1 (x) M 3 (x) M 7 (x) g(x) = (x 4 x 1) (x 4 x 3 x 2 x 1) (x 4 x 3 1) g(x) = x 12 x 9 x 6 x 3 1 13 g(x) = M 0 (x) M 1 (x) M 3 (x) M 7 (x) g(x) = (x 1) (x 4 x 1) (x 4 x 3 x 2 x 1) (x 4 x 3 1) g(x) = x 13 x 12 x 10 x 9 x 7 x 6 x 4 x 3 x 1

linéaires Exemple (sélection des polynômes générateurs) degré polynômes générateurs 14 g(x) = M 5 (x) M 1 (x) M 3 (x) M 7 (x) g(x) = (x 2 x 1) (x 4 x 1) (x 4 x 3 x 2 x 1) (x 4 x 3 1) g(x) = x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 15 g(x) = M 0 (x) M 5 (x) M 1 (x) M 3 (x) M 7 (x) g(x) = (x 1) (x 2 x 1) (x 4 x 1) (x 4 x 3 x 2 x 1) (x 4 x 3 1) g(x) = x 15 1

linéaires Exemple (sélection des polynômes générateurs) À partir de ces tableaux, on peut construire un code linéaire cyclique de degré r = 1 avec le polynôme générateur g(x) = x 1. L ensemble des messages possibles {m(x)} comprends tous les 2 14 = 16 384 vecteurs binaires de 14 bits. Chacun de ces message est codé par un mot-code de 15 bits : c(x) = m(x)g(x) De la même manière, si on choisit le polynôme générateur g(x) = x 2 x 1, on peut coder 2 13 = 8 192 messages distincts de 13 bits en mot-codes de 15 bits, et ainsi de suite. À la limite, on peut coder de courts messages d un seul bit en l un de deux mot-codes de 15 bits en utilisant le polynôme générateur g(x) de degré 14 : g(x) = x 14 x 13 x 12 x 11 x 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 Il s agit d un simple code de répétition C(n, k) = C(15, 1).

linéaires Le processus de codage à l aide de codes cycliques linéaires est effectué en multipliant le polynôme message m(x) de degré (n r 1) avec le polynôme générateur du code g(x) de degré r conduisant ainsi à un polynôme mot-code c(x) de degré (n 1)

linéaires Message : Générateur du code : Mot-code : m(x) = m 0 m 1 x m 2 x 2...m n r 1 x n r 1 g(x) = g 0 g 1 x g 2 x 2...g rx r c(x) = c 0 c 1 x c 2 x 2...c n 1 x n 1 c(x) = m(x) g(x) c(x) = (m 0 m 1 x m 2 x 2...m n r 1 x n r 1 ) g(x) c(x) = m 0 g(x)m 1 xg(x)m 2 x 2 g(x)...m n r 1 x n r 1 g(x) g(x) xg(x) x 2 g(x) c(x) = [ m 0 m 1 m 2... m n r 1 ]. x n r 1 g(x)

linéaires En remplaçant les polynômes par des vecteurs et une matrice génératrice : m = [ m 0 m 1 m 2... m n r 1 ] c = [ c 0 c 1 c 2... c n 1 ] on représente le codage cyclique par : c [ ] c0 c 1... c n 1 = m G = [ m 0 m 1... m n r 1 ] g 0 g 1 g 2 g r 0 0 0 0 g 0 g 1 g r 1 g r 0 0 0 0 g 0 g r 2 g r 1 0 0..................... 0 0 0 g r 0 0 0 0 g r 1 g r

linéaires La matrice génératrice du code cyclique est donc : G = g 0 g 1 g 2 g r 0 0 0 0 g 0 g 1 g r 1 g r 0 0 0 0 g 0 g r 2 g r 1 0 0............. 0 0 0 g r 0 0 0 0 g r 1 g r

linéaires La figure ci-dessous montre un codeur cyclique non systématique.......... c c c c c

linéaires Exemple de codage avec un code cyclique Dans cet exemple, on veut former un code cyclique binaire de longueur n = 7. Le polynôme générateur du code g(x) doit être un facteur de x 7 1 dans l ensemble CG(2)[x]. Reprenons le polynôme primitif p(x) = x 3 x 1. α 3 = α1 est racine du polynôme primitif. On obtient le corps de Galois CG(8) = {0, 1,α,α 2,α 3,α 4,α 5,α 6 }. Les classes de conjugués sont : {0}, {1}, {α,α 2,α 4 } et {α 3,α 5,α 6 }. Les polynômes minimaux correspondants sont : M 0 (x) = x 1, M 1 (x) = x 3 x 1 et M 3 (x) = x 3 x 2 1. Ils factorisent x 7 1 : x 7 1 = (x 1) (x 3 x 1) (x 3 x 2 1)

linéaires Exemple de codage avec un code cyclique Choisissons, par exemple le polynôme générateur : g(x) = M 0 (x) M 1 (x) = (x 1) (x 3 x 1) = x 4 x 3 x 2 1 Le degré maximal du polynôme message, m(x), est le degré maximal du polynôme mot-code moins le degré du polynôme générateur, c.-à-d. 6-4=2. Le code cyclique comprendra donc 8 messages de 3 bits. Choisissons le message m(x) = x 2 1, ou [101] sous forme de vecteur. La matrice génératrice correspondant au polynôme générateur g(x) = x 4 x 3 x 2 1 est donc : G = 1 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1

linéaires Exemple de codage avec un code cyclique La figure montre le codeur cyclique (non-systématique) résultant. m 0 m 1 m 2 r 0 r 1 r 2 r 3 r 4 r 5 r 6 c 0 c 1 c 2 c 3 c 4 c 5 c 6 La séquence de codage est illustrée aux figures suivantes.

linéaires Exemple de codage avec un code cyclique 1 0 1 0 0 0 0 0 0 0 c 0 c 1 c 2 c 3 c 4 c 5 c 6

linéaires Exemple de codage avec un code cyclique 1 0 1 0 1 1 1 0 0 c 0 c 1 c 2 c 3 c 4 c 5 c 6

linéaires Exemple de codage avec un code cyclique 1 0 1 0 1 1 1 0 c 0 c 1 c 2 c 3 c 4 c 5 c 6

linéaires Exemple de codage avec un code cyclique 1 0 0 1 0 1 1 c 0 c 1 c 2 c 3 c 4 c 5 c 6

linéaires Exemple de codage avec un code cyclique 1 0 0 1 0 1 1 c 0 c 1 c 2 c 3 c 4 c 5 c 6 1 0 0 1 0 1 1

linéaires Exemple de codage avec un code cyclique La séquence codée est [1001011] ou encore : On vérifie que : c(x) = x 6 x 5 x 3 1 c(x) = m(x) g(x) c(x) = ( x 2 1 ) (x 4 x 3 x 2 1 ) c(x) = x 6 x 5 x 3 1

linéaires Au décodeur, un polynôme de contrôle h(x) est employé pour décoder les mot-codes reçus (et possiblement corrompus par le canal). Pour tout polynôme générateur g(x) de degré r, il existe un polynôme de contrôle h(x) de degré k = (n r) tel que : ou encore : g(x)h(x) = x n 1 g(x)h(x) = 0 modulo (x n 1) Le polynôme mot-code c(x) étant un multiple du polynôme générateur g(x), i.e. c(x) = m(x)g(x), alors : c(x)h(x) = m(x)g(x)h(x) c(x)h(x) = m(x) 0 modulo (x n 1) c(x)h(x) = 0 modulo (x n 1)

linéaires Un mot-code c(x) transmis dans un canal de transmission bruité sera vraisemblablement affecté par celui-ci et le polynôme reçu, r(x), sera différent, i.e. r(x) c(x). r(x)h(x) = s(x) modulo (x n 1) Le polynôme s(x) = s 0 s 1 x s 2 x 2...s n k 1 x n k 1 est le polynôme syndrôme de degré (n k 1). Ce polynôme syndrôme s(x) est obtenu en divisant le polynôme reçu r(x) par le polynôme générateur du code cyclique, g(x). Le reste de la division est le polynôme syndrôme : r(x) = a(x)g(x)s(x) où le degré du polynôme syndrôme est plus petit que le degré du polynôme générateur : deg[s(x)] < deg[g(x)].

linéaires Si r(x) = c(x), alors : r(x) = c(x) = a(x)g(x) et le message décodé est : ˆm(x) = a(x). La figure montre le circuit de division cyclique. g 0 g r-1 g 1 a 0 a 1... a n-1... q 0 q 1... q j-1 d 0 d r- d 1 d r-2 1

linéaires Exemple de décodage avec circuit de division Reprenons l exemple du code cyclique binaire de longueur n = 7 de polynôme générateur du code g(x) = x 4 x 3 x 2 1. Le circuit de division cyclique est donné à la figure ci-dessous. g 0 =1 g 1 =0 g 2 =1 g 3 =1 a 0 a 1 a 3 a 4 a 5 a 6 a 2 r 0 r 1 r 2 r 3 d 0 d 1 d 2 d 3 Supposons que la séquence codée reçue du canal est r(x) = x 6 x 5 x 3 1.

linéaires Exemple de décodage avec circuit de division g 0 =1 g 1 =0 g 2 =1 g 3 =1 a 0 a 1 a 3 a 4 a 5 a 6 a 2 r 0 r 1 r 2 r 3 d 0 d 1 d 2 d 3

linéaires Exemple de décodage avec circuit de division 1 0 0 1 0 1 1 g 0 =1 g 1 =0 g 2 =1 g 3 =1 0 0 0 0 d 0 d 1 d 2 d 3

linéaires Exemple de décodage avec circuit de division g 0 =1 g 1 =0 g 2 =1 g 3 =1 1 0 0 1 0 1 1 0 0 0 d 0 d 1 d 2 d 3

linéaires Exemple de décodage avec circuit de division g 0 =1 g 1 =0 g 2 =1 g 3 =1 1 0 0 1 0 1 1 0 0 d 0 d 1 d 2 d 3

linéaires Exemple de décodage avec circuit de division g 0 =1 g 1 =0 g 2 =1 g 3 =1 1 0 0 1 0 1 1 0 d 0 d 1 d 2 d 3

linéaires Exemple de décodage avec circuit de division g 0 =1 g 1 =0 g 2 =1 g 3 =1 1 0 0 1 0 1 1 d 0 d 1 d 2 d 3

linéaires Exemple de décodage avec circuit de division g 0 =1 g 1 =0 g 2 =1 g 3 =1 1 0 1 1 1 0 d 0 d 1 d 2 d 3

linéaires Exemple de décodage avec circuit de division 1 g 0 =1 g 1 =0 g 2 =1 g 3 =1 0 1 1 1 d 0 d 1 d 2 d 3

linéaires Exemple de décodage avec circuit de division g 0 =1 g 1 =0 g 2 =1 g 3 =1 0 0 0 0 d 0 d 1 d 2 d 3

linéaires Exemple de décodage avec circuit de division g 0 =1 g 1 =0 g 2 =1 g 3 =1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0

linéaires Exemple de décodage avec circuit de division Le résultat de la division du mot-code reçu, r(x), par le polynôme générateur g(x) est donc : r(x) = a(x)g(x)s(x) r(x) = ( x 2 1 ) (x 4 x 3 x 2 1 ) 0 Le syndrome s(x) = 0 indique donc que le mot-code reçu r(x) est un mot-code valide et le message est : m(x) = a(x) = ( x 2 1 ).

linéaires En général, le codage cyclique résultant du produit des polynômes message et générateur c(x) = m(x)g(x) ne conduit pas à des codes systématiques. Un code systématique C est de la forme : c = (c 0, c 1,...,c n k 1, c n k,...,c n 1 ) c = (c 0, c 1,...,c n k 1, m 0,...,m } {{ k 1 ) } message où m = (m 0,...,m k 1 ) est le message de longueur k. Sous forme polynômiale, on a : c(x) = c 0 c 1x c 2x 2...c n k 1 x n k 1 c n k x n k...c n 1x n 1 c(x) = c 0 c 1x c 2x 2...c n k 1 x n k 1 m 0x n k...m k 1 x n 1

linéaires Le vecteur mot-code c peut être représenté par une somme de deux vecteurs : c = (c 0, c 1,...,c n k 1, c n k,...,c n 1 ) c = (0, 0,...,0, m 0,...,m k 1 )( d 0, d 1,..., d n k 1, 0,...,0) ou encore sous forme polynômiale : c(x) = x n k m(x) d(x) où d(x) = d 0 d 1 x...d n k 1 x n k 1.

linéaires La figure ci-dessous montre le circuit de multiplication cyclique.......... 0 0 0 m m

linéaires Or le polynôme mot-code c(x) doit aussi être un multiple du polynôme générateur g(x) de degré r : avec c(x) = q(x)g(x) g(x) = g 0 g 1 x...g r x r et q(x) = q 0 q 1 x...q n r 1 x n r 1 Étant donné que c(x) = x n k m(x) d(x) et que c(x) = q(x)g(x), alors : x n k m(x) = q(x)g(x)d(x)

linéaires Le polynôme d(x) est donc le reste de la division du polynôme x n k m(x) par le polynôme générateur g(x). On peut donc former le mot-code c(x) avec les polynômes m(x) et d(x) : c(x) = d 0 d 1 x... d n k 1 x n k 1 m 0 x n k...m k 1 x n 1 g 0 g r-1 g 1 a 0 a 1... a n-1... q 0 q 1... q j-1 d 0 d r- d 1 d r-2 1

linéaires Algorithme de codage cyclique systématique : Multiplication : x n k m(x). Division par g(x) : x n k m(x) = q(x)g(x)d(x). Soustraction : c(x) = x n k m(x) d(x).

linéaires La figure ci-dessous montre un codeur cyclique systématique. g 0 g r-1 - g 1 - -... m 0 m 1... m k-1...... -d 0 -d 1 -d n-k-1 c 0 c 1 c n-k-1...... m 0 m 1 m k-1 c n-k c n-k1 c n-1

linéaires Circuit de multiplication (entrée inversée) Circuit de multiplication de deux polynômes avec les entrées inversées. /( 0) 1! " -(.) 1 (()) = ( $ (%) (#)#, (&)& *()) = * $ *%) *#) #, *' ) ' ()) = (()) * ()) ( ) $ % # # & ' % & ' % & ' & ) = ) ), ' ) ) ()) (( $ * $ ) ((%* $ ( $ *% )) ((#* $ (%*% ( $ *# ))# ((&*' % (& %*' ))& ' ((&*' ))& =, '

linéaires Circuit de multiplication (entrée non inversée) Circuit de multiplication de deux polynômes avec entrées non inversées. J( K) L = < ; : 9 8 7 6 5 4 3 H( I) 2 2 L 2 2 C( D) = C? C@ D C> D> G CADA E( D) = E? E@ D E> D > G EB D B F( D) = C( D) E( D) ( )? @ > > A B @ A B @ A B A F D = F F D F D G F B D F D F( D) ( C? E? ) ( C@ E? C? E@ ) D ( C> E? C@ E@ C? E> ) D> ( CAEB @ CA @ EB ) DA B ( CAEB ) DA = G B