Brevet FR2536942A1 — publié le 19840601

CIRCUIT DE CALCUL NUMERIQUE INTERPOLATEUR ASSURANT LE FILTRAGE ET, LE CAS ECHEANT, L'EGALISATION La présente invention a pour objet un circuit de calcul numérique interpolateur assurant le filtrage et, le cas échéant, I'égalisation. Dans un autocommutateur de central téléphonique numérique, le multimodem est un organe de transmission réalisant la modulation et la démodulation de signaux de signalisation, qui sont en général des signaux à modulation de phase différentielle (DPSK), ce multimodem étant situé derrière le réseau de connexion, de l'autocommutateur et fonctionnant en temps partagé.Le canal de transmission auquel est relié ledit autocommutateur, et qui peut comporter toutes sortes de supports (câbles, faisceaux hertziens, satellites, etc o . e ) ainsi que des dispositifs de régénération de signal et des organes de commutation, présente généralement des caractéristiques de transmission (affaiblissement et temps de propagation) défavorables, introduit des signaux perturbateurs qui peuvent provoquer des erreurs à la réception des signaux utiles dès que le rapport signal utile à bruit atteint un seuil critique. Pour que le canal de transmission, vu du modem présente des caractéristiques bien déterminées, et pour éliminer les parasites ayant des fréquences situées hors de la bande de fréquences utiles, on dispose généralement à l'entrée de la partie réception du modem un égaliseur et un filtre numériques. En outre, pour améliorer la reconnaissance des symboles des signaux modulés DPSK, on prévoit également un réseau interpolateur numérique à cette même entrée. Jusqu'à présent, ces trois dispositifs numériques, I'égaliseur, le filtre, et le réseau interpolateur, étaient réalisés séparément, ce qui rendait onéreux le modem, en particulier pour un fonctionnement en temps partagé sur un grand nombre de voies. La présente invention a pour objet un circuit numérique permettant de réaliser les fonctions d'égalisation, de filtrage, et d'interpolation, le maximum possible de composants de ce circuit étant communs à ces trois fonctions, ces trois fonctions étant réalisées, pour chaque échantillon incident, avant la fin de l'intervalle de temps correspondant. Le circuit selon la présente invention comporte un étage d'entrée de gestion des échantillons retardés à mémoire vive à décalage fictif des échantillons, la sortie de cet étage étant reliée à une entrée d'un circuit de multiplication dont l'autre entrée est reliée à la sortie d'un circuit de mémorisation de coefficients, ce circuit de mémorisation comportant un nombre de mémoires distinctes égal au nombre d'échantillons interpolés à obtenir à partir d'un échantillon incident, le circuit de multiplication comportant un même nombre de multiplieurs-accumulateurs distincts.Les coefficients mémorisés dans le circuit de mémorisation de coefficients correspondent à la fonction de transfert globale du circuit de calcul assurant le filtrage et l'égalisation de chaque voie considérée à une fréquence d'échantillonnage correspondant à la fréquence d'obtention désirée des échantillons du signal incident après interpolation, la sortie du circuit de multiplication étant reliée à la sortie du circuit de calcul par l'intermédiaire d'une interface tampon. La présente invention sera mieux comprise à la lecture de la description détaillée d'un mode de réalisation pris comme exemple non limitatif et illustré par le dessin annexé dont la figure unique est un blocdiagramme dudit mode de réalisation. Le circuit numérique représenté sur le dessin est disposé à l'entrée de l'étage de réception d'un multimodem d'autocommutateur numérique. L'exemple de réalisation décrit ci-dessous se rapporte à un multimodem prévu pour la transmission en mode n" 6 à 2400 bits/s, conformément à l'avis V26 du CCITT. Toutefois, il est bien entendu que le circuit de l'invention peut être utilisé dans des modems répondant à d'autres normes. Le circuit de l'invention comporte une borne d'entrée 1 reliée à la sortie du réseau de connexion (non représenté) de l'autocommutateur dans lequel il est disposé, et une borne de sortie 2 reliée à l'entrée de démodulation du modem (non représente avec lequel il coopère. Le circuit de l'invention comprend essentiellement quatre blocs: un étage d'entrée 3 de gestion des échantillons retardés, un circuit 4 à mémoires de coefficients, un circuit de calcul 5, et une interface 6 vers le démodulateur. L'étage d'entrée 1 comprend un circuit 7 de décompression, un circuit 8 de mémorisation des échantillons retardés, et un circuit 9 d'adressage du circuit de mémorisation. Dans le présent exemple de réalisation, les échantillons du signal numérique à traiter, provenant de trente-deux voies temporelles échantillonnées à 8 kHz, arrivent à l'entrée 1 en code compressé sur huit éléments binaires, pour être transcodés en code linéaire à douze éléments binaires. Bien entenu, si les échantillons incidents se présentaient en code linéaire, le circuit 7 serait à supprimer. Dans le cas présent, le circuit 7 se compose d'une mémoire morte 10 de 1K x 8 (1024 octets) en parallèle avec une mémoire 11 de 256 x 4 (256 demi-octets). Ces deux mémoires sont de modèles courants, et leur programmation est évidente pour l'homme de l'art. Le circuit 8 comporte plusieurs mémoires vives branchées en parallèle. Dans le cas présent, il comporte trois mémoires vives référencées 12 à 14 de 1K x 4 chacune (1024 demi-octets) à entrée et sortie communes, ces mémoires étant branchées en parallèle à la sortie du circuit 7. Les entrées WE de commande d'écriture des mémoires vives 12 à 14 sont reliées à une borne 15, elle-même reliée à un dispositif séquenceur (non représenté) produisant, de façon connue en soi, des ordres d'écriture. Les entrées A d'adressage des trois mémoires 12 à 14 sont reliées à la sortie du circuit 9 ainsi qu'à une borne 16 sur laquelle arrive un signal de numéro de voie, produit de façon connue en soi. Etant donné que dans l'exemple choisi le canal de transmission comporte trente-deux voies temporelles, le signal arrivant sur la borne 16 est défini sur cinq éléments binaires. La sortie 3A du circuit 3 est reliée aux entrées-sorties des mémoires 12 à 14. Le circuit 9 comporte une mémoire morte 17 suivie d'un registre 18. L'entrée CK de signaux d'horloge du registre 18 est reliée à une borne 1 8A recevant dudit séquenceur des signaux appropriés. Dans le cas présent, la mémoire 17 est de 1K x 8 dont seulement quatre fils de sortie sont utilisés. L'entrée d'adressage de la mémoire 17 est reliée à la borne 16, à la sortie du registre 18 et à une borne 19 sur laquelle est envoyé, depuis ledit dispositif séquenceur, un signal de comptage-décomptage défini cidessous. L'entrée d'horloge du registre 18 est reliée, de façon non représentée, audit séquenceur. Le circuit 4 comporte trois mémoires mortes de coefficients référencées 20 à 22. L'entrée A d'adressage de ces trois mémoires est reliée à la borne 16 et à la sortie d'un compteur 23. L'entrée CK de signaux d'horloge du compteur 23 est reliée à une borne 23A, et son entrée LD de chargement est reliée à une borne 23I4. Les bornes 23A et 23B sont reliées, de façon non représentée, audit séquenceur qui leur envoie des signaux appropriés. Dans le cas présent, le compteur 23 doit adresser quinze coefficients différents, et ses états de sortie sont donc codés sur quatre éléments binaires. Les entrées parallèles du compteur 23 sont reliées au zéro logique (masse). Un signal de chargement produit par ledit séquenceur effectue donc la remise à zéro du compteur.Selon une variante, les mémoires mortes 20 à 22 peuvent être remplacées par des mémoires vives, que l'on peut avantageusement soit télé-charger depuis un poste de cornmande éloigné, soit charger automatiquement par un circuit de mesure des caractéristiques des voies de transmission et de calcul de coefficients, ce au cas où les caractéristiques des voies de transmission auxquelles est relié le circuit de l'invention sont susceptibles de varier ou d'être modifiées au cours du temps. Le circuit 5 comporte, dans le cas présent, trois multiplieursaccumulateurs référencés 24, 25 et 26. De préférence, ces multiplieursaccumulateurs sont des circuits du type TRW n" TDC 1010 3. Les entrées X de multiplicande des trois multiplieurs-accumulateurs 24 à 26 sont reliées à la sortie 3A- du circuit 3. Les entrées Y de rnultiplicateur des circuits 24 à 26 sont respectivement reliées aux sorties des mémoires de coefficients 20 à 22. Les sorties des multiplieurs-accumulateurs 24 à 26 sont reliées en parallèle à un bus 27. Les circuits 24 à 26 sont commandés de façon connue en soi et non représentée par ledit séquenceur. Le circuit d'interface 6 comporte une mémoire vive, qui est composée dans le cas présent de quatre circuits intégrés courants du type 256 x 4, et référencés 28, 29, 30 et 31, ainsi qu'un compteur d'adressage 32 qui est constitué dans l'exemple de réalisation de deux circuits intégrés compteurs synchrones à quatre éléments binaires chacun. Les entrées WE de commande d'écriture des circuits de mémoire 28 à 31 sont reliées à une borne commune 28A, elle-même reliée audit séquenceur. L'entrée de comptage du compteur 32 est reliée à la borne 16, et son entrée LD de chargement est reliée à la borne 15. La sortie du compteur 32, définie sur cinq éléments binaires dans le cas présent, est reliée aux entrées d'adressage des mémoires 28 à 31.Les entrées de données des mémoires 28 à 31 sont reliées au bus 27, tandis que leurs sorties de données sont reliées à une sortie commune qui est en fait la sortie 2 du circuit de calcul de l'invention. Les entrées d'adressage des mémoires 28 à 32 sont également reliées à une entrée 33 recevant, depuis ledit dispositif séquenceur, des signaux se présentant sur deux éléments binaires dans le cas présent, servant à distinguer les échantillons calculés par l'interpolateur de la façon expliquée ci-dessous. L'entrée CK de signaux d'horloge du compteur 32 est reliée à une borne 34, elle-même reliée audit séquenceur. On va maintenant expliquer le fonctionnement des blocs 3 à 6, pour le cas pris en exemple, comme précisé ci-dessus. Les échantillons incidents du signal à traiter avant démodulation arrivent sur la borne 1 en étant codés en code compressé sur huit éléments binaires, et ce, en étant multiplexés sur trente-deux voies temporelles. Les mémoires 10 et 11 assurent la décompression de ces échantillons. A la sortie des mémoires 10 et 11, les échantillons se présentent sous forme codée linéairement, sur douze éléments binaires, l'élément binaire de poids fort représentant le signe des échantillons. Chaque nouvel échantillon décompressé est rangé dans la mémoire vive 8 (formée en réalité par les trois mémoires 12, 13, 14 mises en parallèle) à la place de l'échantillon le plus ancien mémorisé dans la mémoire vive 8 au moment de l'arrivée du nouvel échantillon considéré. Le fonctionnement de la mémoire vive 8 en tant que ligne à retard de filtre numérique est conforme à celui expliqué dans le brevet français 79 02 163, en particulier en ce qui concerne le décalage fictif des échantillons mémorisés. L'adressage de la mémoire 8, en vue d'obtenir ce décalage fictif, est assuré, d'une part par l'information de numéro de voie parvenant de l'entrée 16, cette information déterminant le traitement successif de chacune des trente-deux voies de la jonction dont on démodule subséquemment les signaux dans le démodulateur du modem en question, et d'autre part par les signaux de sortie du circuit 9. Dans le circuit 9, la mémoire morte 17, coopérant avec le registre 18 fonctionne, de manière connue en soi, en compteur cyclique grâce au rebouclage de la sortie du registre 18 sur des entrées d'adressage de la mémoire 17.Ce compteur cyclique produit à la sortie du registre 18 quinze adresses, qui vont, pour une voie temporelle différente de la voie zéro, de zéro à quatorze lorsque le signal sur la borne 19 est au niveau "1", la mémoire 17 produisant sur ses sorties le contenu du registre 18 plus une unité. Lorsque ce signal sur la borne 19 est à "0", la mémoire 17 restitue sur ses sorties le contenu du registre 18 qui l'adresse. Pour la voie zéro, la mémoire 17 agit en compteur cyclique en fournissant au registre 18 des valeurs supérieures d'une unité au contenu de ce registre qui adresse la mémoire 17 lorsque le signal sur la borne 19 est à "I", et la mémoire 17 décompte en fournissant au registre 18 des valeurs inférieures d'une unité au contenu de ce registre qui l'adresse lorsque le signal sur la borne 19 est à "0". Ainsi, dans une même première trame du signal incident multiplexé, juste avant le passage d'une voie à la suivante, la première de ces deux voies étant différente de la voie zéro, le signal sur la borne 19, qui est à "1" pendant le traitement de ces voies, passe à "O': ce qui fait que le compteur d'adressage 9 reste à la dernière valeur d'adressage de la première de ces deux voies pendant le passage à la deuxième de ces voies. Aussitôt après ce passage, le signal sur la borne 19 repasse à ill", et le compteur 9 produit la même adresse que celle qu'il produisait au début de ladite première voie. Par contre, lors du passage de la voie zéro à la voie un, le signal sur la borne 19 passe également de "1" à "0", mais l'adresse fournie par le compteur 9 diminue d'une unité, ce qui fait que la première adresse délivrée par le compteur 9 au début de la voie numéro un de la trame suivante, est inférieure d'une unité à l'adresse délivrée par le compteur 9 au début de la voie numéro un de ladite première trame. Ensuite, le signal sur la borne 19 repasse à "1", et l'adressage de la mémoire 8 se poursuit, pour toutes les autres voies de la trame de la façon expliquée ci-dessus. L'adressage de la mémoire 8 par le compteur 9 et par l'information de numéro de voie permet donc de réaliser le susdit décalage fictif lors du changement de trame, c'est-à-dire au rythme de 8 kHz, le décalage ayant lieu à la fin de -la voie zéro, chaque nouvel échantillon de chaque voie prenant la place de l'échantillon le plus ancien de cette même voie. Les mémoires de coefficients 20 à 22 comportent chacune quinze coefficients (adressés par le compteur 23) pour chacune des trente-deux voies du signal incident (adressées par le signal de la borne 16). Les quarante-cinq coefficients, codés chacun sur seize éléments binaires, sont déterminés, de façon connue en soi, pour assurer au circuit de calcul de l'invention une fonction de transfert globale comprenant une fonction de filtre passe-bande, une fonction d'égalis.eur et une fonction d'interpolateur, c'est-àdire que la réponse impulsionnelle du circuit de calcul comprenant les circuits 3 à 5 doit être le produit de convolution de la réponse impulsionnelle de l'égaliseur par celle du filtre passe-bande, et ce à une fréquence égale à trois fois (dans le cas présent, on veut obtenir par interpolation trois échantillons à partir d'un échantillon incident) la fréquence des échantillons incidents, c'est-à-dire à 24 kHz.Les caractéristiques de transmission de chaque voie étant connues, il est aisé pour l'homme de l'art de calculer pour chaque voie de transmission les coefficients du filtre numérique égaliseur, et il lui est également aisé de calculer les coefficients d'un filtre numérique passe-bande prévu pour la bande de fréquences à transmettre. Pour réaliser l'interpolation, on divise, pour chaque voie de transmission, le réseau numérique théorique (c'est-àire celui assurant l'égalisation et le filtrage à partir d'un signal à 24 kHz), à quarante-cinq coefficients assurant l'égalisation et/ou le filtrage passe-bande en trois réseaux distincts à quinze coefficients chacun. On répartit lesdits coefficients de la façon suivante. Soient aO à a44 ces quarante cinq coefficients. On attribue au premier des trois réseaux précités les coefficients aO, a3, 6 . . . a42 au deuxième les coefficients al, a4, a7 . . . a43, et au troisième les coefficients a2, a5, a8...a44, ces coefficients étant mémorisés dans les mémoires 20 à 22 respectivement.Ces trois réseaux comportent en commun quinze cellules contenues dans la mémoire vive 8 recevant les échantillons incidents à 8 kHz. A chacun de ces trois réseaux on affecte un multiplieur-accumulateur 24 à 26 respectivement. Ces trois réseaux reçoivent chacun les échantillons incidents au rythme de 8 kHz et délivrent chacun, pour chacune des voies traitées, un échantillon traité au rythme de 8kHz, ce qui fait globalement trois échantillons au rythme de 8 kHz, ces échantillons de sortie étant bien entendu multiplexés sur le bus 27 et mémorisés temporairement dans le circuit 6, comme on le verra cidessous. Le multiplexage des échantillons se fait par commande séquentielle des registres de sortie P des circuits 24 à 26. Ainsi, la fréquence des échantillons, à la sortie du circuit 5 passe de 8 à 24 kHz.A la fin de chaque intervalle de temps, le compteur 23 est remis à zéro (par un ordre de chargement, comme précisé ci-dessus). En cours de traitement, pendant chaque intervalle de temps, l'incrémentation du compteur 23 est commandée par ledit séquenceur qui lui envoie quinze signaux d'horloge, ce qui permet donc d'adresser les quinze coefficients de chaque réseau précité. Bien entendu, il est possible d'augmenter le nombre de cellules de chacun de ces réseaux, et il est également possible d'avoir un nombre différent de réseaux, par exemple deux ou quatre pour obtenir en sortie du circuit 5 deux ou quatre échantillons à partir d'un échantillon incident.Si la fonction égalisation est inutile, les coefficients mémorisés dans le circuit 4 ne-sont déterminés que pour assurer la fonction de filtre passebande et sont identiques pour toutes les voies traitées. Le circuit d'interface 6 sert de circuit tampon entre la sortie du circuit 5 et le démodulateur (relié à la sortie 2), afin de pouvoir disposer des trois échantillons résultant de l'interpolation et du traitement de filtrage et/ou d'égalisation d'un échantillon incident à un instant caractéristique déterminé. Si ces trois échantillons sont disponibles sur la sortie 2 à la fin d'un intervalle de temps donné, ledit instant caractéristique déterminé est avantageusement le début de l'intervalle de temps suivant. Les mémoires vives 28 à 31 permettent de mémoriser ces trois échantillons, en fonctionnant en temps partagé sur tente-deux voies de la façon suivante. Dès le début d'un intervalle de temps, le numéro de la voie dont l'échantillon arrive sur la borne 1 (signal de numéro de voie sur la borne 16) est chargé dans le compteur 32. Ce chargement est réalisé simultanément, dans le cas présent, avec l'écriture de l'échantillon décom pressé dans la mémoire vive 8. C'est pour cette raison que l'ordre d'écriture de la mémoire vive, disponible sur la borne 15, sert d'ordre de chargement du compteur 32. Cela explique pourquoi l'entrée LD de chargement du compteur 32 est reliée à la borne 15. Pendant chaque intervalle de temps, le séquenceur envoie sur la borne 33, deux séries consécutives d'ordres d'adressage de même séquencement.Ces ordres, étant définis sur deux éléments binaires, permettent d'effectuer trois adressages différents pour les trois échantillons calculés. La première série d'ordres débute aussitôt après l'ordre d'écriture envoyé sur la borne 15, qui est également, comme précisé ci-dessus, l'ordre de chargement du compteur 32, et cette série doit s'achever avant la fin du calcul des trois échantillons par le circuit 5. Cette première série d'ordres commande la lecture dans les mémoires 28 à 31 des échantillons mémorisés lors de l'intervalle de temps précédent, le compteur 32 fournissant le numéro de voie correspondant à l'intervalle de temps en cours (un signal d'horloge est envoyé sur la borne 34 aussitôt après l'ordre de chargement du compteur 32) pour adresser les mémoires 28 à 31.Juste avant la fin de cette première série d'ordres, le séquenceur envoie un second signal d'horloge au compteur 32 via la borne 34. Le compteur 32 fournit alors aux mémoires 28 à 3i l'adresse de l'intervalle de temps suivant, et à cette adresse, le séquenceur commande, dès la fin du calcul des trois échantillons, l'inscription dans les mémoires 28 à 31 de ces trois échantillons, en concordance avec la deuxième série d'ordres arrivant sur l'entrée 33. Cette inscription doit s'achever avant la fin de l'intervalle de temps en cours. A l'intervalle de temps suivant, le cycle d'opérations décrites ci-dessus recommence. On notera en particulier qu'au début de cet intervalle de temps suivant le compteur 32 fournit le numéro de la voie correspondant à cet intervalle de temps suivant et que la première série d'ordres d'adressage envoyés à l'entrée 33 permet la lecture des trois échantillons mémorisés pendant l'intervalle de temps précédent, c'est-à-dire celui dénommé ci-dessus "intervalle de temps en cours". Bien entendu, le démodulateur relié à la sortie 2 comporte des moyens, dont la réalisation est évidente pour l'homme de l'art, lui permettant de tenir compte du décalage d'une unité de l'adresse de la voie des trois échantillons lus dans les mémoires 28 à 31. REVENDICATIONS 1. Circuit de calcul numérique interpolateur assurant le filtrage et, le cas échéant, l'égalisation, et comportant un étage d'entrée (3) de gestion des échantillons retardés à mémoire vive à décalage fictif des échantillons (8), la sortie de cet étage étant reliée à une entrée d'un circuit de multiplication (5) dont l'autre entrée est reliée à la sortie d'un circuit de mémorisation de coefficients (4), caractérisé par le fait que le circuit de mémorisation de coefficients comporte un nombre de mémoires distinctes (20, 21, 22) égal au nombre d'échantillons interpolés à obtenir à partir d'un échantillon incident, et par le fait que le circuit de multiplication comporte un même nombre de multiplieurs-accumulateurs distincts (24, 25, 26). 2. Circuit de calcul selon la revendication 1, caractérisé par le fait que les coefficients mémorisés dans ledit circuit de mémorisation de coefficients correspondent à la fonction de transfert globale du circuit de calcul assurant le filtrage et/ou l'égalisation de chaque voie considérée à une fréquence d'échantillonnage correspondant à la fréquence d'obtention désirée des échantillons du signal incident après interpolation. 3. Circuit de calcul selon la revendication 2, caractérisé par le fait que la sortie du circuit de multiplication est reliée à la sortie (2) du circuit de calcul par l'intermédiaire d'une interface tampon (6). 4. Circuit de calcul selon la revendication 3, caractérisé par le fait que l'interface tampon comprend des mémoires vives adressées par uncompteur (32) fournissant le numéro de la voie dont l'échantillon incident est en cours de traitement de calcul dans le circuit de calcul, pendant ce traitement, et fournissant le numéro de la voie suivante après la fin du traitement, mais avant la fin de l'intervalle de temps correspondant audit échantillon, ces mémoires vives étant également adressées par un signal séquentiel (33) permettant de distinguer les différents échantillons résultant de l'interpolation. 5. Circuit de calcul selon la revendication 4, caractérisé par le fait que ledit signal séquentiel comporte deux séries d'ordres d'adressage de même séquencement, la première de ces séries se déroulant pendant ledit traitement de calcul, afin d'effectuer la lecture dans lesdites mémoires vives des échantillons résultant de l'interpolation de l'échantillon de la voie précédente, et la deuxième série se déroulant après la fin du calcul lorsque ledit compteur fournit le numéro de la voie suivante, afin d'effectuer l'inscription dans lesdites mémoires vives des échantillons venant d'être calculés.