Structure et représentation de l'encodeur de code convolutif

Cette colonne contient les connaissances de base de la théorie de l'information et du codage, organisées par points de connaissance, et peut être utilisée comme référence pour l'enseignement ou l'apprentissage. La version de démarquage a été archivée dans [dépôt Github : https://github.com/timerring/information-theory ] ou compte public [AIShareLab] pour répondre à Information Theory .

Principes de base du code convolutif

Codes en bloc—codes sans mémoire

Codes convolutifs - Codes mémoire

  • Être capable de mémoriser les concepts de base des codes convolutifs ;
  • Capable de dessiner l'encodeur du code convolutif selon le vecteur de connexion, et de l'encoder ;
  • Capable de dessiner le diagramme de transition d'état et le diagramme en treillis du code convolutif en fonction de l'encodeur ;
  • Capacité à décoder les codes convolutionnels à l'aide de l'algorithme de décodage de Viterbi ;
  • Comprendre le concept d'entrelacement.

Le concept de code convolutif

Le code convolutif est décrit par trois nombres entiers, (n, k, L), où k/n représente également l'efficacité de codage, et L est appelé la longueur de contrainte ; il représente la série de k-uplets dans le registre à décalage de codage, et k représente le temps de codage Le nombre d'éléments de code introduits dans le codeur en une seule fois.

Une caractéristique importante des codes convolutifs différents des codes de blocs est la mémoire du codeur, c'est-à-dire que les n-uplets générés par le processus de codage convolutif ne sont pas seulement fonction des k-uplets d'entrée actuels, mais aussi du L-1 précédent. entrée k-uplets La fonction. Habituellement, n et k prennent des valeurs plus petites, et la capacité et la complexité de codage sont contrôlées en changeant L.

Structure de l'encodeur de code convolutif

(n, k, L) code convolutif : la figure suivante montre le codeur du code convolutif, dans lequel il y a des registres à décalage de niveau kL, L \boldsymbol{L}L est appelée la longueur de contrainte du code convolutif.

L'encodeur du code convolutif est une machine à états finis, et son nombre d'états est 2 ( L − 1 ) k 2^{(L-1) k}2( L - 1 ) k . état et entrée actuellek \boldsymbol{k}Le k -uplet détermine le n-uplet de sortie actuel.

Représentation du codeur convolutif

C'est un code convolutif (2,1,3), c'est-à-dire n=2, k=1, L=3.

Pourquoi s'appelle-t-il un code convolutif ?

Processus d'encodage :

Supposons que la séquence d'informations d'entrée soit 100101.

La séquence d'informations de sortie est 11 01 11 11 01 00 01 11

L'état initial de l'encodeur de code convolutif est 0, et l'état doit être effacé après l'encodage

1. Connecter le vecteur (générer un vecteur)

Une façon de décrire un codeur est de spécifier n vecteurs connectés, chacun correspondant à un additionneur modulo-2. Chaque vecteur est de dimension L et représente la connexion entre l'additionneur modulo-2 et le registre à décalage codé. Un 1 sur le ième bit du vecteur indique que l'étage correspondant du registre à décalage est connecté à l'additionneur modulo 2 , et un 0 indique qu'il n'y a pas de connexion entre l'étage correspondant et l'additionneur modulo 2 .

2. Description de l'état et diagramme d'état

Les codeurs à code convolutif appartiennent à une classe de dispositifs connus sous le nom de machines à états finis.

"Limité" indique que la machine d'état n'a qu'un nombre fini d'états distincts. "State" peut utiliser l'entrée actuelle de l'appareil et la quantité minimale d'informations pour prédire la sortie de l'appareil. Un état fournit des contraintes sur le processus de séquence passé et un ensemble de séquences de sortie futures possibles, l'état suivant est toujours contraint par l'état précédent.

En prenant un codeur de code convolutif avec une efficacité de codage de 1 / n comme exemple, l'état est représenté par le contenu du registre de niveau le plus à droite (L-1) (notez que le plus à droite ici fait référence à l'extrémité la plus à droite du registre à décalage après le symbole d'information actuel est le registre d'entrée).

Connaître l'état actuel et l'entrée suivante est une condition nécessaire et suffisante pour déterminer la sortie suivante.

Une façon de représenter un codeur simple est un diagramme d'état.

Les états dans la boîte de diagramme d'état représentent le contenu possible du niveau le plus à droite (L-1) du registre, et les chemins entre les états représentent les mots de branche de sortie de cette transition d'état. L'état du registre est exprimé par a = 00, b = 01, c = 10, d = 11. Correspondant à deux bits d'entrée possibles, il n'y a que deux transitions à partir de chaque état, et le mot de branche de sortie pendant la transition d'état est marqué dans le correspondant à côté du chemin de transfert. Dans la figure, la ligne continue indique le chemin où le bit d'entrée est 0, et la ligne pointillée indique le chemin où le bit d'entrée est 1.

Remarque : les transitions d'état ne sont pas arbitraires. Étant donné que les informations sont décalées d'un bit à la fois, il n'y a que deux transitions d'état possibles pour le registre à chaque temps de bit.

3. Diagramme en arbre

Bien que le diagramme d'états décrive entièrement les caractéristiques du codeur, il n'est pas pratique d'utiliser le diagramme d'états pour suivre la transition d'état du codeur car il ne représente pas le processus temporel. Si vous voulez montrer toutes les situations possibles d'entrée et de sortie du codeur, vous pouvez utiliser un diagramme en arbre pour le décrire. Il est formé en développant le diagramme d'état du codeur dans le temps.

4. Le diagramme en treillis

Le graphique en grille combine des nœuds au même niveau sur le graphique en arbre qui sont dans le même état.

La figure suivante est un diagramme en treillis d'un code convolutif (2,1,3). Les nœuds du graphe en grille représentent l'état de l'encodeur ; dans chaque unité de temps, le graphe en grille utilise 2 L − 1 2^{L-1}2L 1 nœuds représentent2 L − 1 2^{L-1}2L 1 états possibles du codeur. On voit qu'il y aura des répétitions.

Le vecteur de connexion d'un code convolutif (2,1,3) est :
g 1 = [ 1 1 0 ] , g 2 = [ 0 1 1 ] g_{1}=\left[\begin{array}{lll} 1 & 1 & 0 \end{array}\right], \quad g_{2}=\left[\begin{array}{lll} 0 & 1 & 1 \end{array}\right]g1=[110],g2=[011]
(1) Veuillez dessiner l'encodeur, le diagramme d'état et le diagramme en treillis du code convolutif.

(2) Lorsque la séquence d'entrée est 100011101001, recherchez la sortie codée.

les références:

  1. Proakis, John G., et al. Ingénierie des systèmes de communication . Vol. 2. New Jersey : Prentice Hall, 1994.
  2. Proakis, John G., et al. MANUEL DE SOLUTIONS Ingénierie des systèmes de communication . Vol. 2. New Jersey : Prentice Hall, 1994.
  3. Zhou Jiongpan. Communication Principles (3e édition) [M]. Pékin : Presses de l'Université des postes et télécommunications de Pékin, 2008.
  4. Fan Changxin, Cao Lina. Principles of Communication (7e édition) [M]. Pékin : Presses de l'industrie de la défense nationale, 2012.

Je suppose que tu aimes

Origine blog.csdn.net/m0_52316372/article/details/131307002
conseillé
Classement