Écriture de la première partie du compte-rendu
This commit is contained in:
parent
2c864f9957
commit
5a16b7c99a
1
CompteRendu/.gitignore
vendored
1
CompteRendu/.gitignore
vendored
@ -4,3 +4,4 @@
|
||||
*.sh
|
||||
*.synctex.gz
|
||||
*.toc
|
||||
*.thm
|
||||
|
||||
@ -1,14 +1,18 @@
|
||||
% !TeX encoding = UTF-8
|
||||
\documentclass[10pt,a4paper]{article}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[margin=0.5in]{geometry}
|
||||
\usepackage[french]{babel}
|
||||
\usepackage{tabularx}
|
||||
\usepackage{theorem}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amssymb}
|
||||
\let\theoremstyle\relax
|
||||
\usepackage{amsthm}
|
||||
\usepackage{calrsfs}
|
||||
\usepackage{setspace}
|
||||
\usepackage{stmaryrd}
|
||||
|
||||
\usepackage{bashful}
|
||||
|
||||
@ -20,11 +24,27 @@
|
||||
\renewcommand\part{\clearpage\oldpart}
|
||||
|
||||
% Un peu plus d'interligne, c'est plus lisible
|
||||
\doublespacing
|
||||
\onehalfspacing
|
||||
|
||||
% Fait une jolie barre horizontale
|
||||
\newcommand{\hsep}{\centerline{\rule{0.8\linewidth}{.05pt}}}
|
||||
|
||||
% Racourcis
|
||||
\newcommand{\FD}{\mathbb{F}_2\hspace{-.2em}}
|
||||
|
||||
\newtheoremstyle{break}
|
||||
{\topsep}{\topsep}%
|
||||
{}{}%
|
||||
{\bfseries}{}%
|
||||
{\newline}{}%
|
||||
\theoremstyle{break}
|
||||
\newtheorem{definition}{Définition}[section]
|
||||
\newtheorem{theoreme}{Théorème}[section]
|
||||
\theoremstyle{remark}
|
||||
\newtheorem*{remarque}{Remarque}
|
||||
|
||||
% Compter les mots
|
||||
|
||||
\author{Samy AVRILLON, Victor BELLOT, Dylan THEVENET}
|
||||
\title{Études des codes cycliques}
|
||||
\begin{document}
|
||||
@ -37,12 +57,108 @@
|
||||
|
||||
\pagebreak
|
||||
|
||||
\part{Mathématique}
|
||||
\part{Contexte mathématique}
|
||||
|
||||
\section{Codes}
|
||||
|
||||
\begin{definition}[Code, Codage]
|
||||
On définit un code de paramètres $(n,k)$ comme une partie de $\FD^n$ associée à $\FD^k$. Un codage est une application de $\FD^k$ vers $\FD^n$ injective.
|
||||
|
||||
Un codage est dit systématique lorsque les $k$ premiers bits de l'image d'un élément sont égaux à cet élément.
|
||||
\end{definition}
|
||||
\begin{definition}[Distance de Hamming, Poids d'un mot]
|
||||
La distance de Hamming entre deux mots $v$ et $w$ de $\FD^n$ est le nombre de coordonnées différentes des deux mots.
|
||||
$$d(v,w) = \operatorname{card}(i\in \llbracket1,n\rrbracket,v_i \neq w_i)$$
|
||||
|
||||
Le poids d'un mot est son nombre de coordonnées non nulles, égal à sa distance au vecteur nul.
|
||||
\end{definition}
|
||||
|
||||
\begin{definition}[Capacités d'un code]\label{thMinDist}
|
||||
Étant donné un code $C$, on appelle capacité de détection $e_d$ et capacité de correction $e_c$ le plus grand nombre de bits erronés que l'on puisse détecter, respectivement corriger dans le code.
|
||||
La distance minimale d'un code est la plus grande distance entre deux mots du code.
|
||||
|
||||
$$d_C = \min_{x,y\in C\times C}\left(d(x,y)\right)$$
|
||||
\end{definition}
|
||||
|
||||
\begin{theoreme}
|
||||
On peut alors exprimer $e_d$ et $e_c$ en fonction de $d_C$ :
|
||||
|
||||
$$ e_c = d_C - 1 \qquad e_d = \left\lfloor\frac{d_C - 1}{2}\right\rfloor$$
|
||||
\end{theoreme}
|
||||
|
||||
\begin{definition}[Code Parfait]
|
||||
Un code parfait est un code tel que pour tout mot $w$ de $\FD^n$, il existe un \underline{unique} mot de $C$ étant à une distance minimale de $w$. Autrement dit, il n'y a jamais d'ambigüité sur la façon de décoder un mot erroné.
|
||||
\end{definition}
|
||||
|
||||
\begin{remarque}
|
||||
Il n'existe que trois types de codes parfaits:
|
||||
\begin{itemize}
|
||||
\item Les codes de Hamming
|
||||
\item Les codes de répétition pure
|
||||
\item Le code de Golay binaire de longueur 23
|
||||
\end{itemize}
|
||||
\end{remarque}
|
||||
|
||||
\section{Codes linéaires}
|
||||
|
||||
On dit qu'un code est linéaire lorsqu'il a une structure naturelle de sous-espace vectoriel de $\FD^n$. Les codages linéaires associés sont des applications linéaires.
|
||||
|
||||
\begin{definition}[Matrice génératrice]
|
||||
On appelle \textbf{matrice génératrice} d'un codage linéaire $\phi$ la matrice de $\mathcal{M}_{n,k}(\FD)$ associée à $\phi$.
|
||||
\end{definition}
|
||||
|
||||
\begin{definition}[Matrice de contrôle]
|
||||
On appelle \textbf{matrice de contrôle} n'importe quelle matrice de $\mathcal{M}_{n-k,k}(\FD)$ ayant $C$ pour noyau.
|
||||
|
||||
Tout code a au moins une matrice de contrôle.
|
||||
\end{definition}
|
||||
|
||||
\begin{theoreme}[Calcul de distances]
|
||||
La structure d'espace vectoriel ainsi que la définition \ref{thMinDist} nous permettent de dire que la distance minimale d'un code linéaire est le plus petit poids non nul de ses vecteurs.
|
||||
|
||||
On peux aussi utiliser la borne de Singleton qui assure:
|
||||
|
||||
$$d_C \leqslant n+1-k$$
|
||||
|
||||
\end{theoreme}
|
||||
|
||||
Voici ici quelques concepts qui seront utiles au décodage.
|
||||
|
||||
|
||||
\begin{definition}[Erreur et syndrome]
|
||||
Si l'on souhaite envoyer un mot $X \in \FD^k$ qui est donc codé en $Y\in C$. Le mot réceptionné est $Z \in \FD^n$.
|
||||
|
||||
\part{Algorithmie}
|
||||
\section{Structures de données crées}
|
||||
On appelle alors \textbf{mot erreur} le mot $E = Z - Y$.
|
||||
On appelle \text{syndrome} le mot $S = H \cdot Z$.
|
||||
|
||||
On remarque que $E$ et $Z$ on le même syndrome. On peut plus généralement définir une relation d'équivalence «avoir le même syndrome». Les classes d'équivalence de cette relation sont appelées \textbf{classes latérales}
|
||||
\end{definition}
|
||||
|
||||
\section{Codes cycliques}
|
||||
|
||||
\begin{definition}[Code cyclique]
|
||||
Un code linéaire est dit cyclique si il est stable par décalage binaire cyclique. C'est à dire que si $w_1w_2w_2\ldots w_n$ est dans $C$ alors $w_2w_3w_4\ldots w_{n-1}w_nw_1$ appartient aussi à $C$.
|
||||
|
||||
On peut aussi définir le \textbf{code cyclique engendrée} par un mot $w$, qui est le plus petit espace vectoriel stable par décalage cyclique qui contienne $w$.
|
||||
\end{definition}
|
||||
|
||||
\begin{definition}
|
||||
On définit le mot binaire associé au polynôme $P=\displaystyle\sum_{i=0}^{n-1}{a_i\cdotp X^i}$ comme étant le mot $a_0a_1\cdots a_{n-1}$. Le polynôme réciproquement associé à un mot binaire par ce procédé est appelé \textbf{représentation polynomiale} du mot.
|
||||
\end{definition}
|
||||
|
||||
\begin{definition}[Polynôme générateur]
|
||||
Un polynôme $P$ de $\FD\,[X]$ de degré $n-k$ est dit \textbf{générateur du code cyclique $C$ de paramètre $(k,n)$} lorsque $P | X^n + 1$ et que $(\sigma^i(w))_{i\in \llbracket 0,k-1\rrbracket}$ est une base de $C$ avec $\sigma$ l'opérateur de décalage binaire cyclique est $w$ le mot associé à $P$
|
||||
\end{definition}
|
||||
\begin{theoreme}[Théorème fondamental des codes cycliques]
|
||||
Tout code cyclique admet un et un seul polynôme générateur.
|
||||
\end{theoreme}
|
||||
|
||||
\begin{remarque}
|
||||
Un codage naturel pour un code cyclique apparaît avec le polynôme générateur. Le codage appliqué à un mot $w$ est le mot associé au produit du polynôme générateur et du polynôme associé à $w$.
|
||||
\end{remarque}
|
||||
|
||||
\part{Algorithmes}
|
||||
\section{Des structures de données}
|
||||
\section{Liste des fonctions}
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user