bonjour;
s'il vous plait j'arrive pas à comprendre pourquoi il y a plusieurs méthodes de conception des filtres numérique??
merci d'avance;
-----
bonjour;
s'il vous plait j'arrive pas à comprendre pourquoi il y a plusieurs méthodes de conception des filtres numérique??
merci d'avance;
Bonjour,
ça dépend de ce que tu veux faire, avec quelle précision et à quelle vitesse.
Plus l'ordre de ton filtre augmente, plus les coupures du spectres sont nettes etc etc. Plus l'ordre est élevé, plus le temps de calcul est long, moins les fréquences traitable peuvent être élevées.
Certains filtres font apparaître des oscillations , d'autres pas.
Il y a les passe-haut, les passe-bas, les réducteur de bruit, etc.
Votre question est très vaste.
Pensez-vous à certains filtres particuliers ?
Cordialement,
\o\ \o\ Dunning-Kruger encore vainqueur ! /o/ /o/
merci pour votre réponse.
oui effectivement ma question est trés vaste. .
Pour les RIF:méthode de fenêtrage, méthode de la TFD et la méthode d'optimisation.
pour les RII:conception par invariante temporelle,méthode de l'équivalence et la méthode de la transdormation bilinéaire.
merci d'avance
Bonjour,
(je n'avais pas vu votre réponse).
Je ne connais pas dans le détail les filtres dont vous parlez, je ne peux que vous donner que les conséquences des outils utilisés. A partir du moment où vous travaillez sur le spectre, il fut passer par une transformée de fourier (logique), donc numériquement une FFT. plusieurs problèmes à ça.
Le premier, c'est que le signal doit être stocké via un registre à décalage afin d'enregistrer une certaine période glissante. Electroniquement, il y a des circuits tout fait pour ça, par informatiquement, ça coute plus cher (d'autant plus que la fenêtre est grande).
L'intérêt de travailler dans le spectral est de pouvoir faire une coupure nette. Ca coute plus cher mais c'est plus précis. A titre d'exemple : les bafles. Si vous avez medium et aigu, un filtre analogique va baver et une partie du spectre va se trouver réparti sur deux enceintes simultanément. Travailler en spectral évite ce genre de problème, mais ça coute plus cher.
Si vous ne voulez pas travailler en spectral (fréquence de travail limité pour les raisons exposées au dessus), on peut passer à des filtres analogiques ou un simili numérique. Le problème c'est qu'il n'y a plus de coupure nette du spectre, c'est plus moche MAIS on peut traiter des signaux beaucoup plus élevés en fréquence. Pour un récepteur radio à 100Mhz, on ne peut pas sélectionner une plage de fréquence numériquement, ou alors avec du très gros matos. C'est pour ça qu'on utilise des filtres analogiques qui permettent de sélectionner une fréquence. La fenêtre n'est pas aussi bien définie, mais au moins elle peut suivre ces fréquences là.
J'espère avoir apporté des éléments de réponse.
\o\ \o\ Dunning-Kruger encore vainqueur ! /o/ /o/
merci beaucoup obi76.
Bonjour à tous les deux,L'intérêt de travailler dans le spectral est de pouvoir faire une coupure nette. Ca coute plus cher mais c'est plus précis. A titre d'exemple : les bafles. Si vous avez medium et aigu, un filtre analogique va baver et une partie du spectre va se trouver réparti sur deux enceintes simultanément. Travailler en spectral évite ce genre de problème, mais ça coute plus cher.
j'aimerais apporter quelques précisions là-dessus... Tout d'abord, un peu de vocabulaire :
- enceinte acoustique = toute la boîboîte avec l'électronique et les tranducteurs
- coffret = juste la structure
- transducteur = les 2 ou 3 haut-parleurs chargés de convertir le signal électrique en signal acoustique
- filtre = composants électroniques passifs associés pour "aiguiller" les bonnes parties du signal sur les bons transducteurs
- baffle = panneau avant de l'enceinte
Comme une multiplication dans le domaine fréquentiel est équivalente à un produit de convolution en temporel, il faut bien voir que travailler en fréquentiel ou travailler en temporel est strictement équivalent. Ensuite, faire une coupure nette dans le domaine spectral ne veut pas forcément dire que la coupure sera effectivement nette à chaque instant sur le signal.
Prenons un morceau de musique, dans un format numérique type WAV, faisons la fft de tout le morceau, coupons tout cela en deux par exemple à 2 kHz, et repassons en temporel pour avoir d'un côté un demi-morceau [0 2000] Hz et de l'autre un demi-morceau [2000 22050] Hz. Cela équivaut à appliquer un filtre dont la réponse impulsionnelle fait la longueur du morceau. Autre façon de le dire : tout au long du morceau de musique, nous ne sommes que sur le régime transitoire du filtre... Donc cela serait assez étonnant que la séparation des fréquences soit à chaque instant aussi manichéenne que < 2 kHz et > 2 kHz. Sans compter que la musique elle-même n'est qu'une suite de transitoires.
Le fait que les filtres analogiques "bavent" car la pente de la coupure n'est pas infinie n'est pas un problème. Le problème, c'est faire en sorte que cette bavure soit acceptable. Et ça n'est possible de manière simple qu'avec des filtres... d'ordre 1 ! Le problème devient donc de pouvoir faire descendre les tweeters en fréquence et de pouvoir faire monter le HP de bas-médium, respectivement à haut moins 1/4 de la fréquence de coupure et 4x la fréquence de coupure. Un 13cm + un tweeter à ruban ou à membrane en W est à l'heure actuelle un bon compromis.
@ Obi76 : si tu disposes de Matlab ou équivalent dans un coin, je t'invite à la manip suivante :
- construis la RI d'un butterworth passe-bas d'ordre 1, Fc = 1 kHz par exemple (avec une fréquence d'échantillonnage de 10kHz, par exemple)
- même chose avec un passe-haut de même Fc
- additionne les deux RI
- recommence à l'ordre 2, 3, 4, etc.. La conclusion s'imposera d'elle-même : dans un cas comme celui-ci, seul l'ordre 1 est valable pour avoir une recomposition parfaite du signal d'origine ! C'est à dire un filtre à pente douce qui bave comme un chien enragé.
Quant à faire des filtres analogiques à coupure 'nette', cela existe avec les filtres elliptiques. Leur qualité sonore est telle que je n'ai jamais entendu parler d'une enceinte Hi-Fi équipée de tels filtres. Ce sont même eux qui ont en partie donné mauvaise réputation au CD à ses débuts, quand les studios n'avait que des convertisseurs 44.1kHz. En effet, on avait alors besoin de filtres à pente très raide (au moins 80dB d'atténuation entre la plus haute fréquence souhaitée pour l'enregistrement, classiquement 20 kHz, et 22 050 Hz), et ceux-ci distordaient énormément le signal au voisinage de la coupure. Avec les convertisseurs type 192kHz ou 384kHz, on peut enfin utiliser des filtres anti-repliement à pente douce et, après un sous-échantillonnage propre, avoir une bonne qualité sur CD.
Il faut bien distinguer le design du filtre de son implémentation. Un filtre numérique, type FIR ou IIR, revient dans tous les cas à un calcul temporel.Envoyé par achrafkaranoui effectivement ma question est trés vaste. .
Pour les RIF:méthode de fenêtrage, méthode de la TFD et la méthode d'optimisation.
pour les RII:conception par invariante temporelle,méthode de l'équivalence et la méthode de la transdormation bilinéaire.
merci d'avance
- IIR : le calcul est récursif, l'état la sortie dépend non seulement des états précédents de l'entrée mais aussi des états précédents de la sortie
- FIR : l'état de la sortie ne dépend que des états précédents de l'entrée
La dépendance étant représentée par les coefficients du filtre. Un exemple simple est un filtre passe-bas effectuant une moyenne entre les deux états précédents de l'entrée. Les coefficient du filtre sont alors au nombre de 2, et tous deux égaux à 0.5.
Le design du filtre est justement le calcul permettant d'aboutir aux coefficients. Pour un filtre IIR, Matlab propose plusieurs algorithmes de calcul, correspondant soit à des filtres analogiques connus soit à d'autres types de filtre. Voir par exemple les commandes "butter", "cheby", etc. . Pour les filtres FIR, une fois encore Matlab proposer pas mal de choses, comme les commandes "fir2", "remez", etc. .
Une fois que les coefs sont calculés, il faut pour appliquer le filtre faire le calcul complet. Pour les filtres IIR, pas le choix c'est forcément un calcul temporel avec une suite brute de multiplications et d'additions entre le signal à filtrer et les coefficients du filtre. Pour un filtre FIR, on peut soit faire un produit de convolution classique (donc toujours la suite bête et méchante de multiplications et d'additions), soit faire une multiplication en fréquentiel par la commande "fftfilter". Comme la réponse impulsionnelle du filtre est en général plus courte que le signal à filtrer, on passe par des astuces de recouvrement pour que tout se passe bien (astuces directement implémentées dans la commande "fftfilter").
Enfin, on peut choisir de calculer un filtre IIR en fréquentiel en déterminant tout d'abord sa RI, en la tronquant (puisqu'elle est par définition inifinie...), et en considérant cette RI tronquée comme un filtre FIR. En général, cela demande plus de puissance de calcul que de faire directement le calcul récursif avec le filtre IIR d'origine.
@ achrafkaran : pour bien comprendre tout cela, je ne saurais que trop te conseiller de pratiquer grâce à un logiciel de traitement de données, type Matlab, Octave ou Scilab.
Dernière modification par phuphus ; 24/04/2011 à 16h12.
Bonjour,
j'étais déjà tombé sur un site qui proposait des filtres différents sur des signaux différents et qui montrait le résultat. je ne l'ai plus sous la main mais c'était très instructif
\o\ \o\ Dunning-Kruger encore vainqueur ! /o/ /o/
merci beaucoup pour vos réponses
Si jamais tu le retrouves, je suis intéressé !
Maintenant que les bases des filtres FIR et IIR sont posées, je vais essayer de répondre exactement à tes questions. Je dis bien essayer car je suis loin d'être un spécialiste du design de filtre, je ne suis que brave utilisateur, et encore occasionnel.Envoyé par achrafkaranPour les RIF:méthode de fenêtrage, méthode de la TFD et la méthode d'optimisation.
pour les RII:conception par invariante temporelle,méthode de l'équivalence et la méthode de la transdormation bilinéaire.
Tu te poses des questions sur les différentes manière d'obtenir les coefficients d'un filtre, ce que j'ai appelé design de filtre précédemment, mais que tu trouveras sous la dénomination de synthèse de filtre dans les cours de traitement du signal en français.
FIR - Méthode de la fenêtre
Un gabarit idéal de filtre, par exemple à pente infinie, donne une réponse impulsionnelle discrète infinie. Pour la rendre finie, on ne retient qu'un nombre limité de coefficients. Ce faisant, on s'éloigne du gabarit réel. Une manière d'atténuer un peu les défauts introduits par la troncature est de fenêtrer la réponse impulsionnelle par des fonctions "douces". Le fenêtrage de base est la fenêtre rectangulaire : tous les coefficients qui sont en dehors de la fenêtre sont totalement rejetés et tous les coefficients qui sont dans la fenêtre sont gardés tels quels. Une fenêtre un peu plus douce est la fenêtre de Hanning, c'est un cosinus évoluant entre 0 et 1. Cette fenêtre atténue donc les coefficients proches des limites de la troncature et permet d'avoir moins d'artefacts que la fenêtre rectangulaire. En fait, tu peux faire un parallèle avec les fenêtres utilisées en analyse spectrale.
FIR - Méthode de la TFD
Au lieu de faire un produit de convolution en temporel, on commence par faire une TFD (Transformée de Fourier Discrète) du signal, et on multiplie le résultat par le gabarit fréquentiel discret. Cela revient exactement à calculer une RI à partir d'un gabarit fréquentiel discret (par exemple gabarit réel discrétisé) et à faire un produit de convolution entre le signal à filtrer et la RI. C'est ce qu'évoquait Obi76 quand il parlait de travailler en spectral.
FIR - Optimisation
Ici, on se donne un gabarit fréquentiel discret, on impose un nombre de coefficients pour la réponse impulsionnelle du filtre, et on converge par calcul vers un ensemble de coefficients permettant de minimiser l'erreur par rapport au gabarit original. C'est par exemple la commande "remez" de Matlab. L'optimisation peut se faire selon plusieurs critères, mais là ça dépasse mon domaine de connaissances.
IIR - Invariance temporelle
C'est ce que je décrivais précédemment comme filtre IIR vu comme un filtre FIR. Cela revient donc à considérer seulement une partie de la RI du filtre, ou encore à échantillonner la RI réelle d'un filtre analogique. Ce n'est donc plus vraiment un filtre IIR, et on perd à la fois en précision de la réponse en fréquence et en puissance de calcul. Pour l'utilisation que je fais des filtres numériques, je trouve cette méthode totalement inutile. Peut-être que dans des cas bien précis, on gagne en puissance de calcul avec l'invariance temporelle, mais ce sont des cas que je n'ai jamais rencontrés.
IIR - Transformation bilinéaire
Je suppose que la méthode de l'équivalence et la transformation bilinéaires sont en fait une seule et même chose, mais peut-être que c'est dû à mon ignorance. Ici, on part de filtres analogiques connus, on détermine leur fonction de transfert dans le domaine de Laplace (fonction en "p"), grâce à la transformation bilinéaire on passe à une fonction en "z", et dès que l'on a la fonction dans le domaines des "z" le passage aux coefficients du filtre IIR nécessaire au calcul de l'équation de récurrence est direct.
Bon, j'espère que c'est clair, dans tous les cas cela te donne un survol de différentes manières de synthétiser un filtre numérique (il y en a d'autres, par exemple je sais qu'il existe des algorithmes d'optimisation valables aussi en IIR, ou encore que depuis quelques années on sait faire des filtres à phase linéaire en IIR). Pour aller plus loin, tu ne pourras pas échapper à un vrai cours de traitement du signal.
Dernière modification par phuphus ; 25/04/2011 à 00h04.
merci beaucoup phuphus
à votre avis quelle est la meilleur méthode qu'on peut utiliser( pour les RIF et les RII)?
merci d'avance
En général, quand il y a plusieurs méthodes, c'est qu'il n'y en a pas une meilleures que les autres.
Meilleures selon quel critère?
Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».
\o\ \o\ Dunning-Kruger encore vainqueur ! /o/ /o/
Merci beaucoup obi76 ! Je regarde cela à tête reposée dès que j'ai un peu de temps...
@ achrafkaran : Stefjm a raison, il faudrait que tu nous décrives l'application que tu veux en faire pour que l'on puisse aller plus loin. Mon expérience personnelle est la suivante :
- Coller relativement précisément à un gabarit en fréquence donné avec le moins de puissance de calcul possible : filtre IIR avec méthode d'optimisation, mais la phase n'est pas du tout maîtrisée
- Coller très précisément à une fonction de transfert discrète connue amplitude + phase : filtre FIR avec le gabarit exact, avec filtrage fft selon la méthode "overlapp-add". Cela rejoint la commande "fftfilter" que j'ai évoquée précédemment
- maîtriser au mieux la réponse impulsionnelle d'un système complet (par exemple une enceinte acoustique) : filtre(s) FIR avec méthode d'optimisation et compensation des défauts du système mécanique. Si la latence n'est pas un problème, on peut se ramener au cas précédent "Coller très précisément à une fonction de transfert discrète connue"
Je n'ai pas plus d'expérience que cela, en espérant que ça puisse déjà t'aiguiller un peu...
merci beaucoup pour votre aide
Bonjour,
Dans la méthode équivalente à la fonction FIR2 de matlab (échantillonnage fréquentiel du gabarit idéal) je n'arrive pas à comprendre l'intérêt du fenêtrage.
Pourquoi ne pas utiliser directement la TFD inverse du gabarit idéal échantillonné en fréquence ?
Si je construis un gabarit idéal sur N points fréquentiels et que je l'inverse, j'obtiens une réponse impulsionnelle qui n'est pas infinie (donc bien implémentable) et dont la réponse fréquentielle reste idéale (c'est bien ce que l'on désire). Pourquoi a-t'on besoin d'introduire un fenêtrage qui rend la réponse fréquentielle non idéale ?
PS : je pense avoir trouvé la réponse à ma question :
Dans la pratique on est obligé de travailler avec des filtres d'ordre M largement inférieur à la longueur N du signal à filtrer. Sans fenêtrage le filtre sera exact aux fréquences [0,M-1]*fe/M où on l'a synthétisé, mais le signal comporte bcp de fréquences intérmédiares puisqu'il comporte toutes les fréquences [0,N-1]*fe/N avec N >> M. Le filtre sera inexact à ces fréquences intermédiaires "oubliées" lors de sa synthèse, et si on l'interpole à M points on verra apparaitre le phenomène de Gibbs qu'il est possible d'atténuer en fenetrant la réponse impulsionnelle.