FR2769434A1 - Methode de decodage viterbi et decodeur viterbi utilisant la valeur de distance minimale et/ou la valeur metrique de trajet minimale - Google Patents

Methode de decodage viterbi et decodeur viterbi utilisant la valeur de distance minimale et/ou la valeur metrique de trajet minimale Download PDF

Info

Publication number
FR2769434A1
FR2769434A1 FR9810880A FR9810880A FR2769434A1 FR 2769434 A1 FR2769434 A1 FR 2769434A1 FR 9810880 A FR9810880 A FR 9810880A FR 9810880 A FR9810880 A FR 9810880A FR 2769434 A1 FR2769434 A1 FR 2769434A1
Authority
FR
France
Prior art keywords
values
metric
path
several
branch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9810880A
Other languages
English (en)
Other versions
FR2769434B1 (fr
Inventor
Jong Sup Baek
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
Hyundai Electronics Industries Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hyundai Electronics Industries Co Ltd filed Critical Hyundai Electronics Industries Co Ltd
Publication of FR2769434A1 publication Critical patent/FR2769434A1/fr
Application granted granted Critical
Publication of FR2769434B1 publication Critical patent/FR2769434B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3961Arrangements of methods for branch or transition metric calculation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

L'invention concerne une méthode de décodage Viterbi, qui consiste à calculer plusieurs valeurs métriques de branche à partir d'une donnée reçue; à calculer plusieurs valeurs métriques de trajet à partir de plusieurs valeurs métriques de trajet précédentes et des valeurs métriques de branche; et à décoder une donnée originale en utilisant les valeurs métriques de trajet. Le calcul de plusieurs valeurs métriques de trajet comporte la production de valeurs métriques de trajet primaires avec un algorithme ACS, à partir des valeurs métriques de branche et des valeurs métriques de trajet précédentes; la sélection de la plus petite des valeurs métriques de trajet précédentes, pour produire une valeur métrique de trajet minimale; et la soustraction de la valeur métrique de trajet minimale à partir des valeurs métriques de trajet primaires, pour produire plusieurs valeurs métriques de trajet présentes. L'invention concerne aussi un décodeur Viterbi.

Description

Méthode de décodage Viterbi et décodeur Viterbi utilisant la valeur de distance minimale et/ou la valeur métrique de trajet minimale
CONTEXTE DE L'INVENTION
La présente invention concerne une méthode de décodage Viterbi qui consiste à calculer plusieurs valeurs métriques de branche à partir d'une donnée reçue, à calculer plusieurs valeurs métriques de trajet à partir de plusieurs valeurs métriques de trajet précédentes et des valeurs métriques de branche, et à décoder une donnée originale en utilisant les valeurs métriques de trajet.
L'invention concerne également un décodeur Viterbi comportant : un calculateur métrique de branche pour calculer plusieurs valeurs métriques de branche à partir d'une donnée reçue ; un calculateur métrique de trajet pour calculer plusieurs valeurs métriques de trajet à partir de plusieurs valeurs métriques de trajet précédentes et des valeurs métriques de branche ; et des moyens pour décoder une donnée originale en utilisant les valeurs métriques de trajet.
Un codage à convolution et un décodage Viterbi sont utilisés pour supprimer une erreur qui a pu se produire dans la transmission de données et/ou dans l'enregistrement/la reproduction de données.
La figure 4 est un schéma fonctionnel d'un décodeur
Viterbi classique, qui comprend une unité de calcul métrique de branche 11, une unité de calcul métrique de trajet 12 et une unité de recherche 13. Les données reçues (et/ou reproduites) (gl', g2') sont appliquées à l'unité de calcul métrique de branche 11, qui calcule pour chaque branche des valeurs métriques de branche à partir des données reçues et des valeurs de branche. L'unité de calcul métrique de trajet 12 comporte plusieurs unités ACS (Add-Compare-Select, addition-comparaison-sélection) pour chaque noeud, et chaque unité ACS calcule une valeur métrique de trajet correspondante à partir d'une valeur prédéterminée parmi les valeurs métriques de trajet précédentes et des valeurs métriques de branche correspondantes en utilisant un algorithme ACS. Dans ce cas, les valeurs métriques de trajet sont augmentées car chacune est la somme de l'une des valeurs métriques de trajet précédentes et d'une valeur métrique de branche correspondante.
Les valeurs métriques de trajet doivent donc subir une réduction d'échelle dans des cycles prédéterminés, en raison de la limite de taille des mémoires destinées à stocker les valeurs métriques de trajet. Une telle réduction d'échelle provoque une perte des valeurs métriques de trajet et réduit ainsi l'avantage qu'offre un décodeur Viterbi.
RESUME DE L'INVENTION
En conséquence, le but de la présente invention est de proposer une méthode de décodage Viterbi destinée à accroître les avantages d'un décodeur Viterbi. Un autre but de la présente invention est de proposer un décodeur Viterbi pour mettre en oeuvre cette méthode.
Ces buts sont atteints, selon un premier aspect de la présente invention, avec une méthode du type spécifié en introduction, grâce au fait que le calcul de plusieurs valeurs métriques de trajet comporte les étapes suivantes production de plusieurs valeurs métriques de trajet primaires en utilisant un algorithme ACS, à partir des valeurs métriques de branche et des valeurs métriques de trajet précédentes , sélection de la plus petite des valeurs métriques de trajet précédentes, pour produire une valeur métrique de trajet minimale ; et soustraction de la valeur métrique de trajet minimale à partir des valeurs métriques de trajet primaires, pour produire plusieurs valeurs métriques de trajet présentes.
A titre de variante, la valeur métrique de trajet minimale peut être choisie parmi les valeurs métriques de trajet primaires. Les valeurs métriques de trajet présentes sont stockées dans une mémoire.
Selon un autre aspect de la présente invention, le calcul de plusieurs valeurs métriques de branche consiste à produire plusieurs valeurs de distance entre la donnée reçue et un point de branche correspondant, respectivement a sélectionner la plus petite des valeurs de distance, pour produire une valeur de distance minimale ; et à soustraire la valeur de distance minimale des valeurs de distance respectives, pour produire plusieurs valeurs métriques de branche.
Selon un autre aspect, la présente invention propose un décodeur Viterbi du type spécifié en introduction, caractérisé en ce que le calculateur métrique de trajet comporte : plusieurs unités ACS pour produire plusieurs valeurs métriques de trajet primaires en utilisant un algorithme ACS, à partir des valeurs métriques de branche et des valeurs métriques de trajet précédentes, respectivement; un sélecteur de valeur métrique de trajet minimale pour sélectionner la plus petite des valeurs métriques de trajet précédentes, pour produire une valeur métrique de trajet minimale ; plusieurs soustracteurs pour soustraire la valeur métrique de trajet minimale des valeurs métriques de trajet primaires, respectivement, pour produire plusieurs valeurs métriques de trajet ; et une mémoire pour stocker les valeurs métriques de trajet présentes.
A titre de variante, le sélecteur de valeur métrique de trajet minimale peut choisir la plus petite des valeurs métriques de trajet primaire au lieu des valeurs métriques de trajet précédentes.
Le calculateur métrique de branche comporte également : plusieurs calculateurs de distance pour produire plusieurs valeurs de distance entre la donnée reçue et un point de branche correspondant, respectivement ; un sélecteur de valeur de distance minimale pour sélectionner la plus petite des valeurs de distance, pour produire une valeur de distance minimale ; et plusieurs soustracteurs qui soustraient chacun la valeur de distance minimale de la valeur de distance correspondante, pour produire une valeur métrique de branche correspondante.
DESCRIPTION SUCCINCTE DES DESSINS
On comprendra mieux la présente invention et ses avantages à la lecture de la description suivante, associée aux dessins annexés dans lesquels
la figure 1 est un schéma fonctionnel destiné à illustrer un exemple de codeur à convolution,
la figure 2 est un diagramme d'états destiné à illustrer la transition de valeurs d'état et la relation entre l'entrée et la sortie d'un codeur à convolution,
la figure 3 illustre l'état du signal reçu d'un décodeur Viterbi,
la figure 4 montre schématiquement la configuration d'un décodeur Viterbi classique,
la figure 5 est un schéma destiné à montrer comment fonctionne le calcul des valeurs métriques de branche selon la présente invention,
la figure 6 est un schéma fonctionnel d'un mode de réalisation préféré de l'unité de calcul métrique de branche selon la présente invention,
la figure 7 est un schéma fonctionnel d'un mode de réalisation préféré de l'unité de calcul métrique de trajet selon la présente invention, et
la figure 8 est un schéma fonctionnel d'un autre mode de réalisation préféré de l'unité de calcul métrique de trajet selon la présente invention.
DESCRIPTION DETAILLEE DE LA PRESENTE INVENTION
Pour une meilleure compréhension des modes de réalisation préférés, on va tout d'abord expliquer en détail les problèmes du décodeur Viterbi du domaine considéré, en référence aux figures 1 à 5.
Pour la correction d'erreurs du signal dans un système de transmission numérique et/ou dans un système d'enregistrement/de reproduction numérique, on utilise généralement un codeur à convolution et un décodeur Viterbi.
Pour faciliter la compréhension de la présente invention, on va commencer par expliquer brièvement les opérations effectuées par un codeur à convolution et par un décodeur Viterbi.
Les figures 1 et 2 sont destinées à illustrer le fonctionnement d'un exemple de codeur à convolution. Plus spécialement, la figure 1 est un schéma fonctionnel du codeur à convolution, et la figure 2 est un diagramme d'états du codeur à convolution de la figure 1, qui représente les transitions d'états et les données de sortie du codeur en fonction des données d'entrée et de l'état présent.
Dans le codeur à convolution représenté à titre d'exemple sur la figure 1, la première valeur de sortie gl est xexdlexd2, et la seconde valeur de sortie g2 est xexd2, le taux de codage étant de 1/2.
Les valeurs de sortie gl et g2 dans une impulsion d'horloge k sont déterminées à partir des données d'entrée présentes x du codeur et des deux données d'entrée précédentes xdl et xd2. Ces données d'entrée précédentes sont fournies à partir de l'élément de mémoire. Par exemple, quand la donnée d'entrée est une donnée à 1 binaire, l'élément de mémoire peut être un élément de mémoire à 1 binaire tel qu'un registre à 1 binaire. "xdl" représente ici la donnée d'entrée retardée d'une impulsion d'horloge, qui est obtenue en retardant la donnée d'entrée x à transmettre d'une impulsion d'horloge, tandis que "xd2" représente la donnée d'entrée retardée de deux impulsions d'horloge, qui est obtenue en retardant la donnée d'entrée x à transmettre de deux impulsions d'horloge. Le codeur à convolution tel qu'il est décrit plus haut combine sélectivement la donnée d'entrée x, la donnée d'entrée retardée d'une impulsion d'horloge xdl et la donnée d'entrée retardée de deux impulsions d'horloge xd2 de manière à produire les données codées gl et g2. En conséquence, la donnée d'entrée appliquée par un binaire est convertie par le codage à convolution en une donnée codée à deux binaires.
De plus, (xdl, xd2) est appelé d'une manière typique l'état présent. Comme le montre la figure 2, non seulement les données de sortie gl, g2 du codeur, mais également l'état suivant (x, xdl) du codeur dépendent de l'état présent (xdl, xd2) et de la donnée d'entrée x. Ces relations sont utilisées pour le décodage dans le décodeur Viterbi. Le décodeur
Viterbi peut ainsi décoder correctement la donnée d'entree x à partir du signal transmis gl' et g2' qui peut contenir une erreur.
En référence à la figure 2, on va considérer la règle entre les données de sortie gl, g2 du codeur, l'état présent (xdl xd2) et la donnée d'entrée x.
La flèche représentée sur la figure 2 représente la transition d'un état à un autre. Plus spécialement, la flèche en trait discontinu représente la transition d'état lorsque la donnée d'entrée x est "0" tandis que la flèche en trait plein représente la transition d'état lorsque la donnée d'entrée x est "1.
Comme le montre la figure 2, la transition d'un état présent à l'état suivant dépend de la donnée d'entrée x. De plus, l'état apte à être pris comme état suivant est limité en fonction de l'état présent.
Par exemple, si l'état présent est (00), la transition passe seulement à l'état (00) ou (10), suivant la donnée d'entrée. C'est-à-dire que l'état présent du codeur effectue la transition à partir de (00) à l'impulsion d'horloge k, vers (00) à l'impulsion d'horloge suivante k+l si la donnée d'entrée est '0', et l'état transmis (00) est maintenu pendant l'intervalle d'impulsion d'horloge suivant k+1. De plus, la donnée de sortie du codeur est (00) à l'impulsion d'horloge k. A titre de variante, si l'état présent à l'impulsion d'horloge k est (00) et que la donnée d'entrée est '1', l'état suivant du codeur devient (10), qui est maintenu pendant l'intervalle d'impulsion d'horloge suivant k+1, et la donnée de sortie du codeur à cette impulsion d'horloge k est (11).
De telles relations entre la transition d'état, la donnée d'entrée et la donnée de sortie sont utilisées pour le décodage dans un décodeur Viterbi.
En référence à la figure 3, on va maintenant expliquer la correction d'erreurs d'un décodeur Viterbi.
Le signal de sortie (gl g2) du codeur est transmis par une ligne de transmission dans laquelle des erreurs ont pu se produire. Le décodeur reçoit la donnée transmise qui contient une erreur, puis il effectue une conversion analogique-numérique. Cette opération va être expliquée en référence à la figure 3.
Chacune des données codées (gl, g2) contient '0' ou '1' (c'est-à-dire qu'il s'agit de données à 2 niveaux), mais le décodeur distingue chacun des signaux reçus en données à 8 niveaux (données à 3 binaires) pendant la conversion analogique/numérique pour la correction d'erreurs. La donnée reçue puis ayant subi une conversion analogique/numérique est représentée ici par (gl', g2'), et g11 et g2' sont des données à 3 binaires (à 8 niveaux), respectivement.
S'il n'y a pas de perte dans la ligne de transmission (c'est-à-dire s'il n'y a pas d'erreur), la donnée reçue (gl', g2') est positionnée à l'intérieur de l'un des cercles de la figure 3. Mais s'il y a une perte dans la ligne de transmission (c'est-à-dire s'il y a une erreur), la donnée reçue (gl', g2') peut être positionnée à l'une des intersections de lignes discontinues, à l'extérieur des cercles de la figure 3.
Puis les valeurs métriques de branche BM0O, BM01, Bol0, BM11 sont calculées, chacune d'elles représentant les distances entre la donnée reçue (gel', g2') et les points (000, 000), (000, 111), (111, 000), (111, 111), respectivement (ces points sont appelés ici points de branche). Par exemple, si la donnée reçue (gl', g2') est positionnée à l'intérieur du cercle de (111, 111), la valeur métrique de branche BMO0 est '14', la valeur métrique de branche BMO1 est '7', la valeur métrique de branche BM10 est '7' et la valeur métrique de branche BM11 est '0'. Ces valeurs métriques de branche sont calculées pour chaque donnée reçue.
Puis plusieurs valeurs métriques de trajet sont calculées à partir des valeurs métriques de trajet précédentes et des valeurs métriques de branche. On peut utiliser par exemple les équations suivantes
PMOO(T) = MINIMUM (BMO0 + PMO0 (T-1), BM11 + PM01 (T-l))
PM01(T) = MINIMUM (BM10 + PM10 (T-l), BM0l + PM11 (T-l) )
PM1O(T) = MINIMUM (BM11 + PMO0 (T-1), BM0O + PM0l (T-l))
PMll(T) = MINIMUM (BM0l + PM10 (T-l), BM10 + PM11 (T-l)) dans lesquelles PMOO(T), PMO1(T), PM1O(T), PMll(T) représentent les valeurs métriques de trajet lors de la phase présente, et PMOO(T-1), PMO1(T-1), PM10(T-1), PMll(T-1) représentent les valeurs métriques de trajet lors de la phase précédente. Par ailleurs, BMO0, BMO1, BM10, BM11 représentent les valeurs métriques de branche, et la fonction MINIMUM() représente la sélection de la valeur minimale.
L'unité de calcul métrique de trajet 12 de la figure 4 calcule non seulement les valeurs métriques de trajet, mais elle génère également plusieurs signaux de sélection de trajet. Chacun des signaux de sélection de trajet représente le trajet subsistant et est appliqué à une mémoire de trajets contenue dans l'unité de recherche 13, pour servir à la recherche.
Comme le montrent les équations indiquées plus haut, les valeurs métriques de trajet augmentent au fur et à mesure des opérations. I1 est donc nécessaire de soumettre les valeurs métriques de trajet à une réduction d'échelle pour les ramener à l'état initial, suivant une périodicité prédéterminée, en raison des limites de matériel du décodeur.
Cette réduction d'échelle entraîne une perte de valeurs métriques de trajet, et donc une diminution du bénéfice du décodeur.
Il est donc nécessaire que tandis que la taille du matériel du décodeur diminue, il ne puisse pas y avoir de perte de valeurs métriques de trajet. C'est le but que s'est fixé la présente invention, qui modifie les valeurs métriques de branche et/ou les valeurs métriques de trajet sans déformer l'information qu'elles contiennent.
La méthode de calcul de valeurs métriques de branche va être expliquée en détail.
Selon la figure 5, la donnée reçue (ou reproduite) (gl', g2') est (001, 101). La distance D00 entre la donnée reçue (gui', g2') et le point (000, 000) est 6 ; la distance D01 par rapport au point (000, 111) est 3 ; la distance D10 par rapport au point (111, 000) est 11 ; et la distance D11 par rapport au point (111, 111) est 8. Ici, la somme des distances est toujours 28.
Dans le décodeur Viterbi classique, ces valeurs de distance sont utilisées comme valeurs métriques de branche, de sorte que les valeurs métriques de trajet augmentent suivant une forte pente.
Selon la présente invention, cependant, les valeurs de distance ne sont pas utilisées comme valeurs métriques de branche, mais elles sont modifiées. Plus spécialement, c'est la valeur minimale qui est choisie parmi les valeurs de distance, de manière à soustraire la valeur de distance minimale des valeurs de distance respectives pour produire les valeurs métriques de branche. Dans l'exemple cité plus haut, c'est la valeur de distance minimale 3 qui est choisie parmi les valeurs de distance (6, 3, 11, 8), puis elle est soustraite des valeurs de distance (6, 3, 11, 8) pour produire 3, 0, 8, 5 comme valeurs métriques de branche BMOO, BMO1, BM10, BM11. Ici, la somme des valeurs métriques de branche est 16, c'est-à-dire qu'elle est inférieure de 12 à la somme des valeurs de distance.
Cette réduction des valeurs métriques de branche supprime la vitesse croissante des valeurs métriques de trajet.
La figure 6 est un schéma fonctionnel d'un mode de réalisation préféré de l'unité de calcul métrique de branche selon la presente invention. Il concerne la production de quatre valeurs métriques de branche, par exemple. Toutefois, la présente invention n'est pas limitée à cet exemple.
Selon la figure 6, l'unité de calcul métrique de branche comprend plusieurs calculateurs de distance 101, 102, 103, 104, plusieurs soustracteurs 106, 107, 108, 109 et un sélecteur de valeur minimale 105. Les calculateurs de distance 101, 102, 103, 104 calculent les distances entre la donnée reçue (gui', g2') et les points (000, 000), (000, 111), 111, 000), (111, 111), respectivement. Les valeurs de distance sont appliquées au sélecteur de valeur minimal 105 et au soustracteur correspondant 106, 107, 108, 109, respectivement. Le sélecteur de valeur minimale sélectionne la valeur minimale parmi les valeurs de distance, de manière à appliquer cette valeur de distance minimale aux soustracteurs 106, 107, 108, 109. Le soustracteur 106 soustrait ladite valeur de distance minimale de la valeur de distance D00 qui provient du calculateur de distance 101, pour produire la valeur métrique de branche BM00. De même, le soustracteur 107 soustrait la valeur de distance minimale de la valeur de distance D01 appliquée à partir du calculateur de distance 102, pour produire la valeur métrique de branche BM0l ; le soustracteur 108 soustrait la valeur de distance minimale de la valeur de distance D10 appliquée à partir du calculateur de distance 103, pour produire la valeur métrique de branche BM10 ; et le soustracteur 109 soustrait la valeur de distance minimale de la valeur de distance D11 appliquée à partir du calculateur de distance 104, pour produire la valeur métrique de branche BM11. Ainsi, les valeurs métriques de branche sont réduites de la valeur de distance minimale.
On va expliquer dans ce qui suit la méthode de calcul métrique de trajet de la présente invention.
Tout d'abord, plusieurs valeurs métriques de trajet primaires sont calculées à l'aide d'un algorithme ACS (Add
Compare-Select) à partir des valeurs métriques de branche et des valeurs métriques de trajet précédentes. La valeur métrique de trajet minimale est choisie parmi les valeurs métriques de trajet précédentes. La valeur métrique de trajet minimale choisie est soustraite des valeurs métriques de trajet primaires pour produire plusieurs valeurs métriques de trajet.
La figure 7 est un schéma fonctionnel de l'unité de calcul métrique de trajet qui est apte à appliquer cette méthode de calcul métrique de trajet selon la présente invention
Selon la figure 7, l'unité de calcul métrique de trajet comprend plusieurs unités ACS 210a, 210b, 210c, 210d, plusieurs soustracteurs 205a, 205b, 205c, 205d, une mémoire 206 et un sélecteur de valeur minimale 207.
Chacune des unités ACS 210a à 210d comprend deux additionneurs 201a, 202a ; 201b, 202b ; 201c, 202c ; 201d, 202d, un comparateur 203a, 203b, 203c, 203d et un sélecteur 204a, 204b, 204c, 204d, et résout respectivement l'une des équations suivantes
PM'00(T) = MINIMUM(BM00+PM00(T-1), BMll+PM01(T-1))
PM'01(T) = MINIMUM(BM10+PM10(T-1), BMO1+PM11(T-1))
PM'10(T) = MINIMUM(BMll+PMOO(T-1), BM00+PM0l(T-i))
PM'll(T) = MINIMUM(BM01+PM10(T-1), BM10+PMll(T-1)) dans lesquelles PM'00(T), PM'01(T), PM'10(T) et PM'll(T) représentent les valeurs métriques de trajet primaires lors de la phase présente, et PM00(T-1), PM01(T-1), PM10(T-1),
PMll(T-1) représentent les valeurs métriques de trajet lors de la phase précédente. Par ailleurs, BM00, BMO1, BM10, BM11 représentent les valeurs métriques de branche, et la fonction
MINIMUM() représente la sélection de la valeur minimale.
Plus spécialement, pour l'unité ACS 210a, l'additionneur 201a additionne la valeur métrique de branche BMO0 et la valeur métrique de trajet précédente PM11, et l'additionneur 202a additionne la valeur métrique de branche BMO1 et la valeur métrique de trajet précédente PM0l. Les valeurs de sortie des additionneurs 201a, 202a sont appliquées au comparateur 203a, qui les compare de manière à produire un signal de sélection représentant la plus petite des valeurs de sortie des additionneurs 201a, 202a. Le comparateur 203a génère aussi un signal de trajet subsistant correspondant qui représente le trajet présentant la valeur métrique de trajet la plus petite, c'est-à-dire le trajet subsistant. De même, les comparateurs 203b, 203c, 203d génèrent des signaux de sélection correspondants et des signaux de trajet subsistant correspondants. Ces signaux de trajet subsistant sont appliqués à l'unité de recherche telle qu'elle est représentée sur la figure 4, et ils sont utilisés dans un algorithme de recherche pour décoder la donnée originale x.
Le sélecteur 204a sélectionne la plus petite des valeurs de sortie des additionneurs 201a, 202a en fonction du signal de sélection provenant du comparateur 203a. La valeur de sortie du sélecteur 204a est la valeur métrique de trajet primaire PM'00.
De même, le sélecteur 204b de l'unité ACS 210b produit la valeur métrique de trajet primaire PM'01 ; le sélecteur 204c de l'unité ACS 210c produit la valeur métrique de trajet primaire PM'10 ; et le sélecteur 204d de l'unité
ACS 210d produit la valeur métrique de trajet primaire PM'11.
Le soustracteur 205a soustrait la valeur métrique de trajet minimale de la valeur métrique de trajet primaire PM00 de manière à produire la valeur métrique de trajet PM00 lors de la phase présente. Cette valeur métrique de trajet est stockée dans la mémoire 206.
De même, les soustracteurs 205b à 205d soustraient la valeur métrique de trajet minimale de la valeur métrique de trajet primaire Pu'01, PM'10, Put11, respectivement, pour produire les valeurs métriques de trajet respectives PM0i, PM10, PM11 lors de la phase présente. Ces valeurs métriques de trajet PM0l, PM10, PM11 sont également stockées dans la mémoire 206. Le sélecteur de valeur minimale 207 choisit la valeur métrique de trajet minimale parmi les valeurs métriques de trajet PM00, PM0l, PM10, PM11 provenant de la mémoire, et la valeur métrique de trajet minimale qui a été sélectionnée est appliquée aux soustracteurs 205a, 205b, 205c, 205d. La mémoire peut alors être initialisée pour être mise à zéro, c'est-à-dire que les valeurs métriques de trajet peuvent être mises à zéro. Lors de la première phase, les valeurs métriques de trajet primaires et les valeurs métriques de trajet sont donc les mêmes.
Comme le montre la figure 7, la valeur métrique de trajet minimale à appliquer aux soustracteurs 205a à 205d est la plus petite des valeurs numériques de trajet lors de la phase précédente.
La valeur métrique de trajet minimale peut au contraire être choisie parmi les valeurs métriques de trajet primaires lors de la phase présente. La figure 8 illustre cette méthode, et elle montre un schéma fonctionnel d'un autre mode de réalisation de l'unité de calcul métrique de trajet selon la présente invention. Sur la figure 8, les éléments identiques à ceux de la figure 7 ont les mêmes numéros de référence, et on a renoncé à une nouvelle explication qui serait redondante.
Selon la figure 8, le sélecteur de valeur minimale 208 reçoit les valeurs métriques de trajet primaires à partir des sélecteurs 204a-204d, et il choisit la plus petite d'entre elles pour produire la valeur métrique de trajet minimale. Cette valeur métrique de trajet minimale est appliquée aux soustracteurs 205a-205d.
Selon la présente invention, la valeur métrique de trajet est limitée de la façon suivante
Figure img00130001
<tb> 2 <SEP> x <SEP> (résolution <SEP> de <SEP> la <SEP> valeur <SEP> métrique <SEP> de <SEP> branche <SEP> -1) <SEP> x <SEP> ( <SEP> J <SEP> 2nombre <SEP> d'États
<tb>
Si la résolution de la valeur métrique de branche est '8', par exemple, et que le nombre d'états est '2' comme dans l'exemple cité plus haut, la valeur métrique de trajet ne peut pas dépasser '28'. A titre de variante, si la résolution de la valeur métrique de branche est 'S' et que le nombre d'états est '6', comme dans un système de radiodiffusion numérique par satellite, les valeurs métriques de trajet sont limitées à '112'. Une telle valeur métrique de trajet peut être appliquée par 7 binaires.
Par conséquent, la taille des éléments de matériel liés à la valeur métrique de trajet peut être réduite, ce qui réduit la puissance absorbée totale de la puce de décodeur.
En d'autres termes, étant donné que la valeur métrique de branche et/ou la valeur métrique de trajet sont réduites selon la présente invention, la charge de calcul diminue et réduit ainsi la puissance absorbée. De plus, la surface de la puce qui est nécessaire à la mise en oeuvre du décodeur
Viterbi peut être réduite. Autrement dit, si la taille de la mémoire pour les valeurs métriques de trajet n'augmente pas, le bénéfice du décodeur Viterbi peut être accru.
Bien qu'on ait représenté et décrit des modes de réalisation préférés de la présente invention, différentes variantes, modifications et solutions équivalentes peuvent être utilisées. C'est pourquoi la description précédente ne devra pas être considérée comme limitant la portée de la présente invention.

Claims (11)

  1. plusieurs valeurs métriques de trajet présentes.
    valeurs métriques de trajet primaires, pour produire
    trajet minimale, et - soustraction de la valeur métrique de trajet minimale des
    trajet précédentes, pour produire une valeur métrique de
    trajet précédentes, - sélection de la plus petite des valeurs métriques de
    valeurs métriques de branche et des valeurs métriques de
    Select, addition-comparaison-sélection), à partir des
    primaires en utilisant un algorithme ACS (Add-Compare
    métriques de trajet, caractérisée en ce que le calcul de plusieurs valeurs métriques de trajet comporte les étapes suivantes - production de plusieurs valeurs métriques de trajet
    des valeurs métriques de branche, et - à décoder une donnée originale en utilisant les valeurs
    de plusieurs valeurs métriques de trajet précédentes et
    d'une donnée reçue, - à calculer plusieurs valeurs métriques de trajet à partir
    1. Méthode de décodage Viterbi, qui consiste - à calculer plusieurs valeurs métriques de branche à partir
    REVENDICATIONS
  2. 2. Méthode de décodage Viterbi selon la revendication 1, caractérisée en ce qu'elle consiste également à stocker les valeurs métriques de trajet dans une mémoire.
  3. 3. Méthode de décodage Viterbi selon la revendication 1, caractérisée en ce que le calcul de plusieurs valeurs métriques de branche consiste - à produire plusieurs valeurs de distance entre la donnée
    reçue et un point de branche correspondant,
    respectivement, - à sélectionner la plus petite des valeurs de distance,
    pour produire une valeur de distance minimale, et - à soustraire la valeur de distance minimale des valeurs de
    distance respectives, pour produire plusieurs valeurs
    métriques de branche.
  4. 4. Méthode de décodage Viterbi, qui consiste à à calculer plusieurs valeurs métriques de branche à partir
    d'une donnée reçue, - à calculer plusieurs valeurs métriques de trajet à partir
    de plusieurs valeurs métriques de trajet précédentes et
    des valeurs métriques de branche, et à à à décoder une donnée originale en utilisant les valeurs
    métriques de trajet, caractérisée en ce que le calcul de plusieurs valeurs métriques de trajet comporte les étapes suivantes - production de plusieurs valeurs métriques de trajet
    primaires en utilisant un algorithme ACS, à partir des
    valeurs métriques de branche et des valeurs métriques de
    trajet précédentes, - sélection de la plus petite des valeurs métriques de
    trajet primaires, pour produire une valeur métrique de
    trajet minimale, et - soustraction de la valeur métrique de trajet minimale des
    valeurs métriques de trajet primaires, pour produire
    plusieurs valeurs métriques de trajet présentes.
  5. 5. Méthode de décodage Viterbi selon la revendication 4, caractérisée en ce que le calcul de plusieurs valeurs métriques de branche consiste à à produire plusieurs valeurs de distance entre la donnée
    reçue et un point de branche correspondant,
    respectivement, à à sélectionner la plus petite des valeurs de distance,
    pour produire une valeur de distance minimale, et à à soustraire la valeur de distance minimale des valeurs de
    distance respectives, pour produire plusieurs valeurs
    métriques de branche.
  6. 6. Méthode de décodage Viterbi, qui consiste à à calculer plusieurs valeurs métriques de branche à partir
    d'une donnée reçue, à à calculer plusieurs valeurs métriques de trajet à partir
    de plusieurs valeurs métriques de trajet précédentes et
    des valeurs métriques de branche, et à à décoder une donnée originale en utilisant les valeurs
    métriques de trajet, caractérisée en ce que le calcul de plusieurs valeurs métriques de branche comporte les étapes suivantes production de plusieurs valeurs de distance entre la
    donnée reçue et un point de branche correspondant,
    respectivement, - sélection de la plus petite des valeurs de distance, pour
    produire une valeur de distance minimale, et - soustraction de la valeur de distance minimale des valeurs
    de distance respectives, pour produire plusieurs valeurs
    métriques de branche.
  7. 7. Décodeur Viterbi comportant - un calculateur métrique de branche pour calculer plusieurs
    valeurs métriques de branche à partir d'une donnée reçue, - un calculateur métrique de trajet pour calculer plusieurs
    valeurs métriques de trajet à partir de plusieurs valeurs
    métriques de trajet précédentes et des valeurs métriques
    de branche, et - des moyens pour décoder une donnée originale en utilisant
    les valeurs métriques de trajet, caractérisé en ce que le calculateur métrique de trajet comporte - plusieurs unités ACS (210a-d) pour produire plusieurs
    valeurs métriques de trajet primaires en utilisant un
    algorithme ACS, à partir des valeurs métriques de branche
    et des valeurs métriques de trajet précédentes,
    respectivement, - un sélecteur de valeur métrique de trajet minimale (207
    208) pour sélectionner la plus petite des valeurs
    métriques de trajet précédentes, pour produire une valeur
    métrique de trajet minimale, - plusieurs soustracteurs (205a-d) pour soustraire la valeur
    métrique de trajet minimale des valeurs métriques de
    trajet primaires, respectivement, pour produire plusieurs
    valeurs métriques de trajet, et
    une mémoire (206) pour stocker lesdites valeurs métriques
    de trajet.
  8. 8. Décodeur Viterbi selon la revendication 7, caractérisé en ce que le calculateur métrique de branche comporte - plusieurs calculateurs de distance (101-104) pour produire
    plusieurs valeurs de distance entre la donnée reçue et un
    point de branche correspondant, respectivement, - un sélecteur de valeur de distance minimale (105) pour
    sélectionner la plus petite des valeurs de distance, pour
    produire une valeur de distance minimale, et - plusieurs soustracteurs (106-109) qui soustraient chacun
    la valeur de distance minimale de la valeur de distance
    correspondante, pour produire une valeur métrique de
    branche correspondante.
  9. 9. Décodeur Viterbi comportant - un calculateur métrique de branche pour calculer plusieurs
    valeurs métriques de branche à partir d'une donnée reçue, - un calculateur métrique de trajet pour calculer plusieurs
    valeurs métriques de trajet à partir de plusieurs valeurs
    métriques de trajet précédentes et des valeurs métriques
    de branche, et - des moyens pour décoder une donnée originale en utilisant
    les valeurs métriques de trajet, caractérisé en ce que le calculateur métrique de trajet comporte - plusieurs unités ACS (210a-d) pour produire plusieurs
    valeurs métriques de trajet primaires en utilisant un
    algorithme ACS, à partir des valeurs métriques de branche
    et des valeurs métriques de trajet précédentes,
    respectivement, - un sélecteur de valeur métrique de trajet minimale (207
    208) pour sélectionner la plus petite des valeurs
    métriques de trajet primaires, pour produire une valeur
    métrique de trajet minimale, - plusieurs soustracteurs (205a-d) pour soustraire la valeur
    métrique de trajet minimale des valeurs métriques de
    trajet primaires, respectivement, pour produire plusieurs
    valeurs métriques de trajet présentes, et - une mémoire (206) pour stocker lesdites valeurs métriques
    de trajet.
  10. 10. Décodeur Viterbi selon la revendication 9, caractérisé en ce que le calculateur métrique de branche comporte - plusieurs calculateurs de distance (101-104) pour produire
    plusieurs valeurs de distance entre la donnée reçue et un
    point de branche correspondant, respectivement, - un sélecteur de valeur de distance minimale (105) pour
    sélectionner la plus petite des valeurs de distance, pour
    produire une valeur de distance minimale, et - plusieurs soustracteurs (106-109) qui soustraient chacun
    la valeur de distance minimale de la valeur de distance
    correspondante, pour produire une valeur métrique de
    branche correspondante.
  11. 11. Décodeur Viterbi comportant - un calculateur métrique de branche pour calculer plusieurs
    valeurs métriques de branche à partir d'une donnée reçue, - un calculateur métrique de trajet pour calculer plusieurs
    valeurs métriques de trajet à partir de plusieurs valeurs
    métriques de trajet précédentes et des valeurs métriques
    de branche, et - des moyens pour décoder une donnée originale en utilisant
    les valeurs métriques de trajet, caractérisé en ce que le calculateur métrique de branche comporte - plusieurs calculateurs de distance (101-104) pour produire
    plusieurs valeurs de distance entre la donnée reçue et un
    point de branche correspondant, respectivement, - un sélecteur de valeur de distance minimale (105) pour
    sélectionner la plus petite des valeurs de distance, pour
    produire une valeur de distance minimale, et - plusieurs soustracteurs (106-109) qui soustraient chacun
    la valeur de distance minimale de la valeur de distance correspondante, pour produire une valeur métrique de branche correspondante.
FR9810880A 1997-08-30 1998-08-31 Methode de decodage viterbi et decodeur viterbi utilisant la valeur de distance minimale et/ou la valeur metrique de trajet minimale Expired - Fee Related FR2769434B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970045160A KR100256270B1 (ko) 1997-08-30 1997-08-30 최소의 변이 상태값을 이용한 비터비 복호기 및복호 방법

Publications (2)

Publication Number Publication Date
FR2769434A1 true FR2769434A1 (fr) 1999-04-09
FR2769434B1 FR2769434B1 (fr) 2004-04-02

Family

ID=19520549

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9810880A Expired - Fee Related FR2769434B1 (fr) 1997-08-30 1998-08-31 Methode de decodage viterbi et decodeur viterbi utilisant la valeur de distance minimale et/ou la valeur metrique de trajet minimale

Country Status (3)

Country Link
JP (1) JPH11154875A (fr)
KR (1) KR100256270B1 (fr)
FR (1) FR2769434B1 (fr)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1220455A1 (fr) * 2000-12-29 2002-07-03 Motorola, Inc. Décodeur Viterbi, procédé et unité correspondant
EP1265367A1 (fr) * 2000-03-14 2002-12-11 Sharp Kabushiki Kaisha Decodeur viterbi
US7062000B1 (en) 1999-01-29 2006-06-13 Sharp Kabushiki Kaisha Viterbi decoder

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100463938B1 (ko) * 2002-03-06 2005-01-03 이동진 마인드컨트롤장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19626076A1 (de) * 1995-06-30 1997-01-02 Hyundai Electronics Ind Viterbi-Decodierer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19626076A1 (de) * 1995-06-30 1997-01-02 Hyundai Electronics Ind Viterbi-Decodierer

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A.P. HEKSTRA: "An alternative to Metrci Rescaling in Viterbi Decoders", IEEE TRANSACTIONS ON COMMUNICATIONS, vol. 37, no. 11, November 1989 (1989-11-01), New York, pages 1220 - 1222, XP000074542 *
C. B. SHUNG ET AL.: "VLSI Architectures for Metric Normalization in the Viterbi Algorithm", EEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS ICC '90, 1990, pages 1723 - 1728, XP000146072 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062000B1 (en) 1999-01-29 2006-06-13 Sharp Kabushiki Kaisha Viterbi decoder
EP1265367A1 (fr) * 2000-03-14 2002-12-11 Sharp Kabushiki Kaisha Decodeur viterbi
EP1265367A4 (fr) * 2000-03-14 2005-06-15 Sharp Kk Decodeur viterbi
EP1220455A1 (fr) * 2000-12-29 2002-07-03 Motorola, Inc. Décodeur Viterbi, procédé et unité correspondant
US7042964B2 (en) 2000-12-29 2006-05-09 Freescale Semiconductor, Inc. Viterbi decoder, method and unit therefor

Also Published As

Publication number Publication date
KR100256270B1 (ko) 2000-05-15
FR2769434B1 (fr) 2004-04-02
JPH11154875A (ja) 1999-06-08
KR19990021588A (ko) 1999-03-25

Similar Documents

Publication Publication Date Title
EP0735696B1 (fr) Procédé de décodage itératif, module de décodage et décodeur correspondants
FR2675970A1 (fr) Procede de codage convolutif correcteur d&#39;erreurs pseudo-systematique, procede de decodage et dispositifs correspondants.
EP0808538B1 (fr) Dispositif de reception de signaux numeriques a structure iterative, module et procede correspondants
FR2681486A1 (fr) Appareil de decodage de viterbi.
FR2694647A1 (fr) Procédé de décodage de canaux avec commande à la source par élargissement de l&#39;algorithme de Viterbi et utilisation de ce procédé.
EP0210932B1 (fr) Procédé de décodage d&#39;un code convolutif et décodeur correspondant
EP0553050B1 (fr) Procédé de décodage à maximum de vraisemblance à treillis de décodage sous-échantillonné, et dispositif de décodage correspondant
EP0463598B1 (fr) Circuit de décodage de codes convolutionnels pour l&#39;exécution de l&#39;étape de stockage et d&#39;exploration inverse des chemins survivants d&#39;un algorithme de viterbi
EP0762659B1 (fr) Décodeur convolutif utilisant l&#39;algorithme de Viterbi
FR2769434A1 (fr) Methode de decodage viterbi et decodeur viterbi utilisant la valeur de distance minimale et/ou la valeur metrique de trajet minimale
CH661624A5 (fr) Procede et appareil pour convertir des donnees digitales.
FR2891419A1 (fr) Decodage d&#39;une pluralite de flux d&#39;informations codees selon un algorithme de codage par blocs.
EP0228528A1 (fr) Dispositif de mise en oeuvre d&#39;un code à faible disparité accumulée en transmission numérique à haut débit et procédé de codage utilisant un tel dispositif
EP0298804A1 (fr) Procédé et dispositif de synthèse numérique d&#39;un signal d&#39;horloge
EP0053064A1 (fr) Système de transmission numérique à codage adaptatif d&#39;informations analogiques échantillonnées et transformées par transformation orthogonale
WO2006005835A1 (fr) Systeme de compensation de dephasage pour turbo decodeur
EP0834990A1 (fr) Déphaseur numérique programmable et convertisseur analogique/numérique mettant en oeuvre un tel déphaseur
FR2884661A1 (fr) Procede et dispositif de decodage d&#39;un code a longueur variable prenant en compte une information de probabilite a priori
EP0283077B1 (fr) Dispositif de décodage de signaux codés en duobinaire
EP0030194A1 (fr) Etage prédicteur pour système de compression de débit numérique
FR2488089A1 (fr) Procede de transcodage d&#39;informations et systeme de transmission utilisant un tel procede
EP0982866A1 (fr) Procédé de codage convolutif et de transmission par paquets d&#39;un flux série de données numériques, procédé et dispositif de décodage correspondants
EP1333587A1 (fr) Module ACS dans un décodeur
EP0165147A1 (fr) Codeur-décodeur de codes de blocs, paramètrable
EP2262116B1 (fr) Décodeur Viterbi avec deux memoires adapté aux signaux GNSS

Legal Events

Date Code Title Description
CA Change of address
CD Change of name or company name
TP Transmission of property
ST Notification of lapse

Effective date: 20070430