Brevet FR2484172A1 — publié le 19811211

La présente invention concerne un dispositif destiné à générer plusieurs échantillons de sortie ayant des valeurs interpolées à partir des valeurs d'échantil- lons d'entrée successifs qui définissent un intervalle d'interpolation, ce dispositif comprenant un premier cir- cuit destiné à former un incrément représentant une frac- tion de la différence entre les valeurs d'échantillons d'entrée successifs, et un second circuit destiné à addi- tionner de façon répétée l'incrément à chacun des échan- tillons de sortie, pour former l'échantillon de sortie suivant. La pratique habituelle dans les systèmes numé- riques de transmission et de commutation consiste à déco- der directement les signaux MIC à la cadence de Nyquist et à utiliser ensuite des filtres analogiques pour lisser la modulation d'amplitude par impulsions résultante. Il y a maintenant une motivation croissante pour remplacer les filtres analogiques par des filtres numériques afin d'obtenir une dynamique plus étendue dans le codeur comme dans le décodeur et d'offrir ainsi la possibilité de mise en oeuvre de fonctions de gestion supplémentaires, comme la commande de gain, l'équilibrage des réseaux hybrides, la suppression d'écho et la mise en conférence2 Une procédure de décodage numérique qui a été proposée élève la cadence d'échantillonnage du signal d'entrée numérique à l'aide de circuits numériques qui génèrent des valeurs d'échantillons supplémentaires. Ensuite, une démodulation effectuée à la cadence d'échan- tillonnnage élevée supprime la nécessité de filtres ana- logiques en sortie et permet de n'utiliser que quelques niveaux analogiques uniformément espacés pour représen- ter les amplitudes de sortie. Bien que diverses techniques destinées à augmen- ter la fréquence d'apparition des échantillons d'entrée aient été proposées, on a généralement trouvé plus effi- cace d'élever la cadence d'entrée en plusieurs niveaux, au lieu de l'augmenter d'un seul coup. Une technique d'élévation de la fréquence d'apparition des échantillons utilise une simple répétition selon laquelle des mots d'entrée entrent dans un registre à partir duquel chacun des mots est lu plusieurs fois à la suite. Ce signal de sortie du registre est ensuite lissé par un filtre passe- bas. Selon une variante, on peut également augmenter effectivement la cadence de mot par une simple interpola- tion linéaire dans laquelle plusieurs nouvelles valeurs d'échantillons sont insérées entre des échantillons d'en- trée sucessifs et cette interpolation constitue le sujet de l'invention. Si l'interpolation est effectuée effica- cement, elle lisse le signal, en atténuant toutes les images de la bande de base, à l'exception de celles ad- jacentes à la fréquence d'échantillonnage de sortie dési- ree. A l'heure actuelle, on effectue souvent l'inter- polation en calculant la différence entre des échantil- lons d'entrée successifs, en divisant la différence par le nombre désiré d'échantillons de sortie à générer par intervalle d'entrée, et en incrémentant un accumulateur qui enregistre les signaux de sortie précédents de l'in- terpolateur. Les interpolateurs de ce type sont habituel- lement extrêmement sensibles aux décalages (erreurs intro- duites dans les valeurs utilisées pour former les signaux de sortie interpolés) qui peuvent se produire pendant le traitement, du fait que l'erreur se prolonge indéfiniment une fois qu'elle a été introduite dans la boucle d'accumu- lateur. De plus, l'accumulateur doit être initialisé cha- que fois qu'il est mis en fonction, afin d'éliminer les erreurs résiduelles éventuelles, ce qui augmente la comple- xité du circuit nécessaire. Le problème est résolu par le dispositif de l'invention destiné à générer plusieurs échantillons de sortie ayant des valeurs interpolées à partir de valeurs d'échantillons d'entrée successifs. Dans ce dispositif, le premier circuit comporte un circuit de soustraction qui est conçu de façon à former la différence en soustrayant la valeur de l'un des échantillons de sortie à partir de la valeur de l'échantillon d'entrée qui marque le début de l'intervalle d'interpolation suivant. Conformément à l'invention, on note qu'à la fin de chaque intervalle d'interpolation, le signal de sortie de l'interpolateur est théoriquement égal à la valeur de l'échantillon d'entrée. Par conséquent, la valeur de sortie de l'interpolateur, enregistrée dans une boucle d'accumulateur, est renvoyée vers un circuit de soustrac- tion qui reçoit également le signal d'entrée de l'inter- polateur. On divise la différence pour former les incré- ments désirés et on ajoute de façon répétitive cette différence à la valeur contenue dans l'accumulateur, sur l'ensemble de l'intervalle. Avec cette configuration, le décalage présent dans l'accumulateur est éliminé à la fin de chaque intervalle d'interpolation, lorsque l'en- trée et la sortie sont amenées de force en coïncidences Cette structure assure également une initialisation auto- matique, du fait qu'à la fin de tout cycle de fonction- nement, toute valeur d'erreur résiduelle dans l'accumu- lateur a été éliminée. L'invention sera mieux comprise à la lecture de la description qui va suivre de modes de réalisation et en se référant aux dessins annexés sur lesquels: La figure 1 représente graphiquement l'inter- polation linéaire qui est accomplie conformément à l'in- vention; La figure 2 est un schéma synoptique d'un cir- cuit interpolateur de l'art antérieur; La figure 3 représente un autre circuit inter- polateur de l'art antérieur; - La figure 4 est un schéma synoptique d'un inter- polateur construit conformément à l'invention; et La figure 5 représente un autre mode de réali- sation d'un circuit interpolateur correspondant à l'in- vention. L'interpolation telle qu'elle est utilisée ici est définie mathématiquement par une série d'échantillons d'entrée Xi (i = 0, 1, 2...) apparaissant à une fréquence f0 et par une série d'échantillons de sortie 248 4 172 YNi+n (n = O, 1, 2...N-1) qui apparaissent à une fréquence N fois supérieure à celle des échantillons d'entrée. La valeur de chaque échantillon de sortie interpolé est don- née par: n ( YN X + n (1) YNi+n = Xi + N i+l - Xi ce qui indique que chaque échantillon de sortie est une fonction des échantillons d'entrée précédent (Xi) et sui- vant (Xi+1) l'incrément n (Xi+1 - Xi) par rapport à l'échantillon d'entrée précédent étant proportionnel au produit de: (a) la différence (Xi+1 - Xi) entre les échantil- lons d'entrée successifs, et (b) un facteur de proximité (n) représentant la proximité de l'échantillon de sortie par rapport au début (ou à la fin) de l'intervalle défini par les impulsions d'entrée Xi et Xi+1 On peut récrire l'équation (1) sous la forme: Yni+n = (Nn) Xi + (Xi) (2) qui indique que chaque échantillon de sortie est fonction des échantillons d'entrée précédent et suivant, avec une dépendance qui varie de façon linéaire sur l'intervalle n = O, 1, 2...N-1. En fait, la somme des facteurs N-n et n est égale à l'unité, si bien que chaque échantillon de sortie de l'interpolateur est une "moyenne pondérée" de Xi et Xi+1 L'interpolation linéaire est représentée gra- phiquement sur la figure 1. Les échantillons d'entrée successifs 101 et 102 définissent un intervalle d'inter- polation de durée 1/f0 dans lequel N-1 nouveaux échantil- lons doivent être insérés. Chaque séquence de sortie est ainsi formée par un total de N échantillons de sortie et ces échantillons sont séparés d'une durée de 1/Nf0 seconde. Les valeurs des échantillons insérés (tels que les échan- tillons 103, 104 et 105) se trouvent sur une ligne droite 110 qui est tracée entre les valeurs Xi et Xi1 des échan- tillons d'entrée respectifs 101 et 102. La différence entre tillons d'entrée respectifs 101 et 102. La différence entre n'importe quel échantillon inséré (par exemple l'échantil- lon 104) et l'échantillon initial 101 est une fraction de la différence totale 112 entre les échantillons d'entrée Xi et Xi+, et elle dépend de l'emplacement ou de la posi- tion n/Nf0 de l'échantillon particulier (104) par rapport à l'intervalle d'interpolation total 1/fO' On voit apparaître une structure directe de cir- cuitdestiné à réaliser l'interpolation linéaire en récri- vant l'équation (1) sous forme récursive et en remplaçant Xi par YNi, du fait que les deux valeurs sont égales. On a ainsi Ni+n = Ni + N (Xi+1 Xi) (3) L'équation (3) peut être mise en oeuvre par un interpola- teur de l'art antérieur du type représenté sur la figure 2, dans lequel le signal d'entrée est appliqué à un pre- mier registre 201 qui reçoit un signal d'horloge à la fréquence d'échantillonnage d'entrée f0. La différence entre l'échantillon d'entrée (X i+) et l'échantillon d'en- trée précédent Xi (obtenu à partir du registre de sortie) est formée dans un circuit de soustraction 202 et elle est enregistrée dans un second registre 203 qui reçoit éga- lement un signal d'horloge à la cadence f0. Un circuit diviseur 204 divise la différence par N.et il applique un incrément 1 (X.1 - Xi) à un accumulateur comprenant un additionneur 205 et un troisième registre 206. Ce registre reçoit par la ligne 207 des impulsions d'horloge à la cadence de sortie désirée NfO, grâce à quoi l'incrément est additionné de façon répétitive à la valeur accumulée. Le signal de sortie du registre 206 forme le signal de sortie de l'interpolateur et ce signal est renvoyé sur une entrée de l'additionneur 205 de façon à permettre l'accumulation des incréments suivants. Bien que l'interpolateur de la figure 2 donne le résultat désiré, toute erreur apparaissant dans la boucle d'accumulateur qui est formée par le registre 206 et l'additionneur 205 y demeure indéfiniment. Ceci peut conduire à une accumulation d'erreur excessive et dégra- der considérablement les performances. Pour éviter cette difficulté, on a utilisé une seconde technique de l'art antérieur, représentée sur la figure 3. Ici, le signal d'entrée présent sur la ligne 301 est appliqué directement à la première entrée d'un multiplicateur 303 et il est appliqué à la première entrée d'un multiplicateur 304 par l'intermédiaire d'un registre 302 qui reçoit un signal d'horloge à la cadence d'entrée fO' De cette manière, le multiplicateur 304 reçoit la valeur d'entrée présente Xi à l'instant auquel le multipli- cateur 303 reçoit la valeur d'entrée suivante Xi+l. L'interpolateur de la figure 3, fonctionnant conformément à l'équation (2) , est conçu de façon à multiplier X par N-n et Xi par n. Ces coefficients i N - + N*Csci en sont élaborés dans une paire de compteurs 305 et 306 dont les signaux de sortie sont appliqués respectivement aux secondes entrées des multiplicateurs 303 et 304. Le comp- teur 305 est initialisé ou remis à zéro au début de cha- que intervalle d'interpolation par une impulsion (à la cadence f0) présente sur la ligne 310, et il est ensuite incrémenté de la quantité 1 à chaque apparition d'une impulsion d'horloge sur la ligne 311. Cette horloge fonc- tionne à la fréquence de sortie désirée NfO' Le compteur 306 est initialisé à une valeur égale à l'unité par une impulsion (à la cadence f0) sur la ligne 312, et il est ensuite décrémenté de la quantité 1 à chaque apparition d'une impulsion d'horloge sur la ligne 313. Cette horloge fonctionne également à la fréquence de sortie Nf0. Les signaux de sortie des multiplicateurs 303 et 304 sont combinés dans un circuit additionneur 307 pour donner le signal de sortie désiré sur la ligne 308. On peut simplifier dans une certaine mesure l'interpolateur de la figure 3 en faisant en sorte que les signaux de sortie respectifs des compteurs 305 et 306 soient incrémentés ou décrémentés par valeurs entières, et en divisant ensuite par N le signal de sortie de l'ad- ditionneur 307. En fait, si N est une puissance de 2, la division consiste simplement en un décalage du mot de sortie à plusieurs bits. De plus, du fait que la somme des coefficients est toujours égale à l'unité, on peut rempla- cer un compteur par un soustracteur qui est conçu de façon à soustraire de "1" le signal de sortie de valeur de coefficient provenant du compteur restant. Malgré ces simplifications, la réalisation de l'interpolateur de la figure 3 sous forme de circuit inté- gré demeure difficile et coûteuse, essentiellement à cause du. grand nombre d'éléments actifs associés aux multiplica- teurs 303 et 304. Un interpolateur construit conformément à l'invention, représenté sur la figure 4, évite le pro- blème de l'accumulation d'un décalage qu'on rencontre avec le circuit de la figure 2 et il ne nécessite pas les multiplicateurs qu'exige le circuit de la figure 3. Le circuit comprend des premier et second registres 402 et 404 (un de moins que ce qui est nécessaire dans le circuit de la figure 2), une paire de circuits addition- neurs/soustracteurs 401 et 404, et un circuit diviseur par N, 403, qui peut être réalisé sous la forme d'un circuit de décalage lorsque N est une puissance de 2 et lorsque les valeurs d'échantillons traitées sont des mots à plu- sieurs bits. L'interpolateur de la figure 4 est basé sur la reconnaissance du fait qu'on peut récrire l'équation (3) sous la forme: YNi+n = Ni + N (Xi+l Ni) (4) en remplaçant Xi par YNi à l'intérieur des parenthèses. Cette équation, comme l'équation (3), est récursive, si bien que l'additionneur 404 et le registre 405 forment conjointement un accumulateur. Les circuits restants génè- rent un incrément qui est additionné au signal de sortie précédent de l'interpolateur. Cette nouvelle valeur est ensuite enregistrée dans le registre 405 jusqu'à la pro- gression suivante d'un incrément. La réaction utilisée dans l'accumulateur est obtenue en connectant la sortie de l'interpolateur, c'est-à-dire la ligne 420, à une entrée du circuit additionneur 404 dont le signal de sortie est appliqué à l'entrée du registre 405 pouir fermer la boucle de l'accumulateur. Le registre 405 reçoit sur son entrée d'horloge des impulsions à la cadence Nf%, sur la ligne 410, qui sont produites par une source d'horloge, non re- présentée. L'incrément qui est ajouté à la boucle d'accu- mulateur est obtenu en formant la différence entre le signal d'entrée de l'interpolateur X.i+ sur la ligne 400 et le signal de sortie de l'interpolateur sur la ligne 420, dans un circuit de soustraction 401. Cette diffé- rence change à la cadence Nf0, chaque fois qu'une nou- velle valeur de sortie est générée. Cependant, le signal de sortie du soustracteur 401 n'est introduit dans le registre 402, sous l'effet d'un signal d'horloge, qu'à la fin de chaque intervalle d'interpolation, si bien qu'on utilise l'échantillon de sortie YNi pour repré- senter l'échantillon d'entrée suivant Xi. L'apparition de chaque impulsion d'horloge à la cadence f appliquée sur la ligne 411, fait enregistrer au registre 402 la nouvelle différence (Xi+1 - YNi) qui est égale à (Xi+1 Xi). La fraction appropriée de cette différence est obtenue à l'aide du circuit de division 403, qui peut être conçu de façon à décaler de (logN/log2) bits vers la droite le signal de sortie à plusieurs bits du registre 402. Le signal de sortie du circuit 403 est l'incrément désiré, qui est appliqué sur la seconde entrée du circuit additionneur 404. Les relations temporelles utilisées dans l'in- terpolateur de la figure 4 peuvent être légèrement modi- fiées, si on le désire, comme le montre la figure 5. Ce circuit comprend à nouveau un accumulateur constitué par un circuit additionneur 504 et un registre 505 connectés dans une boucle de réaction. A chaque apparition d'une impulsion d'horloge sur la ligne 510, un incrément est ajouté au contenu présent de l'accumulateur, et le résul- tat est réenregistré dans le registre. Le signal de sortie de l'interpolateur et la valeur qui est renvoyée et utili- sée pour former l'incrément sont prélevés en sortie du cir- cuit additionneur 504, au lieu de l'être en sortie du regis- tre, comme sur la figure 4. Cette configuration a pour effet d'avancer légèrement le signal de sortie de l'inter- polateur, du fait que le signal d'entrée du registre 505 précède de l'intervalle 1/Nf0 le signal de sortie de ce registre. Il n'y a cependant aucun effet sur les circuits restants, du fait que la différence formée par le sous- tracteur 501 est introduite dans le registre 502 une seule fois par intervalle, lorsqu'appara t une impulsion d'hor- loge f0 sur la ligne 511. Comme précédemment, l'incré- ment qui est additionné à la boucle d'atténuateur est for- mé en divisant par N le signal de sortie du soustracteur 501, dans un diviseur 503. La configuration originale d'interpolateur cor- respondant à l'invention apporte plusieurs avantages dési- rés. Tout d'abord, tout décalage ou erreur se produisant dans l'accumulateur est automatiquement éliminé, du fait qu'il existe une connexion de réaction négative (450 sur la figure 4, 550 sur la figure 5) entre l'accumulateur et l'entrée de l'interpolateur. Il n'est pas nécessaire d'initialiser l'accumulateur du fait qu'à la fin d'un seul intervalle, toute erreur a été annulée. On illustrera cette capacité d'auto-correction en supposant que, pour une raison quelconque, le signal de sortie d'interpolation YNi s'écarte de la valeur désirée Xi, en présentant une erreur ú. Cet écart est changé de signe dans le soustracteur 401 ou 501, divisé par N et combiné, N fois, avec le contenu de la boucle d'accumu- lateur, sur l'intervalle d'interpolation suivant. Ainsi, à la fin de l'intervalle, la quantité E. a été soustrai- N te N fois de l'écart précédent, ce qui annule l'erreur. Les circuits des figures 4 et 5 utilisent un registre de moins que le circuit de l'art antérieur de la figure 2, et ils ne nécessitent aucun multiplicateur. La fabrication sous forme de circuit intégré est facile à réaliser. Pour une fréquence d'entrée de 32 kHz et une fréquence de sortie de 128 kHz (N = 4), la réponse impul- sionnelle d'un interpolateur linéaire du type représenté sur les figures 4 ou 5 a une forme triangulaire et sa trans- formée en z est la suivante: HI(Z) - 16 lz-1 (5) I 16 1_ _ La réponse en fréquence de l'interpolateur est donc sinc(4f/f)(6) I Hi (f/fl)= s6/ sinc(f/f1) Du fait que |HI(28kHz/128kHz) = -33,6 dB et | HI(36kHz 128kHz)I = -37,5 dB, on voit clairement que l'interpola- teur assure une réfection appropriée des images de la bande de base à 32,64 et 96 kHz, comme on le désire. Il va de soi que de nombreuses modifications peuvent être apportées au dispositif décrit et représen- té, sans sortir du cadre de l'invention. REVENDICATIONS 1l Dispositif destiné à générer plusieurs échan- tillons de sortie ayant des valeurs interpolées à partir des valeurs d'échantillons d'entrée successifs qui défi- nissent un intervalle d'interpolation, comprenant: un premier circuit (402, 403) destiné à former un incrément représentant une fraction de la différence entre les valeurs d'échantillons d'entrée successifs; et un second circuit (404, 405) destiné à additionner de façon répé- tée l'incrément à chaque échantillon de sortie pour for- mer l'échantillon de sortie suivant; caractérisé en ce que le premier circuit comprend un circuit de soustraction (401) qui est conçu de façon à former la différence en soustrayant la valeur de l'un des échantillons de sortie par rapport à la valeur de l'échantillon d'entrée qui marque le début de l'intervalle d'interpolation suivant. 2. Dispositif selon la revendication 1s carac- térisé en ce que le premier circuit comprend en outre un registre qui est destiné à recevoir la différence au début de chaque intervalle d'interpolation défini par des impulsions d'horloge successives à une cadence f0. 3. Dispositif selon la revendication 1, carac- térisé en ce que la différence est un mot à plusieurs bits et le premier circuit comprend un circuit de déca- lage. 4. Dispositif selon la revendication 1, carac- térisé en ce que le second circuit comprend un registre (405); un additionneur (404) destiné à additionner le contenu du registre à l'un des incréments; et un cir- cuit (410) qui fait passer dans le registre le signal de sortie de somme provenant de l'additionneur, sous l'effet d'impulsions d'horloge à la cadence Nfo0 en désignant par N un nombre entier. 5. Dispositif selon la revendication 1, carac- térisé en ce que le premier circuit comprend un circuit de division (403) qui est destiné à diviser la différence par le nombre entier N. 6.Procédé de génération d'une série de N échan- tillons interpolés pendant chaque intervalle d'une série d'intervalles d'interpolation définis par des échantil- lons d'entrée successifs, caractérisé en ce que: on forme la différence entre chaque échantillon d'entrée et un échantillon de sortie interpolé qui représente l'échan- tillon d'entrée précédent, on divise la différence par N pour former un incrément; et on additionne l'incrément, de façon répétée, à7l'échantillon de sortie interpolé pour générer l'échantillon de sortie suivant.