L'une des façons standard de mettre en œuvre un filtre de Butterworth consiste à utiliser une cascade de sections de second ordre, chacune correspondant à une paire de pôles conjugués complexes. Pour un filtre de quatrième ordre, par exemple, il y aurait deux sections de second ordre. Si nous considérons comment les emplacements des pôles pour un filtre passe-bas changent dans le plan z lorsque la coupure est conçue pour près de 0 Hz à Nyquist, le chemin "balayé" par chaque paire de pôles correspond à une paire d'arcs à l'intérieur du cercle unitaire , comme illustré par la figure suivante [pour les filtres du quatrième ordre]:
Compte tenu de la durée de vie de ces filtres et du fait que ces "arcs" correspondent à des lignes droites dans le plan s, il va de soi que quelqu'un aurait développé une forme d'implémentation avec un seul paramètre capable de balayer les pôles le long des arcs à "run time" [par opposition à "design time"]. Cependant, je n'ai encore rien vu de tel.
Il est relativement simple de trouver différentes façons de le faire, en particulier dans les segments de la plage, et avec une volonté d'y jeter un peu de calcul supplémentaire. Je me demande ce qui suit:
Existe-t-il un moyen standard de mettre en œuvre un filtre Butterworth [numérique] accordable d'un ordre donné qui 1) possède des propriétés optimales (par exemple efficacité, robustesse) et 2) couvre toute la gamme?
Ou est-ce vraiment un problème si facile que personne ne se soucie d'en parler? Si tel est le cas, il semble que cela apparaisse dans les programmes de conception de filtres à côté des options pour les conceptions "statiques".
J'ai trouvé ceci: un filtre Butterworth à usages multiples avec une fréquence de coupure variable , mais au début sur Google, il ne semble pas y avoir beaucoup d'informations sur ce qu'il contient.
Mise à jour (re: réponses)
Juste pour être un peu plus clair:
- Je recherche un "méta-design" avec un paramètre (disons de [0,1]) qui ajustera automatiquement la coupure de DC à Nyquist (tout en gardant le gain normalisé) pour une utilisation dans un système variant dans le temps. Quelque chose comme ce résonateur bipolaire , sauf avec les contraintes de Butterworth. L'idée est que le calcul du paramètre serait plus efficace que l'exécution de la procédure de conception hors ligne typique lors de l'exécution.
- Je ne cherche même pas nécessairement comment concevoir un "méta-filtre" (c'est-à-dire faire le calcul avec des variables au lieu de nombres), je me demande s'il y a des choix pour des formes d'implémentation standard [non évidentes] - parce que, disons, l'approche directe qui correspond au cas statique finit par avoir des problèmes numériques dans le cas variant dans le temps.
- Peut-être n'y a-t-il pas de problèmes, et l'approche directe est celle qui est utilisée dans la pratique. Ce serait génial. Ma préoccupation est que je n'ai vu ce sujet mentionné explicitement dans aucune des sources que j'ai consultées, mais peut-être que j'ai juste raté quelque chose de vraiment évident, alors je demande.
- Dans le processus d'ajouter plus de détails ici, j'ai rencontré un traitement général des structures biquad paramétriques, ce qui est presque ce que je recherche (et a de belles références).
Update 2
Je cherche des réponses comme celle que j'ai mise dans mon deuxième commentaire à Jason R, comme suit:
"Oh ouais, vous voulez utiliser la paramétrisation III-2b de la thèse de tel ou tel, sous forme de réseau à état tapé parce qu'elle résout tel ou tel cas de bord tout en utilisant le nombre minimal de multiplications."
Peut-être que rien de tel n'existe, mais ma question est de savoir si c'est le cas, et si oui, qu'est-ce que c'est ou où puis-je le trouver?
Cagnotte
Sur la base d'une référence à la «forme canonique de l'observateur» donnée par Tim Wescott dans le fil comp.dsp dans la réponse de Jason R , j'ai décidé de supposer que je devrais peut-être commencer à fouiller dans la littérature sur les systèmes de contrôle, j'ai donc essayé de faire une recherche de Butterworth "State Space" , et il s'est avéré le traitement suivant, très cool, de la conception / mise en œuvre, non seulement des filtres paramétriques Butterworth, mais aussi de Chebyshev et elliptiques:
Sophocles J. Orfanidis, "High-Order Digital Parametric Equalizer Design", J. Audio Eng. Soc., Vol. 53, p. 1026-1046, novembre 2005.
- Papier: http://www.ece.rutgers.edu/~orfanidi/ece348/hpeq.pdf
- Boîte à outils Matlab: http://eceweb1.rutgers.edu/~orfanidi/hpeq/
Cela va prendre un peu de temps à creuser, mais d'après ce que j'ai lu jusqu'à présent, je serais très surpris si ce n'est pas ce que je recherche. Je donne celui-ci à Jason R pour la référence comp.dsp qui m'a conduit au document Orfanidis. Sa réponse est également un bel aperçu pratique de la conception de filtres Butterworth.
la source
Oui, il existe des formulaires d'implémentation standard pour Butterworth, et presque toutes les autres réponses de filtre. Ils sont tous entièrement implémentés dans ma bibliothèque de filtres IIR open source. Voici un extrait de code qui produit les paires pôle / zéro pour un filtre Butterworth de degré arbitraire:
Comme vous pouvez le voir, la position des pôles est calculée en subdivisant le plan s en "paires" de segments égaux.
Un code approprié est fourni pour tous les types courants de réponses de filtre: Chebyshev, Elliptic, Legendre, y compris les versions en rayon de chacun.
https://github.com/vinniefalco/DSPFiltersDemo.git
https://github.com/vinniefalco/DSPFilters.git
la source