FR 2754366 A1 19980410 FR 9710122 A 19970807 COPROCESSEUR DE FILTRE Domaine de l'invention La présente invention concerne généralement les coprocesseurs et plus particulièrement les coprocesseurs de filtre mis en oeuvre dans des processeurs de signaux numériques. Arrière plan de l'invention Les systèmes de communication sans fil actuels, tels que les systèmes cellulaires numériques, nécessitent un traitement de signaux numériques important pour effectuer l'égalisation de voie, le codage/décodage de voie et le codage de parole. Un de ces systèmes cellulaires numériques est le système cellulaire numérique groupe spécial mobile (GSM). Dans une configuration typique de système cellulaire numérique GSN, un processeur de signaux numériques (DSP) séparé est affecté & un créneau temporel, et ainsi huit DSP sont nécessaires pour égaliser une seule porteuse radiofréquence (RF). Toutefois, chaque sortie de l'égaliseur doit être entrée dans un autre DSP séparé pour effectuer le décodage de voie. Au total, seize DSP sont nécessaires pour égaliser/décoder une seule porteuse RF. Si 1'on considère le grand nombre de porteuses RF déployé dans un système cellulaire tel que le GSM, le nombre de DSP utilisé dans un récepteur devient coûteux. Outre le coût, la taille du DSP est telle qu'en grand nombre, ils occupent une quantité importante de place, qui est précieuse à l'intérieur du récepteur. En outre, le grand nombre de DSP dissipe une quantité correspondante de chaleur qui doit être éliminée du récepteur. En bref, le grand nombre de DSP mis en oeuvre dans un récepteur tel que décrit ci-dessus présente un grand nombre d'inconvénients. Il existe donc un besoin de trouver une manière de recevoir le même nombre de signaux présents sur une seule porteuse RF sans avoir besoin du grand nombre de DSP affectés de l'art antérieur. Brève description des dessins La figure 1 décrit généralement, sous forme de schéma fonctionnel, l'architecture matérielle d'un coprocesseur de filtre suivant la présente invention. La figure 2 représente une organisation générale de données, coefficients et de sortie pouvant être utilisée dans le coprocesseur de filtre de la figure 1. Les figures 3 à 12 représentent l'organisation générale de données comme illustré sur la figure 2 pour des valeurs de décimation diverses de corrélation et de convolution pour les modes O et 1 lorsqu'elles sont appliquées à l'architecture matérielle de la figure 1. La figure 13 représente généralement un égaliseur capable de bénéficiser du coprocesseur de filtre suivant la présente invention. Les figures 14 à 19 représentent l'organisation générale de données comme représenté sur la figure 2, pour des valeurs de décimation diverses de corrélation et un filtrage adapté pour les modes 2 et 3 lorsqu'elles sont appliquées à l'architecture matérielle de la figure 1. La figure 20 représente généralement le coprocesseur de filtre de la figure 1 mis en oeuvre de façon profitable dans un récepteur d'un système de communication sans fil. Description détaillée d'un mode de réalisation préféré De manière générale, un coprocesseur de filtre situé dans un processeur de signaux numériques (DSP) tire profit de la nature orthogonale des signaux modulés pendant le processus d'égalisation. Etant donné que, après la réception, seules certaines valeurs réelles/imaginaires du signal reçu sont utiles pour la démodulation, le coprocesseur de filtre ne traite que ces valeurs pour estimer le signal transmis. En ne traitant que les valeurs utiles pour la démodulation, le coprocesseur de filtre est capable de traiter plus d'informations dans un temps donné, avec pour conséquence un traitement accru par rapport à l'art antérieur. Dans le mode de réalisation préféré, le coprocesseur de filtre comprend une première mémoire destinée à enregistrer des informations de données et une deuxième mémoire destinée à enregistrer des coefficients. Le coprocesseur de filtre comporte également un contrôleur destiné à commander un multiplicateur/accumulateur pour effectuer des fonctions de multiplication/accumulation dans une pluralité de modes de fonctionnement et destiné à coordonner la récupération des informations de données et des coefficients. Dans le mode de réalisation préféré, un mode de fonctionnement comprend en outre une corrélation entre une séquence de données complexes et une séquence de groupe moyen de données, la séquence de groupe moyen de données comprenant en alternance des valeurs complexes purement réelles/purement imaginaires. En outre, un autre mode de fonctionnement comprend une décimation de la sortie de la corrélation. Dans le mode de réalisation lié à la corrélation, un autre mode de fonctionnement comprend également une corrélation entre une séquence de données complexes suréchantillonnées 2X et une séquence de groupe moyen de données, la séquence de groupe moyen de données comprenant des valeurs complexes purement réelles/purement imaginaires en alternance 1X. Toujours dans le mode de réalisation préféré, un mode de fonctionnement comprend en outre un filtrage adapté où les données d'entrée sont complexes, les coefficients liés au filtrage adapté sont complexes, et la sortie est une séquence réelle de données purement réelles/purement imaginaires en alternance. Un autre mode de fonctionnement comprend une décimation de la sortie du filtrage adapté. Le coprocesseur de filtre décrit ci-dessus génère une sortie destinée à être utilisée par un algorithme d'estimation de séquences de probabilité maximum (MLSE). Les coefficients du coprocesseur de filtre comprennent les coefficients de réponse de voies et les coefficients de filtre adapté. Pour minimiser l'intervention d'une unité centrale de traitement, le coprocesseur de filtre fonctionne dans un mode de fonctionnement dans lequel un appareil d'accès à la mémoire directe est utilisé pour transférer les données entrées depuis la mémoire dans le coprocesseur de filtre et une sortie allant du coprocesseur de filtre à la mémoire. Le coprocesseur de filtre peut être appliqué à un égaliseur pour utilisation dans un récepteur compatible avec un système de communication sans fil. Dans ce mode de réalisation, l'égaliseur comprend un bloc de corrélation destiné à corréler une séquence de données complexes et une séquence de groupe moyen de données, la séquence de groupe moyen de données comprenant des valeurs complexes purement réelles/purement imaginaires et un bloc de filtrage adapté pour une entrée complexe de filtrage adapté en utilisant des coefficients complexes et en sortant une séquence réelle de données purement réelles/purement imaginaires en alternance. Un bloc d'estimation de séquence de probabilité maximum (MLSE) estime un signal transmis dans le système de communication sans fil sur la base de la sortie du bloc du filtrage adapté. Dans ce mode de réalisation, le bloc de corrélation et le bloc de filtrage adapté sont mis en oeuvre à l'aide de la première et de la deuxième mémoires et d'un contrôleur destiné à commander un multiplicateur/accumulateur pour effectuer des fonctions de multiplication/accumulation dans un premier mode correspondant à la corrélation et un second mode correspondant au filtrage adapté. Le premier mode correspondant à la corrélation et le deuxième mode correspondant au filtrage adapté sont effectués dans le coprocesseur de filtre à l'intérieur d'un processeur de signaux numériques. La figure 1 représente généralement l'architecture matérielle d'un coprocesseur de filtre suivant l'invention. Dans le mode de réalisation préféré, le coprocesseur de filtre est un coprocesseur de réponse impulsionnelle finie (FIR). Comme représenté sur la figure 1, le système est constitué par un bloc de mémoire de données 103 et un bloc de mémoire de coefficients 106 couplés ' à un multiplicateur/accumulateur 109 (MAC). La taille des blocs de mémoire est laissée à l'appréciation du concepteur du matériel, mais doit être assez importante pour s'adapter à la norme de télécommunication GSM. La figure 1 illustre également deux voies spécialisées d'accès à la mémoire directe (DMA) 112 et 113, la première 112 étant destinée au transfert de données dans le bloc de mémoire de données et la deuxième 113 étant destinée au transfert de données des résultats de FIR renvoyés à l'unité centrale de traitement CPU. Avec cette configuration, la quantité d'intervention de la CPU est minimisée pour être réduite à l'initialisation. Un tampon d'entrée de quatre mots 115 et un tampon de sortie d'un mot 118 constituent l'interface entre le processus de transfert DMA et le processus d'acquisition de données FIR. Le numéro de filtre 121 a pour tâche de commander la longueur du filtre FIR. Le générateur d'adresses 124 est responsable de la génération des pointeurs d'adresse en direction des blocs de mémoire 103 et 106 suivant un mode sélectionné. L'unité de commande 127 commande le fonctionnement de FIR et assure l'interface avec la CPU. Comme représenté sur la figure 1, une seule opération de Multiplication/Accumulation (MAC) est effectuée par cycle d'horloge. Cet architecture assure une flexibilité maximum pour gérer une grande variété d'applications de filtrage FIR, tout en maintenant un minimum d'étapes de calcul pour chaque application. Cela contribue à rendre cette solution peu coûteuse par rapport à la surface et au temps de calcul total. Comme mentiqnné ci-dessus, l'architecture du coprocesseur de filtre présentée sur la figure 1 peut gérer de multiples modes. Dans le mode de réalisation préféré, quatre modes de fonctionnement (configurés par 2 bits de mode) sont gérés 1. Mode 0 - Filtre FIR réel. 2. Mode 1 - Filtre FIR complexe. 3. Mode 2 - Filtre FIR complexe générant des sorties purement réelles/purement imaginaires en alternance. 4. Mode 3 - Corrélation complexe entre une séquence de données entièrement complexe et une séquence complexe composée d'éléments de données purement~réelles/purement imaginaires en alternance. Un bit de mode Non~Décimation/Décimation~par~2 supplémentaire a été défini pour gérer des systèmes de communication à Espace-T et Espace-T/2. Ainsi, les trois bits programmables permettent une mise en oeuvre efficace d'une large gamme d'applications de filtrage FIR, dont certaines sont énumérées et brièvement décrites cidessous Filtre FIR à convolution réelle (figure 3) Filtre FIR à convolution réelle avec décimation de sortie par 2 (figure 4) Filtre FIR à corrélation réelle (figure 5) ; Filtre FIR à corrélation réelle avec décimation de sortie par 2 (figure 6) Filtre FIR à convolution complexe (figure 7) Filtre FIR à convolution complexe avec décimation de sortie par 2 (figure 8) Filtre FIR à convolution complexe générant uniquement des sorties réelles (figure 9) Filtre FIR à convolution complexe générant uniquement des sorties imaginaires (figure 10) ; Filtre FIR à corrélation complexe (figure 11) Filtre FIR à corrélation complexe avec décimation de sorties par 2 (figure 12) Filtre FIR complexe générant en alternance des sorties purement réelles/purement imaginaires (figure 14) Filtre FIR complexe générant en alternance des sorties purement réelles/purement imaginaires décimées par 2 (figure 15) ; Corrélation complexe entre une séquence de données entièrement complexe et une séquence complexe composée d'éléments de données purementréelles/purement~imaginaires en alternance (figures 16 et 17); Corrélation complexe entre une séquence de données entièrement complexes suréchantillonnées par 2 et une séquence complexe composée d'éléments de données purement~réelles/purement~imaginaires en alternance (figures 18 et 19). L'architecture matérielle du coprocesseur de filtre suivant la présente invention est compatible avec la norme de télécommunication GSM. Dans le GSM, l'accès multiple à répartition dans le temps (AMRT) est utilisé avec une structure de trame de 4,615 millisecondes qui contient 8 créneaux temporels. Chaque créneau temporel est constitué de 156,25 bits. Pour des salves de données normales, il y a 2 bits de données chiffrés à 58, 26 bits de séquence d'apprentissage, 6 bits de queue et 8,25 bits de garde. Pour une salve de données d'accès, il y a 36 bits de données codées, 41 bits de séquence d'apprentissage, 8 bits de queue étendus, 3 bits de queue et 68,25 bits de garde étendus. Le plan de modulation est un MSK filtré par un filtre Gaussien à codage différentiel (GMSK) Les figures 3 à 12 représentent l'organisation de données générales comme représentée sur la figure 2 pour des valeurs de décimation diverses de corrélation et de convolution pour les modes 0 et 1 comme appliqués à l'architecture matérielle de la figure 1. Pour chaque figure, les étapes d'initialisation et de traitement des données sont fournies avec des puces, l'équation applicable utilisée pour effectuer le traitement étant également notée. Filtre FIR à convolution réelle (figure 3 > Equation Initialisation # Sélectionner numéro de filtre et de mode (= &num; valeurs de coefficient). Initialiser coefficients dans la banque de coefficients en ordre inverse. Mémoire centrale exécute les écritures &num;numéro~filtre. Traitement Si le tampon de données d'entrée est vide, déclencher Mémoire centrale/DMA pour transférer jusqu'à 4 nouveaux mots de données. Initialiser données dans la banque de données en ordre direct Mémoire centrale/DMA exécute les écritures &num;numéro~filtre. Calculer F(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Accéder à nouveau mot de données dans la banque de données et incrémenter le pointeur de banque de données. Filtre à convolution réelle avec décimation de sortie par 2 (figure 4) Equation Initialisation # Sélectionner numéro de mode et de filtre (= &num; valeurs de coefficient). Initialiser coefficient dans la banque de coefficients en ordre inverse. Mémoire centrale exécute écriture &num;numéro~filtre. Traitement Si le tampon de données d'entrée est vide, déclencher Mémoire centrale/DMA pour transférer jusqu'à 4 nouveaux mots de données. Initialiser données dans la banque de données en ordre direct Mémoire centrale/DMA exécute les écritures Enuméro~filtre. Calculer F(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Accéder à nouveau mot de données dans la banque de données et incrémenter le pointeur de banque de données. # Accéder à nouveau mot de données dans la banque de données et incrémenter le pointeur de banque de données. Filtre de corrélation réelle FIR (figure 5) équation Initialisation Sélectionner numéro de mode et de filtre (= &num; valeurs de coefficient). Initialiser coefficients dans la banque de coefficients en ordre inverse. Mémoire centrale exécute écritures &num;numéro~filtre. Traitement Si le tampon de données d'entrée est vide, déclencher Mémoire centrale/DMA pour transférer jusqu'à 4 nouveaux mots de données. Initialiser données dans la banque de données en ordre direct Mémoire centrale/DMA exécute les écritures &num;numéro~filtre. Calculer F(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Accéder à nouveau mot de données dans la banque de données et incrémenter le pointeur de banque de données. Filtre de corrélation réelle FIR avec décimation de sortie par 2 (figure 6) Equation Initialisation # Sélectionner numéro de mode et de filtre (= &num; valeurs de coefficient). Initialiser coefficients dans la banque de coefficients en ordre direct. Mémoire centrale exécute écritures &num;numéro~filtre. Traitement # Si le tampon de données d'entrée est vide, déclencher Mémoire centrale/DMA pour transférer jusqu'à 4 nouveaux mots de données. Initialiser données dans la banque de données en ordre direct Mémoire centrale/DMA exécute les écritures &num;numéro~filtre. Calculer F(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Accéder à nouveau mot de données dans la banque de données et incrémenter le pointeur de banque de données. Accéder à nouveau mot de données dans la banque de données et incrémenter le pointeur de banque de données. Filtre à convolution complexe FIR (figure 7) ; Equation Initialisation # Sélectionner numéro de mode et de filtre (= &num; valeurs de coefficient). Initialiser coefficients dans la banque de coefficients en ordre direct. Mémoire centrale exécute écritures &num;numéro~filtre. Traitement Si le tampon de données d'entrée est vide, déclencher Mémoire centrale/DMA pour transférer 2 ou 4 nouveaux mots de données. Initialiser données dans la banque de données en ordre direct Mémoire centrale/DMA exécute les écritures &num;numéro filtre. Calculer FR(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Calculer FI(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Accéder à nouveau mot de données (DR), incrémenter le pointeur de banque de données. Accéder à nouveau mot de données (DI), incrémenter le pointeur de banque de données. Filtre à convolution complexe FIR avec décimation de sortie par 2 (figure 8) Equation Initialisation # Sélectionner numéro de mode et de filtre (= &num; valeurs de coefficient). Initialiser coefficients dans la banque de coefficients en ordre direct. Mémoire centrale exécute écritures &num;numéro~filtre. Traitement Si le tampon de données d'entrée est vide, déclencher Mémoire centrale/DMA pour transférer 2 ou 4 nouveaux mots de données. Initialiser données dans la banque de données en ordre direct Mémoire centrale/DMA exécute les écritures &num;numéro filtre. Calculer @ FR(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Calculer FI(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Accéder à nouveau mot de données (DR), incrémenter le pointeur de banque de données. Accéder à nouveau mot de données (DI), incrémenter le pointeur de banque de données. Accéder à nouveau mot de données (DR), incrémenter le pointeur de banque de données. Accéder à nouveau mot de données (DI), incrémenter le pointeur de banque de données. Filtre à convolution complexe FIR ne générant que des sorties réelles (figure 9); Equation Initialisation # Sélectionner numéro de mode et de filtre (= &num; valeurs de coefficient). Initialiser coefficients dans la banque de coefficients en ordre inverse, en commençant par l'inversion des coefficients imaginaires. Mémoire centrale exécute écritures &num;numéro~filtre. Traitement Si le tampon de données d'entrée est vide, déclencher Mémoire centrale/DMA pour transférer 2 ou 4 nouveaux mots de données. Initialiser données dans la banque de données en ordre direct Mémoire centrale/DMA exécute les écritures &num;numéro~filtre. Calculer FR(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Accéder à nouveau mot de données (DR), incrémenter le pointeur de banque de données. Accéder à nouveau mot de données (DI), incrémenter le pointeur de banque de données. Filtre à convolution complexe FIR ne générant que des sorties imaginaires (figure 10) ; Epuation Initialisation # Sélectionner numéro de mode et de filtre (= &num; valeurs de coefficient). Données organisées en paires Im/Re. Initialiser coefficients dans la banque de coefficients en ordre inverse, en commençant par l'inversion des coefficients imaginaires. Mémoire centrale exécute écritures &num;numéro~filtre. Traitement Si le tampon de données d'entrée est vide, déclencher Mémoire centrale/DMA pour transférer 2 ou 4 nouveaux mots de données. Initialiser données dans la banque de données en ordre direct Mémoire centrale/DMA exécute les écritures &num;numéro~filtre. Calculer FI(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Accéder à nouveau mot de données (DI), incrémenter le pointeur de banque de données. ACcéder à nouveau mot de données (DR), incrémenter le pointeur de banque de données. Filtre à convolution complexe FIR (figure 11) ; Equation Initialisation # Sélectionner numéro de mode et de filtre (= &num; valeurs de coefficient). Initialiser coefficients dans la banque de coefficients en ordre direct, en commençant par l'inversion des coefficients imaginaires. Mémoire centrale exécute écritures &num;numéro~filtre. Traitement Si le tampon de données d'entrée est vide, déclencher Mémoire centrale/DMA pour transférer 2 ou 4 nouveaux mots de données. Initialiser données dans la banque de données en ordre direct Mémoire centrale/DMA exécute les écritures &num;numéro~filtre. Calculer FR(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Calculer FI(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Accéder à nouveau mot de données (DR), incrémenter le pointeur de banque de données. Accéder à nouveau mot de données (DI), incrémenter le pointeur de banque de données. Filtre à convolution complexe FIR avec décimation de sortie par 2 (figure 12) Equation Initialisation Sélectionner numéro de mode et de filtre (= &num; valeurs de coefficient). Initialiser coefficients dans la banque de coefficients en ordre direct, en commençant par l'inversion des coefficients imaginaires. Mémoire centrale exécute écritures &num;numéro~filtre. Traitement Si le tampon de données d'entrée est vide, déclencher Mémoire centrale/DMA pour transférer 2 ou 4 nouveaux mots de données. Initialiser données dans la banque de données en ordre direct Mémoire centrale/DMA exécute les écritures &num;numéro~filtre. Calculer FR(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Calculer FI(n), enregistrer résultat, déclencher Mémoire centrale/DNA. Accéder à nouveau mot de données (DR), incrémenter le pointeur de banque de données. Accéder à nouveau mot de données (DI), incrémenter le pointeur de banque de données. Accéder à nouveau mot de données (DR), incrémenter le pointeur de banque de données. Accéder à nouveau mot de données (DI), incrémenter le pointeur de banque de données. L'architecture matérielle représentée sur la figure 1 est particulièrement profitable lorsqu'elle est utilisée dans un. égaliseur d'un récepteur. Un tel égaliseur est représenté généralement sur la figure 13, sur laquelle des signaux orthogonaux I et Q sont entrés dans un bloc de corrélation 203. Il est important de noter que l'invention tire profit de l'orthogonalité entre I et Q, de sorte que le coprocesseur de filtre de la figure 1 peut être mis en oeuvre de façon avantageuse dans tout système modulé orthogonalement. En outre, la sortie du bloc de corrélation 203 est envoyée à l'entrée d'un filtre adapté 206. Le filtre adapté 206 reçoit également en entrée des signaux orthogonaux I et Q. La sortie du filtre adapté 206 est envoyée à l'entrée d'un décodeur Viterbi 209. Le bloc de corrélation 203, le filtre adapté 206 et le décodeur Viterbi 209 comprennent généralement l'égaliseur tel qu'il est bien connu dans la technique. La sortie du décodeur Viterbi 209 est envoyée à l'entrée d'un décodeur de voie (non illustré) qui exécute la suite du traitement du signal reçu. Les figures 14 à 19 représentent l'organisation générale de données comme représentée sur la figure 2, pour faire varier des valeurs de décimation de corrélation (mode 3) et de filtrage adapté (mode 2) comme appliqué à l'architecture matérielle de la figure 1. La première analyse est celle du processus de corrélation. Dans le processus de corrélation, les données entrées sont corrélées avec un motif de mots de synchronisation sous la forme d'un groupe moyen de données. Du fait de la nature du plan de modulation GMSK de GSM, le mot de synchronisation alterne entre des valeurs purement réelles et purement imaginaires. Normalement une multiplication entièrement complexe nécessiterait quatre opérations de multiplication et d'accumulation. Du fait de la nature du mot de synchronisation, deux multiplications seulement sont nécessaires étant donné que soit la partie. réelle soit la partie imaginaire est "0" (c'est-à-dire orthogonale). Le coprocesseur de filtre de la figure 1 tire profit de ces caractéristiques pour réduire le temps de calcul de moitié. Là encore, pour chaque figure, les étapes pour initialiser et traiter les données sont indiquées avec des puces, l'équation applicable utilisée pour effectuer le traitement étant également notée. Corrélation complexe entre une séquence de données entièrement complexe et une séquence complexe composée d'éléments de données Purement Réelles/Purement Imaginaires en alternance (figures 16 et 17) ; La séquence d'apprentissage (données reçues) est complexe (une paire d'échantillons I & Q par bit). La séquence de groupe moyen de données (données de référence) est constituée par des valeurs complexes Purement~Re/Purement~Im (un nombre purement complexe par bit) formant le tableau représenté sur la figure 16. Equation La fonction de corrélation est En tirant profit des composantes orthogonales de la séquence de groupe moyen de données, on obtient En conséquence, une sortie de corrélation complexe est calculée pour chaque entrée complexe, ce qui nécessite la moitié des opérations MAC. Initialisation # Sélectionner numéro de mode et de filtre (= &num; valeur de coeff). Initialiser coefficient dans la banque de coefficients en ordre direct. Mémoire centrale exécute écriture &num;numéro~filtre. Traitement A chaque fois que le tampon de données d'entrée est vide, déclencher Mémoire centrale/DMA pour transférer 2 ou 4 nouveaux échantillons de données. Initialiser données dans la banque de données en ordre direct Mémoire centrale/DMA exécute 2x écritures &num;numéro~filtre. Calculer FR(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Calculer FI(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Accéder à nouveau mot de données (DR), incrémenter pointeur de banque de données. Accéder à nouveau mot de données (DI), incrémenter pointeur de banque de données. # Corrélation complexe entre une séquence de données entièrement complexe suréchatillonnée par 2 et une séquence complexe composée d'éléments de données Purement~Réelles/Purement~Imaginaires en alternance (figures 18 et 19). La séquence d'apprentissage (données reçues) est suréchantillonnée 2x (2x échantillons I & Q par bit). La séquence de groupe moyen de données (données de référence) est constituée de valeurs complexes Purement~Re/Purement~Im (un nombre purement complexe par bit). Avant la corrélation, la séquence de groupe moyen de données est interpolée 2x en ajoutant un zéro complexe entre les valeurs purement complexes, formant le tableau représenté sur la figure 18. Equation La fonction de corrélation est En tirant profit des composantes orthogonales de la séquence de groupe moyen de données interpolées, on obtient Il peut être aisément démontré que lorsque n est "pair", les sorties du filtre sont indépendantes des échantillons d'entrées 'impairs" et lorsque n est "impair", les sorties du filtre sont indépendantes des échantillons d'entrées "pairs". En conséquence, les sorties de filtre paires et impaires peuvent être calculées séparément, nécessitant la moitié de la taille du bloc de mémoire de données. Initialisation # Sélectionner numéro de mode et de filtre (= &num; valeurs de coefficient). Initialiser coefficient dans la banque de coefficients en ordre direct. Mémoire centrale exécute écriture &num;numéro~filtre. Traitement A chaque fois que le tampon de données d'entrée est vide, déclencher Mémoire centrale/DMA pour transférer 2 ou 4 nouveaux échantillons de données. Initialiser données dans la banque de données en ordre direct Mémoire centrale/DMA exécute 2x écritures &num;numéro filtre uniquement pairs ou uniquement impairs. Calculer FR(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Calculer FI(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Accéder à nouveau mot de données (DR), incrémenter pointeur de banque de données. Accéder à nouveau mot de données (DI), incrémenter pointeur de banque de données. La deuxième analyse est celle du processus de filtrage adapté. Dans le processus de filtrage adapté, deux éléments spécifiques au processus d'égalisation utilisé dans le système GSM sont exploités. Tout d'abord, seules des valeurs de sorties réelles et imaginaires en alternance sont calculées. Là encore, cela tire profit de la nature orthogonale du plan de modulation GMSK. En outre, les données de sortie sont décimées par deux afin de traiter des données suréchantillonnées 2x et de fournir un seul échantillon par sortie binaire. La séquence de sortie est traitée comme une séquence purement réelle pour la poursuite du traitement par le décodeur Viterbi 209. Là encore, le mode de filtrage adapté du coprocesseur de filtre tire profit de ses caractéristiques afin de réduire le temps de calcul lié à la mise en oeuvre des multiplications complexes complètes. Là encore, pour chaque figure, les étapes d'initialisation et de traitement des données sont indiquées à l'aide de puces, l'équation applicable utilisée pour effectuer le traitement étant également notée. Filtre complexe générant des sorties Purement Réelles/Purement Imaginaires en alternance (figure 14) ; équation Initialisation Sélectionner numéro de mode et filtre (= &num; valeurs de coefficient). Initialiser coefficient dans la banque de coefficients en ordre inverse. Mémoire centrale exécute écriture &num;numéro~filtre. Traitement Si le tampon de données d'entrée est vide, déclencher Mémoire centrale/DMA pour transférer 2 ou 4 nouveaux mots de données. Initialiser données dans la banque de données en ordre direct Mémoire centrale/DMA exécute écritures &num;numéro~filtre. Calculer FR(n), enregistrer résultat, déclencher Mémoire centrale/DMA. # Accéder à nouveau mot de données (DR), incrémenter pointeur de banque de données. Accéder à nouveau mot de données (DI), incrémenter pointeur de banque de données. Calculer FI(n), enregistrer résultats, déclencher Mémoire centrale/DMA. Accéder à nouveau mot de données (DR), incrémenter pointeur de banque de données. Accéder à nouveau mot de données (DI), incrémenter pointeur de banque de données. Filtre complexe générant des sorties Purement Réelles/Purement Imaginaires en alternance, décimées par 2 (figure 15) ; Equation Initialisation # Sélectionner numéro de mode et filtre (= &num; valeurs de coefficient). Initialiser coefficient dans la banque de coefficients en ordre inverse. Traitement Si le tampon de données d'entrée est vide, déclencher Mémoire centrale/DMA pour transférer 4 nouveaux mots de données (2 données complexes). Initialiser données dans la banque de données en ordre direct (Mémoire centrale/DMA écrit). Calculer FR(n), enregistrer résultat, déclencher Mémoire centrale/DMA. Accéder à nouveau mot de données (DR), incrémenter pointeur de banque de données. Accéder à nouveau mot de données (DI), incrémenter pointeur de banque de données. Accéder à nouveau mot de données (DR), incrémenter pointeur de banque de données. Accéder à nouveau mot de données (DI), incrémenter pointeur de banque de données. Calculer FI(n), enregistrer résultats, déclencher Mémoire centrale/DMA. Accéder à nouveau mot de données (DR), incrémenter pointeur de banque de données. Accéder à nouveau mot de données (DI), incrémenter pointeur de banque de données. Accéder à nouveau mot de données (DR), incrémenter pointeur de banque de données. Accéder à nouveau mot de données (DI), incrémenter pointeur de banque de données. Auparavant, ces tâches étaient accomplies par un micrologiciel fonctionnant sur la mémoire centrale du processeur. Le tableau suivant illustre les améliorations apportées par l'utilisation du coprocesseur de filtre. Tableau 1 : Comparaison de salves normales Données Mode de Mode Longueur Longueur Nombre Nombre Durée @uréchantillonnées des données &commat;80MHz filtre de filtre de sorties de cycles 2X Filtre adapté 2 61x2 9x2 61 1474 18.5 us 2X Corrélation 3 26x2 26 52x2 3078 38.5 us 2x Filtre adapté Mémoire 61x2 9x2 61 4761 59 us celle 2X Corrélation Mémoire 18x2 18 36x2 4201 52.5 us centrale Tableau 2 : Comparaison de salves d'accès Données Mode de Mode Longueur Longueur Nombre Nombre Durée suréchantillonnées filtre des données &commat;80MHz de filtre de sorties de cycles 2X Filtre 2 36x2 9x2 36 924 11.6 us adapté 2X Corrélation 3 41x2 41 82x2 7308 91.5 us 2X Filtre Mémoire 61x2 9x2 61 2786 34.8 us adapté centrale 2X Corrélation Mémoire 41x2 41 82x2 16826 210.3 us centrale La figure 20 représente généralement le coprocesseur de filtre de la figure 1 mis en oeuvre de façon profitable dans un récepteur d'un système de communication sans fil. D'une manière générale, le récepteur reçoit un signal modulé orthogonalement 400 dans le circuit d'entrée de récepteur 406. Le signal modulé orthogonalement 400 est composé d'une pluralité de symboles. Dans le mode de réalisation préféré, les symboles sont reçus dans des première et deuxième branches du circuit d'entrée de récepteur 406 et la réception des symboles entre les première et deuxième branches est décalée d'une période de temps prédéterminée. Dans l'égaliseur de voie 212 mettant en oeuvre le matériel de coprocesseur de filtre représenté sur la figure 1, les symboles numérotés pair de la première branche du récepteur sont décodés indépendamment et les symboles numérotés impair de la deuxième branche du récepteur sont décodés indépendamment pour produire des informations décodées pour chaque branche du récepteur. Les informations décodées pour chaque branche du récepteur sont ensuite combinées et traitées par un circuit de sortie de récepteur (non représenté). Dans le mode de réalisation préféré, le signal modulé orthogonalement comprend en outre un signal modulé par déplacement de phase à quatre états (QPSK) qui est de manière spécifique, un signal modulé par modulation gaussienne à déplacement minimal (GMSK). D'autres types de modulation, par exemple une modulation à déplacement minimal (MSK) peuvent aussi être employés. Le récepteur de la figure 20 est compatible avec une interface radio d'accès multiple à répartition dans le temps (AMRT) et plus précisément l'interface radio AMRT du groupe spécial mobile (GSM). Les symboles numérotés pair de la première branche de récepteur sont décodés indépendamment et les symboles numérotés impair de la deuxième branche du récepteur sont décodés indépendamment pour produire des informations décodées pour chaque branche du récepteur. Pour effectuer le décodage indépendant, les données I et Q sont corrélées avec une séquence d'apprentissage pour estimer la réponse impulsionnelle de voie avant le filtrage adapté de la voie..,estimée avec les données reçues. La séquence d'apprentissage (données de référence) est constituée de valeurs complexes Purement~Re/Purement~Im en alternance (un nombre purement complexe par bit) comme représenté dans le tableau de la figure 16. Elle effectue ensuite une estimation de séquence de probabilité maximum (MLSE) et une annulation d'interférence intersymboles pour effectuer l'estimation de séquence de données de décision logique. Les données de décision logique sont ensuite transmises au décodeur de voie (circuit de sortie du récepteur) pour la poursuite du traitement. Le coprocesseur de filtre comme décrit ici et représenté sur la figure 1 effectue le processus de corrélation pour la réponse impulsionnelle de voie ainsi que pour le processus de filtrage adapté des données reçues avec cette voie estimée. En tirant profit du plan de modulation GMSR du système GSM, le nombre d'étapes pour effectuer la corrélation et le processus de filtrage adapté est grandement réduit, ce qui a pour conséquence qu'un moins grand nombre de DSP est nécessaire par porteuse RF. L'invention a été particulièrement illustrée et décrite en référence à un mode de réalisation particulier, mais les experts de la technique comprendront que différentes modifications de forme et de détail peuvent y être apportées sans s'écarter de l'esprit et de la portée de l'invention. REVENDICATIONS 1. Coprocesseur de filtre caractérisé par une première mémoire (103) destinée à enregistrer des informations de données ; une deuxième mémoire (106) destinée à enregistrer des coefficients ; et un contrôleur (127) destiné à commander un multiplicateur/accumulateur (109) pour effectuer des fonctions de multiplication/accumulation dans une pluralité de modes de fonctionnement et destiné à coordonner la récupération des informations de données et des coefficients. 2. Coprocesseur de filtre suivant la revendication 1, dans lequel un mode de fonctionnement est caractérisé en outre par une corrélation entre une séquence de données complexes et 'une séquence de groupe moyen de données, la séquence de groupe moyen de données comprenant des valeurs complexes purement réelles/purement imaginaires en alternance. 3. Coprocesseur de filtre suivant la revendication 1, dans lequel un mode de fonctionnement est caractérisé en outre par une corrélation entre une séquence de données complexes suréchantillonnées 2X et une séquence de groupe moyen de données, la séquence de groupe moyen de données comprenant des valeurs complexes purement réelles/purement imaginaires 1X en alternance. 4. Coprocesseur de filtre suivant la revendication 1, dans lequel un mode de fonctionnement est caractérisé en outre par un filtrage adapté dans lequel les données entrées sont complexes, les coefficients liés au filtrage adapté sont complexes, et la sortie est une séquence réelle de données purement réelles/purement imaginaires. 5. Coprocesseur de filtre suivant la revendication 1, dans lequel un mode de fonctionnement utilise un appareil d'accès à la mémoire directe (112) pour déplacer les données entrées de la mémoire au coprocesseur de filtre et une sortie du coprocesseur de filtre à la mémoire sans intervention d'une unité centrale de traitement.