Brevet FR2794583A1 — publié le 20001208

FILTRE NUMERIQUE La présente invention concerne un filtre numérique. Elle se rapporte au domaine du traitement numérique du signal. On rappelle qu'un filtre est un circuit électronique acceptant un signal électrique en entrée et délivrant en sortie un signal électrique correspondant au signal électrique d'entrée dont les composantes fréquentielles situées en dehors d'une certaine bande de fréquence, appelée bande passante du filtre, sont supprimées ou du moins fortement atténuées. Un filtre est classiquement défini par sa fonction de transfert, qui s'exprime comme le rapport, en fonction de la fréquence, de l'énergie transmise en sortie sur l'énergie fournie en entrée. Cette fonction est aussi appelée réponse fréquentielle du filtre. Elle se représente par un diagramme, appelé diagramme de Bode. Dans l'état de la technique, on sait réaliser des filtres avec des circuits analogiques, par exemple des montages comprenant des cellules RC (filtre du premier ordre) disposées en cascade et/ou des amplificateurs opérationnels. Des logiciels de simulation et de conception assistée par ordinateur, tels que les logiciels MATLAB ou AUTOCAD, permettent d'assister le concepteur dans le calcul des valeurs des composants analogiques nécessaires. Tout ce que le concepteur doit faire est de définir la fonction de transfert souhaitée (en général, avec des outils graphiques), et d'indiquer l'ordre souhaité du filtre. Cependant, de tels montages analogiques ne permettent pas d'obtenir des filtres ayant une fonction de transfert très complexe. De plus ils sont difficiles à mettre au point. En outre, une fois que cela est fait, il n'est en général pas possible de modifier les caractéristiques du filtre sans avoir à modifier les valeurs de beaucoup de composants analogiques du montage. C'est pourquoi, on a déjà proposé de réaliser des filtres numériques, en faisant appel aux techniques de traitement numérique du signal. Un filtre peut en effet également se définir par une équation différentielle de valeurs du signal d'entrée obtenues par échantillonnage périodique de celui-ci (en respectant la condition dite de Shannon ). Cette équation différentielle est obtenue par des manipulations mathématiques de la fonction de transfert du filtre souhaité, faisant intervenir la transformée dite "de Laplace" ou Ilen p9l puis la transformée dite "en z'I, qui sont bien connues de l'homme du métier. Concrètement, le filtre numérique comprend alors - soit des composants discrets parmi lesquels des registres, des multiplicateur et des sommateurs, - soit un processeur connu sous le nom de DSP (de l'anglais "Digital Signals Processor'l, qui signifie processeur de signaux numériques) pour le traitement des échantillons du signal d'entrée après numérisation. La deuxième solution est la seule réellement utilisée. En effet, le traitement numérique des échantillons étant assez lourd en termes de temps de calcul, il faut quasiment obligatoirement recourir à un tel composant électronique, qui seul présente une capacité et une rapidité de calcul compatible avec un temps de réponse raisonnable du filtre. En outre, la programmation du DSP peut le cas échéant être facilement modifiée, ce qui ne serait pas la cas de composants discrets formant le filtre. L'inconvénient des filtres numériques réalisés avec un DSP réside dans le coût important des DSP actuellement disponibles sur le marché, qui en interdit l'utilisation dans les applications où ce coût serait prohibitif. Un objet de la présente invention est de proposer une alternative à ce type de filtres numériques, qui ne présente pas les inconvénients précités. Le principe de l'invention réside dans l'utilisation d'un algorithme de logique floue pour le traitement des échantillons du signal d'entrée, au lieu de la logique binaire utilisée dans un DSP. L'idée qui est à la base de l'invention consiste à remarquer que, d'une part, l'équation différentielle précitée est telle que, à chaque instant, la valeur du signal de sortie du filtre est une combinaison linéaire d'un certain nombre de valeurs successives du signal d'entrée et d'un certain nombre de valeurs antérieures du signal de sortie. Il consiste ensuite à remarquer que, d'autre part, le traitement de valeurs d'entrée par un algorithme de logique floue ayant une étape de défuzzyfication (de l'anglais lefuzzyl, qui signifie flou) selon la méthode dite lidu barycentre", revient également à produire une combinaison linéaire de ces valeurs. L'invention propose donc un filtre numérique recevant un signal d'entrée et délivrant un signal de sortie, qui comprend un processeur de logique floue pour le traitement de valeurs numériques d'échantillons du signal d'entrée obtenues en respectant la condition de Shannon et/ou de valeurs numériques d'échantillons antérieurs du signal de sortie selon un algorithme de logique floue afin de fournir des valeurs numériques d'échantillons du signal de sortie. Dans un mode de réalisation, le processeur de logique floue comprend : - au moins un registre pour le stockage de valeurs numériques d'échantillons du signal d'entrée du filtre et/ou de valeurs numériques d'échantillons du signal de sortie du filtre ; - un "fuzzyficateur" permettant d'attribuer des valeurs floues audits échantillons pris comme variables d'entrée du processeur ; - un moteur d'inférence permettant l'application de règles floues audites variables d'entrée du processeur de logique floue pour la production, de valeurs floues d'au moins une variable de sortie du processeur ; - un "défuzzyficateur" permettant de produire, en fonction des valeurs floues de la variable de sortie du processeur de logique floue, une nouvelle valeur numérique du signal de sortie du filtre. Selon un avantage de l'invention, un processeur de logique floue, tel qu'un circuit de la famille des processeurs WARP fabriqués par la société STMicroelectronics SA, ne coûte que un dollar ($1,00) à peu près. En outre, lorsqu'on souhaite modifier les caractéristiques du filtre, il suffit d'adapter les règles floues, d'en supprimer et/ou d'en ajouter de nouvelles. Ceci se fait par simple programmation dans une mémoire de règles du processeur. L'invention propose également un méthode de production de règles floues pour un filtre tel que défini ci-dessus, selon laquelle les règles sont obtenues à l'aide d'un logiciel d'extraction de règles à partir d'une matrice de valeurs d'entrée et de valeurs de sortie du filtre. D'autres caractéristiques et avantages de l'invention apparaîtront encore à la lecture de la description qui va suivre. Celle-ci est purement illustrative et doit être lue en regard des dessins annexés, sur lesquels on a représenté : - à la figure 1 : le schéma d'un filtre selon l'invention - à la f igure 2 : le schéma d 1 un processeur de logique floue selon l'invention ; - à la f igure 3 : le schéma du diagramme de Bode d 1 un filtre passe-bande illustrant la méthode d'extraction des règles floues d'un filtre selon l'invention. A la figure 1, on a représenté le schéma d'un filtre selon l'invention. Celui-ci comprend un processeur de logique floue yPF. Ce processeur pPF reçoit un signal d'entrée e(t) à filtrer et délivre en réponse un signal de sortie s(t). Dit autrement, le signal s(t) correspond au signal e(t) filtré. A la f igure 2, on a représenté un schéma plus détaillé du processeur de logique floue pPF de la figure 1. Celui-ci comprend tout d'abord un circuit échantillonneur SAMP recevant en entrée le signal e(t) et délivrant en sortie une séquence d'échantillons ei du signal d'entrée e(t). Ces échantillons sont obtenus à partir du signal e(t) par échantillonnage à la fréquence 1/T. Cet échantillonnage doit respecter la condition de Shannon, à savoir que la fréquence l/T doit être supérieure au double de la plus haute fréquence du signal d'entrée e(t). En pratique la fréquence l/T est telle qu'elle est à peu près dix fois supérieure à ladite fréquence. Le circuit SAMP est suivi d'un convertisseur Analogique /Numérique CAN, qui délivre des valeurs numériques des échantillons ei. Par convention, ces valeurs numériques sont notées Ei dans la suite. Dans l'exemple non limitatif qui suit, on décrit le cas d'un filtre d'ordre deux. Comme on le sait, un tel filtre réalisé sous forme numérique produit la valeur numérique Sn d'un échantillon sn du signal de sortie s(t), en traitant simultanément les valeurs numériques précédentes Sn-, et Sn-2 du signal de sortie s(t) et les trois valeurs numériques En, En-, et En-2 du signal d'entrée e(t). Plus particulièrement, la relation entre toutes ces valeurs est une combinaison linéaire du type Sn ao.En, + al.En-1 + a2.En-2 - bl-Sn-1 - b2-Sn-2 où ao, a,, a2, b, et b2 sont des coefficients appropriés. Pour un tel filtre d'ordre deux réalisé conformément à l'invention, le processeur gPF admet cinq variables d'entrée, à savoir les valeurs numériques En, En-1, En-2, Sn-1, Sn-2, et une variable de sortie, à savoir Sn- Il comporte à cet effet tris registres AO, Al et A2 montés en cascade de manière à former un premier registre à décalage pour le stockage des valeurs numériques respectivement En, En-, et En-2, et d'autre part deux registre Bl et B2 montés en cascade de manière à former un second registre à décalage pour le stockage des valeurs numériques respectivement Sn-, et Sn-2- Par ailleurs, et de manière classique, le processeur MPF comporte en série un "fuzzyficateur" F, un moteur d'inférence INF relié à une mémoire de règles RMEM, ainsi qu'un "défuzzyficateur" DF. Le "fuzzyficateur" F réalise l'opération de fuzzyfication ou opération d'évaluation des variables d'entrées. Les sorties des registres AO, Al, A2, Bl et B2 sont fournies en entrée du fuzzyficateur F. Celui-ci a pour fonction d'attribuer des valeurs floues aux valeurs numériques En, En-1 , En-2, Sn-1, et Sn-2 prises comme variables d'entrée du processeur liPF. On rappelle que de telles valeurs floues s'expriment comme le résultat de fonctions d'appartenance (i.e. de fonctions d'appartenance à des ensembles flous tels que PETIT, MOYEN, GRAND) appliquées à ces variables d'entrée. Le moteur d'inférence INF permet l'interprétation des règles floues (ou règles d'inférence), c'est à dire l'application de ces règles floues aux variables d'entrée du processeur MPF pour la production de valeurs floues de la variable de sortie du processeur 4PF. Les règles floues sont contenues dans la mémoire RMEM. A chaque règle correspond donc une valeur floue de la variable de sortie. Chaque règle est du type : "SI 1> ET , ALORS " Donc la valeur floue de la variable de sortie inférée par une règle correspond à une combinaison linéaire des valeurs floues des variables d'entrée concernées. Le "défuzzyficateur" DF réalise l'opération de défuzzyfication ou opération de concrétisation des variables de sortie. Il a pour fonction de produire, en fonction des valeurs floues de la variable de sortie du processeur de logique floue, la nouvelle valeur numérique En du signal de sortie s(t) du filtre. Pour ce faire, le défuzzyficateur prend en compte la contribution de chaque règle sur la sorite (i.e., les valeurs floues de la variables de sortie inférées par chaque règle) au résultat final (i.e., la valeur numérique instantanée du signal de sortie s(t) ). Selon l'invention, le "défuzzyficateur" comporte des moyens pour réaliser la défuzzyfication selon la méthode dite "méthode du barycentre" ou selon la méthode dite "méthode des hauteurs". Ces méthodes consistent à réaliser une combinaison linéaire des différentes valeurs floues de la variable de sortie respectivement inférées par chaque règle. La première méthode fait appel à une somme continue de la contribution de chaque régles (intégrale mathématique), alors que la seconde méthode fait appel à une somme discrète de ces contribution. La sortie du défuzzyficateur DF délivre les valeurs analogiques si du signal de sortie s(t). Celles-ci sont injectées dans le registre à décalage formé des registres Bl et B2. Comme on le voit, tout le traitement des échantillons dans un filtre numérique selon l'invention revient aussi à réaliser une combinaison linéaire des valeurs numériques En, En-1, En-2, Sn-,, et Sn-2. Un séquenceur SEQ a pour fonction de commander les circuits SAMP et CAN, le défuzzyficateur DF et les registres Al, A2, Bi et B2 en fonction d'un signal d'horloge du processeur et/ou d'un signal à la fréquence d'échantillonnage. A l'instant t=O, la valeur d'un premier échantillon Eo est stockée dans le registre AO. En fonction de cette seule valeur d'entrée non nulle (les autres étant nulles), le processeur donne une première valeur So de la sortie. A l'instant suivant, la valeur de Eo est stockée dans Al et celle de So est stockée dans Bi, alors que la valeur d'un nouvel échantillon El est stockée dans le registre AO. Le processeur donne alors une seconde valeur Si de la sortie en fonction de ces trois valeurs d'entrée. A l'instant suivant, la valeur de la valeur de Eo est stockée dans A2 , celle de El est stockée dans Al, et celle de So est stockée dans B2 et celle de Si est stockée dans Bi, alors que la valeur d'un nouvel échantillon El est stockée dans AO. Le processeur donne alors une troisième valeur S2 de la sortie en fonction de ces cinq valeurs d'entrée. Et ainsi de suite. Pour terminer l'exposé d'un mode de réalisation de l'invention, il reste à exposer la manière dont les règles floues sont générées. La fonction de ces règles floues est de modéliser la réponse fréquentielle du filtre. Elles sont donc, au cas par cas, générées en fonction de la réponse fréquentielle du filtre souhaité. Dans la pratique, on utilise un logiciel communément appelé "extracteur de règles". Un tel logiciel génère les règles floues modélisant un système quelconque en fonction d'une matrice de valeurs des entrées et des sorties du système. Tout ce que l'utilisateur du logiciel doit faire, c'est de spécifier le nombre de variables d'entrée et le nombre de variables de sortie, et de fournir des matrices de valeurs correspondantes. Dans le cas d'un filtre qui nous intéresse ici, il n'y a qu'une entrée et qu'une sortie, correspondant respectivement au signal d'entrée e(t) et au signal de sortie s(t) du filtre. Une matrice de valeur peut donc être constituée par les valeurs de sortie du filtre pour des valeurs d'entrée déterminées. De tels couples de valeurs peuvent être obtenus à l'aide d'un des logiciels de simulation et de conception assistée par ordinateur précité, tel que MATLAD, AUTOCAD ou encore SIMULINK. En effet, les valeurs de sortie peuvent être calculées par l'ordinateur une fois la fonction de transfert du filtre établie à l'aide des outils graphiques. Dit autrement, la matrice de valeurs d'entrée et de valeurs de sortie du filtre est obtenue à l'aide d'un logiciel de simulation et de conception assistée par ordinateur. Cette méthode présente l'avantage de fournir des valeurs de sortie très précises, puisque calculées par l'ordinateur. La figure 3 illustre une autre méthode de production d'une matrice de valeurs d'entrée et de valeurs de sortie du filtre. Cette méthode est purement graphique et peut donc avantageusement être mise en oeuvre manuellement. Elle consiste à dessiner sur une feuille de papier millimétré la réponse fréquentielle du filtre souhaité (diagramme de Bode), comme visible à la figure 3 sur laquelle on a représenté à titre d'exemple la réponse fréquentielle d'un filtre passe-bande. On relève ensuite les valeurs Yi, .... Yn de cette réponse pour différentes valeurs Xi, .... Xn du signal d'entrée, qui en l'occurrence sont différentes harmoniques dans la bande utile du filtre. Dit autrement, la matrice de valeurs d'entrée et de valeurs de sortie du filtre est obtenue en relevant des couples de valeurs d'abscisse et d'ordonnée sur le diagramme de Bode de ce filtre. A partir de plusieurs tels couples de valeurs, on reconstitue pas à pas ce que seraient les valeurs de la sortie du filtre en fonction de valeurs de l'entrée. REVENDICATIONS 1. Filtre numérique recevant un signal d'entrée ( e(t) ) et délivrant un signal de sortie s (t) caractérisé en ce qu'il comprend un processeur de logique floue QiPF) pour le traitement de valeurs numériques (En, En-1, En-2) d'échantillons (ei) du signal d'entrée obtenues en respectant la condition de Shannon et/ou de valeurs numériques d'échantillons (Sn-1,Sn-2) antérieurs du signal de sortie selon un algorithme de logique floue afin de fournir des valeurs numériques (Sn) d'échantillons du signal de sortie. 2. Filtre numérique selon la revendication 1, caractérisé en ce qu'il comprend : - au moins un registre pour le stockage de valeurs numériques d'échantillons du signal d'entrée du filtre et/ou de valeurs numériques d'échantillons du signal de sortie du filtre ; - un "fuzzyficateur" (F) permettant d'attribuer des valeurs floues audits échantillons pris comme variables d'entrée du processeur ; - un moteur d'inférence (INF) permettant l'application de règles floues audites variables d'entrée du processeur de logique floue pour la production de valeurs floues de la variable de sortie du processeur ; - un "défuzzyficateur". (DF) permettant de produire, en fonction des valeurs floues de la variable de sortie du processeur de logique floue, une nouvelle valeur numérique (Sn) du signal de sortie du filtre. 3. Filtre numérique selon la revendication 2, caractérisé en ce que le "défuzzyficateur" comprend des moyens pour réaliser la défuzzyfication selon la méthode dite "méthode du barycentre". 4. Filtre numérique selon la revendication 2, caractérisé en ce que le 'Idéfuzzyficateurl' comprend des moyens pour réaliser la défuzzyfication selon la méthode dite "méthode des hauteurs". 5. Méthode de production de règles floues pour un filtre selon l'une des revendications précédentes, caractérisé en ce que les règles sont obtenues à l'aide d'un logiciel d'extraction de règles à partir d'une matrice de valeurs d'entrée et de valeurs de sortie du filtre. 6. Méthode selon la revendication 5, caractérisée en ce que la matrice de valeurs d'entrée et de valeurs de sortie du filtre est obtenue à l'aide d'un logiciel de simulation et de conception assistée par ordinateur. 7. Méthode selon la revendication 5, caractérisée en ce que la matrice de valeurs d'entrée et de valeurs de sortie du filtre est obtenue en relevant des couples de valeurs d'entrée et de valeurs de sortie respectives du filtre sur le diagramme de Bode de ce filtre.