Y a-t-il des avantages à utiliser une approche de fenêtre par rapport à Parks-McClellan (plus abrégé ici en PMcC) ou aux algorithmes des moindres carrés pour la conception du filtre FIR d'un filtre passe-bas? Supposons avec la puissance de calcul d'aujourd'hui que la complexité des algorithmes eux-mêmes ne soit pas un facteur.
Cette question ne compare pas PMcC aux moindres carrés, mais spécifiquement s'il y a une raison d'utiliser une technique de conception FIR de fenêtre au lieu de ces algorithmes, ou les techniques de fenêtrage pour filtrer la conception sont-elles obsolètes par ces algorithmes et reléguées à des fins didactiques?
Voici une comparaison où j'avais comparé une fenêtre de Hamming à mon approche de conception préférée avec Least-Squared, en utilisant le même nombre de prises. J'ai élargi la bande passante dans l'approche Least Squared pour qu'elle corresponde étroitement à celle de la fenêtre Hamming, et dans ce cas, il était tout à fait clair que le Least-Squared surpasserait (offrant beaucoup plus de rejet de bande d'arrêt). Je ne l'ai pas fait avec toutes les fenêtres, ce qui m'amène à me demander si vous pourriez jamais dépasser les PMcC et les moindres carrés, ou s'il existe d'autres applications pour un filtre passe-bas FIR où une approche de fenêtrage serait préférée?
la source
firpm()
et àfirls()
.Réponses:
Je conviens que la méthode de conception du filtre de fenêtrage n'est plus l'une des méthodes de conception les plus importantes, et il se pourrait en effet qu'elle soit surreprésentée dans les manuels traditionnels, probablement pour des raisons historiques.
Cependant, je pense que son utilisation peut être justifiée dans certaines situations. Je ne suis pas d'accord pour dire que la complexité informatique n'est plus un problème. Cela dépend de la plateforme. Assis sur notre ordinateur de bureau et concevant un filtre, nous n'avons en effet pas à nous soucier de la complexité. Cependant, sur des plates-formes spécifiques et dans des situations où la conception doit être effectuée en temps quasi réel, la complexité de calcul est un problème, et une technique de conception sous-optimale simple sera préférée à une technique optimale beaucoup plus complexe. À titre d'exemple, j'ai déjà travaillé sur un système de formation de faisceaux où le filtre (formateur de faisceaux) devrait être repensé à la volée, et la complexité de calcul était donc un problème.
Je suis également convaincu que dans de nombreuses situations pratiques, nous n'avons pas à nous soucier de la différence entre la conception optimale et la conception sous-optimale. Cela devient encore plus vrai si nous devons utiliser l'arithmétique à virgule fixe avec des coefficients quantifiés et des résultats quantifiés d'opérations arithmétiques.
Un autre problème est la stabilité numérique des méthodes optimales de conception de filtres et de leurs implémentations. J'ai rencontré plusieurs cas où l'algorithme de Parks-McClellan (je devrais dire l' implémentation que j'ai utilisée) n'a tout simplement pas convergé. Cela se produira si la spécification n'a pas beaucoup de sens, mais cela peut également arriver avec des spécifications totalement raisonnables. Il en va de même pour la méthode de conception des moindres carrés où un système d'équations linéaires doit être résolu, ce qui peut devenir un problème mal conditionné. Dans ces circonstances, la méthode de fenêtrage ne vous laissera jamais tomber.
Une remarque sur votre comparaison entre la méthode des fenêtres et la conception des moindres carrés: je ne pense pas que cette comparaison montre une supériorité générale de la méthode des moindres carrés sur la méthode du fenêtrage. Tout d'abord, vous semblez regarder l'atténuation de la bande d'arrêt, qui n'est pas un objectif de conception pour l'une ou l'autre des deux méthodes. La méthode de fenêtrage n'est en aucun cas optimale et la conception des moindres carrés minimise l'énergie de la bande d'arrêt et ne se soucie pas du tout de la taille de l'ondulation de la bande d'arrêt. Ce qui peut être vu, c'est que le bord de la bande passante de la conception de la fenêtre est plus grand que celui de la conception des moindres carrés, tandis que le bord de la bande d'arrêt est plus petit. Par conséquent, la largeur de bande de transition du filtre conçu par fenêtrage est plus petite, ce qui entraînera des ondulations de bande d'arrêt plus élevées. La différence de largeur de bande de transition peut être faible, mais les propriétés du filtre sont très sensibles à ce paramètre. Il ne fait aucun doute que le filtre des moindres carrés surpasse l'autre filtre lorsqu'il s'agit d'arrêter l'énergie de la bande, mais ce n'est pas aussi facile à voir que la taille de l'ondulation. Et la question demeure si cette différence ferait réellement une différence dans une application pratique.
Permettez-moi de vous montrer que de telles comparaisons peuvent souvent être faites pour ressembler à ce que l'on souhaiterait. Dans la figure ci-dessous, je compare un filtre passe-bas optimal des moindres carrés conçu avec la fonction Matlab / Octave
firls.m
(bleu) à un filtre passe-bas conçu avec la méthode de fenêtre utilisant une fenêtre Kaiser (rouge).D'après la figure, on pourrait même conclure que le filtre conçu par fenêtrage est légèrement meilleur que le filtre optimal des moindres carrés. Ceci est bien sûr insensé car nous n'avons même pas défini «mieux», et le filtre des moindres carrés doit avoir une erreur d'approximation quadratique moyenne plus petite. Cependant, vous ne voyez pas cela directement dans la figure. Quoi qu'il en soit, c'est juste pour étayer mon affirmation selon laquelle il faut être très prudent et clair lors de ces comparaisons.
En somme, en plus d'être utile à apprendre pour les étudiants DSP pour des raisons purement didactiques, je pense que malgré les avancées technologiques depuis les années 1970, l'utilisation de la méthode du fenêtrage peut être justifiée dans certains scénarios pratiques, et je ne pense pas que cela changer très bientôt.
la source
Les filtres Windowed Sinc peuvent être générés de manière adaptative à la volée sur des processeurs à peine assez puissants pour exécuter le filtre FIR associé. Les filtres Sinc fenêtrés peuvent être générés en temps limité.
La génération de quelques filtres Sinc fenêtrés simples peut être complètement décrite (et inspectée pour les logiciels malveillants, etc.) en quelques lignes de code , par opposition à l'utilisation aveugle d'une boîte à outils opaque.
Moins de connaissances mathématiques préalables sont nécessaires pour expliquer un filtre Sinc fenêtré, par rapport à celui requis pour coder un générateur de filtre PMcC à partir de zéro.
Les ondulations égales dans la réponse en fréquence d'un filtre PMcC peuvent provoquer des artefacts dans le domaine temporel qui sont différents (et peut-être moins souhaitables) que les artefacts produits par un simple filtre à fenêtre.
la source
f=[0 0.49 0.51 1]; a=[1 1 0 0]; b=remez(300,f,a)
qui s'exécute également dans Octave. Une explication est qu'avec des filtres très raides, les ondulations peuvent être suffisamment régulières pour ressembler à un cosinus. L'équivalent dans le domaine temporel du cosinus dans le domaine fréquentiel serait les deux échos impulsifs.Je vais montrer ici un avantage d'un design fenêtré et une astuce pour obtenir le même avantage de Parks – McClellan.
Pour les filtres demi-bande, quart de bande, etc., le fenêtrage conserve les zéros du domaine temporel de la fonction sinc mise à l'échelle, qui est le filtre passe-bas idéal prototype. Les zéros se retrouvent dans les coefficients, ce qui réduit le coût de calcul des filtres. Pour un filtre demi-bande, la conception fenêtrée donne un filtre avec chaque coefficient pair 0 à l'exception du coefficient moyen (qui est également considéré comme pair):
Figure 1. La fonction Sinc étirée horizontalement d'un facteur 2 est le filtre passe-bas demi-bande prototype avec un gain de 2, adapté au suréchantillonnage d'un facteur 2.
Cependant, Parks – McClellan / Remez peut être trompé pour donner les mêmes avantages en concevant en utilisant un filtre avec un nombre pair de prises avec seulement une bande passante de gain unitaire définie. Les coefficients obtenus sont utilisés comme coefficients impairs d'un filtre plus long. Le coefficient moyen du filtre le plus long est défini sur 1 et les autres coefficients pairs sur 0. Ce filtre a un gain de 2 dans la bande passante et une ondulation symétrique dans les bandes passante et d'arrêt. En Python:
Figure 2. Coefficients du filtre demi-bande conçu indirectement à l'aide de Python
scipy.signal.remez
.Figure 3. Diagramme de réponse en fréquence d'amplitude du filtre demi-bande conçu indirectement en utilisant
scipy.signal.remez
.la source