Quelle conception de filtre passe-bande produira la réponse impulsionnelle la plus courte?

14

Concevoir un simple filtre Buterworth de bande passante IIR d'ordre 2 avec une fréquence centrale de 500 Hz et une bande passante de 1 octave me donne la réponse en fréquence suivante ...

entrez la description de l'image ici

Maintenant, si je prends la réponse impulsionnelle et la normalise et la convertis en dB, nous pouvons observer la décroissance de la réponse impulsionnelle.

entrez la description de l'image ici

La décroissance de la réponse impulsionnelle est approximativement linéaire avec le temps lorsqu'elle est tracée sur cette échelle, ce qui nous permet de définir une statistique de temps de décroissance (tout comme dans l'acoustique de la pièce où vous pouvez définir le temps de réverbération). Pour que la réponse impulsionnelle de ce filtre tombe en dessous de 30 dB, il faut environ 11 ms.

Nous essayons de minimiser ce temps de décroissance en maintenant la constante suivante:

  • -3 dB de bande passante
  • Ordre des filtres

Je suis heureux d'accepter (dans certaines limites) l'ondulation de la bande passante et de la bande d'arrêt, et / ou un compromis sur la pente de la bande de transition pour y parvenir. Quelqu'un peut-il suggérer une méthode de filtrage avec la durée de réponse impulsionnelle la plus courte possible définie ci-dessus?

learnvst
la source
2
Veuillez inclure la fréquence d'échantillonnage, pour donner un sens à ces 11 ms.
Juancho
4
Les pôles dans le filtre produiront des termes à décroissance exponentielle dans la réponse impulsionnelle qui, lorsqu'elle est tracée sur une échelle logarithmique, donne une décroissance linéaire, comme vous l'avez montré. Le taux de décroissance est lié à la distance des pôles au cercle unitaire; plus ils sont proches, plus la décomposition est lente. La raideur de la bande de transition est également liée à la proximité des pôles du cercle unitaire. Je ne connais aucune technique de conception qui vous permettrait de hiérarchiser cette caractéristique particulière.
Jason R
@ Juancho Le taux d'échantillonnage a été omis car je pensais que c'était complètement hors de propos: l'utilisation de 5 kHz ou 500 kHz ne change pas le taux de décroissance de la réponse impulsionnelle. Je cible 44,1 kHz si vous êtes curieux. Merci d'avoir regardé :)
learnvst
2
@JimClay oui vous pouvez je suis sûr, mais je veux garder le coût de calcul très bas. Pour utiliser efficacement Fir, je devrais utiliser une technique basée sur fft, et cela introduirait une latence dans l'algorithme pendant que le tampon FFT est rempli d'échantillons. Oui Non?
learnvst
3
@JimClay pourquoi les lois de la physique interrompent-elles toujours mes plans de domination mondiale! Grumble
grumble

Réponses:

8

La réponse en fréquence du filtre de Butterworth est le résultat de formules spécifiques et sa caractéristique est la réponse en fréquence à bande passante plate. Par conséquent, si les coefficients du filtre IIR sont modifiés de quelque façon que ce soit, le filtre pourrait ne pas conserver les caractéristiques "Butterworth".

En plus des réponses de "Hilmar" et "Jason R", vous pourriez peut-être traiter cela comme un problème d'optimisation d'une fonction de fitness qui capture vos spécifications.

Vous pouvez par exemple commencer par une conception (par exemple un filtre Butterworth), puis utiliser une technique d'optimisation pour déplacer les zéros et les pôles autour de leur emplacement (ou modifier la conception en ajoutant / supprimant des pôles et des zéros) en essayant d'atteindre vos spécifications (une plus nette roll-off dans le domaine temporel en maintenant la bande passante et l'ordre des filtres).

Le long de cette ligne, un grand travail a été effectué sur la conception de filtres avec des algorithmes génétiques (et ici ) et un recuit simulé (et ici ) que vous pourriez trouver utiles.

A_A
la source
6

Il n'y a pas de solution miracle, je le crains. Vous pouvez utiliser un filtre elliptique pour contrôler indépendamment l'ondulation de la bande passante et l'atténuation de la bande d'arrêt, mais vous constaterez que le taux de décroissance est étroitement lié à la pente et à la bande passante globale du filtre. Vous pouvez accélérer considérablement la décroissance du filtre en réduisant l'ordre du filtre à 1, mais là encore, le filtre sera beaucoup moins raide.

Hilmar
la source
Impossible de réduire le filtre au premier ordre car il est utilisé dans un réseau de type Linkwitz-Riley, mais merci beaucoup d'avoir pris le temps de répondre +1
learnvst