Représentations
Contents
3.2. Représentations#
On considère de manière générale un codeur avec \(k\) entrées et \(n\) sorties définissant un code convolutif de rendement \(R=k/n\).
3.2.1. Représentation par filtrage#
Si on considère le cas simple des codes convolutifs non récursifs, on peut aisément définir chaque sorties comme étant des opérations de filtrage des différentes entrées à l’aide des réponses impulsionnelles finies associées aux fonctions de transfert entre la sorti \(i\) et la sortie \(k\). Ainsi si on note \(\{u^{(1)}[n], u^{(2)}[n], \ldots, u^{(k)}[n]]\}\) les différents flux en entrée du code de rendement \(R=k/n\), on caractérise le transfert entre la sortie \(j\) et l’entrée \(i\) par \(\{g_i^{(j)}[n]\}\). On a alors la sortie \(c^{(j)}[n]\) qui sera donnée par
Même si elle s’entend pour les codes récursifs qui ont une réponse impulsionnelle de transfert infinie, cette notation est moins commode que celle qui suit qui utilise la représentation polynomiale.
3.2.2. Représentation vectorielle polynomiale#
soient \(\underline{u}(D)=[u^{(1)}(D), u^{(2)}(D), \ldots, u^{(k)}(D)]\), \(\underline{c}(D)=[c^{(1)}(D), c^{(2)}(D), \ldots, c^{(n)}(D)]\), les représentations matricielles des transformées en \(\mathcal{D}\). En prenant la transformée en \(\mathcal{D}\) de \(g_i^{(j)}[n]\) donnée par \(\mathcal{D}\{g_i^{(j)}[n]\}=g_i^{(j)}(D)\), il vient alors
où \(\underline{g}_i(D)=[g_i^{(1)}(D), g_i^{(2)}(D), \ldots g_i^{(n)}(D)]\) et \(g_i^{(j)}(D)\) représente le transfert entre l’entrée \(i\) et la sortie \(j\). On peut alors donner la défintion suivante d’une matrice génératrice polynômiale associée à un code convolutif.
Definition 3.1 (Matrice génératrice polynomiale)
On appelle matrice génératrice polynômiale la matrice \(G(D)\) de taille \(k \times n\) telle que
avec
Definition 3.2 (Matrice de parité polynomiale)
On peut également pour un code convolutif définir une matrice de parité définie par
et donc \(G(D)H^{T}(D)=\bf{0}\)
Ces représentations polynomiales joueront le même rôle que les matrices génératrice et de parité dans le cas de codes en bloc.
3.2.3. Codes convolutifs récursifs#
Definition 3.3 (Fonction de transfert récursive)
Certaines relations entrées-sorties peuvent être définies par un transfert de type récursif (ie. à réponse impulsionnelle infinie). Une implémentation simple (Type I) entre l’entrée \(i\) et la sortie \(j\) est donnée par
dont la représentation sous forme de registre est donnée en figure Fig. 3.2
![_images/recursif.png](_images/recursif.png)
Fig. 3.2 Structure générique d’un transfert récursif.#
Dans ce cas, on obtient la relation entrée-sortie suivante
ce qui correspond à une écriture plus aisée de l’équation de convolution avec la réponse impulsionnelle infinie donnée par \(c^{(j)}[n]=g_i^{(j)}\circledast u^{(i)}[n]\). Cela correspond en fait à la réalisation à l’aide de l’équation aux différences associées donnée par
On retrouve là encore le même formalisme que pour le filtrage en trainement numérique du signal. Un code convolutif défini par une matrice génératrice ayant des éléments de transfert récursifs est appelé code convolutif récursif.
Par exemple, le code récursif systématique \((1,5/7)_8\) a pour matrice génératrice polynomiale
Sa représentation est donnée en figure Fig. 3.3
![_images/recursif57.png](_images/recursif57.png)
Fig. 3.3 Code récursif \((1,5/7)\).#
Example 3.1
![_images/exemple_rec_knv2.png](_images/exemple_rec_knv2.png)
Fig. 3.4 Un exemple de code convolutif de rendement R=2/3.#
On considère le code convolutif donné par la figure Fig. 3.4. Montrer que la matrice génératrice polynomiale peut s’écrire comme suit
3.2.4. Représentation par machine à états finis et diagramme d’état associé.#
Sans perte de généralité, on considérera ici un code de rendement \(R=1/n\) pour faciliter l’exposé. Pour un code convolutif, on peut donner une représentation dîte d’état du codeur (automate associé) en définissant un état à partir d’un vecteur représentant le contenu des registres du codeur (la mémoire du codeur). Ainsi si le codeur est dans un état donné \(\underline{S}_n\) (ses registres sont initialisé avec certaines valeurs), la donnée des bits d’entrée permet de donner de manière déterministe les sorties. Ce qui est formellement représenté par le diagramme suivant :
où \(c_k=[c_k^{(1)}, c_k^{(2)}, c_k^{(n)}]\) et \(\underline{S}_k\) représente l’état interne du registre à décalage.
On peut alors d’écrire ce modèle d’état à l’aide d’équations fonctionnelles
Equation d’évolution :
Par cette équation, on peut décrire formellement/analytiquement le passage d’un état \(\underline{S}_{k-1}\) à \(\underline{S}_{k}\) en fonction de l’entrée \(u_k\). On écrit cette relation comme
Equation d’observation :
Cette équation traduit la génération des sorties observables du modèle et qui sont ici les bits codés \(c_{k}\). On écrit cette relation comme
Par exemple, pour le code \((7,5)_8\), on a \(\underline{S}_k=[u_k, u_{k-1}]\). Cette automate peut être visualiser à l’aide d’un diagramme d’état qui est un graphe qui représente les différents états possibles et qui visualise les transitions entre ses états et les sorties associées. Un exemple est donné pour le code convolutif \((7,5)_8\) à la figure Fig. 3.5. Les états représentés par des cercles sont associés au contenu du/des registre(s). Les flèches représentent les transitions entre états et les labels indiquent les bits entrant dans le(s) registre(s) et les bits codés associés.
![_images/graphe75.png](_images/graphe75.png)
Fig. 3.5 Diagramme d’état du code convolutif \((7,5)_8\).#
3.2.5. Représentation graphique par un treillis#
Definition 3.4 (Treillis d’un code convolutif)
Le treillis est la représentation graphique du code dans son espace d’état en considérant la dimension temporelle. On définit alors les éléments suivants
Noeuds : noeuds du graphe associé à un état \(\underline{S}_k\).
Transitions : branches entre deux noeuds associées à \(F_1(.)\).
Etiquettes/labels : informations portées par les branches (\(u_k,c_k\)) et données par \(F_2(.)\)
Property 3.1
Pour un treillis de longueur \(L\), tout chemin du treillis de \(\underline{S}_0\) à \(\underline{S}_L\) est mot de code obtenu par concaténation des étiquettes \(c_k\) du chemin.
Le chemin où tous les \(\underline{S}_k\) sont l’état \(\bf{0}\) (représentation binaire naturelle) est le mot de code nul.
Événement minimal : chemin qui par de l’état\(\underline{S}_k=\bf{0}\) et ne revient à cet état que à \(\underline{S}_{k+l}\) pour un certain \(l\). On lui associe un poids de Hamming grâce aux étiquettes du chemin.
\(d_{\min}\) est donnée par le poids minimal d’un évênement minimal.