FR 2962615 A1 20120113 FR 1002833 A 20100706 Procédé et dispositif d'analyse de train binaire et de reconstruction en aveugle de codes correcteurs d'erreurs. Domaine de l'invention L'invention s'applique aux différents domaines pour ce qui est de la reconnaissance en aveugle de codes correcteurs d'erreurs inclus dans les trames binaires de transmissions numériques destinés à les rendre plus robustes. La présente invention consiste d'abord en un procédé optimisé de reconnaissance en aveugle de codes correcteurs d'erreurs, sans connaissance préalable de la synchronisation et de la longueur de segmentation des trames binaires. 15 La présente invention consiste aussi en un système de reconnaissance de codes correcteurs d'erreurs capable d'opérer un traitement adaptatif en temps réel. L'invention consiste aussi en la mise au point d'un algorithme dit de pivot dualisé à la base du traitement algébrique des données reçues. Etat de l'art antérieur 25 Dans le domaine des télécommunications, il est fréquent de décrire une transmission numérique par trois éléments, un émetteur, un récepteur et un canal de transmission. La figure 1 décrit de façon symbolique et simplifié un émetteur 10 qui transmet un signal codé à travers le canal de transmission qui sera décodé par le récepteur 20. Pour augmenter la robustesse de la transmission, et s'affranchir des perturbations, il est connu 30 de l'homme de l'art d'inclure dans le signal à transmettre un code correcteur d'erreurs visant à réduire les erreurs en réception. Les codes correcteurs d'erreurs étant actuellement incontournables pour garantir des transmissions fiables, la maîtrise et la liberté lors de la mise en oeuvre des codes revêtent 10 20 un enjeu crucial par ailleurs eu égard au foisonnement des standards, des réseaux et des matériels. Dans tous les standards utilisés, l'approche privilégiée consiste en ce que l'émetteur et le récepteur se mettent d'accord sur le code correcteur d'erreurs, soit en le fixant une fois pour toute, soit par transmission en clair du schéma de codage et du code utilisé. Bien que cette approche soit à la base des communications classiques, elle trouve ses limites dans le fait que les codes choisis figurent parmi une liste très restreinte, fixe et non évolutive. Afin d'améliorer les transmissions numériques, et pour pallier aux inconvénients précédents, une autre solution consiste à s'affranchir de l'entente préalable entre l'émetteur et le récepteur sur le code correcteur d'erreurs utilisé. Cette technique apporte une souplesse dans la gestion et le contrôle dynamiques des réseaux en réduisant voire éliminant les problèmes de compatibilité liés à la diversité des équipements connectés présents et futurs en les rendant auto-configurants du point de vue des codes correcteurs utilisés. Dans les systèmes de transmission imaginés, le dispositif de réception doit être configuré de telle sorte qu'il puisse identifier en aveugle les paramètres de l'émetteur. Il existe à ce jour un certain nombre de techniques de détection en aveugle. Toutefois, les performances des algorithmes publiés sont assez limitées. Ces algorithmes fonctionnent dans des configurations tenant compte d'hypothèses fortes sur le type de code utilisé ainsi que sur le type d'erreur envisagé. De plus, les solutions techniques proposées ne traitent que de trains binaires peu entachés d'erreurs et de structure connue pour ce qui est des paramètres de longueur de segmentation et/ou de synchronisation. Elles ne fonctionnent pas non plus en régime de flux et ne trouvent leur utilité que dans le post-traitement des données. Présentation de l'invention Les codes correcteurs d'erreurs sont actuellement incontournables pour faire face aux altérations que toute transmission est susceptible d'engendrer sur des données numériques. Une palette très variée de codes correcteurs d'erreurs est en usage. Elle continue à s'enrichir des développements mathématiques et technologiques. Cette diversité des codes mis en oeuvre est incontournable. Elle répond en effet à des besoins de protection et des contraintes techniques variés et évolutifs. Les codes correcteurs d'erreurs utilisés dans la correction des erreurs des systèmes de transmission numérique sont caractérisés par des paramètres directement liés à la nature de la transmission. La finalité technique de l'invention consiste à mettre en oeuvre des moyens au niveau du système de réception qui permettront d'identifier ces paramètres, ainsi que de permettre leur enregistrement. Cette finalité a pour effet d'apporter de la souplesse dans la gestion des réseaux, et de permettre de développer des systèmes de transmission auto-configurants pour n'importe quel type de codage de correction d'erreurs utilisé pour la transmission de l'information. L'invention vise ainsi à améliorer la reconnaissance en aveugle des codes correcteurs d'erreurs, en particulier en la transposant à la détection d'une plus grande variété de codes. Son originalité vient de sa capacité à opérer un traitement en flux afin de réaliser en particulier une reconfiguration en temps réel, afin d'être en mesure de satisfaire les contraintes de maintien en condition opérationnelle malgré l'augmentation constante des débits de transmission. Cette possibilité technique trouve en particulier tout son sens dans des domaines d'application tels que la radio cognitive ou les réseaux reconfigurables. L'invention a ainsi pour ambition de traiter des codes correcteurs au sens large, c'est-à-dire pouvant être constitués de plusieurs codes ou blocs supplémentaires permettant d'améliorer les performances des codes correcteurs, tels que les codes en bloc, codes convolutifs, codes concaténés série ou parallèle, turbocodes, codes LDPC, avec entrelaceur ou poinçonnage. Cette liste n'est pas exhaustive, l'invention pouvant fonctionner avec d'autres types de codes. L'invention vise à mettre en évidence un procédé qui prend en entrée un flux binaire à analyser qui est codé et entaché d'erreurs en vue de reconstituer le codeur. Le procédé effectue alors des traitements itératifs permettant l'identification en aveugle des paramètres du codeur réellement utilisé par l'intermédiaire d'un algorithme innovant et rapide selon une technique qui se divise en deux phases qui seront décrites en détail dans la suite du document. 3 En particulier, le coeur du dispositif de l'invention repose sur un algorithme dit du pivot dualisé qui s'inspire de l'algorithme classique du pivot de Gauss mais qui a été entièrement repensé d'un point de vue dual. La transposition du traitement dans le monde dual propose plusieurs avantages. En effet, ce choix technique permet d'abord de réduire fortement la lourdeur des calculs de recherche des paramètres des codes. L'algorithme permet aussi de générer, et ce même en condition bruitée, des mots du code dual de petits poids. L'invention autorise ainsi l'usage de ressources de faible ampleur aussi bien en temps, espace mémoire, qu'en complexité de circuits électroniques lors d'une implémentation matérielle. Ainsi, conformément à un mode de réalisation privilégié, l'invention concerne d'abord un procédé de reconstruction en aveugle d'au moins un paramètre du code correcteur d'erreur à partir d'au moins une trame binaire, ledit paramètre étant inconnu, caractérisé en ce que ledit procédé comporte une première étape destinée à définir grossièrement les paramètres du code, se divisant en - la recherche d'une longueur de segmentation des données du train binaire compatible avec le code recherché. - l'obtention de formes linéaires candidates proches d'un éventuel code dual via l'appel de l'algorithme du pivot dualisé. - la validation d'au moins une forme linéaire sur au moins une partie du segment lu. - une synchronisation grossière et une segmentation grossière des données. ainsi qu'une seconde étape distincte destinée à l'affinement des paramètres et se divisant en - l'identification et test de formes linéaires proches du code dual via l'algorithme du pivot dualisé. - une mise à jour des formes linéaires et une synchronisation fine des données. - une validation finale des formes linéaires décrivant le code dual utilisé. L'invention a aussi pour objectif un dispositif de reconnaissance d'au moins un paramètre d'un code correcteur d'erreurs à partir d'au moins une trame binaire, ledit paramètre étant inconnu, caractérisé en ce que le dispositif utilise des moyens permettant le traitement en flux des données, et qu'il comprend des moyens associés à une première étape destinée à 30 définir grossièrement les paramètres du code, se divisant en - des moyens pour la recherche d'une longueur de segmentation des données compatible avec le code recherché. - des moyens pour l'obtention de formes linéaires candidates proches d'un éventuel code dual via l'utilisation de l'algorithme du pivot dualisé. - des moyens pour la validation d'au moins une forme linéaire sur au moins une partie du segment lu. - des moyens pour assurer une synchronisation grossière et une segmentation grossière des données. ainsi que des moyens associés à une seconde étape destinée à l'affinement des paramètres et se divisant en - des moyens pour l'identification et le test de formes linéaires proches du code dual via l'algorithme du pivot dualisé. - des moyens pour la mise à jour des formes linéaires et une synchronisation fine des données. - des moyens pour une validation finale des formes linéaires décrivant le code dual utilisé. Le dispositif ainsi constitué peut porter le nom de codanalyseur qui synthétise la fonction d'analyse des codes correcteurs d'erreurs. La première étape du procédé a pour objectif d'avoir rapidement et en temps réel des informations sur les paramètres du code correcteur d'erreurs, la seconde étape visant à l'affinage des informations. L'invention utilise favorablement un système de filtrage entre ces deux étapes. Selon un mode particulier de l'invention, le procédé comporte une étape de filtrage du 30 train binaire à partir des paramètres suivants : - la au moins une forme linéaire déterminée, - sa localisation dans la trame. Le système de filtrage est un dispositif auto-adaptatif novateur qui règle en temps réel la sélection des mots bruités en fonction des demandes de l'analyseur autodidacte et en fonction des ressources. Il choisi d'éliminer ou pas les données reconnues comme entachées d'erreurs. D'autres avantages et caractéristiques apparaitront à la lecture du document. Il nous semble judicieux à ce niveau de décrire en entier le procédé et les moyens à mettre en oeuvre pour atteindre l'objectif de reconstruction en nous appuyant sur les figures de principes et schéma d'algorithme que nous introduisons ici : 10 La figure 1 représente symboliquement un émetteur et un récepteur de train binaire à la base de la transmission numérique. Les figures 2a et 2b représentent respectivement le principe de segmentation des mots de code, l'affinage et recentrage des formes linéaires. 15 La figure 3 représente les blocs principaux de l'invention et leurs interactions. Les figures 4a et 4b représentent le processus de reconstruction en aveugle des codes correcteurs d'erreurs. La figure 5 décrit le principe de fonctionnement de l'algorithme du pivot dualisé. 20 Nous décrivons ici les différents modules impliqués dans le procédé, en tenant compte du fait que l'architecture a été pensée pour être adaptative et bénéficier de calculs itératifs entrainant des gains de temps et de ressources. Pour cette raison, l'enchaînement des blocs de traitement décrits par la suite ne doit pas être vu comme purement séquentiel. L'homme de l'art comprendra dans la suite de la description les imbrications possibles entre les 25 blocs et la souplesse de fonctionnement du système. La figure 3 décrit les blocs impliqués dans l'invention - Une mémoire tampon 301 stocke temporairement le train binaire constitué de mots 30 d'emplacement et de longueur N inconnus à priori. - Un module de segmentation du train binaire et de synchronisation grossière 302 reçoit l'information transmise par la mémoire tampon. Le module récupère des données de la mémoire sous la forme d'un segment des 2N'-1 premiers bits d'un paquet de données de longueur 2N' qu'il utilise comme pseudo-mots du codeur.5 Chaque pseudo-mot permet de construire 2N'-1 formes linéaires candidates à appartenir au code dual par appel via l'algorithme du pivot dualisé. Pour ce faire, le module transfère d'abord les segments du train binaire au module de calcul en formes linéaires 304 via l'algorithme du pivot dualisé et reçoit en retour les formes linéaires. Le module attribue une valeur N' d'un multiple probable de la taille d'un mot de code de taille N, fait le calcul de la synchronisation grossière associée, et transmet à un dispositif paramétrable de filtrage 303 les formes linéaires et les informations de segmentation et de synchronisation. - Un dispositif paramétrable de filtrage 303 qui reçoit les formes linéaires et les informations de synchronisation et commande la mémoire tampon 301. Le dispositif doit être vu comme un système auto-adaptatif qui règle en temps réel la sélection des mots bruités en fonction des demandes de l'analyseur autodidacte et en fonction des ressources. - Le module de calcul de formes linéaires 304 contenant l'algorithme du pivot dualisé de la figure 5 qui sera décrit plus en détail par la suite. - Le module d'identification et de test de formes linéaires proches du code dual 305. Le module teste les formes linéaires candidates sur de nouveaux pseudo-mots reçus filtrés par le dispositif paramétrable de filtrage 303. Une forme linéaire compatible est une forme linéaire qui annule tous les mots du code. Les pseudo-mots reçus peuvent ne pas s'annuler en totalité lorsqu'ils comportent des erreurs de transmission. - Le module de mise à jour des formes linéaires et de synchronisation fine 306 qui reçoit du module d'identification et de test de formes linéaires proches du code dual 305 les formes linéaires qui sont compatibles avec des pseudo-mots reçus. Le module de mise à jour et de synchronisation fine réorganise les formes linéaires en intégrant les nouvelles formes linéaires reçues et en validant ou non statistiquement les formes linéaires précédemment reçues. Le module de mise à jour et de synchronisation fine affine la synchronisation. Il transfère au filtre un ensemble de formes linéaires décrivant la partie identifiée du code dual. Le module de mise à jour et de synchronisation fine délivre aussi la taille N' des pseudo-mots de code ainsi que la valeur représentative de l'instant de synchronisation qui correspond à un début de segment de données. - Le module de validation et de mise en forme délivre un ensemble de formes linéaires décrivant la partie identifiée du code dual. Le module de validation et de mise en forme met en forme les paramètres du codeur à travers son code dual et regarde la complétude du code. Dans la négative, le module de validation et de mise en forme commande le traitement d'un nouvel ensemble de données. Le module de validation et de mise en forme délivre pour finir les paramètres du code tels que son type, les caractéristiques de l'entrelaceur si besoin (et motif de poinçonnage s'il y lieu) et les formes linéaires engendrant le code dual. Définitions Pour la clarté de la description, on introduit ici les définitions des éléments qui seront utilisés dans la suite. N : taille d'un mot de code. N' : taille d'un pseudo-mot de code. Nbseg : Nombre de segments déjà exploités pour la construction de formes duales. Nbmax(x) : Fonction prédéfinie par l'utilisateur qui donne le nombre maximal autorisé de segments ou pseudo-mots bruités de taille x utilisables pour générer des formes linéaires proches du dual du code. s : Nombre de bits consécutifs pouvant être retirés en fin de tout bloc de taille 2N' bits en étant assuré qu'il subsiste un pseudo-mot complet de taille N' dans le bloc résiduel. M : matrice de réduction. Indmin : position de la première coordonnée non nulle d'une forme linéaire considérée comme appartenant au dual du code. Indmax : position de la dernière coordonnée non nulle d'une forme linéaire considérée 25 comme appartenant au dual du code. NbMots : Nombre de pseudo-mots déjà exploités pour la construction de formes linéaires proche du dual du code. 30 Description détaillée de l'invention On souhaite dans un premier temps déterminer une longueur de segmentation compatible avec la structure induite par le codeur. Il s'agit donc de tester des longueurs de segmentation N' candidates jusqu'à pouvoir détecter une forme linéaire du dual du code correcteur d'erreurs et de permettre par là-même, du fait de sa localisation dans le mot de code, une première synchronisation grossière. Il est possible à ce niveau d'optimiser le choix des valeurs de N' pour accélérer le processus de traitement. L'homme de l'art sait par expérience que tester N' revient à tester tous ses diviseurs. De plus, les entiers N possédant des diviseurs premiers assez petits sont plus utilisés dans les codes. D'autres stratégies sont possibles, en particulier l'utilisation de tables contenant une liste d'entier N les plus usuels qui permettraient de réduire les temps de traitement. Une autre voie envisageable consiste en la reconnaissance des séquences dédiées à la gestion du réseau permettant ainsi de connaître directement un multiple de N. Ces diverses approches peuvent être combinées. Plusieurs stratégies sont donc possibles permettant de s'adapter à l'environnement et aux contraintes de l'application. On s'appuie sur la figure 4a pour la description. Dans un premier temps, le procédé sélectionne à l'étape E401 une valeur N' et segmente le train binaire en segments de 2N' bits consécutifs. Le traitement des segments utilise la variable Nbseg ainsi que la matrice de réduction M. 20 Le procédé, à travers l'étape E401, met la variable Nbseg à la valeur nulle et met la matrice M égale à la matrice identité I2N'_lde dimension 2N'-1. A l'étape suivante E402, le procédé selon l'invention vérifie si la variable Nbseg est inférieure à une valeur prédéterminée Nbmax(2N'-1). Nbmax(x) constitue le nombre 25 maximal autorisé de segments ou pseudo-mots bruités de taille x utilisables pour générer des formes linéaires proches du dual du code. Lors d'une étape d'itération Nbmax(x) contrôle aussi la fin de phase de recherche de formes duales et donne accès au traitement des résultats. Si la variable Nbseg est inférieure à la valeur prédéterminée Nbmax(2N'-1), on passe à l'étape E403. Dans la négative, on retourne au début du processus. 30 Dans l'affirmative, un segment s comprenant 2N' données reçues est obtenu. Le segment s est représenté sur la figure 2a. Il comprend un certain nombre de mots reçus et constitue ainsi le pseudo-mot à la base du traitement. Il est à noter que le début du segment s peut ne pas coïncider avec le début d'un mot de code. A l'étape suivante E404, la variable Nbseg est incrémentée d'une unité. L'étape suivante introduit pour la première fois l'algorithme du pivot dualisé. Il s'agit à ce niveau de construire les formes linéaires candidates. A l'étape E405, on active l'algorithme du pivot dualisé selon l'invention, lui transfère la matrice de réduction M des formes linéaires candidates et le segment s, et obtient en réponse une nouvelle matrice de réduction M. Pour comprendre plus en détail le processus suivi, l'algorithme du pivot dualisé est décrit à la figure 5. Cette description est reprise à la fin de la description du procédé. A l'étape suivante E406, on vérifie si le segment s se réduit à un ensemble de valeurs 15 nulles. Si le segment s se réduit à un ensemble de valeurs nulles, on retourne à l'étape E402. Dans la négative, on passe à l'étape E407. L'étape E407 valide les formes linéaires candidates. Via le filtre, la forme candidate est appliquée sur un ensemble de pseudo-mots de code du segment s. La proportion de 0 20 obtenue permet grâce à un seuil de valider ou non la forme candidate. Diverses stratégies sont envisageables pour réaliser cette fonction de test, leur pertinence dépend des conditions d'utilisation et des attentes de l'utilisateur (prise de risque vs temps de calcul et moyens). 25 Selon une première stratégie, un seuil d'acceptation Sa et un nombre K de pseudo-mots sont préalablement fixés. Le nombre n de fois où 0 est obtenu par application de la forme candidate sur l'un des K pseudo-mots est calculé. Si K > Sa alors la forme est acceptée, sinon elle est rejetée. Selon une seconde stratégie, un seuil d'acceptation Sa, un seuil de refus Sr, un nombre k de pseudo-mots consécutifs et un nombre maximal K. de pseudo- 30 mots sont préalablement fixés. Le test procède par itération de k pseudo-mots, sans dépasser un nombre total Kmax. A la ième itération, le nombre n de 0 obtenu par application de la forme candidate sur les ixk premiers pseudo-mots est actualisé. Si n > Sa alors la ixk forme est acceptée, si n recommence pour une nouvelle itération. Si le nombre K. de pseudo-mots est dépassé alors la forme est également rejetée. A l'étape suivante E408, le procédé vérifie si une forme linéaire du code dual a été trouvée. Dans l'affirmative, on passe à l'étape E409. Dans la négative, on retourne à l'étape E402. A l'étape E409, on procède à un recentrage et à un affinage des formes linéaires. Cette étape vise à réduire le nombre de bits utiles pour les calculs. Le procédé détermine le nombre s de bits consécutifs qui peuvent être retirés à la fin d'un segment s tout en s'assurant qu'il subsiste un pseudo-mot de code complet de taille N' dans le segment résiduel s'. Le non entrelacement des formes linéaires duales connues conduit à une suspicion de N' multiple distinct de N. Si elle est fondée, chaque forme linéaire doit pouvoir être translatée d'une longueur N" qui est un diviseur de N' plus proche de N. Il suffit alors de tester par autocorrélation comme cela a été décrit à l'étape E407 pour déterminer la crédibilité de la valeur N". En cas de réponse positive, N' prend la valeur de N", les paramètres du procédé de codage de la trame binaire de données ainsi que la matrice des formes linéaires retenues sont mis à jour. Un exemple de détermination du nombre s de bits consécutifs qui peuvent être retirés à la fin d'un segment s est décrit à travers les figures 2a et 2b. On fait ressortir un pseudo mot de longueur s contenant des mots de code de longueur N (ml, ...) sur la figure 2a. Les traits verticaux gras de la figure 2b représentent les bits non nuls des formes linéaires trouvées. Indmin représente la position du premier bit non nul. Indra représente la position du dernier bit non nul résultant de l'application de la forme linéaire trouvée sur le pseudomot de code. Le nombre s est égal à la différence entre Indra et Indmin plus un. Un décalage de (Indra plus N') modulo 2N' est appliqué sur les formes linéaires et sur les segments à venir de données de taille 2N'. Les s derniers bits de chaque segment étant inutiles au traitement pourront être avantageusement supprimés lors des calculs. L'étape se termine par la synchronisation grossière. A l'étape suivante E410, on initialise le filtre en lui fournissant la première segmentation grossière compatible avec le codeur au sens large (longueur N' et synchronisation grossière to), ainsi que la ou les première(s) forme(s) du code dual. Ainsi se termine la première phase. La seconde phase du procédé, qui commence par l'étape E411, doit se conclure par la reconnaissance du code correcteur d'erreurs. Elle va consister à affiner les paramètres de segmentation et de synchronisation qui participent à sa reconstruction. Cette phase introduit la fonction du filtre auto-adaptatif dont l'importance est primordiale, comme décrit par la suite, dans le choix des pseudos mots à filtrer. La figure 4b décrit le processus suivi. Il débute par un appel au filtre qui se charge de fournir des pseudo mots de code de longueur 2N' bits amputés de leurs e derniers bits. Le filtre est un dispositif auto-adaptatif qui élimine ou pas les données reconnues comme entachées d'erreurs en respectant deux buts. Le premier est quantitatif, il consiste à répondre impérativement aux demandes de l'algorithme en lui fournissant suffisamment de pseudo-mots reçus de code. Le second est qualitatif, il consiste à gérer la qualité des pseudo mots de code transmis en autorisant des pseudo-mots reçus aux bruits reconnus pour assurer le débit nécessaire à l'algorithme et jouer sur ces bruits reconnus pour confirmer ou infirmer la description partielle du code dual obtenu lors des itérations précédentes de l'algorithme selon la présente invention. Afin de répondre à la demande en pseudo-mots, le filtre choisit un jeu de formes linéaires parmi celles considérées comme appartenant au code dual pour réaliser un crible des pseudo-mots reçus trop entachés d'erreurs. Il rejette tout pseudo-mot de code sur lequel ce jeu n'est pas identiquement nul. La redécouverte par l'algorithme selon la présente invention d'une forme connue mais exclue au préalable par le filtre du jeu permettant le crible renforce la crédibilité de cette forme linéaire. La seconde phase commence par l'étape E450 qui met la variable NbMots à la valeur nulle et met la matrice M égale à la matrice identité I2N>_c de dimension 2N'-s. NbMots est le nombre de pseudo-mots reçus déjà exploités pour la reconstruction de formes linéaires duales. A l'étape suivante E451, le procédé vérifie si la variable NbMots est inférieure à une valeur prédéterminée Nbmax(2N'-c). Si la variable NbMots est inférieure à une valeur prédéterminée Nbmax(2N'- e), on passe à l'étape E452. Dans la négative, on passe à l'étape E457. A l'étape E452, on obtient un pseudo mot de code comprenant 2N' données reçues. A l'étape suivante E453, on incrémente la variable NbMots d'une unité. 10 A l'étape suivante E454, on active dans un premier temps l'algorithme du pivot dualisé selon l'invention, lui transfère la matrice de réduction M et obtient en réponse une nouvelle matrice de réduction M. Cette étape est similaire à l'étape E405 de la phase 1. A l'étape suivante E455, on vérifie si le pseudo-mot reçu de code se réduit à un ensemble 15 de valeurs nulles. Si le pseudo mot de code se réduit à un ensemble de valeurs nulles, on retourne à l'étape E451. Dans la négative, on passe à l'étape E456. A l'étape E456, on valide les formes linéaires candidates comme cela a été décrit précédemment à l'étape E407 de la figure 4a. Cette opération réalisée, on retourne à 20 l'étape E451. L'étape E457 consiste à mettre à jour les formes linéaires candidates. On utilise l'algorithme classique du pivot de Gauss pour réduire chaque forme linéaire par l'ensemble des autres formes linéaires pour obtenir des formes plus élémentaires, par 25 exemple en supprimant des combinaisons linéaires de plusieurs formes linéaires duales disjointes. A l'étape E458, le bloc affine la synchronisation et décale cycliquement les formes linéaires en conséquence. La synchronisation fine est effectuée de manière similaire à 30 celle décrite à l'étape E409 de la figure 4a. Les informations disponibles permettent d'augmenter la valeur dee et de réduire ainsi la taille des données examinées. Plus la synchronisation est fine, plus s est grand et se rapproche de N'. Si s > N', il est possible de déterminer si une longueur N" de translation des formes linéaires duales est crédible. Si ce n'est pas le cas, il y a suspicion d'un N' diviseur strict de N. On peut alors doubler5 N'. Les paramètres du procédé de codage utilisés pour générer les données redondantes ainsi que la matrice des formes linéaires retenues sont mis à jour. A l'étape E459, le filtre est mis à jour avec les informations de décalage et de taille N'à 5 effectuer selon la synchronisation fine et avec de nouvelles formes linéaires du code dual. L'étape suivante E460 est une étape de validation et de mise en forme. A cette étape, certaines formes linéaires duales peuvent être éliminées, la connaissance de la longueur N des mots de code est affinée. A l'étape suivante E461, on vérifie si les paramètres du code tels que N, to, son type (la taille de l'entrelaceur du code si besoin, motif de poinçonnage s'il y a lieu..) et les formes linéaires engendrant le code dual sont complètement identifiées. Dans l'affirmative, on passe à l'étape E462. Dans la négative, on passe à l'étape E463. A l'étape E462, le système de validation délivre les paramètres du train binaire (N' et to) et ceux du code tels que son type, les caractéristiques de l'entrelaceur, le motif de poinçonnage s'il y a lieu et des formes linéaires engendrant le code dual formant alors une matrice de parité. A l'étape E463, le système vérifie si l'ensemble constitué par les formes linéaire duales connues est vide. Dans l'affirmative, on retourne à l'étape E400. Dans la négative, on retourne à l'étape E450. 25 Description de l'algorithme Nous décrirons sur la figure 5 l'algorithme du pivot dualisé selon l'invention. Nous présentons ici le principe de l'algorithme du pivot dualisé, lequel constitue un développement original de l'algorithme classique du pivot de Gauss. Il en diffère 30 radicalement par le point de vue adopté. Le principe de l'algorithme du pivot dualisé repose sur le calcul de formes linéaires directement dans l'espace dual. 10 15 20 L'algorithme du pivot dualisé présente l'avantage de n'utiliser que des opérations de base, autorisant des manipulations élémentaires transposables sur les circuits électroniques actuels. L'implémentation en flux de cet algorithme dualisé permet d'accéder au temps réel, un impératif crucial à la généralisation concrète dans les dispositifs échangeant des données numériques. Selon l'invention, les formes linéaires générées sont d'un poids faible qui respecte la structure avant entrelacement (codes linéaires ou codes convolutifs entrelacés éventuellement poinçonnés). Les formes linéaires construites par l'algorithme du pivot dualisé brisent ainsi l'entrelaceur en livrant directement des petits mots duaux. De plus, l'algorithme du pivot dualisé s'avère robuste face aux perturbations induites par les erreurs de transmission utilisant les architectures classiques de codes d'erreurs (par exemple codes linéaires ou codes convolutifs entrelacés éventuellement poinçonnés). En effet, la présence d'erreurs dans les mots transmis sont sans effet sur les valeurs prises par les formes linéaires dont le poids se réparti en dehors des emplacements des bits altérés. Plus une forme duale est de petit poids, moins son évaluation sur les mots reçus n'a de chance de différer de celle prise sur les mots émis, ceux du code. Ainsi une forme du code dual a d'autant plus de chance d'annuler un lot de mots reçus qu'elle est de petit poids. C'est ce type de formes qui est privilégié par l'algorithme du pivot dualisé. Expression formelle de l'algorithme du pivot dualisé Les propriétés (i) et (ii) ci-dessous livrent une version dualisée de l'algorithme du pivot de Gauss à l'aide d'une récurrence. La propriété (i) donne les formes linéaires initiales; la propriété (ii) traduit les conséquences sur les formes d'une prise de pivot. Ces deux propriétés permettent le calcul itératif des formes linéaires de réduction par le procédé ou le dispositif. Tout d'abord voici les notations utilisées pour exprimer les propriétés (i) et (ii). Soient K un corps et N un entier naturel. Soit (Xi )1~ jsN la base duale de la base canonique de KN Soient i un entier naturel inférieur ou égal à N. Soit P = {p1,..., p1 }une partie de {1,..., N} à i éléments. L'ensemble P servira à désigner les numéros correspondants aux pivots, Pk désignant le numéro du k -ième pivot. Soit (vk)1 Pour tout entier naturel k inférieur à i et tout entier j compris entre 1 et N, soit Fk ,i la forme linéaire qui à un vecteur générique v associe Fk i (v) = Xi (j (u' °P' )1s1 `k ), c'est-à-dire la j -ième coordonnée du vecteur obtenu par réduction du vecteur v par le système de pivot (vl,plll Le calcul itératif des formes linéaires par l'algorithme du pivot dualisé s'effectue conformément aux deux propriétés suivantes : (i) Pour tout entier j compris entre 1 et N, Fo i = X. . (ii) Si i est non nul alors pour tout entier j compris entre 1 et N, _ F. F,J - Fi-1>J F 1>P; \Ui / Fi-1,P;25 c'est-à-dire en termes matriciels Fo est la matrice identité de taille NxN, et F1= F1-1- 1( w1 Fi -1, p, vt ) où Wi désigne le vecteur colonne formé des coordonnées du vecteur Û,(U'"°»1`1`i-1 obtenu par réduction du vecteur u, par le système de pivot (vl, p1)1s1sj_1 Nous nous référons à la figure 5 pour décrire le fonctionnement de l'algorithme en termes de processus. En E500, la matrice des formes linéaires est initialisée à la matrice identité. L'étape E501 contrôle le passage à un pivot supplémentaire. S'il est souhaité, on passe à 10 l'étape E503. Dans la négative, on retourne à l'étape E502 avec comme résultat la matrice des formes linéaires. A l'étape E503, on sélectionne un vecteur v, que l'on va chercher à réduire. 15 A l'étape E504, on calcule le vecteur colonne W1 obtenu par réduction du vecteur v, . A l'étape E505, on vérifie si le vecteur colonne W, est un vecteur nul. Si oui, on retourne à l'étape E501. Sinon, on passe à l'étape E506. A l'étape E506, on choisit un numéro de pivot p tel que la p-ième coordonnée du vecteur 20 colonne est non nulle. A l'étape suivante E507, la matrice des formes linéaires se trouve mise à jour par le nouveau calcul de voir ci-devant (ii). REVENDICATIONS1 Procédé de reconstruction en aveugle d'au moins un paramètre du code correcteur d'erreurs à partir d'au moins une trame binaire, ledit paramètre étant inconnu, caractérisé en ce que ledit procédé comporte une première étape destinée à définir grossièrement les paramètres du code, se divisant en - la recherche d'une longueur de segmentation des données compatible avec le code recherché. - l'obtention de formes linéaires candidates proches d'un éventuel code dual via la version duale de l'algorithme du pivot de Gauss. - la validation d'au moins une forme linéaire sur au moins une partie du segment lu. - une synchronisation grossière et une segmentation grossière des données. ainsi qu'une seconde étape distincte destinée à l'affinement des paramètres et se divisant en - l'identification et test de formes linéaires proches du code dual via la version duale de l'algorithme du pivot de Gauss. - une mise à jour des formes linéaires et une synchronisation fine des données. - une validation finale des formes linéaires. 2 Procédé selon la revendication 1 caractérisé en ce que le procédé comporte une étape de filtrage du train binaire à partir des paramètres suivants - la au moins une forme linéaire déterminée. - sa localisation dans la trame. 3 Dispositif de reconnaissance d'au moins un paramètre d'un code correcteurs d'erreurs à partir d'au moins une trame binaire, ledit paramètre étant inconnu, caractérisé en ce que le dispositif utilise des moyens permettant le traitement en flux des données, et qu'il comprend des moyens associés à une première étape destinée à définir grossièrement les paramètres du code, se divisant en - des moyens pour la recherche d'une longueur de segmentation des données compatible avec le code recherché.- des moyens pour l'obtention de formes linéaires candidates proches d'un éventuel code dual via l'utilisation de la version duale de l'algorithme du pivot de Gauss. - des moyens pour la validation d'au moins une forme linéaire sur au moins une partie du segment lu. - des moyens pour assurer une synchronisation grossière et une segmentation grossière des données. ainsi que des moyens associés à une seconde étape destinée à l'affinement des paramètres et se divisant en - des moyens pour l'identification et test de formes linéaires proches du code dual via la version duale de l'algorithme du pivot de Gauss. - des moyens pour la mise à jour des formes linéaires et une synchronisation fine des données. - des moyens pour une validation finale des formes linéaires. 4 Dispositif selon la revendication 3 caractérisé en ce qu'il comporte des moyens de filtrage du train binaire à partir des paramètres suivants - la au moins une forme linéaire déterminée, - sa localisation dans la trame.