Quelle est la réponse en fréquence la plus nette pour un filtre passe-bas non causal dont la réponse pas à pas ne dépasse pas?

13

Les filtres passe-bas de Butterworth, Bessel, Chebychev et sinc sont utilisés dans divers cas où il existe des compromis différents entre une réponse en fréquence uniformément décroissante, une réponse en phase uniforme, une coupure abrupte ou une réponse de "mur de briques". Je crois que tous ces filtres peuvent, dans certains cas, avoir un dépassement de leur réponse de pas, ce qui signifie que leur réponse d'impulsion est à certains endroits négative.

Quelle serait la réponse en fréquence optimale ou quels types de réponses en fréquence seraient disponibles dans un filtre dont la seule contrainte était que la réponse impulsionnelle ne pouvait être nulle part négative? Il est certainement possible d'avoir un filtre passe-bas répondant à une telle contrainte, car un filtre RC de base le fera (bien que la réponse d'un tel filtre soit un peu minable). La réponse impulsionnelle optimale serait-elle une courbe de distribution normale, ou autre chose?

supercat
la source
1
@supercat, si vous incluez le filtrage numérique, il est assez étonnant de voir comment le mur de briques peut obtenir une réponse sans dépassement.
Kortuk
2
@Kortuk: Vraiment? Je pense qu'il serait difficile d'éviter un dépassement, car une onde carrée filtrée sur un mur de briques a de petits pics dont la largeur s'approche de zéro lorsque la fréquence de coupure augmente, mais dont l'amplitude ne le fait pas. Quelle serait une bonne référence?
supercat
2
Vous dites «non causal» dans la question, mais tous vos exemples sont causaux. Que voulez-vous dire? Non causal, vous devez enregistrer toute la forme d'onde, puis appliquer le filtre à l'enregistrement. (Ou, peut-être, l'utilisation de condensateurs de flux et de grandes sources d'énergie.)
endolith
1
@endolith: Quel serait le filtre optimal, en supposant qu'il ne soit pas nécessaire qu'il soit causal.
supercat
1
@Kortuk: Couper le signal à zéro va annihiler totalement les avantages du filtrage. Et pendant que je publie dans DSP, je suis également curieux de voir des choses comme les enregistreurs de films audio (d'un point de vue intellectuel plutôt que pratique) où l'on peut créer la fonction d'impulsion non négative souhaitée, sous réserve d'une contrainte de largeur.
supercat

Réponses:

6

Je vais énumérer un tas de "filtres qui ne dépassent pas". J'espère que vous trouverez cette réponse partielle meilleure que pas de réponse du tout. J'espère que les personnes qui recherchent "un filtre qui ne dépasse pas" trouveront cette liste de ces filtres utile. Peut-être que l'un de ces filtres fonctionnera correctement dans votre application, même si nous n'avons pas encore trouvé le filtre mathématiquement optimal.

filtres causaux LTI de premier et deuxième ordre

La réponse pas à pas d'un filtre de premier ordre ("filtre RC") ne dépasse jamais.

La réponse pas à pas d'un filtre de second ordre ("biquad") peut être conçue de telle sorte qu'elle ne dépasse jamais. Il existe plusieurs façons équivalentes de décrire cette classe de filtre de second ordre qui ne dépasse pas une entrée d'étape:

  • il est amorti de façon critique ou suramorti.
  • il n'est pas sous-amorti.
  • le rapport d'amortissement (zêta) est de 1 ou plus
  • le facteur de qualité (Q) est de 1/2 ou moins
  • le paramètre du taux de décroissance (alpha) est au moins la fréquence angulaire naturelle non amortie (oméga_0) ou plus

En particulier, une topologie de filtre Sallen – Key à gain unitaire avec des condensateurs égaux et des résistances égales est amortie de façon critique: Q = 1/2, et ne dépasse donc pas une entrée pas à pas.

Un filtre de Bessel de second ordre est légèrement sous-amorti: Q = 1 / sqrt (3), donc il a un petit dépassement.

Un filtre Butterworth de second ordre est plus sous-amorti: Q = 1 / sqrt (2), donc il a plus de dépassement.

Parmi tous les filtres LTI de premier ordre et de second ordre possibles qui sont causaux et ne dépassent pas, celui avec la "meilleure" réponse en fréquence (la plus raide) sont les filtres de second ordre "à amortissement critique".

filtres causaux LTI d'ordre supérieur

Le filtre causal d'ordre supérieur le plus couramment utilisé qui a une réponse impulsionnelle qui n'est jamais négative (et donc ne dépasse jamais sur une entrée de pas) est le «filtre de moyenne courante», également appelé «filtre de wagon plat» ou « filtre de moyenne mobile ".

Certaines personnes aiment exécuter les données à travers un filtre boxcar et la sortie de ce filtre dans un autre filtre boxcar. Après quelques filtres de ce type, le résultat est une bonne approximation du filtre gaussien. (Plus vous filtrez en cascade, plus la sortie finale se rapproche d'une gaussienne, quel que soit le filtre avec lequel vous commencez - boxcar, triangle, RC de premier ordre ou tout autre - en raison du théorème de la limite centrale).

Pratiquement toutes les fonctions de fenêtre ont une réponse impulsionnelle qui n'est jamais négative, et peuvent donc en principe être utilisées comme des filtres FIR qui ne dépassent jamais une entrée pas à pas. En particulier, j'entends de bonnes choses à propos de la fenêtre de Lanczos , qui est le lobe central (positif) de la fonction sinc () (et zéro à l'extérieur de ce lobe). Quelques filtres de mise en forme d'impulsion ont une réponse impulsionnelle qui n'est jamais négative et peuvent donc être utilisés comme des filtres qui ne dépassent jamais une entrée pas à pas.

Je ne sais pas lequel de ces filtres est le meilleur pour votre application, et je soupçonne que le filtre mathématiquement optimal peut être légèrement meilleur que n'importe lequel d'entre eux.

filtres causaux non linéaires

Le filtre médian est un filtre non linéaire populaire qui ne dépasse jamais une entrée de fonction pas à pas.

EDIT: filtres non causals LTI

La fonction sech (t) = 2 / (e ^ (- t) + e ^ t) est sa propre transformée de Fourier, et je suppose qu'elle pourrait être utilisée comme une sorte de filtre LTI passe-bas non causal qui ne dépasse jamais entrée pas à pas.

Le filtre LTI non causal qui a la réponse impulsionnelle (sinc (t / k)) ^ 2 a une réponse en fréquence "abs (k) * triangle (k * w)". Lorsqu'une entrée de pas est donnée, elle a beaucoup d'ondulations dans le domaine temporel, mais elle ne dépasse jamais le point de stabilisation final. Au-dessus du coin haute fréquence de ce triangle, il donne une réjection parfaite de la bande d'arrêt (atténuation infinie). Ainsi, dans la région de la bande d'arrêt, il a une meilleure réponse en fréquence qu'un filtre gaussien.

Je doute donc que le filtre gaussien donne la "réponse en fréquence optimale".

Dans l'ensemble de tous les "filtres qui ne dépassent pas", je soupçonne qu'il n'y a pas une seule "réponse en fréquence optimale" - certains ont une meilleure réjection de la bande d'arrêt, tandis que d'autres ont des bandes de transition plus étroites, etc.

davidcary
la source
Merci pour votre réponse. J'avais négligé de limiter ma question aux filtres linéaires, bien que bien sûr caractériser la réponse en fréquence d'un filtre non linéaire puisse être une proposition trouble. Comme indiqué, la mise en cascade du filtre à wagons fait qu'il s'approche d'un gaussien. Je me demandais si le filtre gaussien a la réponse en fréquence optimale qui peut être obtenue sans dépassement. En écrivant la question, je pensais à divers processus analogiques qui effectuent quelque chose comme un filtre de réponse impulsionnelle défini, par exemple un flou de la caméra ou des pixels d'affichage pour minimiser l'aliasing.
supercat
Il est possible de construire une caméra de sorte que chaque pixel capte des quantités variables de lumière provenant de divers points autour du centre. Idéalement, une caméra filtrerait tout au-dessus de Nyquist sans brouiller quoi que ce soit en dessous, mais dans la pratique, cela ne risque pas de se produire.
supercat
1
LTI? Vous ne le définissez jamais. Ajoutant que cela signifie "linéaire invariable dans le temps", serait probablement utile.
Connor Wolf
1
Donc, Q = 0,5 est amorti de façon critique? Pour une commande donnée, existe-t-il plusieurs systèmes qui sont amortis de manière critique? Le biquad avec Q = 0,5 est appelé le filtre LR2 Linkwitz-Riley . Il semble que les versions d'ordre supérieur du filtre LR sonnent dans la réponse pas à pas.
endolith
"Les filtres à amortissement critique en cascade se traduiront par un autre filtre à amortissement critique" Donc, gardez simplement les poteaux de vidage à -1 et il sera toujours à amortissement critique? (Et approcher une réponse du filtre gaussien à mesure que le nombre augmente?)
endolith
2

La plupart des filtres utilisés dans le monde numérique ne sont que des versions échantillonnées de l'homologue analogique. Une grande raison à cela est qu'il y avait beaucoup de travail effectué dans le filtrage analogique avant l'arrivée du numérique, donc plutôt que de réinventer la roue, la plupart des modèles antérieurs utilisés. L'avantage du numérique est cependant qu'un filtre d'ordre supérieur peut être obtenu beaucoup plus facilement que dans le monde analogique. Imaginez simplement un circuit complexe à chaque fois que vous ajoutez un autre ordre à la conception.

Si vous optez pour un filtre de type mur de briques, la courbe gaussienne est un très bon point de départ. Si vous connaissez le domaine temporel <-> domaine fréquentiel; un gaussien se transforme en gaussien dans l'autre domaine. À mesure qu'il s'enroule dans l'un, il se rétrécit dans l'autre. Donc, pour obtenir un pic parfait dans le domaine fréquentiel, vous auriez besoin d'une quantité infinie d'échantillons.

S'il vous arrive d'avoir Matlab disponible pour utilisation, vous devriez vérifier certains des outils de conception de filtres intégrés. Voici un lien qui parle de Butterworth et Bessel . Les outils de conception vous permettent de spécifier certains aspects du filtre. Ces aspects changent pour chaque type de filtre, mais certains exemples sont la bande passante, la bande d'arrêt, l'ondulation, etc. ) ou il vous donnera un filtre avec la commande minimum requise pour répondre aux spécifications.

Kellenjb
la source
Un gaussien correspond à l'exigence d'une réponse impulsionnelle non négative, mais ce n'est pas vraiment un mur de briques. D'un autre côté, Butterworth, Bessel et Chebyshev ont des oscillations de type sinc dans leur réponse impulsionnelle, conduisant à un dépassement. Parmi ceux-ci, le filtre de Bessel a le moins de dépassement car il a un retard de groupe presque plat (phase linéaire) dans la bande passante.
Eryk Sun
Outre le gaussien, ces filtres sont causaux. Pour un traitement hors ligne, une phase linéaire NNFIR (FIR non négative) fonctionnerait bien, ou vous pouvez annuler la distorsion de phase d'un filtre récursif causal en utilisant la technique filtfilt .... Bien sûr, vous avez toujours besoin d'un moyen de concevoir un LPF NNIR pour éviter les dépassements / sous-dépassements. Suggestions quelqu'un? Les références?
Eryk Sun,
@eryksun, comme note latérale, si elle va osciller à 1,05 fois la valeur max, il suffit d'amortir celle-ci pour s'arrêter à 1,00 et votre réponse de pas sera un peu moins, comme 0,96 lorsqu'elle est stable. Problème résolu.
Kortuk
@Kortuk: Problème résolu dans le domaine temporel, mais ce découpage est non seulement non linéaire mais ouvre également certaines parties du domaine fréquentiel pour transmettre un signal qui ne le faisait pas auparavant. Il veut le filtre passe-pas le plus serré possible en fréquence sans dépassement dans le domaine temporel. Aucun dépassement du domaine temporel ne revient à dire que la réponse impulsionnelle n'est jamais négative.
Olin Lathrop du
1
@Kortuk: Dans certains domaines, zéro est proche du point médian entre le maximum et le minimum, et la mise à l'échelle d'un signal vers le point médian évitera les problèmes de dépassement. Dans d'autres domaines, comme l'imagerie, zéro est le minimum et la plage dynamique y est la plus importante; il serait généralement préférable d'avoir un filtre "plus flou" qui ne dépasse pas qu'un filtre plus net qui le fait.
supercat