FR 2730110 A1 19960802 FR 9500967 A 19950127 PROCEDE DE DECODAGE D'INFORMATIONS TRANSMISES SUR UN CANAL L'invention concerne un procédé de transmission d'informations et notamment un procédé permettant de reconstituer des informations reçues à partir d'échantillons obtenus par échantillonnage à l'aide d'une horloge asynchrone par rapport au signal d'informations recç,u. L'invention est plus particulièrement applicable à la lecture des enregistrements magnétiques dans les domaines des magnétoscopes, des périphériques informatiques et des enregistreurs spéciaux professionnels. Plus précisément, l'invention applique pour une telle réception une Estimation de Séquence par Maximum de Vraisemblance, que nous désignerons dans la suite de la description par MLSE (Maximum Likelihood Sequence Estimation), et qui utilise un algorithme de VITERBI décrit dans le document "Principles of Digital Communications and Coding" de AJ. VITERBI and ai, Mc Graw-Hill, 1979. L'algorithme MLSE est lui-mnme décrit dans l'article "Maximum-Likelihood Sequence Estimation of Digital Sequences in the Presence of Intersymbol Interferences" de G. David FORNEY, IEEE Transactions on Information Theory, vol. IT-18, n 3, pp 363-378, mai 1972. Cet algorithme présente la contrainte de devoir traiter un signal échantillonné de façon synchrone aux données et à une fréquence fe égale à la fréquence f5 du signal de donnée. Dans le cas d'un système asynchrone, il faut, en plus de l'égalisation, des pré-traitements pour la remise à la bonne phase estimation de phase (Phase Locked Loop PLL), interpolation. Ces opérations donnent par ailleurs de mauvais résultats en cas de repliement, c'est-à-dire pour des fréquences fe trop basses. Donc on prend fe > fs (mais en rapport fractionnaire, pour des raisons d'implantation hardware), ce qui oblige à rajouter ensuite une décimation pour se ramener aussi à la bonne fréquence. L'invention concemrne donc l'application de l'algorithme MLSE à une réception asynchrone et elle s'étend au cas des données échantillonnées à une fréquence fe autre que la fréquence signal fs. Ce qui conduit à faire un calcul de phase entre un signal de donnée et l'horloge d'échantillonnage. L'invention concemrne donc un procédé de transmission d'informations comprenant un système de réception de signaux de données par échantillonnage à l'aide de signaux d'horloge, caractérisé en ce qu'il comporte un procédé de calcul de déphasage entre les signaux d'horloge et les signaux de données dans lequel on effectue l'opération qui est une formulation de l'algorithme du gradient: tn+1 =tn + p/q - a e n (tn) en (t) dans laquelle on a: tn+1: le signal de déphasage à calculer pour l'échantillon de rang n+ 1; tn: le signal de déphasage calculé antérieurement pour l'échantillon de rang n; p/q: rapport de la période d'horloge sur la période des données; a: un coefficient d'adaptation; en (tn): l'erreur entre un échantillon réel et la valeur théorique qui avait été prévue pour cet échantillon; e'n (tn): la dérivée de la valeur de en (tn) par rapport à tn; la valeur en (tn) étant donnée par: en (t) = Y-k Zk h (n Te - kTs + t) - Yn avec: zk: une valeur supposée de signal de donnée; h: la réponse impulsionnelle du canal Et la valeur e'n(tn) étant donnée par: en(t) = Z Zkh' (nTe -kTs +t) k avec h' dérivée de la réponse impulsionnelle du canal par rapport au temps. La nouveauté de l'algorithme d'estimation de phase se trouve dans l'utilisation de h'(t). Les différents objets et caractéristiques de l'invention apparaîtront plus clairement dans la description qui va suivre et dans les figures annexées qui représentent: - la figure 1, un schéma de chaîne de communication; - la figure 2, un exemple de treillis de décodage; - les figures 3a et 3b, un exemple de fonctionnement simplifié de l'algorithme de VITERBI; - la figure 4, un organigramme de décodage simplifié appliquant l'algorithme MLSE selon l'invention; - la figure 5, un organigramme de décodage plus détaillé appliquant l'algorithme MLSE selon l'invention. Une chaîne de communications peut être schématisé comme représentée en figure 1. L'entrée du canal xk est modélisée par des Diracs espacés de la période symbole Ts = 1/fs. Ils prennent aléatoirement un certain nombre de valeurs, qui sont par exemple +1 et -1 dans le cas binaire, avec éventuellement un codage. Le canal a une réponse impulsionnelle en continu notée h(t). A sa sortie, il y a un bruit additif. Puis on échantillonne à la période: l/fe= Te = p/q Ts (p/q 0,2 lorsque le rapport signal sur bruit tourne autour de 20 dB. L'application de l'opération (2) permet ainsi de déterminer la phase d'un échantillon de signal. Au préalable, définissons le terme de branche-hypothèse: L'algorithme de VITERBI manipule un treillis à N états x(1), x(2)...x(N). Par exemple N = 2 si on est en binaire et si on peut négliger la partie de la réponse canal en dehors d'un support de taille 2 Ts. A chaque étape temporelle k. pour chaque état x(j) qui constitue une hypothèse sur un nombre donné de symboles d'entrée (sur un bit isolé xk dans notre exemple), on recherche un état précédent probable, appelé survivant x(j). Il est déterminé par l'exploration de toutes les paires autorisées (x(i), x(j)) pour les étapes (k-1, k) (dans notre exemple, toutes les paires xklXhqk). Ce sont ces paires à explorer que nous nommerons 'branches-hypothèses". Elles représentent, en d'autres termes, un morceau de chemin. Il est connu que dans l'algorithme de VITERBI, pour chaque branchehypothèse, on dispose d'un échantillon Yn de signal à décoder qui sert à calculer la métrique. Pour chacun des N états du treillis, on doit garder en mémoire les N métriques correspondantes m(1)... m(N). On introduit ici la notion de poursuite de phase en gardant aussi en mémoire chacune des N estimations de phase t(1)... t-N). On prend pour elles la valeur qu'elles avaient après soustraction de 1 lorsqu'il a fallu passer à l'échantillon suivant pour la branche-hypothèse considérée. Donc, à chaque état possible x(i) i = 1...N pour xk, on veut attribuer un survivant, une nouvelle métrique et une réactualisation de l'estimation de phase. Par exemple, sur la figure 3a, on a recçu les échantillons k-3 à k. Pour chaque échantillon on a deux états. Le calcul des métriques conduisant à chaque état de chaque échantillon conduit à avoir, pour l'échantillon k, deux chemins possibles. Lorsqu'ensuite, on reçoit l'échantillon k+1, on calcule les métriques mO.0 et mO.1 entre l'état 0 de cet échantillon k+1 et les états 0 et 1 de l'échantillon précédent k (figure 3b). On choisit la métrique la plus faible, par exemple mO.0. On calcule également les métriques ml.0 et m1.1 entre l'état de l'échantillon k+1 et les états 0 et 1 de l'échantillon précédent k. On trouve, par exemple que la métrique la plus courte est mO.1. Selon cet exemple, on sélectionne donc les métriques mO.0 et mO.1 et comme on peut le voir sur la figure 3c, ce procédé permet d'éliminer le tronçon de chemin aboutissant à l'état 1 de l'échantillon k. Un phénomène nouveau par rapport à l'algorithme de VITERBI classique est que, pour une branche-hypothèse, on peut avoir besoin de plusieurs échantillons de y au lieu d'un seul (surtout si plq est différent de 1). Leur nombre fluctue en raison des variations de la phase estimée, et donc il peut varier selon l'état x(i). La première conséquence est que nous devons garder aussi en mémoire les valeurs n(1)... n(N) du dernier indice de y dépendant de chaque état. La deuxième conséquence est qu'on peut utiliser plusieurs valeurs de distances pour le calcul de la métrique (car rappelons qu'il y a une réestimation de phase par échantillon de y). L'idée est d'utiliser une métrique du type: en2 n o n parcourt les indices des échantillons de y correspondant à la s branche-hypothèse. Les échantillons de y dont la phase est proche de + ou - 0,5 sont moins porteurs d'informations que ceux dont la phase avoisine zéro, en raison de l'amplitude de la réponse canal et donc du rapport signal sur bruit en ces endroits (ou inversement selon l'origine choisie). On va donc, pour améliorer le taux crd'erreur, pondérer cette métrique. D'autre part, pour ne pas déséquilibrer les métriques entre deux branches- hypothèses à nombres d'échantillons différents, il faut que la somme des poids soit toujours la même (on peut choisir I par exemple). Il s'ensuit que la métrique aura la forme: p(ta) en2 i$ (3) m(i)= -.; p(t)3) n o les p(tn) désignent les poids attribués aux phases tn. Par exemple, on peut prendre une pondération uniforme, c'est-à-dire telle que p(t) = I pour tout t. Le procédé selon l'invention appliquant l'algorithme de VITERBI peut se résumer de la façon suivante: A chaque étape temporelle k, on dispose des informations suivantes: - les états x(1), x(2)... x(N) - chacun à une métrique mk(1), mk(2)... mk(N) - et une phase tk(1), tk(2)...tk(N) - et un indice de y correspondant nk(1l), nk(2).. nk(N) Ces informations sont celles qui restent après le choix du survivant (voir figure 2). L'ensemble des chemins survivants complets est mémorisé, comme pour l'algorithme de VITERBI classique, jusqu'à un certain rang k-P o P est appelé profondeur. A l'initialisation, pour k décodes zk. La figure 4 représente un organigramme de décodage simplifié selon rinvention dans lequel on suppose que la fréquence d'échantillonnage est égale à la fréquence du signal à décoder. On suppose que pour un échantillon k donné à traiter on a en mémoire: - les métriques mk_ (i) et les phases tk_1 (i) pour tous les états i à l'étape (échantillon) précédent k-1. Pour cet échantillon Xk, pour un premier état j et pour un premier chemin i conduisant à ce premier état j, on fait un calcul de phase et un calcul de métrique en appliquant les formules (en notation vectorielle): ek = xT(i, j). k(tk-1 (i)) - Yn e'k = XT(i, j) k'(tk1 (i)) phase: t'(i) = tkl(i) +1 -c ek e'k métrique: m'(i) = ek On reboudcle ce fonctionnement pour chaque chemin i. Lorsque tous les chemins i conduisant à un état j ont été calculés, on conserve en mémoire la phase et la métrique du chemin ayant la métrique le plus faible. On reboucle ensuite ce fonctionnement pour chaque état j. Lorsque tous les états j et les différents chemins i ont été calculés, on a en mémoire une métrique et une phase par état. Le système est prêt à traiter l'échantillon suivant. La figure 5 représente un organigramme crd'un exemple de procédé détaillé selon l'invention. Sur cet organigramme on retrouve la boudcle (A) de l'organigramme de la figure 4 ainsi que la boudcle (B). On voit que la boucle (A) comporte différentes phases supplémentaires qui correspondent au cas o la fréquence d'échantillonnage est supérieure à la fréquence signal. On remarque sur l'organigramme de la figure 5 la notation vectorielle pour exprimer le filtrage par h(t) et h'(t). Le vecteur noté x(i, j) est la concaténation des états x(i) et x(j) (donc correspond en principe à x(j) précédé d'un symbole); la dimension de x(i, j) est égale au nombre d'échantillons significatifs de la réponse h(t) échantillonnée. Pt représente le dénominateur dans l'expression (3). Selon cet organigramme: - pour chaque configuration en entrée du canal, xk qu'on cherche à connaître, il y a N possibilités x() qu'on appelle états, chacun étant relié par des chemins à (au plus) N états x(i) qui correspondent à l'entrée precédente Xk- 1; - pour chaque état présent x(j), pour chaque état précédent x(i), pour chaque échantillon Yn en sortie du canal, si l'indice temporel n correspond bien au chemin reliant Xkl1, à xk pour les états x(i) et x(j) considérés, on calcule la phase tn et un terme de métrique qui caractérise la longueur du chemin. Lorsque tous les états précédents x(i) et tous les échantillons Yn à prendre en compte ont été ainsi traités, on garde en mémoire un seul état precédent x(i), appelé survivant, choisi parce qu'il minimise la somme de la métrique qu'il avait précédemment et des termes de métriques qui viennent d'être calculés. Cette somme constitue la nouvelle métrique de l'état présent x(j), et elle sera aussi gardée en mémoire ainsi que la phase et le dernier indice n correspondants; - les choix des survivants permettent au fur et à mesure du fonctionnement de sélectionner des chemins probables et d'en éliminer d'autres de facçon à ce qu'il n'en reste plus qu'un qui fournira l'entrée décodée. En effet, on recommence les opérations précédentes pour l'entrée k+1 et les nouveaux échantillons Yn correspondants (n dépendant de l'état x(j) envisagé). Ce choix des survivants peut donc aboutir à abandonner des chemins conservés précédemment. On s'aperçoit qu'en remontant dans le passé, le nombre de chemins possibles diminue et que bientôt il n'en reste plus qu'un. Ce chemin unique est la séquence décodée selon le principe du maximum de vraisemblance. L'invention propose donc d'une part un moyen de déterminer la phase des données transmises par rapport à l'horloge d'échantillonnage et d'autre part elle constitue une extension de l'algorithme de VITERBI. Pour chaque branche du treillis de décodage qui se construit comme pour l'algorithme de VITERBI, on estime la phase récursivement par une méthode de gradient utilisant la dérivée de la réponse impulsionnelle du canal. Puis on intègre cette information dans le modèle de canal qui sert à calculer les métriques. Une fois les métriques calculées, on procède comme pour l'algorithme de VITERBI classique. Remarquons que l'information de phase calculée par le procédé de l'invention devra être conservée pour chaque état du treillis, au même titre que la métrique obtenue par l'algorithme de VITERBI. Contrairement à la phase, la réponse impulsionnelle du canal est supposée connue à l'avance. L'invention présente les avantages: - de pouvoir travailler sur un signal échantillonné à une fréquence très basse en dépit du repliement, voire à la fréquence symbole elle-même; - d'utiliser le canal sans lui donner une réponse partielle particulière contrairement à ce qui est couramment proposé lorsqu'on utilise le décodage de VITERBI en enregistrement magnétique, ce qui fait une économie d'égalisation. On peut notamment travailler sur le canal de Nyquist (contrairement au décodeur de VITERBI simple, qui n'apporte rien dans ce cas). REVENDICATIONS 1. Procédé de transmission d'informations comprenant un système de réception de signaux de données par échantillonnage à l'aide de signaux d'horloge, caractérisé en ce qu'il comporte un procédé de calcul de déphasage entre les signaux d'horloge et les signaux de données dans lequel on effectue l'opération qui est une formulation du gradient tn+1 = tn + P/q - act en (tn) e'n (t) dans laquelle on a: tn+1: le signal de déphasage à calculer pour le signal de donnée de rang kn+1; tn: le signal de déphasage calculé antérieurement pour le signal de donnée de rang kn; p/q: le rapport de la période d'horloge sur la période des données; a: un coefficient d'adaptation; en (tn): l'erreur entre un échantillon réel et la valeur théorique qui avait été prévue pour cet échantillon; e'n (tn): la dérivée de la valeur de en (tn) par rapport à tn; la valeur en (tn) étant donnée par: en (t) = Ek zk h (n Te - kTs + t) - Yn avec: zk: une valeur théorique de signal de donnée; h: une réponse impulsionnelle du canal Et la valeur e'n(tn) étant donnée par: ! e(t) = IZkh' (nTe -kTs + t) k avec h' dérivée de la réponse impulsionnelle du canal par rapport au temps. 2. Procédé selon la revendication 1, caractérisé en ce que: - pour chaque configuration en entrée du canal, xk qu'on cherche à connaître, il y a N possibilités x(j) qu'on appelle états, chacun étant relié par des chemins à (au plus) N états x(i) qui correspondent à l'entrée précédente Xk 1; pour chaque état 'présent x(j), pour chaque état précédent x(i), pour chaque échantillon yn en sortie du canal, si l'indice temporel n correspond bien au chemin reliant xkl, à xk pour les états x(i) et x(j) considérés, on calcule la phase tn et un terme de métrique qui caractérise la longueur du chemin; lorsque tous les états précédents x(i) et tous les échantillons Yn à prendre en compte ont été ainsi traités, on garde en mémoire un seul état précédent x(i), appelé survivant, choisi parce qu'il minimise la somme de la métrique qu'il avait précédemment et des termes de métrique qui viennent d'être calculés, cette somme constituant la nouvelle métrique de l'état présent x(j), étant aussi gardée en mémoire ainsi que la phase et le dernier indice n correspondants; - les choix des survivants permettant au fur et à mesure du fonctionnement de sélectionner des chemins probables et d'en éliminer d'autres de façon à ce qu'il n'en reste plus qu'un qui fournira l'entrée décodée. 3. Procédé selon la revendication 1, caractérisé en ce qu'il est appliqué à un procédé de décodage utilisant l'algorithme d'estimation de séquence selon le maximum de vraisemblance (MLSE), un calcul de déphasage étant réalisé en même temps qu'un calcul de métrique prévu dans un algorithme d'estimation de séquence selon le maximum de vraisemblance (MLSE). 4. Procédé selon la revendication 2, caractérisé en ce que la métrique du chemin reliant un état à un état précédent est réalisée en faisant l'opération: = .P(ta)C2. m(i)= = nP(tn o p(tn) représente un poids attribué aux phases (tn); puis chaque phase estimée et chaque métrique pour chaque état est mis en mémoire; ce processus étant réalisé pour chaque échantillon d'une donnée. 5. Procédé selon la revendication 4, caractérisé en ce que le processus de calcul est réalisé pour plusieurs échantillons d'une donnée jusqu'à ce que la phase tn+1 dépasse une valeur de seuil. 6. Procédé selon la revendication 1, caractérisé en ce que la valeur de seuil est 0,5.