Quels filtres IIR se rapprochent d'un filtre gaussien?

15

Donc, j'ai récemment compris que les filtres de Bessel, bien qu'ils soient répertoriés avec les autres types courants, sont vraiment une excentrique qui appartient à une "classe" différente, et j'essaie d'en savoir plus.

La réponse de magnitude rectangulaire représente la réponse idéale dans le domaine fréquentiel, car la bande de transition est nulle et la bande d'arrêt a une atténuation infinie. La réponse d'amplitude gaussienne, d'autre part, représente la réponse idéale dans le domaine temporel, en ce sens qu'aucun dépassement ne se produit dans la réponse impulsionnelle et la réponse échelon. Bon nombre des réponses obtenues dans la pratique sont des approximations de ces sources idéales

Donc, un filtre brickwall est une convolution avec une fonction sinc, et a ces propriétés de domaine de fréquence:

  • Bande passante plate
  • Bande d'arrêt zéro
  • Taux de coupure infini / pas de bande de transition

C'est non causal et irréalisable en raison des queues infinies dans les deux sens. Il est approximé par ces filtres IIR, l'approximation s'améliorant à mesure que l'ordre augmente:

  • Butterworth (bande passante au maximum plate)
  • Chebyshev (taux de roll-off maximum avec bande d'arrêt ou ondulation de bande passante)
  • Elliptique (taux de descente maximal avec bande d'arrêt et ondulation de la bande passante)
  • Legendre (taux de coupure maximal avec bande passante monotone)

4 types de filtres approchant la réponse de brickwall à mesure que la commande augmente


Le filtre gaussien est une convolution avec une fonction gaussienne, et possède ces propriétés de domaine temporel:

  • Dépassement zéro
  • Temps de montée et de descente minimaux
  • Retard de groupe minimal

Il est irréalisable pour les mêmes raisons que la fonction sinc, et peut être approximé par ces filtres IIR, de plus près à mesure que l'ordre augmente:

  • Bessel (retard de groupe au maximum plat) selon 1 et 2

e-12(πω)2

Les filtres de Bessel s'approchent supposément de la réponse gaussienne à mesure que l'ordre augmente, avec une supposition pour le gaussien

Mes questions sont donc:

Est-ce que tout va bien jusqu'à présent? Si oui, existe-t-il d'autres filtres IIR qui se rapprochent de la gaussienne? Pour quoi sont-ils optimisés? Peut-être celui qui minimise le dépassement?

Si vous recherchez "IIR Gaussian", vous pouvez trouver quelques choses (Deriche? Van Vliet?), Mais je ne sais pas si elles sont vraiment les mêmes qu'un Bessel ou si elles optimisent pour une autre propriété, etc.

endolith
la source
en fait, quand je dis "IIR", je pense que je veux vraiment dire "filtres analogiques physiquement réalisables"?
endolith

Réponses:

5

Les filtres Deriche et van Vliet sont des heuristiques. Dans les deux cas, ils choisissent les emplacements des pôles et des zéros pour minimiser la différence RMS ou la différence maximale de la réponse impulsionnelle du filtre à partir d'un gaussien.

Les deux filtres sont des paires causales-anti-causales. Je pense donc qu'ils n'ont pas d'erreur de phase ou de retard de groupe, mais vous devez pouvoir les exécuter en arrière sur les données ainsi qu'en avant. Cela les rend populaires dans le traitement d'image, mais limite peut-être leur applicabilité ailleurs.

Qu'ils soient heuristiques est attesté par la richesse des articles qui les peaufinent. Par exemple, une recherche google (alors que je cherchais le lien vers le document Deriche) a révélé celui-ci qui tente de résoudre le problème selon lequel le filtre dérivé de gaussien Deriche n'a pas de réponse exactement 0 DC. Il existe également des problèmes intéressants concernant l'initialisation correcte des conditions aux limites .

J'ai trouvé l'aperçu suivant comme une bonne ressource: Dave Hale, filtres récursifs gaussiens , rapport du CWP-546 du Colorado School of Mines Center for Wave Phenomena.

Logique errante
la source
3

Je pense que vous avez donné un bon résumé des solutions analytiques existantes pour les filtres IIR à temps discret. Mais j'ajouterais également des filtres de Bessel à la liste des filtres se rapprochant des caractéristiques idéales des filtres sélectifs en fréquence. Sa réponse en amplitude ne montre pas une transition aussi nette que les autres types de filtres du même ordre, mais c'est le prix à payer pour une phase presque linéaire dans la bande passante. Le filtre de Bessel est donc un compromis entre une réponse en amplitude sélective en fréquence et une bonne réponse en phase.

Pour rapprocher un filtre gaussien avec des filtres IIR, je ne connais pas de solutions analytiques, à part le filtre de Bessel que vous avez mentionné. Mais notez que le filtre de Bessel n'était pas censé se rapprocher d'un filtre gaussien, donc je ne sais pas à quel point il est vraiment bon d'approcher un tel filtre. Si vous voulez vraiment un filtre IIR à cet effet, je vous suggère d'opter pour une approximation numérique du filtre gaussien. Il existe plusieurs options pour ce faire.

Vous pouvez essayer d'approximer le filtre gaussien dans le domaine fréquentiel. Le problème est que vous devez prendre une décision concernant la réponse de phase souhaitée. Une approximation de magnitude pure avec une réponse de phase minimale entraînera très probablement des propriétés de domaine temporel très médiocres. Si vous spécifiez une phase linéaire souhaitée, vous obtenez un problème d'approximation complexe (car vous approximez la réponse en fréquence complexe avec l'amplitude et la phase). Même si un tel problème d'approximation peut être assez difficile à résoudre, il existe des méthodes dans la littérature.

Une approche plus simple et probablement meilleure consiste à approximer le filtre gaussien dans le domaine temporel. La méthode de Prony serait un bon point de départ.

Veuillez noter que ce ne sont que mes réflexions sur le sujet. Je n'ai pas essayé de concevoir moi-même un filtre gaussien IIR. J'irais en fait pour une implémentation FIR sauf s'il y a de très bonnes raisons contre cela.

ÉDITER: quelques remarques supplémentaires concernant la question de savoir si un filtre de Bessel se rapproche ou non d'un gaussien. Je ne connais aucun critère d'erreur significatif que le filtre de Bessel minimise dans l'approximation d'un filtre gaussien. Je serais cependant ravi de l'apprendre. Les gens peuvent prétendre que la réponse impulsionnelle d'un filtre de Bessel ressemble à la gaussienne, ou que sa réponse en fréquence ressemble à une gaussienne, mais je n'ai encore vu aucune preuve que les filtres de Bessel se rapprochent d'un gaussien dans un sens quelconque, et que l'erreur d'approximation va à zéro lorsque l'ordre du filtre augmente. Je ne nie pas qu'il ressemble plus à un gaussien que les autres filtres standards (Butterworth, Chebyshev, etc.), mais ce n'est pas important pour la question.

Voir ci-dessous quatre graphiques de réponses impulsionnelles des filtres de Bessel (ordres 5, 10, 15, 20), conçus en octave (fonction besself). Comme vous pouvez le voir, la sonnerie dans la queue ne diminue pas avec l'augmentation de l'ordre des filtres, et je ne vois pas comment ces filtres se rapprochent d'un gaussien, et si oui, selon quel critère d'optimalité. Cependant, si quelqu'un peut m'éclairer à ce sujet, je serais plus qu'heureux.

entrez la description de l'image ici

Matt L.
la source
Je l'obtiens à partir d'endroits comme ceux-ci: "La réponse impulsionnelle des filtres Bessel-Thomson tend vers un gaussien à mesure que l'ordre des filtres augmente" robots.ox.ac.uk/~sjrob/Teaching/SP/l3.pdf "An le filtre de Bessel analogique est une approximation d'un filtre gaussien, et l'approximation s'améliore à mesure que l'ordre du filtre augmente. " dsprelated.com/showmessage/130958/1.php
endolith
... et comme la transformée de Fourier d'une gaussienne est une gaussienne, je ne pense pas qu'il soit juste de dire qu'elle s'approche d'une réponse brickwall comme les autres.
endolith
La transformée de Fourier d'une gaussienne est une gaussienne, cela ne fait aucun doute. Mais nous parlons de filtres de Bessel, qui - pour autant que je sache - ne se rapprochent pas d'une Gaussienne de manière significative. J'ai modifié ma réponse pour ajouter plus d'informations.
Matt L.
Ajout de plus de détails à la question à ce sujet. Pouvez-vous refaire vos tracés sous forme de courbes linéaires au lieu de tiges, et avec le même axe Y? On dirait qu'il change de forme avec l'ordre mais c'est difficile à dire.
endolith
1
J'ai essayé de calculer les filtres des vaisseaux jusqu'à l'ordre de 60 et d'ajuster leurs réponses d'impulsions par les gaussiens, et bien que mon code soit grossier, ils semblent s'approcher du gaussien, avec le "sous-dépassement" diminuant et l'erreur diminuant avec l'ordre. 10e ordre: imgur.com/1qNsHeg 60e ordre: erreur imgur.com/BgmFzZp à mesure que l'ordre augmente: imgur.com/cpHDDJs les calculs peuvent être erronés, cependant. comment avez-vous calculé le vôtre?
endolith