Brevet FR2808139A1 — publié le 20011026

Le domaine technique de la présente invention est celui des filtres numériques récursifs (à réponse impulsionnelle infinie ou RII) et de leurs applications industrielles. Ceux-ci sont utilisés en particulier, mais non exclusivement, dans le domaine de la réduction du bruit, pour la réalisation de protections acoustiques actives. Ils peuvent également être utilisés dans systèmes de régulation qui utilisent des boucles de contre réaction. Dans ce domaine, plusieurs réalisations ont déjà été proposées. Elles reposent sur la transformation d'un signal d'entrée x(n) à un. instant donné, issu d'un échantillonnage à une fréquence donnée, en un signal de sortie y(n) qui en est déduit par un procédé de calcul déterminé. Ce procédé de calcul est défini les coefficients aj et bi de la fonction F(z) représentative de la fonction de transfert du filtre sous sa forme générale dans le plan complexe ou encore de l'équation aux différences finies qui donne la valeur du signal de sortie en fonction des valeurs d'entrée et de sortie pour échantillons antérieurs n-i ou n-j où K désigne un coefficient permettant de régler le gain du filtre et Z un nombre complexe tel que Z=exp (2,Tjf) où f est la fréquence réduite valeur sans unité comprise entre 0 et 1, définie par la fréquence réelle du signal exprimée en Hz divisée par la fréquence d'échantillonnage exprimée également en Hz, et où j est le nombre complexe tel que j2=-1. La forme générale des filtres numériques récursifs peut alors être représentée par le schéma de la figure 1, dans lequel Z-1 est l'opérateur permettant de passer de l'échantillon à l'échantillon n-1. L'implémentation de ces filtres est généralement réalisée une succession de filtres du second ordre (filtres ne faisant intervenir que les valeurs d'entrée et de sorties des deux échantillons précédents), disposés en parallèle (forme parallèle) ou en cascade (forme cascade), avec une fonction de transfert qui s'écrit alors de la manière suivante respectivement pour les filtres en parallèle et en cascade Où Fi(Z) représente la fonction de transfert de chaque filtre élémentaire récursif du second ordre. Chaque cellule (filtre élémentaire récursif du second ordre est ainsi définie seulement par les cinq coefficients al, bo, b1 et b2. Ces filtres, quel que soit leur ordre, ont pour inconvénient de pouvoir être réalisés qu'après une quantification leurs coefficients en nombres entiers, c'est à dire avec une troncature des décimales, qui n'intervient qu'après que les coefficients réels aj et bi aient été multipliés par un facteur d'échelle. Ce facteur d'échelle permet d'accroître le choix possible pour les coefficients en entier utilisés dans le calcul, alors que les coefficients réels sont au plus compris entre -2 et 2. Cette troncature entraîne une erreur qui se traduit par des non-linéarités du filtre, qui le rendent impropre à la fonction de filtrage souhaitée. Pour minimiser l'effet de la quantification des coefficients en entier il est nécessaire de réaliser le filtre par une succession de filtres du second ordre en cascade (forme cascade). A cette erreur sur les coefficients s'ajoute l'erreur arrondi qui se produit lors des divisions entières par le facteur d'échelle. Cette erreur d'arrondi se propage d'échantillon en échantillon au fil des calculs effectues. Elle peut devenir très grande, donc non négligeable lorsque le filtre fonctionne dans le domaine des basses fréquences. Cette erreur est encore aggravée si on prend pour résultat des divisions entières par le facteur d'échelle la valeur entière défaut au lieu de la valeur entière la plus proche du résultat de la division réelle. Le but de la présente invention est de remédier à ces inconvénients en proposant un procédé de calcul qui évite la propagation des erreurs d'arrondi et qui retient l'entier le plus proche du résultat dans les divisions entières. Pour ce faire, l'invention propose de compléter le procédé de calcul du signal de sortie par une prise en compte des restes des divisions entières effectuées lors du calcul du signal de sortie des échantillons antérieurs. Ce calcul est effectué selon l'équation suivante (indiquée ici dans le cas particulier d'une cellule du second ordre) . au lieu de (n) - eclrx(n)+bi-x# 1)+bz'x(n-2) \ pour un calcul @I 1 J -a#@y(n-l)-az@y(n-2) y ech classique d'un filtre numérique récursif implémenté, dans laquelle () est l'opérateur non-linéaire de quantification lors des divisions entières et "ech" le facteur d'échelle choisi. Ces formules sont bien évidemment à adapter par augmentation du nombre éléments dans le calcul (al, a2, a3, ..., b1, b2, b3, .., l,n-2,n-3, ... ) si les filtres à réaliser sont d'un ordre supérieur à deux. L'invention propose également de compléter le procédé calcul du signal de sortie par un procédé qui remplace l'arrondi à la valeur entière par défaut lors de la division par le facteur d'échelle par l'arrondi à la valeur entière plus proche du résultat en valeur réelle. Dans ces conditions, il est possible de montrer que l'erreur entre la valeur calculée y(n) et la valeur théorique th(n) que l'on obtiendrait sans les erreurs d'arrondi est indépendante des erreurs commises sur les itérations précédentes. I1 n'y a alors plus de phénomène de propagation, et par suite d'amplification de l'erreur. Celle-ci, au rang n, est ainsi minimisée et le filtre obtenu peut réaliser fonction de filtrage quelle que soit l'amplitude du signal d'entrée. La dynamique du filtre ainsi réalisé peut dépasser 60 dB ; c'est à dire que l'erreur reste négligeable même l'amplitude du signal d'entrée est comprise entre l'amplitude maximale et l'amplitude maximale moins 60 dB (amplitude maximale/1000). L'invention comporte de façon principale un procedé de non propagation de l'erreur d'arrondi, explicité dans la figure 4 pour lequel - on prélève le signal de sortie que l'on multiplie par le facteur d'échelle et après avoir changé signe du résultat on l'additionne à la valeur du signal de sortie obtenue avant d'effectuer la division par le facteur d'échelle afin d'obtenir le reste de la division entière au rang n, - on applique à ce reste l'opérateur Z-1 une première fois pour obtenir le reste de la division dans le calcul de l'échantillon de rang n-1, auquel on applique une multiplication par le coefficient -al, - on applique à cette valeur l'opérateur Z-1 une seconde fois pour obtenir le reste de la division dans le calcul de 'échantillon de rang n-2, auquel on applique une multiplication par le coefficient -a2, - et ainsi de suite jusqu'au rang retenu pour l'ordre du filtre, - on somme ces divers résultats pour ensuite diviser le résultat obtenu par le facteur d'échelle et ajouter la valeur ainsi obtenue au calcul du signal de sortie. Le procedé de calcul défini dans l'invention comporte également, de façon avantageuse mais non obligatoire, un procédé de division dite améliorée, explicité dans la figure 3, qui consiste à diviser le signal par le facteur d'échelle, puis à le multiplier à nouveau par le facteur d'échelle pour le soustraire au signal initial ; le résultat de cette soustraction est multiplié par 2 pour ensuite être divisé par le facteur d'échelle et enfin ajouté au signal initial après division de celui-ci par le facteur d'échelle. En référence aux figures 2 à 4 on voit le procédé de calcul selon 1 invention, réalisé en se limitant à cellule du second ordre. Pour un filtre numérique constitué par m cellules du second ordre en cascade, l'invention consiste à appliquer pour chacune des m cellules le calcul son signal de sortie qui est représenté dans la figure . Le signal d'entrée de la ieme cellule est le signal de sortie de la cellule antérieure. La figure 2 représente le procédé complet pour cellule du second ordre, avec une identification du procédé de non propagation de l'erreur d'arrondi au moyen d'un trait semi- pointillé (points et traits alternés) et de la lettre A placée dans une ellipse, et une identification procédé de la division améliorée au moyen d'un trait pointillé et de la lettre placée elle aussi dans une ellipse Dans cette figure x (n) est le signal d'entrée, y (n) le signal de sortie et r(n) le reste de la division par le facteur d'échelle. Dans l'hypothèse où le filtre numérique est constitué par plusieurs cellules du second ordre en cascade, le procédé doit être reconduit pour chacune d'elles. La figure 3 décrit le procédé de la division améliorée, isolément du procédé complet de calcul du signal de sortie pour une cellule du second ordre. La figure 4 décrit le procédé complet de calcul pour une cellule du second ordre, lorsqu'il ne réalise que la fonction de non-propagation de l'erreur d'arrondi. Dans l'hypothèse où le filtre numérique est constitué par plusieurs cellules du second ordre en cascade, le procédé doit être reconduit pour chacune d'elles. La figure 5 donne le synoptique de réalisation d'un système actif numérique pour une protection auditive, basé sur 1e filtrage objet de l'invention. Le pointillé supérieur représente 1e casque de protection et le pointille inférieur le filtre numérique. Les modules CNA et CAN représentent les convertisseurs numérique/ analogique et analogique/numérique qui, associés au processeur de signal DSP, permettent de réaliser le filtre numérique. Un mode particulier de réalisation de l'invention est représenté par la figure 2. Dans cet exemple il constitué d' seule cellule du second ordre. Le signal entrant x(n) lors de l'itération n est multiplié par le facteur d'échelle; il ajouté aux deux valeurs obtenues en multipliant respectivement les signaux entrant lors des itérations n-1 et n-2 les coefficients b1 et b2. La valeur ainsi obtenue est divisée par le gain K retenu pour la cellule du second ordre. A cette valeur sont sommées les éléments suivants _ les valeurs obtenues en multipliant respectivement les signaux sortants issus des itérations n-1 n par les coefficients (-ai) et (-a2) - et le résultat du calcul dit de la non propagation de l'erreur d'arrondi, à savoir la valeur obtenue en retranchant à la valeur issue de cette somme valeur du signal de sortie y(n) après multiplication par le facteur d'échelle, puis application à cette valeur de l'opérateur Z- pour obtenir le reste de la division par le facteur d'échelle issu du calcul du signal de sortie pour l'échantillon n-1, puis application à nouveau de cet opérateur pour obtenir le reste de la division par le facteur d'échelle issu du calcul du signal de sortie pour l'échantillon n-2, puis sommation de ces restes après multiplication respectivement par les coefficients (-a1) (-â2) et pour finir division par le facteur échelle. La valeur issue de ce calcul est ensuite modifiée pour obtenir la valeur de sortie y(n) par le procède dit de la division améliorée, qui consiste à prélever le signal en sortie de l'opérateur de somme, le diviser par le facteur d'échelle, puis le multiplier à nouveau par le facteur d'échelle pour le soustraire au signal tel que prélevé, puis multiplier ce résultat par 2 pour ensuite le diviser par le facteur d'eche-lle et enfin l'ajouter au signal tel que prélevé, fois que celui-ci a été divisé par le facteur d'échelle L'implémentation dans un processeur de signal de type DSP travaillant avec des nombres entiers d'un filtre du type décrit dans l'invention peut être réalisé de la façon suivante On utilise convertisseur de signal analogique/numérique et numérique/analogique en amont et aval du processeur de signal, de préférence de 16 bit ou plus afin pouvoir négliger l'erreur due aux conversions devant l'amplitude du signal. Afin d'éviter une erreur supplémentaire par dépassement de la dynamique DSP on choisit pour facteur d'échelle nombre entier inférieur ou égal à 2p-b-2 où p désigne la longueur des mots du DSP et b la résolution des convertisseurs (nombre de bits sur lequel ceux-ci codent le signal). Il est par ailleurs préférable d'utiliser un facteur d'échelle et un coefficient de gain K multiples de 2 afin de minimiser le temps de calcul. Ceci permet de remplacer toutes les divisions, opérations lentes dans un DSP, par des décalages de registres qui sont des opérations très rapides. Enfin, plus le facteur d'échelle est grand, plus l'erreur due à la quantification des coefficients est faible et plus le nombre de filtres réalisables est important. I1 est donc préférable d'utiliser un DSP avec une longueur de mot de 32 bit. Ceci permet de prendre pour facteur d'échelle valeur ech=232- 2=214=16384. Avec filtre de ce type on peut réaliser des filtrages efficaces pour des dynamiques de signal dépassant 60dB. Une utilisation pratique de ces filtres est la protection active contre le bruit, qui nécessite une large plage d'amplitude utilisable, quel que soit le filtre implementé. Le filtre numérique alors utilisé est un filtre de type RII sous forme en cascade. Chaque cellule de filtrage est implémentée dans le DSP en utilisant le procédé de calcul de l'invention représenté par la figure 2. L'invention peut également être utilisée dans le domaine de la régulation, qui utilise des boucles de contre réaction, puisque le faible niveau de propagation de l'erreur peut permettre de remplacer les procédés de filtrage analogiques par des procédés numériques. REVENDICATIONS 1. Procédé de calcul pour la réalisation d'un filtre numérique récursif, implémenté dans un processeur de signal travaillant avec des nombres entiers, comprenant une étape de calcul du signal de sortie de l'échantillon n reposant sur une somme algébrique des valeurs d'entrée et de sortie des signaux échantillonnés à l'instant considéré et instants anterieurs, affectés des coefficients caractéristiques du filtre caractérisé en ce que cette étape est couplée à deux autres étapes de calcul dont l'une reprend restes des divisions entières par le facteur d'échelle choisi, issus du calcul des signaux de sortie des échantillons antérieurs et pour l'autre remplace l'arrondi à la valeur entière par défaut issue de la division du signal de sortie par le facteur d'échelle par l'arrondi à la valeur entière la plus proche du quotient en nombre réel. 2. Procédé de calcul pour la réalisation d'un filtre numerique récursif, implémenté dans un processeur de signal travaillant avec des nombres entiers, comprenant une étape de calcul du signal de sortie de l'échantillon n reposant sur une somme algébrique des valeurs d'entrée et de sortie des signaux échantillonnés à l'instant considéré et aux instants anterieurs, affectés de coefficients caractéristiques du filtre caractérisé en ce qu'à cette étape est couplée une autre étape de calcul qui reprend les restes des divisions entières par le facteur d'échelle choisi, issus du calcul des signaux de sortie des échantillons antérieurs. 3. Procédé de calcul pour la réalisation d'un filtre numerique récursif, implémenté dans un processeur de signal travaillant avec des nombres entiers, comprenant une étape de calcul du signal de sortie de l'échantillon n reposant sur somme algébrique des valeurs d'entrée et de sortie des signaux échantillonnés à l'instant considéré et aux instants antérieurs, affectés des coefficients caractéristiques filtre caractérisé en ce qu'à cette étape est couplée autre étape de calcul qui remplace l'arrondi à la valeur entière par défaut issue de la division du signal de sortie le facteur d'échelle par l'arrondi à la valeur entière plus proche du quotient en nombre réel. 4. Utilisation du procédé de calcul selon l'une revendications 1, 2 ou 3 pour la réalisation d'un filtre numérique récursif. 5. Utilisation d'un filtre numérique selon revendication 4 pour la réalisation d'un système de protection acoustique active. 6. Utilisation d'un filtre numérique selon la revendication 4 pour la réalisation d'un système de rëgulation à boucle de contre réaction.